diff --git a/amidi/amidi.1 b/amidi/amidi.1 index d7b87be..c4f160d 100644 --- a/amidi/amidi.1 +++ b/amidi/amidi.1 @@ -1,4 +1,4 @@ -.TH AMIDI 1 "27 Oct 2003" +.TH AMIDI 1 "18 Jan 2004" .SH NAME amidi \- read from and write to ALSA RawMIDI ports @@ -81,7 +81,9 @@ this will create a Standard MIDI (.mid) file. .B amidi -will filter out any Active Sensing bytes (FEh). +will filter out any Active Sensing bytes (FEh), unless the +.I -a +option has been given. .TP .I -S, --send-hex="..." @@ -90,7 +92,9 @@ Sends the bytes specified as hexadecimal numbers to the MIDI port. .TP .I -d, --dump Prints data received from the MIDI port as hexadecimal bytes. -Active Sensing bytes (FEh) will not be shown. +Active Sensing bytes (FEh) will not be shown, unless the +.I -a +option has been given. This option is useful for debugging. @@ -103,6 +107,11 @@ If this option has not been given, you must press Ctrl+C (or kill .B amidi\fR) to stop receiving data. +.TP +.I -a, --active-sensing +Does not ignore Active Sensing bytes (FEh) when saving or printing +received MIDI commands. + .SH EXAMPLES .SS diff --git a/amidi/amidi.c b/amidi/amidi.c index a3f1035..12bafd8 100644 --- a/amidi/amidi.c +++ b/amidi/amidi.c @@ -76,7 +76,8 @@ static void usage(void) "-S, --send-hex=\"...\" send hexadecimal bytes\n" "-d, --dump print received data as hexadecimal bytes\n" "-t, --timeout=seconds exits when no data has been received\n" - " for the specified duration\n"); + " for the specified duration\n" + "-a, --active-sensing don't ignore active sensing bytes\n"); } static void version(void) @@ -371,7 +372,7 @@ static void sig_handler(int dummy) int main(int argc, char *argv[]) { - static char short_options[] = "hVlLp:s:r:S:dt:"; + static char short_options[] = "hVlLp:s:r:S:dt:a"; static struct option long_options[] = { {"help", 0, NULL, 'h'}, {"version", 0, NULL, 'V'}, @@ -383,9 +384,11 @@ int main(int argc, char *argv[]) {"send-hex", 1, NULL, 'S'}, {"dump", 0, NULL, 'd'}, {"timeout", 1, NULL, 't'}, + {"active-sensing", 0, NULL, 'a'}, { } }; int c, err, ok = 0; + int ignore_active_sensing = 1; while ((c = getopt_long(argc, argv, short_options, long_options, NULL)) != -1) { @@ -420,6 +423,9 @@ int main(int argc, char *argv[]) case 't': timeout = atoi(optarg); break; + case 'a': + ignore_active_sensing = 0; + break; default: error("Try `amidi --help' for more information."); return 1; @@ -528,7 +534,7 @@ int main(int argc, char *argv[]) } length = 0; for (i = 0; i < err; ++i) - if (buf[i] != 0xfe) /* drop any active sensing bytes */ + if (!ignore_active_sensing || buf[i] != 0xfe) buf[length++] = buf[i]; if (length == 0) continue;