summaryrefslogtreecommitdiff
path: root/src/protocol
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-08-27 19:11:55 +0200
committerMax Kellermann <max@duempel.org>2014-08-28 06:42:19 +0200
commit39529204925c95c1ae38fee25df334f3c3a1a4a7 (patch)
tree80265280e7557858814158b7ea0a6f5f65be8847 /src/protocol
parentc2001a725978b665f0b22a4ad3865293754efd38 (diff)
Playlist: use std::chrono::duration for Seek*()
Diffstat (limited to 'src/protocol')
-rw-r--r--src/protocol/ArgParser.cxx23
-rw-r--r--src/protocol/ArgParser.hxx8
2 files changed, 31 insertions, 0 deletions
diff --git a/src/protocol/ArgParser.cxx b/src/protocol/ArgParser.cxx
index d2c40bbd6..709d12962 100644
--- a/src/protocol/ArgParser.cxx
+++ b/src/protocol/ArgParser.cxx
@@ -20,6 +20,7 @@
#include "config.h"
#include "ArgParser.hxx"
#include "Result.hxx"
+#include "Chrono.hxx"
#include <limits>
@@ -186,3 +187,25 @@ check_float(Client &client, float *value_r, const char *s)
*value_r = value;
return true;
}
+
+bool
+ParseCommandArg(Client &client, SongTime &value_r, const char *s)
+{
+ unsigned value;
+ bool success = check_unsigned(client, &value, s);
+ if (success)
+ value_r = SongTime::FromS(value);
+
+ return success;
+}
+
+bool
+ParseCommandArg(Client &client, SignedSongTime &value_r, const char *s)
+{
+ int value;
+ bool success = check_int(client, &value, s);
+ if (success)
+ value_r = SignedSongTime::FromS(value);
+
+ return success;
+}
diff --git a/src/protocol/ArgParser.hxx b/src/protocol/ArgParser.hxx
index f7f9531d0..0f79e7ab2 100644
--- a/src/protocol/ArgParser.hxx
+++ b/src/protocol/ArgParser.hxx
@@ -25,6 +25,8 @@
#include <stdint.h>
class Client;
+class SongTime;
+class SignedSongTime;
bool
check_uint32(Client &client, uint32_t *dst, const char *s);
@@ -45,4 +47,10 @@ check_bool(Client &client, bool *value_r, const char *s);
bool
check_float(Client &client, float *value_r, const char *s);
+bool
+ParseCommandArg(Client &client, SongTime &value_r, const char *s);
+
+bool
+ParseCommandArg(Client &client, SignedSongTime &value_r, const char *s);
+
#endif