@@ -12,12 +12,14 @@ mod glfw;
1212mod gltf;
1313mod graphics;
1414pub ( crate ) mod material;
15+ mod midi;
1516pub ( crate ) mod shader;
1617#[ cfg( feature = "webcam" ) ]
1718mod webcam;
1819
1920use graphics:: { Geometry , Graphics , Image , Light , Topology , get_graphics, get_graphics_mut} ;
2021use material:: Material ;
22+
2123use pyo3:: {
2224 exceptions:: PyRuntimeError ,
2325 prelude:: * ,
@@ -94,6 +96,10 @@ fn processing(m: &Bound<'_, PyModule>) -> PyResult<()> {
9496 m. add_function ( wrap_pyfunction ! ( metallic, m) ?) ?;
9597 m. add_function ( wrap_pyfunction ! ( emissive, m) ?) ?;
9698 m. add_function ( wrap_pyfunction ! ( unlit, m) ?) ?;
99+ m. add_function ( wrap_pyfunction ! ( midi_connect, m) ?) ?;
100+ m. add_function ( wrap_pyfunction ! ( midi_disconnect, m) ?) ?;
101+ m. add_function ( wrap_pyfunction ! ( midi_refresh_ports, m) ?) ?;
102+ m. add_function ( wrap_pyfunction ! ( midi_play_notes, m) ?) ?;
97103
98104 #[ cfg( feature = "webcam" ) ]
99105 {
@@ -589,3 +595,24 @@ fn create_webcam(
589595) -> PyResult < webcam:: Webcam > {
590596 webcam:: Webcam :: new ( width, height, framerate)
591597}
598+
599+ #[ pyfunction]
600+ #[ pyo3( pass_module) ]
601+ fn midi_connect ( module : & Bound < ' _ , PyModule > , port : usize ) -> PyResult < ( ) > {
602+ midi:: connect ( port)
603+ }
604+ #[ pyfunction]
605+ #[ pyo3( pass_module) ]
606+ fn midi_disconnect ( module : & Bound < ' _ , PyModule > ) -> PyResult < ( ) > {
607+ midi:: disconnect ( )
608+ }
609+ #[ pyfunction]
610+ #[ pyo3( pass_module) ]
611+ fn midi_refresh_ports ( module : & Bound < ' _ , PyModule > ) -> PyResult < ( ) > {
612+ midi:: refresh_ports ( )
613+ }
614+ #[ pyfunction]
615+ #[ pyo3( pass_module) ]
616+ fn midi_play_notes ( module : & Bound < ' _ , PyModule > , note : u8 , duration : u64 ) -> PyResult < ( ) > {
617+ midi:: play_notes ( note, duration)
618+ }
0 commit comments