aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-02-19 09:24:11 +0100
committerMax Kellermann <max@duempel.org>2013-02-19 09:24:11 +0100
commit214a526945170308c219ddae0227acea540e97dc (patch)
treefa104ad9777b6725b15b67987f09cc3d4b323b02
parentaf9917658145e0595d16c6e508b95d0eef2986d0 (diff)
parentd5b756413a1ea432e8e580b27fef004223895f07 (diff)
Merge branch 'v0.17.x'
-rw-r--r--NEWS4
-rw-r--r--src/PlayerThread.cxx10
-rw-r--r--src/protocol/ArgParser.cxx2
3 files changed, 14 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 71e20eb6..66562d12 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 ac2cb84b..599df833 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 0ab19f7d..6bd53a35 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;