@@ -3,8 +3,8 @@ const lm = @import("libremidi");
33
44
55const EnumeratedPorts = extern struct {
6- in_ports : [256 ]lm.midi.in.port.Handle = @splat (.{} ),
7- out_ports : [256 ]lm.midi.out.port.Handle = @splat (.{} ),
6+ in_ports : [256 ]? * lm.midi.In.Port = @splat (null ),
7+ out_ports : [256 ]? * lm.midi.Out.Port = @splat (null ),
88 in_port_count : usize = 0 ,
99 out_port_count : usize = 0 ,
1010};
@@ -16,7 +16,7 @@ pub fn main() !void {
1616
1717 var e : EnumeratedPorts = .{};
1818
19- const observer : lm.observer.Handle = try .init (&.{
19+ const observer : * lm.Observer = try .init (&.{
2020 .track_hardware = true ,
2121 .track_virtual = true ,
2222 .track_any = true ,
@@ -36,7 +36,7 @@ pub fn main() !void {
3636
3737 try enumerate_ports (observer , & e );
3838
39- const midi_in : lm.midi.in.Handle = try .init (&.{
39+ const midi_in : * lm.midi.In = try .init (&.{
4040 .version = .midi1 ,
4141 .port = .{ .input = e .in_ports [0 ] },
4242 .msg_callback = .{ .on_midi1_message = .{ .callback = on_midi1_message } },
@@ -46,7 +46,7 @@ pub fn main() !void {
4646 });
4747 defer midi_in .free ();
4848
49- const midi_out : lm.midi.out.Handle = try .init (&.{
49+ const midi_out : * lm.midi.Out = try .init (&.{
5050 .version = .midi1 ,
5151 .virtual_port = true ,
5252 .port_name = "my-app" ,
@@ -60,29 +60,29 @@ pub fn main() !void {
6060 for (0.. 99) | _ | std .time .sleep (1e9 ); // sleep 1s, 100 times
6161}
6262
63- fn free_observer (observer : lm.observer.Handle , e : * EnumeratedPorts ) void {
63+ fn free_observer (observer : * lm.Observer , e : * EnumeratedPorts ) void {
6464
65- for (e .in_ports ) | port | port .free ();
66- for (e .out_ports ) | port | port .free ();
65+ for (e .in_ports ) | maybe_port | if ( maybe_port ) | port | port .free ();
66+ for (e .out_ports ) | maybe_port | if ( maybe_port ) | port | port .free ();
6767
6868 observer .free ();
6969}
7070
71- export fn on_input_port_found (ctx : ? * anyopaque , port : lm.midi.in.port.Handle ) callconv (.C ) void {
71+ export fn on_input_port_found (ctx : ? * anyopaque , port : * lm.midi.In.Port ) callconv (.C ) void {
7272
7373 std .debug .print ("input: {s}\n " , .{ port .getName () catch "" });
7474
7575 var e : * EnumeratedPorts = @ptrCast (@alignCast (ctx ));
76- e .in_ports [e .in_port_count ] = port .clone () catch lm.midi.in.port.Handle {} ;
76+ e .in_ports [e .in_port_count ] = port .clone () catch null ;
7777 e .in_port_count += 1 ;
7878}
7979
80- export fn on_output_port_found (ctx : ? * anyopaque , port : lm.midi.out.port.Handle ) callconv (.C ) void {
80+ export fn on_output_port_found (ctx : ? * anyopaque , port : * lm.midi.Out.Port ) callconv (.C ) void {
8181
8282 std .debug .print ("output: {s}\n " , .{ port .getName () catch "" });
8383
8484 var e : * EnumeratedPorts = @ptrCast (@alignCast (ctx ));
85- e .out_ports [e .out_port_count ] = port .clone () catch lm.midi.out.port.Handle {} ;
85+ e .out_ports [e .out_port_count ] = port .clone () catch null ;
8686 e .out_port_count += 1 ;
8787}
8888
@@ -102,7 +102,7 @@ fn on_midi2_message(ctx: ?*anyopaque, ts: lm.Timestamp, msg: [*]const lm.midi.v2
102102 std .debug .print ("0x{x:02} 0x{x:02} 0x{x:02}\n " , .{ msg [0 ], msg [1 ], msg [2 ] });
103103}
104104
105- fn enumerate_ports (observer : lm.observer.Handle , e : * EnumeratedPorts ) ! void {
105+ fn enumerate_ports (observer : * lm.Observer , e : * EnumeratedPorts ) ! void {
106106 try observer .enumerateInputPorts (e , on_input_port_found );
107107 try observer .enumerateOutputPorts (e , on_output_port_found );
108108}
0 commit comments