Differenze tra le versioni di "Alsa e Gambas - Dai Messaggi Midi standard all'Evento Midi di ALSA"

Da Gambas-it.org - Wikipedia.
Riga 3: Riga 3:
 
Tale ''Struttura'' occupa un quantità di memoria pari a 28 byte.
 
Tale ''Struttura'' occupa un quantità di memoria pari a 28 byte.
  
Di essa i primi sette membri contengono dati <SPAN Style="text-decoration:underline">comuni a tutti</span> gli ''Eventi Midi'' di Alsa, i restanti sono riservati a <SPAN Style="text-decoration:underline">specifici</span> ''Eventi Midi''.  
+
Di essa i primi sette membri contengono dati <SPAN Style="text-decoration:underline">comuni a tutti</span> gli ''Eventi Midi'' di Alsa, i restanti sono riservati a <SPAN Style="text-decoration:underline">specifici</span> ''Eventi Midi''.
 +
 
 +
===Confronto fra la rappresentazione in C  e quella in Gambas della Struttura'' di ALSA "seq_event_t"===
 +
Traduciamo la Struttura'' di ALSA "seq_event_t", che è scritta in linguaggio C, nella corrispondente ''Struttura'' in linguaggio Gambas e le confrontiamo:
 +
'''struct snd_seq_event_t {                          Public Struct seq_event_t'''
 +
 +
snd_seq_event_type_t type                          <FONT Color=red>type</font> As Byte        byte di indice 0 \
 +
unsigned char flags                                <FONT Color=red>flag</font> As Byte                          \
 +
unsigned char tag                                  <FONT Color=red>tag</font> As Byte                            \
 +
unsigned char queue                                <FONT Color=red>queue</font> As Byte                            \  dati comuni
 +
snd_seq_timestamp_t time                                                                    \ 
 +
    ↳ snd_seq_tick_time_t tick                      <FONT Color=red>tick_time</font> As Integer                      \ a tutti
 +
    ↳ struct snd_seq_real_time time                <FONT Color=red>real_time</font> As Integer                      /
 +
snd_seq_addr_t source                                                                        /  i messaggi Midi   
 +
    ↳ unsigned char client                          <FONT Color=red>source_id</font> As Byte                        /
 +
    ↳ unsigned char port                            <FONT Color=red>source_porta</font> As Byte                    /
 +
snd_seq_addr_t dest                                                                      /
 +
    ↳ unsigned char client                          <FONT Color=red>dest_id</font> As Byte                      /
 +
    ↳ unsigned char port                            <FONT Color=red>dest_porta</font> As Byte  byte di indice 15/
 +
snd_seq_ev_note_t note                     
 +
    ↳ unsigned char channel                        <FONT Color=green>channel</font> As Byte        byte di indice 16 \
 +
    ↳ unsigned char note                            <FONT Color=green>note</font> As Byte            byte di indice 17  \  dati appartenenti
 +
    ↳ unsigned char velocity                        <FONT Color=green>velocity</font> As Byte        byte di indice 18  \ agli specifici
 +
    ↳ unsigned char off_velocity                    <FONT Color=green>off_velocity</font> As Byte    byte di indice 19  / messaggi Midi
 +
unsigned int param                                <FONT Color=orange>param</font> As Integer        byte di indice 20  /
 +
signed int value                                  <FONT Color=orange>value</font> As Integer        byte di indice 24 /
 +
 +
'''}                                                  End Struct'''
  
  
  
 
<FONT Color=red size= 4><b>PAGINA IN COSTRUZIONE !</b></font>
 
<FONT Color=red size= 4><b>PAGINA IN COSTRUZIONE !</b></font>

Versione delle 16:23, 17 gen 2022

ALSA non gestisce i Messaggi Midi dai dati grezzi così come giungono, bensì li organizza preliminarmente in complessi propri Eventi Midi che si costruiscono su un'area di memoria allocata rappresentata dalla Struttura di ALSA "seq_event_t".

Tale Struttura occupa un quantità di memoria pari a 28 byte.

Di essa i primi sette membri contengono dati comuni a tutti gli Eventi Midi di Alsa, i restanti sono riservati a specifici Eventi Midi.

Confronto fra la rappresentazione in C e quella in Gambas della Struttura di ALSA "seq_event_t"

Traduciamo la Struttura di ALSA "seq_event_t", che è scritta in linguaggio C, nella corrispondente Struttura in linguaggio Gambas e le confrontiamo:

struct snd_seq_event_t {                           Public Struct seq_event_t

snd_seq_event_type_t type                          type As Byte         byte di indice 0 \
unsigned char flags                                flag As Byte                           \
unsigned char tag                                  tag As Byte                             \
unsigned char queue                                queue As Byte                            \   dati comuni
snd_seq_timestamp_t time                                                                     \  
   ↳ snd_seq_tick_time_t tick                      tick_time As Integer                       \ a tutti
   ↳ struct snd_seq_real_time time                 real_time As Integer                       / 
snd_seq_addr_t source                                                                        /  i messaggi Midi    
   ↳ unsigned char client                          source_id As Byte                        /
   ↳ unsigned char port                            source_porta As Byte                    /
snd_seq_addr_t dest                                                                       /
   ↳ unsigned char client                          dest_id As Byte                       /
   ↳ unsigned char port                            dest_porta As Byte  byte di indice 15/
snd_seq_ev_note_t note                      
   ↳ unsigned char channel                         channel As Byte         byte di indice 16 \
   ↳ unsigned char note                            note As Byte            byte di indice 17  \  dati appartenenti
   ↳ unsigned char velocity                        velocity As Byte        byte di indice 18   \ agli specifici
   ↳ unsigned char off_velocity                    off_velocity As Byte    byte di indice 19   / messaggi Midi
unsigned int param                                 param As Integer        byte di indice 20  /
signed int value                                   value As Integer        byte di indice 24 /

}                                                  End Struct


PAGINA IN COSTRUZIONE !