From 89f3467fa14c943622b43f1063b8db5e97d0f702 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 18 Dec 2005 22:53:55 +0000 Subject: [PATCH] fixed midi interrupt handling, added logs git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15578 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/drivers/audio/echo/echo.cpp | 2 +- src/add-ons/kernel/drivers/audio/echo/midi.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/drivers/audio/echo/echo.cpp b/src/add-ons/kernel/drivers/audio/echo/echo.cpp index cce50947fc..4e39cbc088 100644 --- a/src/add-ons/kernel/drivers/audio/echo/echo.cpp +++ b/src/add-ons/kernel/drivers/audio/echo/echo.cpp @@ -409,7 +409,7 @@ int32 echo_int(void *arg) #ifdef MIDI_SUPPORT if (midiReceived) - release_sem(card->midi.midi_ready_sem); + release_sem_etc(card->midi.midi_ready_sem, 1, B_DO_NOT_RESCHEDULE); #endif LIST_FOREACH(stream, &card->streams, next) { diff --git a/src/add-ons/kernel/drivers/audio/echo/midi.cpp b/src/add-ons/kernel/drivers/audio/echo/midi.cpp index 803108935a..ebbdde2500 100644 --- a/src/add-ons/kernel/drivers/audio/echo/midi.cpp +++ b/src/add-ons/kernel/drivers/audio/echo/midi.cpp @@ -108,6 +108,8 @@ midi_control( void * data, size_t len) { + LOG(("midi_control()\n")); + return B_ERROR; } @@ -124,6 +126,8 @@ midi_read( DWORD midiData; LONGLONG timestamp; + LOG(("midi_read()\n")); + if (acquire_sem(card->midi.midi_ready_sem) != B_OK) return B_ERROR; @@ -131,6 +135,8 @@ midi_read( if (err == ECHOSTATUS_OK) { *nread = 1; *(PDWORD)ptr = midiData; + LOG(("midi_read() : 0x%lx\n", midiData)); + return B_OK; } return B_ERROR; } @@ -146,6 +152,8 @@ midi_write( echo_dev *card = (echo_dev *) cookie; ECHOSTATUS err; + LOG(("midi_write()\n")); + err = card->pEG->WriteMidi(*nwritten, (PBYTE)ptr, nwritten); return (err != ECHOSTATUS_OK) ? B_ERROR : B_OK; }