LCOV - code coverage report
Current view: top level - src/MIDI_Interfaces - USBMIDI_Interface.ipp (source / functions) Coverage Total Hit
Test: 73449d9b107c772cf65493691543348214e5d5eb Lines: 71.8 % 39 28
Test Date: 2026-06-06 17:44:35 Functions: 83.3 % 12 10
Legend: Lines:     hit not hit

            Line data    Source code
       1              : #include <Def/TypeTraits.hpp>
       2              : #include <MIDI_Parsers/LambdaPuller.hpp>
       3              : 
       4              : BEGIN_CS_NAMESPACE
       5              : 
       6              : // Reading MIDI
       7              : // -----------------------------------------------------------------------------
       8              : 
       9              : template <class Backend>
      10           18 : MIDIReadEvent GenericUSBMIDI_Interface<Backend>::read() {
      11           18 :     auto pullpacket = [this](typename Backend::MIDIUSBPacket_t &packet) {
      12           26 :         packet = backend.read();
      13           26 :         return packet[0] != 0x00;
      14              :     };
      15           36 :     return parser.pull(LambdaPuller(std::move(pullpacket)));
      16              : }
      17              : 
      18              : template <class Backend>
      19            0 : void GenericUSBMIDI_Interface<Backend>::begin() {
      20              : #ifndef __SAM3X8E__ // Due compiler too old, doesn't support begin_if_possible()
      21            0 :     begin_if_possible(backend);
      22              : #endif
      23            0 : }
      24              : 
      25              : template <class Backend>
      26            6 : void GenericUSBMIDI_Interface<Backend>::update() {
      27            6 :     MIDI_Interface::updateIncoming(this);
      28            6 : }
      29              : 
      30              : // Retrieving the received messages
      31              : // -----------------------------------------------------------------------------
      32              : 
      33              : template <class Backend>
      34            3 : ChannelMessage GenericUSBMIDI_Interface<Backend>::getChannelMessage() const {
      35            3 :     return parser.getChannelMessage();
      36              : }
      37              : 
      38              : template <class Backend>
      39              : SysCommonMessage
      40            3 : GenericUSBMIDI_Interface<Backend>::getSysCommonMessage() const {
      41            3 :     return parser.getSysCommonMessage();
      42              : }
      43              : 
      44              : template <class Backend>
      45            2 : RealTimeMessage GenericUSBMIDI_Interface<Backend>::getRealTimeMessage() const {
      46            2 :     return parser.getRealTimeMessage();
      47              : }
      48              : 
      49              : template <class Backend>
      50            7 : SysExMessage GenericUSBMIDI_Interface<Backend>::getSysExMessage() const {
      51            7 :     return parser.getSysExMessage();
      52              : }
      53              : 
      54              : // Sending MIDI
      55              : // -----------------------------------------------------------------------------
      56              : 
      57              : template <class Backend>
      58            3 : void GenericUSBMIDI_Interface<Backend>::sendChannelMessageImpl(
      59              :     ChannelMessage msg) {
      60            3 :     sender.sendChannelMessage(msg, Sender {this});
      61            3 :     if (alwaysSendImmediately_)
      62            0 :         backend.sendNow();
      63            3 : }
      64              : 
      65              : template <class Backend>
      66            0 : void GenericUSBMIDI_Interface<Backend>::sendSysCommonImpl(
      67              :     SysCommonMessage msg) {
      68            0 :     sender.sendSysCommonMessage(msg, Sender {this});
      69            0 :     if (alwaysSendImmediately_)
      70            0 :         backend.sendNow();
      71            0 : }
      72              : 
      73              : template <class Backend>
      74           19 : void GenericUSBMIDI_Interface<Backend>::sendSysExImpl(const SysExMessage msg) {
      75           19 :     sender.sendSysEx(msg, Sender {this});
      76           19 :     if (alwaysSendImmediately_)
      77            0 :         backend.sendNow();
      78           19 : }
      79              : 
      80              : template <class Backend>
      81            1 : void GenericUSBMIDI_Interface<Backend>::sendRealTimeImpl(RealTimeMessage msg) {
      82            1 :     sender.sendRealTimeMessage(msg, Sender {this});
      83            1 :     if (alwaysSendImmediately_)
      84            0 :         backend.sendNow();
      85            1 : }
      86              : 
      87              : END_CS_NAMESPACE
        

Generated by: LCOV version 2.4-beta