X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=play.c;h=55c9ec1bbb635946fe8ec92eadb52fa0accc8bf6;hp=61c30aed08b131384e099a945cfed3011b9a0f97;hb=33e57c3a92e4c105504832b4bb106273ffcdc2a7;hpb=6e0b28e02a1013c019a3225e922b71f913bfbae4 diff --git a/play.c b/play.c index 61c30aed..55c9ec1b 100644 --- a/play.c +++ b/play.c @@ -184,10 +184,10 @@ static void parse_config_or_die(int argc, char *argv[]) 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, ':'); - if (s) + char *kma = conf.key_map_arg[i]; + if (*kma && strchr(kma + 1, ':')) continue; - PARA_EMERG_LOG("invalid key map arg: %s\n", conf.key_map_arg[i]); + PARA_EMERG_LOG("invalid key map arg: %s\n", kma); goto err; } free(config_file); @@ -263,7 +263,7 @@ static int get_playback_error(struct play_task *pt) static int eof_cleanup(struct play_task *pt) { struct writer *w = writers + DEFAULT_WRITER; - struct filter *decoder = filters + pt->fn.filter_num; + const struct filter *decoder = filter_get(pt->fn.filter_num); int ret; ret = get_playback_error(pt); @@ -368,7 +368,7 @@ static int load_file(struct play_task *pt) const char *af; char *tmp, buf[20]; int ret; - struct filter *decoder; + const struct filter *decoder; btr_remove_node(&pt->rn.btrn); if (!pt->rn.receiver || pt->next_file != pt->current_file) { @@ -393,7 +393,7 @@ static int load_file(struct play_task *pt) if (ret < 0) goto fail; pt->fn.filter_num = ret; - decoder = filters + ret; + decoder = filter_get(ret); pt->fn.btrn = btr_new_node(&(struct btr_node_description) EMBRACE(.name = decoder->name, .parent = pt->rn.btrn, .handler = decoder->execute, .context = &pt->fn)); @@ -921,6 +921,8 @@ static int com_jmp(struct play_task *pt, int argc, char **argv) return ret; if (percent < 0 || percent > 100) return -ERRNO_TO_PARA_ERROR(EINVAL); + if (percent == 100) + return com_next(pt, 1, (char *[]){"next", NULL}); if (pt->playing && !pt->fn.btrn) return 0; pt->start_chunk = percent * pt->num_chunks / 100; @@ -1029,7 +1031,7 @@ static void sigint_handler(int sig) * stderr. Once the i9e subsystem has been initialized, we switch to the i9e * log facility. */ -static void session_open(__a_unused struct play_task *pt) +static void session_open(struct play_task *pt) { int ret; char *history_file;