X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=futatabi%2Fflags.cpp;h=a8ae958668ab0653d83cd6239efbc810d8b1ee10;hp=fa1fe6ec5878177a56472bd449ae343985b7a097;hb=04738b0cecf5f7b6d988822c1d7595fdd52a496e;hpb=622b1e84c60f315cf2980efbf1b54cc049a7d2ce diff --git a/futatabi/flags.cpp b/futatabi/flags.cpp index fa1fe6e..a8ae958 100644 --- a/futatabi/flags.cpp +++ b/futatabi/flags.cpp @@ -44,6 +44,7 @@ void usage() fprintf(stderr, " --http-port PORT which port to listen on for output\n"); fprintf(stderr, " --tally-url URL URL to get tally color from (polled every 100 ms)\n"); fprintf(stderr, " --midi-mapping=FILE start with the given MIDI controller mapping\n"); + fprintf(stderr, " -l --source-label NUM:LABEL label source NUM as LABEL, if visible\n"); } void parse_flags(int argc, char *const argv[]) @@ -61,11 +62,12 @@ void parse_flags(int argc, char *const argv[]) { "cue-in-point-padding", required_argument, 0, OPTION_CUE_IN_POINT_PADDING }, { "cue-out-point-padding", required_argument, 0, OPTION_CUE_OUT_POINT_PADDING }, { "midi-mapping", required_argument, 0, OPTION_MIDI_MAPPING }, + { "source-label", required_argument, 0, 'l' }, { 0, 0, 0, 0 } }; for (;;) { int option_index = 0; - int c = getopt_long(argc, argv, "w:h:r:q:d:", long_options, &option_index); + int c = getopt_long(argc, argv, "w:h:r:q:d:l:", long_options, &option_index); if (c == -1) { break; @@ -99,6 +101,18 @@ void parse_flags(int argc, char *const argv[]) case 'd': global_flags.working_directory = optarg; break; + case 'l': { + int prefix_len; + unsigned channel_idx; + if (sscanf(optarg, "%u:%n", &channel_idx, &prefix_len) == 1) { + const char *label = optarg + prefix_len; + global_flags.source_labels[channel_idx] = label; + } else { + fprintf(stderr, "Invalid source label format (must be on the form NUM:LABEL)\n"); + exit(1); + } + break; + } case OPTION_HTTP_PORT: global_flags.http_port = atoi(optarg); break;