X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=play.c;h=01125ab647f73482bb248ecdbaac2b8b2ad13021;hp=9639501069baaed4e3a396eb03f98813a0380584;hb=6fb1fc05a236d8732b0ae9581cc84d9958b3af76;hpb=74c88020bd325865fe26ed25ea8ad0ace0924136 diff --git a/play.c b/play.c index 96395010..01125ab6 100644 --- a/play.c +++ b/play.c @@ -137,30 +137,14 @@ static void check_afh_receiver_or_die(void) exit(EXIT_FAILURE); } -/** Description to be included in the --detailed-help output. */ -#define PP_DESC \ -"para_play is a command line audio player.\n" \ -"\n" \ -"It operates either in command mode or in insert mode. In insert mode it\n" \ -"presents a prompt and allows to enter para_play commands like stop, play, pause\n" \ -"etc. In command mode, the current audio file is shown and the program reads\n" \ -"single key strokes from stdin. Keys may be mapped to para_play commands.\n" \ -"Whenever a mapped key is pressed, the associated command is executed.\n" \ - __noreturn static void print_help_and_die(void) { - int d = conf.detailed_help_given; - const char **p = d? play_args_info_detailed_help - : play_args_info_help; - -// printf_or_die("%s\n\n", PLAY_CMDLINE_PARSER_PACKAGE "-" -// PLAY_CMDLINE_PARSER_VERSION); - - printf_or_die("%s\n\n", play_args_info_usage); - if (d) - printf_or_die("%s\n", PP_DESC); - for (; *p; p++) - printf_or_die("%s\n", *p); + struct ggo_help help = DEFINE_GGO_HELP(play); + unsigned flags = conf.detailed_help_given? + GPH_STANDARD_FLAGS_DETAILED : GPH_STANDARD_FLAGS; + + ggo_print_help(&help, flags); + printf("supported audio formats: %s\n", AUDIO_FORMAT_HANDLERS); exit(0); } @@ -176,12 +160,11 @@ static void parse_config_or_die(int argc, char *argv[]) .print_errors = 1 }; - if (play_cmdline_parser_ext(argc, argv, &conf, ¶ms)) - exit(EXIT_FAILURE); - HANDLE_VERSION_FLAG("play", conf); + play_cmdline_parser_ext(argc, argv, &conf, ¶ms); + loglevel = get_loglevel_by_name(conf.loglevel_arg); + version_handle_flag("play", conf.version_given); if (conf.help_given || conf.detailed_help_given) print_help_and_die(); - loglevel = get_loglevel_by_name(conf.loglevel_arg); if (conf.config_file_given) config_file = para_strdup(conf.config_file_arg); else { @@ -198,6 +181,7 @@ static void parse_config_or_die(int argc, char *argv[]) params.initialize = 0; params.check_required = 1; play_cmdline_parser_config_file(config_file, &conf, ¶ms); + loglevel = get_loglevel_by_name(conf.loglevel_arg); } for (i = 0; i < conf.key_map_given; i++) { char *s = strchr(conf.key_map_arg[i] + 1, ':'); @@ -368,7 +352,7 @@ static int open_new_file(struct play_task *pt) tmp = NULL; } pt->rn.task.pre_select = afh_recv->pre_select; - pt->rn.task.new_post_select = afh_recv->new_post_select; + pt->rn.task.post_select = afh_recv->post_select; sprintf(pt->rn.task.status, "%s receiver node", afh_recv->name); return 1; fail: @@ -409,7 +393,7 @@ static int load_file(struct play_task *pt) pt->fn.filter_num = ret; decoder = filters + ret; pt->fn.task.pre_select = decoder->pre_select; - pt->fn.task.new_post_select = decoder->new_post_select; + pt->fn.task.post_select = decoder->post_select; sprintf(pt->fn.task.status, "%s decoder", af); pt->fn.btrn = btr_new_node(&(struct btr_node_description) EMBRACE(.name = decoder->name, .parent = pt->rn.btrn, @@ -447,7 +431,7 @@ static int load_next_file(struct play_task *pt) int ret; again: - if (pt->rq == CRT_NONE || pt->rq == CRT_FILE_CHANGE) { + if (pt->rq == CRT_NONE) { pt->start_chunk = 0; ret = next_valid_file(pt); if (ret < 0) @@ -990,15 +974,7 @@ out: static int play_i9e_line_handler(char *line) { - struct play_task *pt = &play_task; - int ret; - - if (line == NULL || !*line) - return 0; - ret = run_command(line, pt); - if (ret < 0) - return ret; - return 0; + return run_command(line, &play_task); } static int play_i9e_key_handler(int key) @@ -1044,7 +1020,7 @@ static void session_open(__a_unused struct play_task *pt) char *history_file; struct sigaction act; - PARA_NOTICE_LOG("\n%s\n", VERSION_TEXT("play")); + PARA_NOTICE_LOG("\n%s\n", version_text("play")); if (conf.history_file_given) history_file = para_strdup(conf.history_file_arg); else { @@ -1270,7 +1246,7 @@ int main(int argc, char *argv[]) pt->current_file = conf.inputs_num - 1; pt->playing = true; pt->task.pre_select = play_pre_select; - pt->task.new_post_select = play_post_select; + pt->task.post_select = play_post_select; sprintf(pt->task.status, "play task"); register_task(&sched, &pt->task); ret = schedule(&sched);