diff options
author | Dave Reisner <dreisner@archlinux.org> | 2012-08-13 15:42:35 -0400 |
---|---|---|
committer | Dave Reisner <dreisner@archlinux.org> | 2012-08-13 15:42:35 -0400 |
commit | bff1672518171d5baf80c2ce041a1a48ba6f335f (patch) | |
tree | f276a7d85cd5002131d60304e1f68c3870edda98 | |
parent | 2e65ddf5ff30056a071235b180c2845b20e92007 (diff) | |
parent | ffdf3ab3e374aa1bc7acfb6e5dd35bee71af5a13 (diff) | |
download | mirror-ponymix-bff1672518171d5baf80c2ce041a1a48ba6f335f.tar.gz mirror-ponymix-bff1672518171d5baf80c2ce041a1a48ba6f335f.tar.bz2 mirror-ponymix-bff1672518171d5baf80c2ce041a1a48ba6f335f.zip |
Merge remote-tracking branch 'vodik/cleanup'
* vodik/cleanup:
deduplicate some error handling
make move take all its arguments explictly
refactor main with a switch
make kill take an explicit ID
-rw-r--r-- | pulsemix.c | 88 |
1 files changed, 49 insertions, 39 deletions
@@ -635,11 +635,11 @@ static void __attribute__((__noreturn__)) usage(FILE *out) fputs("\nDevice Commands:\n", out); fputs(" defaults list default devices\n", out); - fputs(" set-default NAME set default device\n", out); + fputs(" set-default DEVICE set default device\n", out); fputs("\nApplication Commands:\n", out); - fputs(" move NAME move application stream to device\n", out); - fputs(" kill kill an application's stream\n", out); + fputs(" move ID DEVICE move application stream to device\n", out); + fputs(" kill ID kill an application's stream\n", out); exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS); } @@ -778,10 +778,11 @@ int main(int argc, char *argv[]) errx(EXIT_FAILURE, "unknown action: %s", argv[optind]); optind++; - if (verb == ACTION_SETVOL || - verb == ACTION_SETBAL || - verb == ACTION_INCREASE || - verb == ACTION_DECREASE) + switch (verb) { + case ACTION_SETVOL: + case ACTION_SETBAL: + case ACTION_INCREASE: + case ACTION_DECREASE: if (optind == argc) errx(EXIT_FAILURE, "missing value for action '%s'", argv[optind - 1]); else { @@ -789,58 +790,67 @@ int main(int argc, char *argv[]) if (xstrtol(argv[optind], &value) < 0) errx(EXIT_FAILURE, "invalid number: %s", argv[optind]); } - else if (verb == ACTION_SETDEFAULT) { + break; + case ACTION_SETDEFAULT: + case ACTION_KILL: if (optind == argc) - errx(EXIT_FAILURE, "missing value for action '%s'", argv[optind - 1]); + errx(EXIT_FAILURE, "missing arguments for action '%s'", argv[optind - 1]); else id = argv[optind]; - } else if (verb == ACTION_MOVE) { - if (optind == argc) - errx(EXIT_FAILURE, "missing value for action '%s'", argv[optind - 1]); - else + break; + case ACTION_MOVE: + if (optind > argc - 2) + errx(EXIT_FAILURE, "missing arguments for action '%s'", argv[optind - 1]); + else { + id = argv[optind++]; arg = argv[optind]; + } + break; + default: + break; } /* initialize connection */ if (pulse_init(&pulse) != 0) return 1; - if (verb == ACTION_DEFAULTS) { + switch (verb) { + case ACTION_DEFAULTS: get_default_sink(&pulse); get_default_source(&pulse); print_all(&pulse); - } else if (verb == ACTION_LIST) { + goto done; + case ACTION_LIST: populate_sinks(&pulse, mode); populate_sources(&pulse, mode); print_all(&pulse); - } else { - /* determine sink */ - if (id && fn_get_by_name) { - if (fn_get_by_name(&pulse, id, mode) != 0) - goto done; - } else if (!mode && verb != ACTION_SETDEFAULT && fn_get_default) { - if (fn_get_default(&pulse) != 0) - goto done; - } - - if (pulse.head == NULL) { - if (mode && !id) { - warnx("%s id not set, no default operations", pp_name); - rc = 1; - goto done; - } else { - warnx("%s not found: %s", pp_name, id ? id : "default"); - rc = 1; - goto done; - } - } + goto done; + default: + break; + } - if (arg && fn_get_by_name) - fn_get_by_name(&pulse, arg, MODE_DEVICE); + if (id && fn_get_by_name) { + if (fn_get_by_name(&pulse, id, mode) != 0) + goto done; + } else if (!mode && verb != ACTION_SETDEFAULT && fn_get_default) { + if (fn_get_default(&pulse) != 0) + goto done; + } - rc = do_verb(&pulse, verb, value); + if (pulse.head == NULL) { + if (mode && !id) + warnx("%s id not set, no default operations", pp_name); + else + warnx("%s not found: %s", pp_name, id ? id : "default"); + rc = 1; + goto done; } + if (arg && fn_get_by_name) + fn_get_by_name(&pulse, arg, MODE_DEVICE); + + rc = do_verb(&pulse, verb, value); + done: /* shut down */ pulse_deinit(&pulse); |