summaryrefslogtreecommitdiffstats
path: root/src/player.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.h')
-rw-r--r--src/player.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/player.h b/src/player.h
new file mode 100644
index 0000000..9e28903
--- /dev/null
+++ b/src/player.h
@@ -0,0 +1,69 @@
+#pragma once
+
+#include "track.h"
+#include "list.h"
+#include "util.h"
+
+#include "mpd/client.h"
+
+#include <signal.h>
+
+enum {
+ PLAYER_OK,
+ PLAYER_ERR
+};
+
+enum {
+ PLAYER_MSG_NONE,
+ PLAYER_MSG_INFO,
+ PLAYER_MSG_ERR
+};
+
+enum {
+ PLAYER_STATE_PAUSED,
+ PLAYER_STATE_PLAYING,
+ PLAYER_STATE_STOPPED
+};
+
+struct player {
+ struct mpd_connection *conn;
+
+ struct link queue;
+ struct track *track;
+ int state;
+
+ int seek_delay;
+
+ int loaded;
+ int volume;
+ unsigned int time_pos, time_end;
+
+ char *msg;
+ int msglvl;
+};
+
+void player_init(void);
+void player_free(void);
+void player_update(void);
+
+void player_queue_clear(void);
+void player_queue_append(struct track *track);
+void player_queue_insert(struct track *track, size_t pos);
+
+int player_play_track(struct track *track);
+
+int player_toggle_pause(void);
+int player_pause(void);
+int player_resume(void);
+int player_prev(void);
+int player_next(void);
+int player_seek(int sec);
+int player_play(void);
+int player_stop(void);
+
+int player_set_volume(unsigned int vol);
+
+void player_clear_msg(void);
+
+extern struct player *player;
+