LCOV - code coverage report
Current view: top level - src/MIDI_Parsers - MIDI_Parser.hpp (source / functions) Hit Total Coverage
Test: 3a807a259ebe0769dd942f7f612dca5273937539 Lines: 5 5 100.0 %
Date: 2024-03-24 17:16:54 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <stddef.h>
       4             : #include <stdint.h>
       5             : #include <stdlib.h>
       6             : 
       7             : #include <Def/Def.hpp>
       8             : #include <Settings/SettingsWrapper.hpp>
       9             : 
      10             : #include "MIDIReadEvent.hpp"
      11             : #include "MIDI_MessageTypes.hpp"
      12             : 
      13             : BEGIN_CS_NAMESPACE
      14             : 
      15             : /// Base class for MIDI parsers.
      16             : class MIDI_Parser {
      17             :   public:
      18             :     /// Get the latest MIDI channel voice message.
      19          68 :     ChannelMessage getChannelMessage() const { return ChannelMessage(midimsg); }
      20             :     /// Get the latest MIDI system common message.
      21          23 :     SysCommonMessage getSysCommonMessage() const {
      22          23 :         return SysCommonMessage(midimsg);
      23             :     }
      24             :     /// Get the latest MIDI real-time message.
      25          12 :     RealTimeMessage getRealTimeMessage() const { return rtmsg; }
      26             : #if IGNORE_SYSEX
      27             :     /// Get the latest SysEx message.
      28             :     SysExMessage getSysExMessage() const { return {nullptr, 0, Cable_1}; }
      29             : #endif
      30             : 
      31             :   protected:
      32             :     MIDIMessage midimsg = {0x00, 0x00, 0x00};
      33             :     RealTimeMessage rtmsg = {0x00};
      34             : 
      35             :   public:
      36             :     /// Check if the given byte is a MIDI header/status byte.
      37        1010 :     static bool isStatus(uint8_t data) { return data & (1 << 7); }
      38             :     /// Check if the given byte is a MIDI data byte.
      39             :     static bool isData(uint8_t data) { return (data & (1 << 7)) == 0; }
      40             : };
      41             : 
      42             : END_CS_NAMESPACE

Generated by: LCOV version 1.15