mirror of https://github.com/GNOME/gimp.git
simplified swallowing of SysEx messages and unwanted data bytes. Reordered
2004-06-19 Michael Natterer <mitch@gimp.org> * modules/controller_midi.c (midi_read_event): simplified swallowing of SysEx messages and unwanted data bytes. Reordered and commented stuff to be more readable.
This commit is contained in:
parent
a3c08b8d92
commit
c4558d8e1c
|
@ -1,3 +1,9 @@
|
|||
2004-06-19 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* modules/controller_midi.c (midi_read_event): simplified
|
||||
swallowing of SysEx messages and unwanted data bytes. Reordered
|
||||
and commented stuff to be more readable.
|
||||
|
||||
2004-06-19 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* modules/Makefile.am
|
||||
|
|
|
@ -409,43 +409,41 @@ midi_read_event (GIOChannel *io,
|
|||
{
|
||||
if (buf[pos] >= 0xf8) /* realtime messages */
|
||||
{
|
||||
/* nop */
|
||||
|
||||
switch (buf[pos])
|
||||
{
|
||||
case 0xf8: /* timing clock */
|
||||
case 0xf9: /* (undefined) */
|
||||
case 0xfa: /* start */
|
||||
case 0xfb: /* continue */
|
||||
case 0xfc: /* stop */
|
||||
case 0xfd: /* (undefined) */
|
||||
case 0xfe: /* active sensing */
|
||||
case 0xff: /* system reset */
|
||||
/* nop */
|
||||
#if 0
|
||||
g_print ("MIDI: realtime message (%02x)\n", buf[pos]);
|
||||
g_print ("MIDI: realtime message (%02x)\n", buf[pos]);
|
||||
#endif
|
||||
}
|
||||
else if (buf[pos] >= 0xf0) /* system messages */
|
||||
{
|
||||
if (buf[pos] == 0xf0) /* sysex start */
|
||||
{
|
||||
midi->swallow = TRUE;
|
||||
|
||||
D (g_print ("MIDI: sysex start\n"));
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
midi->swallow = FALSE; /* any status bytes ends swallowing */
|
||||
}
|
||||
else
|
||||
{
|
||||
midi->swallow = FALSE; /* any status bytes ends swallowing */
|
||||
|
||||
if (buf[pos] >= 0xf0) /* system messages */
|
||||
{
|
||||
switch (buf[pos])
|
||||
{
|
||||
case 0xf7: /* sysex end */
|
||||
D (g_print ("MIDI: sysex end\n"));
|
||||
case 0xf0: /* sysex start */
|
||||
midi->swallow = TRUE;
|
||||
|
||||
D (g_print ("MIDI: sysex start\n"));
|
||||
break;
|
||||
|
||||
case 0xf6: /* tune request */
|
||||
D (g_print ("MIDI: tune request\n"));
|
||||
break;
|
||||
case 0xf1: /* time code */
|
||||
midi->swallow = TRUE; /* type + data */
|
||||
|
||||
case 0xf5: /* undefined */
|
||||
case 0xf4: /* undefined */
|
||||
D (g_print ("MIDI: undefined system message\n"));
|
||||
break;
|
||||
|
||||
case 0xf3: /* song select */
|
||||
midi->swallow = TRUE; /* song number */
|
||||
|
||||
D (g_print ("MIDI: song select\n"));
|
||||
D (g_print ("MIDI: time code\n"));
|
||||
break;
|
||||
|
||||
case 0xf2: /* song position */
|
||||
|
@ -454,26 +452,37 @@ midi_read_event (GIOChannel *io,
|
|||
D (g_print ("MIDI: song position\n"));
|
||||
break;
|
||||
|
||||
case 0xf1: /* time code */
|
||||
midi->swallow = TRUE; /* type + data */
|
||||
case 0xf3: /* song select */
|
||||
midi->swallow = TRUE; /* song number */
|
||||
|
||||
D (g_print ("MIDI: time code\n"));
|
||||
D (g_print ("MIDI: song select\n"));
|
||||
break;
|
||||
|
||||
case 0xf4: /* (undefined) */
|
||||
case 0xf5: /* (undefined) */
|
||||
D (g_print ("MIDI: undefined system message\n"));
|
||||
break;
|
||||
|
||||
case 0xf6: /* tune request */
|
||||
D (g_print ("MIDI: tune request\n"));
|
||||
break;
|
||||
|
||||
case 0xf7: /* sysex end */
|
||||
D (g_print ("MIDI: sysex end\n"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else /* channel messages */
|
||||
{
|
||||
midi->swallow = FALSE; /* any status byte ends swallowing */
|
||||
else /* channel messages */
|
||||
{
|
||||
midi->command = buf[pos] >> 4;
|
||||
midi->channel = buf[pos] & 0xf;
|
||||
|
||||
midi->command = buf[pos] >> 4;
|
||||
midi->channel = buf[pos] & 0xf;
|
||||
|
||||
/* reset running status */
|
||||
midi->key = -1;
|
||||
midi->velocity = -1;
|
||||
midi->msb = -1;
|
||||
midi->lsb = -1;
|
||||
/* reset running status */
|
||||
midi->key = -1;
|
||||
midi->velocity = -1;
|
||||
midi->msb = -1;
|
||||
midi->lsb = -1;
|
||||
}
|
||||
}
|
||||
|
||||
pos++; /* status byte consumed */
|
||||
|
|
Loading…
Reference in New Issue