diff --git a/NEWS b/NEWS index 71e20eb6c..66562d12f 100644 --- a/NEWS +++ b/NEWS @@ -16,8 +16,12 @@ ver 0.18 (2012/??/??) ver 0.17.4 (2013/??/??) +* protocol: + - allow to omit END in ranges (START:END) * decoder: - ffmpeg: support float planar audio (ffmpeg 1.1) +* player: + - implement missing "idle" events on output errors ver 0.17.3 (2013/01/06) * output: diff --git a/src/PlayerThread.cxx b/src/PlayerThread.cxx index ac2cb84bd..599df833d 100644 --- a/src/PlayerThread.cxx +++ b/src/PlayerThread.cxx @@ -350,6 +350,8 @@ player_open_output(struct player *player) pc->state = PLAYER_STATE_PAUSE; pc->Unlock(); + idle_add(IDLE_PLAYER); + return false; } } @@ -834,6 +836,8 @@ play_next_chunk(struct player *player) pc->Unlock(); + idle_add(IDLE_PLAYER); + return false; } @@ -879,13 +883,17 @@ player_song_border(struct player *player) struct player_control *const pc = player->pc; pc->Lock(); - if (pc->border_pause) { + const bool border_pause = pc->border_pause; + if (border_pause) { player->paused = true; pc->state = PLAYER_STATE_PAUSE; } pc->Unlock(); + if (border_pause) + idle_add(IDLE_PLAYER); + return true; } diff --git a/src/protocol/ArgParser.cxx b/src/protocol/ArgParser.cxx index 0ab19f7d4..6bd53a358 100644 --- a/src/protocol/ArgParser.cxx +++ b/src/protocol/ArgParser.cxx @@ -103,7 +103,7 @@ check_range(Client *client, unsigned *value_r1, unsigned *value_r2, if (*test == ':') { value = strtol(++test, &test2, 10); - if (test2 == test || *test2 != '\0') { + if (*test2 != '\0') { command_error(client, ACK_ERROR_ARG, "Integer or range expected: %s", s); return false;