18 inline void cout_callback(
double time_delta, std::vector< unsigned char >* message,
21 const auto number_of_bytes = message->size();
22 for ( decltype( message->size() ) i = 0; i < number_of_bytes; ++i )
23 std::cout <<
"Byte " << i <<
" = " << std::hex << static_cast< int >( message->at( i ) )
25 if ( number_of_bytes > 0 )
26 std::cout <<
"expired since last message = " << time_delta <<
"s" << std::endl;
29 template <
class RtM
idi >
32 auto rtmidi = std::make_unique< RtMidi >();
33 if ( rtmidi->getPortCount() < port_number + 1u )
35 std::cout <<
"Requested port: " << port_number
36 <<
". Available number of ports: " << rtmidi->getPortCount() << std::endl;
39 std::cout <<
"Opening port " << rtmidi->getPortName( port_number ) << std::endl;
40 rtmidi->openPort( port_number );
46 std::cout << message << std::endl;
48 std::cin.get( input );
58 template <
class Message >
61 rtmidiout_.sendMessage(
62 static_cast< const unsigned char* >( static_cast< const void* >( msg.data() ) ),
67 RtMidiOut& rtmidiout_;
std::unique_ptr< RtMidi > make_midi_port(unsigned port_number=0)
Definition: util.hpp:30
void wait_for_press_enter(const std::string &message)
Definition: util.hpp:44
void cout_callback(double time_delta, std::vector< unsigned char > *message, void *)
Definition: util.hpp:18
void operator()(const Message &msg) const
Definition: util.hpp:59
message_sender(RtMidiOut &rtmidiout)
Definition: util.hpp:54