Condividi tramite


Struttura MIDIEVENT (mmeapi.h)

La struttura MIDIEVENT descrive un evento MIDI in un buffer di flusso.

Sintassi

typedef struct midievent_tag {
  DWORD dwDeltaTime;
  DWORD dwStreamID;
  DWORD dwEvent;
  DWORD dwParms[1];
} MIDIEVENT;

Members

dwDeltaTime

Tempo, in tick MIDI, tra l'evento precedente e l'evento corrente. La lunghezza di un segno di graduazione è definita dal formato temporale e possibilmente dal tempo associato al flusso. La definizione è identica alla specifica di un tick in un file MIDI standard.

dwStreamID

Riservati; deve essere zero.

dwEvent

Codice evento e parametri di evento o lunghezza. Per analizzare queste informazioni, utilizzare le macro MEVT_EVENTTYPE e MEVT_EVENTPARM . Vedere la sezione Osservazioni.

dwParms[1]

Se dwEvent specifica MEVT_F_LONG e la lunghezza del buffer, questo membro contiene parametri per l'evento. Questi dati dei parametri devono essere riempiti con zeri in modo che vengano archiviati un numero integrale di valori DWORD . Ad esempio, se i dati dell'evento hanno una lunghezza di cinque byte, tre byte di pad devono seguire i dati per un totale di otto byte. In questo caso, i 24 bit bassi di dwEvent conterranno il valore 5.

Se dwEvent specifica MEVT_F_SHORT, non usare questo membro nel buffer del flusso.

Commenti

Il byte elevato di dwEvent contiene flag e codice evento. È necessario specificare il flag MEVT_F_LONG o MEVT_F_SHORT. Il flag MEVT_F_CALLBACK è facoltativo. Nella tabella seguente vengono descritti questi flag.

Contrassegno Significato
MEVT_F_CALLBACK Il sistema genera un callback quando l'evento sta per essere eseguito.
MEVT_F_LONG L'evento è un evento lungo. I 24 bit bassi di dwEvent contengono la lunghezza dei parametri dell'evento inclusi in dwParms.
MEVT_F_SHORT L'evento è un evento breve. I parametri dell'evento sono contenuti nei 24 bit bassi di dwEvent.
 

Il resto del byte elevato contiene uno dei codici evento seguenti:

Codice evento Significato
MEVT_COMMENT Evento lungo. I dati dell'evento verranno ignorati. Questo evento è progettato per archiviare informazioni sui commenti sul flusso che potrebbero essere utili per la creazione di programmi o sequencer se i dati del flusso dovevano essere archiviati in un file in formato flusso. In un buffer di questi dati, il byte zero identifica la classe di commento e i byte successivi contengono i dati del commento.
MEVT_LONGMSG Evento lungo. I dati dell'evento vengono trasmessi verbatim. Si presuppone che i dati dell'evento siano dati esclusivi del sistema; ovvero, lo stato di esecuzione verrà cancellato quando l'evento viene eseguito e lo stato di esecuzione da qualsiasi evento precedente non verrà applicato ad alcun evento del canale nei dati dell'evento. Non è consigliabile usare questo evento per inviare un gruppo di messaggi di canale contemporaneamente; È consigliabile usare invece un set di eventi MEVT_SHORTMSG con tempi delta zero.
MEVT_NOP Evento breve. Questo evento è un segnaposto; non fa nulla. I 24 bit bassi vengono ignorati. Questo evento genererà comunque un callback se MEVT_F_CALLBACK è impostato in dwEvent.
MEVT_SHORTMSG Evento breve. I dati nei 24 bit bassi di dwEvent sono un breve messaggio MIDI. Per una descrizione del modo in cui un breve messaggio viene compresso in un valore DWORD, vedere la funzione midiOutShortMsg.
MEVT_TEMPO Evento breve. I dati nei 24 bit bassi di dwEvent contengono il nuovo tempo per gli eventi seguenti. Il tempo viene specificato nello stesso formato per il meta-evento di modifica tempo in un file MIDI, ovvero in microsecondi per ogni trimestre nota. Questo evento non avrà alcun effetto se il formato di ora specificato per il flusso è L'ora SMPTE.
MEVT_VERSION Evento lungo. I dati dell'evento devono contenere una struttura MIDISTRMBUFFVER.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione mmeapi.h (include Windows.h)

Vedi anche

MEVT_EVENTPARM

MEVT_EVENTTYPE

Strutture MIDI

MIDISTRMBUFFVER

Musical Instrument Digital Interface (MIDI)

midiOutShortMsg