LCOV - code coverage report
Current view: top level - src/MIDI_Interfaces - MIDI_Interface.cpp (source / functions) Hit Total Coverage
Test: 3a807a259ebe0769dd942f7f612dca5273937539 Lines: 23 29 79.3 %
Date: 2024-03-24 17:16:54 Functions: 5 8 62.5 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #include "MIDI_Interface.hpp"
       2             : #include "MIDI_Callbacks.hpp"
       3             : 
       4             : BEGIN_CS_NAMESPACE
       5             : 
       6             : // -------------------------------------------------------------------------- //
       7             : 
       8             : // Managing the default MIDI interface
       9             : 
      10         135 : MIDI_Interface::~MIDI_Interface() {
      11         135 :     if (getDefault() == this)
      12         135 :         DefaultMIDI_Interface = nullptr;
      13         135 : }
      14             : 
      15           0 : void MIDI_Interface::setAsDefault() { DefaultMIDI_Interface = this; }
      16             : 
      17             : #ifndef ARDUINO
      18             : #define DOWN_CAST dynamic_cast
      19             : #else
      20             : #define DOWN_CAST static_cast
      21             : #endif
      22             : 
      23         174 : MIDI_Interface *MIDI_Interface::getDefault() {
      24         174 :     return DefaultMIDI_Interface == nullptr
      25         174 :                ? DOWN_CAST<MIDI_Interface *>(updatables.getLast())
      26         174 :                : DefaultMIDI_Interface;
      27             : }
      28             : 
      29             : MIDI_Interface *MIDI_Interface::DefaultMIDI_Interface = nullptr;
      30             : 
      31             : // -------------------------------------------------------------------------- //
      32             : 
      33             : // Handling incoming MIDI events
      34             : 
      35          25 : void MIDI_Interface::onChannelMessage(ChannelMessage message) {
      36          25 :     sourceMIDItoPipe(message);
      37          25 :     if (callbacks)
      38          22 :         callbacks->onChannelMessage(*this, message);
      39          25 : }
      40             : 
      41          11 : void MIDI_Interface::onSysExMessage(SysExMessage message) {
      42          11 :     sourceMIDItoPipe(message);
      43          11 :     if (callbacks)
      44           5 :         callbacks->onSysExMessage(*this, message);
      45          11 : }
      46             : 
      47           0 : void MIDI_Interface::onSysCommonMessage(SysCommonMessage message) {
      48           0 :     sourceMIDItoPipe(message);
      49           0 :     if (callbacks)
      50           0 :         callbacks->onSysCommonMessage(*this, message);
      51           0 : }
      52             : 
      53           4 : void MIDI_Interface::onRealTimeMessage(RealTimeMessage message) {
      54           4 :     sourceMIDItoPipe(message);
      55           4 :     if (callbacks)
      56           3 :         callbacks->onRealTimeMessage(*this, message);
      57           4 : }
      58             : 
      59             : END_CS_NAMESPACE

Generated by: LCOV version 1.15