Differenze tra le versioni di "Conoscere con le funzioni esterne di PortMidi le porte Midi disponibili nel sistema"
Da Gambas-it.org - Wikipedia.
(Creata pagina con 'La libreria '''PortMidi''' è una libreria per la gestione in tempo reale dei dati Midi in entrata ed in uscita. Essa fa parte di un assortimento di API e librerie create per ...') |
(Nessuna differenza)
|
Versione delle 13:33, 23 giu 2014
La libreria PortMidi è una libreria per la gestione in tempo reale dei dati Midi in entrata ed in uscita. Essa fa parte di un assortimento di API e librerie create per la musica e per altri media.
E' possibile con alcune funzioni esterne della libreria PortMidi conoscere i dispositivi e le porte presenti ed attivi in quel momento. Per poter ottenere ciò, è necessario aver installato nel proprio sistema la libreria condivisa: libportmidi.so.0.0.0
Di seguito viene mostrato un esempio per conoscere con le funzioni esterne della libreria PortMidi le porte Midi disponibili nel sistema:
Public Struct PmDeviceInfo structVersion As Integer interf As Pointer name As Pointer inputI As Integer outputI As Integer opened As Integer End Struct Library "libportmidi:0.0.0" ' int Pm_CountDevices (void) ' Get devices count, ids range from 0 to Pm_CountDevices()-1. Private Extern Pm_CountDevices() As Integer ' const PmDeviceInfo* Pm_GetDeviceInfo( PmDeviceID id ) ' Returns a pointer to a PmDeviceInfo structure referring to the device specified by id. Private Extern Pm_GetDeviceInfo(id As Integer) As PmDeviceInfo ' PmDeviceID Pm_GetDefaultOutputDeviceID( void ) ' Return the default device ID or pmNoDevice if there are no devices. Private Extern Pm_GetDefaultOutputDeviceID() As Integer ' PmDeviceID Pm_GetDefaultInputDeviceID( void ) ' Return the default device ID or pmNoDevice if there are no devices. Private Extern Pm_GetDefaultInputDeviceID() As Integer Public Sub Main() Dim num_disp, i, d As Integer Dim info As PmDeviceInfo Dim predef As String num_disp = Pm_CountDevices() If num_disp = 0 Then Print "Nessuna porta Midi presente MIDI !" Return Else Print "\nNum. "; num_disp; " Porte MIDI rilevate:\n" Endif For i = 0 To num_disp - 1 info = Pm_GetDeviceInfo(i) If IsNull(info) Then Error.Raise("Errore alla funzione 'Pm_GetDeviceInfo()' !") If info.outputI Then d = Pm_GetDefaultOutputDeviceID() If d Then predef = "(default)" Print d; ": "; String@(info.interf); " "; String@(info.name); " "; predef predef = Null Endif info = Pm_GetDeviceInfo(i) If IsNull(info) Then Error.Raise("Errore alla funzione 'Pm_GetDeviceInfo()' !") If info.inputI Then d = Pm_GetDefaultInputDeviceID() If d Then predef = "(default)" Print d; ": "; String@(info.interf); " "; String@(info.name); " "; predef predef = Null Endif Next End