@@ -12,18 +12,20 @@ mod glfw;
1212mod gltf;
1313mod graphics;
1414pub ( crate ) mod material;
15+ mod midi;
1516
1617use graphics:: { Geometry , Graphics , Image , Light , Topology , get_graphics, get_graphics_mut} ;
1718use material:: Material ;
19+
1820use pyo3:: {
1921 exceptions:: PyRuntimeError ,
2022 prelude:: * ,
2123 types:: { PyDict , PyTuple } ,
2224} ;
2325use std:: ffi:: { CStr , CString } ;
2426
25- use gltf:: Gltf ;
2627use bevy:: log:: warn;
28+ use gltf:: Gltf ;
2729use std:: env;
2830
2931/// Get a shared ref to the Graphics context, or return Ok(()) if not yet initialized.
@@ -78,6 +80,10 @@ fn processing(m: &Bound<'_, PyModule>) -> PyResult<()> {
7880 m. add_function ( wrap_pyfunction ! ( metallic, m) ?) ?;
7981 m. add_function ( wrap_pyfunction ! ( emissive, m) ?) ?;
8082 m. add_function ( wrap_pyfunction ! ( unlit, m) ?) ?;
83+ m. add_function ( wrap_pyfunction ! ( midi_connect, m) ?) ?;
84+ m. add_function ( wrap_pyfunction ! ( midi_disconnect, m) ?) ?;
85+ m. add_function ( wrap_pyfunction ! ( midi_refresh_ports, m) ?) ?;
86+ m. add_function ( wrap_pyfunction ! ( midi_play_notes, m) ?) ?;
8187
8288 Ok ( ( ) )
8389}
@@ -544,3 +550,24 @@ fn emissive(module: &Bound<'_, PyModule>, args: &Bound<'_, PyTuple>) -> PyResult
544550fn unlit ( module : & Bound < ' _ , PyModule > ) -> PyResult < ( ) > {
545551 graphics ! ( module) . unlit ( )
546552}
553+
554+ #[ pyfunction]
555+ #[ pyo3( pass_module) ]
556+ fn midi_connect ( module : & Bound < ' _ , PyModule > , port : usize ) -> PyResult < ( ) > {
557+ midi:: connect ( port)
558+ }
559+ #[ pyfunction]
560+ #[ pyo3( pass_module) ]
561+ fn midi_disconnect ( module : & Bound < ' _ , PyModule > ) -> PyResult < ( ) > {
562+ midi:: disconnect ( )
563+ }
564+ #[ pyfunction]
565+ #[ pyo3( pass_module) ]
566+ fn midi_refresh_ports ( module : & Bound < ' _ , PyModule > ) -> PyResult < ( ) > {
567+ midi:: refresh_ports ( )
568+ }
569+ #[ pyfunction]
570+ #[ pyo3( pass_module) ]
571+ fn midi_play_notes ( module : & Bound < ' _ , PyModule > , note : u8 , duration : u64 ) -> PyResult < ( ) > {
572+ midi:: play_notes ( note, duration)
573+ }
0 commit comments