LCOV - code coverage report
Current view: top level - src/MIDI_Interfaces - SerialMIDI_Interface.cpp (source / functions) Hit Total Coverage
Test: 3a807a259ebe0769dd942f7f612dca5273937539 Lines: 22 36 61.1 %
Date: 2024-03-24 17:16:54 Functions: 8 10 80.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : #include "SerialMIDI_Interface.hpp"
       2             : #include <MIDI_Parsers/StreamPuller.hpp>
       3             : 
       4             : #include "PicoUSBInit.hpp"
       5             : 
       6             : BEGIN_CS_NAMESPACE
       7             : 
       8             : // -------------------------------------------------------------------------- //
       9             : 
      10             : // Reading MIDI
      11             : 
      12          15 : MIDIReadEvent StreamMIDI_Interface::read() {
      13          15 :     if (!ensure_usb_init(stream))
      14           0 :         return MIDIReadEvent::NO_MESSAGE;
      15          15 :     return parser.pull(StreamPuller(stream));
      16             : }
      17             : 
      18           5 : void StreamMIDI_Interface::update() { MIDI_Interface::updateIncoming(this); }
      19             : 
      20             : // -------------------------------------------------------------------------- //
      21             : 
      22             : // Retrieving the received messages
      23             : 
      24           3 : ChannelMessage StreamMIDI_Interface::getChannelMessage() const {
      25           3 :     return parser.getChannelMessage();
      26             : }
      27             : 
      28           0 : SysCommonMessage StreamMIDI_Interface::getSysCommonMessage() const {
      29           0 :     return parser.getSysCommonMessage();
      30             : }
      31             : 
      32           2 : RealTimeMessage StreamMIDI_Interface::getRealTimeMessage() const {
      33           2 :     return parser.getRealTimeMessage();
      34             : }
      35             : 
      36           7 : SysExMessage StreamMIDI_Interface::getSysExMessage() const {
      37           7 :     return parser.getSysExMessage();
      38             : }
      39             : 
      40             : // -------------------------------------------------------------------------- //
      41             : 
      42             : // Sending MIDI
      43             : 
      44          10 : void StreamMIDI_Interface::sendChannelMessageImpl(ChannelMessage msg) {
      45          10 :     if (!ensure_usb_init(stream))
      46           0 :         return;
      47          10 :     stream.write(msg.header);
      48          10 :     stream.write(msg.data1);
      49          10 :     if (msg.hasTwoDataBytes())
      50           6 :         stream.write(msg.data2);
      51             : }
      52             : 
      53           0 : void StreamMIDI_Interface::sendSysCommonImpl(SysCommonMessage msg) {
      54           0 :     if (!ensure_usb_init(stream))
      55           0 :         return;
      56           0 :     stream.write(msg.header);
      57           0 :     if (msg.getNumberOfDataBytes() >= 1)
      58           0 :         stream.write(msg.data1);
      59           0 :     if (msg.getNumberOfDataBytes() >= 2)
      60           0 :         stream.write(msg.data2);
      61             : }
      62             : 
      63           1 : void StreamMIDI_Interface::sendSysExImpl(SysExMessage msg) {
      64           1 :     if (!ensure_usb_init(stream))
      65           0 :         return;
      66           1 :     stream.write(msg.data, msg.length);
      67             : }
      68             : 
      69           1 : void StreamMIDI_Interface::sendRealTimeImpl(RealTimeMessage msg) {
      70           1 :     if (!ensure_usb_init(stream))
      71           0 :         return;
      72           1 :     stream.write(msg.message);
      73             : }
      74             : 
      75             : END_CS_NAMESPACE

Generated by: LCOV version 1.15