MCPcopy Create free account
hub / github.com/celtera/libremidi / my_app

Method my_app

examples/coremidi_share.cpp:19–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17 std::vector<libremidi::midi_out> midiout;
18
19 my_app()
20 {
21 auto callback = [&](int port, const libremidi::message& msg) {
22 std::cout << msg << std::endl;
23 midiout[port].send_message(msg);
24 };
25
26 auto res = MIDIClientCreate(CFSTR("My App"), 0, 0, &handle);
27 if (res != noErr)
28 throw std::runtime_error("Could not start CoreMIDI");
29
30 // Create our configuration
31 auto api_input_config = libremidi::coremidi_input_configuration{.context = handle};
32 auto api_output_config = libremidi::coremidi_output_configuration{.context = handle};
33
34 // Create 16 inputs and 16 outputs
35 for (int i = 0; i < 16; i++)
36 {
37 midiin.emplace_back(
38 libremidi::input_configuration{
39 .on_message = [=](const libremidi::message& msg) { callback(i, msg); }},
40 api_input_config);
41 midiin[i].open_virtual_port("Input: " + std::to_string(i));
42
43 midiout.emplace_back(libremidi::output_configuration{}, api_output_config);
44 midiout[i].open_virtual_port("Output: " + std::to_string(i));
45 }
46 }
47
48 ~my_app() { MIDIClientDispose(handle); }
49};

Callers

nothing calls this directly

Calls 2

send_messageMethod · 0.45
open_virtual_portMethod · 0.45

Tested by

no test coverage detected