aseqsend: Support long options

Add the support for long-style options such as --verbose.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2024-07-22 19:06:12 +02:00
parent c95db638c0
commit d480eac6f2
2 changed files with 20 additions and 9 deletions

View file

@ -21,35 +21,35 @@ name. A port is specified by its number; for port 0 of a client, the
.SH OPTIONS .SH OPTIONS
.TP .TP
\-h \-h, \-\-help
Prints a list of options. Prints a list of options.
.TP .TP
\-V \-V, \-\-version
Prints the current version. Prints the current version.
.TP .TP
\-l \-l, \-\-list
Prints a list of possible output ports. Prints a list of possible output ports.
.TP .TP
\-v \-v, \-\-verbose
Prints number of bytes actually sent Prints number of bytes actually sent
.TP .TP
\-p \-p, -\-port=client:port
Target port by number or name Target port by number or name
.TP .TP
\-s \-s, \-\-file=filename
Send raw binary data from given file name Send raw binary data from given file name
.TP .TP
\-i \-i, \-\-interval=msec
Interval between SysEx messages in miliseconds Interval between SysEx messages in miliseconds
.TP .TP
\-u \-u, \-\-ump=version
Specify the MIDI version. 0 for the legacy MIDI 1.0 (default), Specify the MIDI version. 0 for the legacy MIDI 1.0 (default),
1 for UMP MIDI 1.0 protocol and 2 for UMP MIDI 2.0 protocol. 1 for UMP MIDI 1.0 protocol and 2 for UMP MIDI 2.0 protocol.

View file

@ -362,6 +362,17 @@ static int msg_byte_in_range(mbyte_t *data, mbyte_t len)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
static const struct option long_options[] = {
{"help", 0, NULL, 'h'},
{"version", 0, NULL, 'V'},
{"verbose", 0, NULL, 'v'},
{"list", 0, NULL, 'l'},
{"port", 1, NULL, 'p'},
{"file", 1, NULL, 's'},
{"interval", 1, NULL, 'i'},
{"ump", 1, NULL, 'u'},
{0}
};
char c = 0; char c = 0;
char do_send_file = 0; char do_send_file = 0;
char do_port_list = 0; char do_port_list = 0;
@ -370,7 +381,7 @@ int main(int argc, char *argv[])
int sent_data_c; int sent_data_c;
int k; int k;
while ((c = getopt(argc, argv, "hi:Vvlp:s:u:")) != -1) { while ((c = getopt_long(argc, argv, "hi:Vvlp:s:u:", long_options, NULL)) != -1) {
switch (c) { switch (c) {
case 'h': case 'h':
usage(); usage();