Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Urządzenie wejściowe MIDI można podłączyć bezpośrednio do urządzenia wyjściowego MIDI, aby gdy urządzenie wejściowe odbiera komunikat MIM_DATA, system wysyłał komunikat z tymi samymi danymi zdarzenia MIDI do sterownika urządzenia wyjściowego. Aby podłączyć urządzenie wyjściowe MIDI do urządzenia wejściowego MIDI, użyj funkcji midiConnect.
Aby uzyskać najlepszą możliwą wydajność przy użyciu wielu danych wyjściowych, aplikacja może wybrać, aby dostarczyć specjalną formę sterownika wyjściowego MIDI, nazywanym sterownikiem thru. Mimo że system umożliwia podłączenie tylko jednego urządzenia wyjściowego MIDI do urządzenia wejściowego MIDI, wiele urządzeń wyjściowych MIDI można podłączyć do sterownika thru. Aplikacja w takim systemie może podłączyć urządzenie wejściowe MIDI do tego urządzenia thru i podłączyć urządzenie MIDI thru do takiej liczby urządzeń wyjściowych MIDI, jaka jest potrzebna. Aby uzyskać więcej informacji na temat sterowników thru, zobacz dokumentację sterowników urządzeń z systemem Windows.
Zarządzanie nagrywaniem MIDI przy użyciu komunikatów
Następujące wiadomości można wysłać do okna lub procedury wywołania zwrotnego wątku do zarządzania nagraniem MIDI.
| Wartość | Znaczenie |
|---|---|
| MM_MIM_CLOSE | Wysyłane po zamknięciu urządzenia wejściowego MIDI za pomocą funkcji midiInClose. |
| MM_MIM_DATA | Wysłane po odebraniu pełnej wiadomości MIDI. (Ten komunikat jest używany dla wszystkich wiadomości MIDI z wyjątkiem wiadomości system-exclusywnych). |
| MM_MIM_ERROR | Wysłane po odebraniu nieprawidłowej wiadomości MIDI. (Ten komunikat jest używany dla wszystkich komunikatów MIDI z wyjątkiem wyłącznych komunikatów systemowych). |
| MM_MIM_LONGDATA | Wysłane, gdy odebrany zostanie kompletny komunikat o wyłączności systemu MIDI lub gdy bufor zostanie zapełniony danymi o wyłączności systemu. |
| MM_MIM_LONGERROR | Wysłane po odebraniu nieprawidłowej wiadomości ekskluzywnej systemowej MIDI. |
| MM_MIM_MOREDATA | Wysyłane, gdy aplikacja nie przetwarza MIM_DATA komunikatów wystarczająco szybko, aby nadążyć za sterownikiem urządzenia wejściowego. |
| MM_MIM_OPEN | Wysyłane po otwarciu urządzenia wejściowego MIDI za pomocą funkcji midiInOpen. |
Parametr wParam i parametr lParam są skojarzone z każdym z tych komunikatów. Parametr wParam zawsze określa uchwyt otwartego urządzenia MIDI. Parametr lParam jest nieużywany dla komunikatów MM_MIM_CLOSE i MM_MIM_OPEN.
W przypadku komunikatu MM_MIM_LONGDATAlpMidiHdr określa adres struktury MIDIHDR, która identyfikuje bufor dla komunikatów wyłącznego użycia systemowego. Bufor może nie być całkowicie wypełniony, ponieważ rozmiar komunikatów systemowo-wyłącznych zwykle nie jest znany przed ich zarejestrowaniem, oraz ponieważ trzeba przydzielić bufory, których całkowity rozmiar może pomieścić największy oczekiwany komunikat. Aby określić ilość prawidłowych danych znajdujących się w buforze, użyj składowej dwBytesRecorded struktury MIDIHDR.
Używanie funkcji wywołania zwrotnego do zarządzania nagraniem MIDI
Możesz zdefiniować własną funkcję wywołania zwrotnego, aby zarządzać nagrywaniem dla urządzeń wejściowych MIDI. Funkcja wywołania zwrotnego jest udokumentowana jako MidiInProc.
Następujące komunikaty można wysłać do wMsg parametru MidiInProc funkcji wywołania zwrotnego.
| Wartość | Znaczenie |
|---|---|
| MIM_CLOSE | Wysyłane po zamknięciu urządzenia za pomocą funkcji midiInClose. |
| MIM_DATA | Wysyłane po odebraniu pełnej wiadomości MIDI (ta wiadomość jest używana dla wszystkich komunikatów MIDI z wyjątkiem wiadomości systemowych z wyłącznym przesyłem). |
| MIM_ERROR | Wiadomość wysłana po otrzymaniu nieprawidłowej wiadomości MIDI (używana dla wszystkich nieprawidłowych komunikatów MIDI z wyjątkiem komunikatów systemowych wyłącznych). |
| MIM_LONGDATA | Wysłane, gdy zostanie odebrany pełny komunikat z wyłącznym systemem MIDI lub gdy bufor został wypełniony danymi wyłącznymi dla systemu. |
| MIM_LONGERROR | Wysyłane po odebraniu nieprawidłowej wiadomości systemowej typu exclusive MIDI. |
| MIM_MOREDATA | Wysyłane, gdy aplikacja nie przetwarza MIM_DATA komunikatów wystarczająco szybko, aby nadążyć za sterownikiem urządzenia wejściowego. |
| MIM_OPEN | Wysyłane po otwarciu urządzenia wejściowego MIDI za pomocą funkcji midiInOpen. |
Te komunikaty są podobne do tych wysyłanych do funkcji procedury okna, ale parametry są różne. Uchwyt otwartego urządzenia MIDI jest przekazywany jako parametr do funkcji wywołania zwrotnego, wraz z podwójnym słowem danych wystąpienia przekazanych przy użyciu midiInOpen.
W przypadku komunikatu MIM_LONGDATAlpMidiHdr określa adres MIDIHDR struktury identyfikującej bufor komunikatów wykluczających system. Bufor może nie zostać całkowicie wypełniony. Aby określić liczbę prawidłowych danych znajdujących się w buforze, użyj członka dwBytesRecorded struktury MIDIHDR.
Po tym, jak sterownik urządzenia zakończy pracę z blokiem danych, można go wyczyścić i zwolnić.
Tematy pokrewne