mirror of
https://github.com/alsa-project/alsa-utils
synced 2024-11-09 18:05:42 +01:00
aseqdump: increase verbosity
Include the names of parameters when printing events instead of just showing the raw values.
This commit is contained in:
parent
8f017f1618
commit
8497258145
1 changed files with 37 additions and 33 deletions
|
@ -133,71 +133,75 @@ static void dump_event(const snd_seq_event_t *ev)
|
|||
printf("%3d:%-3d ", ev->source.client, ev->source.port);
|
||||
switch (ev->type) {
|
||||
case SND_SEQ_EVENT_NOTEON:
|
||||
printf("Note on %2d %3d %3d\n",
|
||||
ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
|
||||
if (ev->data.note.velocity)
|
||||
printf("Note on %2d, note %d, velocity %d\n",
|
||||
ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
|
||||
else
|
||||
printf("Note off %2d, note %d\n",
|
||||
ev->data.note.channel, ev->data.note.note);
|
||||
break;
|
||||
case SND_SEQ_EVENT_NOTEOFF:
|
||||
printf("Note off %2d %3d %3d\n",
|
||||
printf("Note off %2d, note %d, velocity %d\n",
|
||||
ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
|
||||
break;
|
||||
case SND_SEQ_EVENT_KEYPRESS:
|
||||
printf("Polyphonic aftertouch %2d %3d %3d\n",
|
||||
printf("Polyphonic aftertouch %2d, note %d, value %d\n",
|
||||
ev->data.note.channel, ev->data.note.note, ev->data.note.velocity);
|
||||
break;
|
||||
case SND_SEQ_EVENT_CONTROLLER:
|
||||
printf("Control change %2d %3d %3d\n",
|
||||
printf("Control change %2d, controller %d, value %d\n",
|
||||
ev->data.control.channel, ev->data.control.param, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PGMCHANGE:
|
||||
printf("Program change %2d %3d\n",
|
||||
printf("Program change %2d, program %d\n",
|
||||
ev->data.control.channel, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_CHANPRESS:
|
||||
printf("Channel aftertouch %2d %3d\n",
|
||||
printf("Channel aftertouch %2d, value %d\n",
|
||||
ev->data.control.channel, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PITCHBEND:
|
||||
printf("Pitch bend %2d %6d\n",
|
||||
printf("Pitch bend %2d, value %d\n",
|
||||
ev->data.control.channel, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_CONTROL14:
|
||||
printf("Control change %2d %3d %5d\n",
|
||||
printf("Control change %2d, controller %d, value %5d\n",
|
||||
ev->data.control.channel, ev->data.control.param, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_NONREGPARAM:
|
||||
printf("Non-reg. parameter %2d %5d %5d\n",
|
||||
printf("Non-reg. parameter %2d, parameter %d, value %d\n",
|
||||
ev->data.control.channel, ev->data.control.param, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_REGPARAM:
|
||||
printf("Reg. parameter %2d %5d %5d\n",
|
||||
printf("Reg. parameter %2d, parameter %d, value %d\n",
|
||||
ev->data.control.channel, ev->data.control.param, ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_SONGPOS:
|
||||
printf("Song position pointer %5d\n",
|
||||
printf("Song position pointer value %d\n",
|
||||
ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_SONGSEL:
|
||||
printf("Song select %3d\n",
|
||||
printf("Song select value %d\n",
|
||||
ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_QFRAME:
|
||||
printf("MTC quarter frame %02xh\n",
|
||||
printf("MTC quarter frame %02xh\n",
|
||||
ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_TIMESIGN:
|
||||
// XXX how is this encoded?
|
||||
printf("SMF time signature (%#08x)\n",
|
||||
printf("SMF time signature (%#010x)\n",
|
||||
ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_KEYSIGN:
|
||||
// XXX how is this encoded?
|
||||
printf("SMF key signature (%#08x)\n",
|
||||
printf("SMF key signature (%#010x)\n",
|
||||
ev->data.control.value);
|
||||
break;
|
||||
case SND_SEQ_EVENT_START:
|
||||
if (ev->source.client == SND_SEQ_CLIENT_SYSTEM &&
|
||||
ev->source.port == SND_SEQ_PORT_SYSTEM_TIMER)
|
||||
printf("Queue start %d\n",
|
||||
printf("Queue start queue %d\n",
|
||||
ev->data.queue.queue);
|
||||
else
|
||||
printf("Start\n");
|
||||
|
@ -205,7 +209,7 @@ static void dump_event(const snd_seq_event_t *ev)
|
|||
case SND_SEQ_EVENT_CONTINUE:
|
||||
if (ev->source.client == SND_SEQ_CLIENT_SYSTEM &&
|
||||
ev->source.port == SND_SEQ_PORT_SYSTEM_TIMER)
|
||||
printf("Queue continue %d\n",
|
||||
printf("Queue continue queue %d\n",
|
||||
ev->data.queue.queue);
|
||||
else
|
||||
printf("Continue\n");
|
||||
|
@ -213,19 +217,19 @@ static void dump_event(const snd_seq_event_t *ev)
|
|||
case SND_SEQ_EVENT_STOP:
|
||||
if (ev->source.client == SND_SEQ_CLIENT_SYSTEM &&
|
||||
ev->source.port == SND_SEQ_PORT_SYSTEM_TIMER)
|
||||
printf("Queue stop %d\n",
|
||||
printf("Queue stop queue %d\n",
|
||||
ev->data.queue.queue);
|
||||
else
|
||||
printf("Stop\n");
|
||||
break;
|
||||
case SND_SEQ_EVENT_SETPOS_TICK:
|
||||
printf("Set tick queue pos. %d\n", ev->data.queue.queue);
|
||||
printf("Set tick queue pos. queue %d\n", ev->data.queue.queue);
|
||||
break;
|
||||
case SND_SEQ_EVENT_SETPOS_TIME:
|
||||
printf("Set rt queue pos. %d\n", ev->data.queue.queue);
|
||||
printf("Set rt queue pos. queue %d\n", ev->data.queue.queue);
|
||||
break;
|
||||
case SND_SEQ_EVENT_TEMPO:
|
||||
printf("Set queue tempo %d\n", ev->data.queue.queue);
|
||||
printf("Set queue tempo queue %d\n", ev->data.queue.queue);
|
||||
break;
|
||||
case SND_SEQ_EVENT_CLOCK:
|
||||
printf("Clock\n");
|
||||
|
@ -234,7 +238,7 @@ static void dump_event(const snd_seq_event_t *ev)
|
|||
printf("Tick\n");
|
||||
break;
|
||||
case SND_SEQ_EVENT_QUEUE_SKEW:
|
||||
printf("Queue timer skew %d\n", ev->data.queue.queue);
|
||||
printf("Queue timer skew queue %d\n", ev->data.queue.queue);
|
||||
break;
|
||||
case SND_SEQ_EVENT_TUNE_REQUEST:
|
||||
printf("Tune request\n");
|
||||
|
@ -246,43 +250,43 @@ static void dump_event(const snd_seq_event_t *ev)
|
|||
printf("Active Sensing\n");
|
||||
break;
|
||||
case SND_SEQ_EVENT_CLIENT_START:
|
||||
printf("Client start %d\n",
|
||||
printf("Client start client %d\n",
|
||||
ev->data.addr.client);
|
||||
break;
|
||||
case SND_SEQ_EVENT_CLIENT_EXIT:
|
||||
printf("Client exit %d\n",
|
||||
printf("Client exit client %d\n",
|
||||
ev->data.addr.client);
|
||||
break;
|
||||
case SND_SEQ_EVENT_CLIENT_CHANGE:
|
||||
printf("Client changed %d\n",
|
||||
printf("Client changed client %d\n",
|
||||
ev->data.addr.client);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PORT_START:
|
||||
printf("Port start %d:%d\n",
|
||||
printf("Port start %d:%d\n",
|
||||
ev->data.addr.client, ev->data.addr.port);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PORT_EXIT:
|
||||
printf("Port exit %d:%d\n",
|
||||
printf("Port exit %d:%d\n",
|
||||
ev->data.addr.client, ev->data.addr.port);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PORT_CHANGE:
|
||||
printf("Port changed %d:%d\n",
|
||||
printf("Port changed %d:%d\n",
|
||||
ev->data.addr.client, ev->data.addr.port);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PORT_SUBSCRIBED:
|
||||
printf("Port subscribed %d:%d -> %d:%d\n",
|
||||
printf("Port subscribed %d:%d -> %d:%d\n",
|
||||
ev->data.connect.sender.client, ev->data.connect.sender.port,
|
||||
ev->data.connect.dest.client, ev->data.connect.dest.port);
|
||||
break;
|
||||
case SND_SEQ_EVENT_PORT_UNSUBSCRIBED:
|
||||
printf("Port unsubscribed %d:%d -> %d:%d\n",
|
||||
printf("Port unsubscribed %d:%d -> %d:%d\n",
|
||||
ev->data.connect.sender.client, ev->data.connect.sender.port,
|
||||
ev->data.connect.dest.client, ev->data.connect.dest.port);
|
||||
break;
|
||||
case SND_SEQ_EVENT_SYSEX:
|
||||
{
|
||||
unsigned int i;
|
||||
printf("System exclusive ");
|
||||
printf("System exclusive ");
|
||||
for (i = 0; i < ev->data.ext.len; ++i)
|
||||
printf(" %02X", ((unsigned char*)ev->data.ext.ptr)[i]);
|
||||
printf("\n");
|
||||
|
@ -405,7 +409,7 @@ int main(int argc, char *argv[])
|
|||
printf("Waiting for data at port %d:0.",
|
||||
snd_seq_client_id(seq));
|
||||
printf(" Press Ctrl+C to end.\n");
|
||||
printf("Source_ Event_________________ Ch _Data__\n");
|
||||
printf("Source Event Ch Data\n");
|
||||
|
||||
signal(SIGINT, sighandler);
|
||||
signal(SIGTERM, sighandler);
|
||||
|
|
Loading…
Reference in a new issue