Ralf Beck : winealsa.drv: Add missing offset of pitch bender in midi input.

Alexandre Julliard julliard at wine.codeweavers.com
Fri May 25 14:43:43 CDT 2007


Module: wine
Branch: master
Commit: 622bad5d3f4457395f13e619316b2b5c6ef24d9d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=622bad5d3f4457395f13e619316b2b5c6ef24d9d

Author: Ralf Beck <musical_snake at gmx.de>
Date:   Wed May 23 19:11:21 2007 +0200

winealsa.drv: Add missing offset of pitch bender in midi input.

---

 dlls/winealsa.drv/midi.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/dlls/winealsa.drv/midi.c b/dlls/winealsa.drv/midi.c
index fb7a6fc..84f1940 100644
--- a/dlls/winealsa.drv/midi.c
+++ b/dlls/winealsa.drv/midi.c
@@ -319,6 +319,7 @@ static DWORD WINAPI midRecThread(LPVOID arg)
 		FIXME("Unexpected event received, type = %x from %d:%d\n", ev->type, ev->source.client, ev->source.port);
 	    else {
 		DWORD dwTime, toSend = 0;
+		int value = 0;
 		/* FIXME: Should use ev->time instead for better accuracy */
 		dwTime = GetTickCount() - MidiInDev[wDevID].startTime;
 		TRACE("Event received, type = %x, device = %d\n", ev->type, wDevID);
@@ -337,7 +338,8 @@ static DWORD WINAPI midRecThread(LPVOID arg)
 		    toSend = (ev->data.control.value << 16) | (ev->data.control.param << 8) | MIDI_CMD_CONTROL | ev->data.control.channel;
 		    break;
 		case SND_SEQ_EVENT_PITCHBEND:
-		    toSend = (ev->data.control.value << 16) | (ev->data.control.param << 8) | MIDI_CMD_BENDER | ev->data.control.channel;
+		    value = ev->data.control.value + 0x2000;
+		    toSend = (((value >> 7) & 0x7f) << 16) | ((value & 0x7f) << 8) | MIDI_CMD_BENDER | ev->data.control.channel;
 		    break;
 		case SND_SEQ_EVENT_PGMCHANGE:
 		    toSend = (ev->data.control.value << 16) | (ev->data.control.param << 8) | MIDI_CMD_PGM_CHANGE | ev->data.control.channel;




More information about the wine-cvs mailing list