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

Function main

examples/network.cpp:8–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6#include <boost/asio.hpp>
7
8int main(int argc, const char** argv)
9{
10 using namespace std::literals;
11 libremidi::examples::arguments args{argc, argv};
12
13 boost::asio::io_context ctx;
14
15 // MIDI 1
16 {
17 libremidi::net::dgram_input_configuration in_apiconf{
18 .client_name = "libremidi",
19 .protocol = libremidi::net::protocol::OSC_MIDI,
20 .accept = "0.0.0.0",
21 .port = 5677,
22 .io_context = &ctx};
23
24 libremidi::midi_in midiin{
25 {.on_message = [](const libremidi::message& m) { std::cerr << m << std::endl; }},
26 in_apiconf};
27 midiin.open_virtual_port("/midi");
28
29 libremidi::net::dgram_output_configuration out_apiconf{
30 .client_name = "libremidi",
31 .protocol = libremidi::net::protocol::OSC_MIDI,
32 .host = "127.0.0.1",
33 .port = 5677,
34 .broadcast = false,
35 .io_context = &ctx};
36
37 libremidi::midi_out midiout{{}, out_apiconf};
38
39 if (auto err = midiout.open_virtual_port("/midi"); err != stdx::error{})
40 err.throw_exception();
41
42 if (auto err = midiout.send_message(144, 127, 64); err != stdx::error{})
43 err.throw_exception();
44
45 ctx.run_one();
46 }
47
48 ctx.restart();
49
50 // MIDI 2
51 {
52 libremidi::net_ump::dgram_input_configuration in_apiconf{
53 .client_name = "libremidi",
54 .protocol = libremidi::net_ump::protocol::OSC_MIDI2,
55 .accept = "0.0.0.0",
56 .port = 5688,
57 .io_context = &ctx};
58
59 libremidi::midi_in midiin{
60 {.on_message = [](const libremidi::ump& m) { std::cerr << m << std::endl; }}, in_apiconf};
61 midiin.open_virtual_port("/ump");
62
63 libremidi::net_ump::dgram_output_configuration out_apiconf{
64 .client_name = "libremidi",
65 .protocol = libremidi::net_ump::protocol::OSC_MIDI2,

Callers

nothing calls this directly

Calls 6

cmidi2_ump_midi2_ccFunction · 0.85
restartMethod · 0.80
open_virtual_portMethod · 0.45
throw_exceptionMethod · 0.45
send_messageMethod · 0.45
send_umpMethod · 0.45

Tested by

no test coverage detected