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

Function enumerate_api

examples/midiprobe.cpp:20–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18#include <thread>
19
20void enumerate_api(libremidi::API api)
21{
22 std::string_view api_name = libremidi::get_api_display_name(api);
23 std::cout << "Displaying ports for: " << api_name << std::endl;
24
25 // On Windows 10, apparently the MIDI devices aren't exactly available as soon as the app open...
26 std::this_thread::sleep_for(std::chrono::milliseconds(100));
27
28 libremidi::observer midi{
29 {.track_hardware = true, .track_virtual = true}, libremidi::observer_configuration_for(api)};
30
31 std::this_thread::sleep_for(std::chrono::milliseconds(100));
32
33 {
34 // Check inputs.
35 auto ports = midi.get_input_ports();
36 std::cout << ports.size() << " MIDI input sources:\n";
37 int i = 0;
38 for (auto& port : ports)
39 std::cout << " - " << i++ << ": " << port << '\n';
40 }
41
42 {
43 // Check outputs.
44 auto ports = midi.get_output_ports();
45 std::cout << ports.size() << " MIDI output sinks:\n";
46 int i = 0;
47 for (auto& port : ports)
48 std::cout << " - " << i++ << ": " << port << '\n';
49 }
50
51 std::cout << "\n";
52}
53
54int main()
55{

Callers 1

mainFunction · 0.85

Calls 3

get_input_portsMethod · 0.45
sizeMethod · 0.45
get_output_portsMethod · 0.45

Tested by

no test coverage detected