diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | doc/protocol.xml | 14 | ||||
-rw-r--r-- | src/protocol/ArgParser.cxx | 8 |
3 files changed, 13 insertions, 10 deletions
@@ -8,6 +8,7 @@ ver 0.19 (not yet released) - "list" on album artist falls back to the artist tag - "list" and "count" allow grouping - new "search"/"find" filter "modified-since" + - "seek*" allows fractional position - close connection after syntax error * database - proxy: forward "idle" events diff --git a/doc/protocol.xml b/doc/protocol.xml index cff685060..af2a312d2 100644 --- a/doc/protocol.xml +++ b/doc/protocol.xml @@ -877,8 +877,8 @@ <listitem> <para> Seeks to the position <varname>TIME</varname> (in - seconds) of entry <varname>SONGPOS</varname> in the - playlist. + seconds; fractions allowed) of entry + <varname>SONGPOS</varname> in the playlist. </para> </listitem> </varlistentry> @@ -893,7 +893,8 @@ <listitem> <para> Seeks to the position <varname>TIME</varname> (in - seconds) of song <varname>SONGID</varname>. + seconds; fractions allowed) of song + <varname>SONGID</varname>. </para> </listitem> </varlistentry> @@ -907,9 +908,10 @@ </term> <listitem> <para> - Seeks to the position <varname>TIME</varname> within the - current song. If prefixed by '+' or '-', then the time - is relative to the current playing position. + Seeks to the position <varname>TIME</varname> (in + seconds; fractions allowed) within the current song. If + prefixed by '+' or '-', then the time is relative to the + current playing position. </para> </listitem> </varlistentry> diff --git a/src/protocol/ArgParser.cxx b/src/protocol/ArgParser.cxx index 709d12962..e3a0c107c 100644 --- a/src/protocol/ArgParser.cxx +++ b/src/protocol/ArgParser.cxx @@ -191,8 +191,8 @@ check_float(Client &client, float *value_r, const char *s) bool ParseCommandArg(Client &client, SongTime &value_r, const char *s) { - unsigned value; - bool success = check_unsigned(client, &value, s); + float value; + bool success = check_float(client, &value, s) && value >= 0; if (success) value_r = SongTime::FromS(value); @@ -202,8 +202,8 @@ ParseCommandArg(Client &client, SongTime &value_r, const char *s) bool ParseCommandArg(Client &client, SignedSongTime &value_r, const char *s) { - int value; - bool success = check_int(client, &value, s); + float value; + bool success = check_float(client, &value, s); if (success) value_r = SignedSongTime::FromS(value); |