mirror of https://github.com/SuperBFG7/ympd
Feat: add lastPlayed sticker to songs
This commit is contained in:
parent
85d75190d9
commit
0f31cbea48
|
@ -557,6 +557,7 @@ void mympd_poll(struct mg_mgr *s, int timeout) {
|
||||||
fprintf(stderr, "MPD connection failed.\n");
|
fprintf(stderr, "MPD connection failed.\n");
|
||||||
snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"disconnected\"}");
|
snprintf(mpd.buf, MAX_SIZE, "{\"type\": \"disconnected\"}");
|
||||||
mympd_notify(s);
|
mympd_notify(s);
|
||||||
|
|
||||||
case MPD_DISCONNECT:
|
case MPD_DISCONNECT:
|
||||||
case MPD_RECONNECT:
|
case MPD_RECONNECT:
|
||||||
if (mpd.conn != NULL)
|
if (mpd.conn != NULL)
|
||||||
|
@ -584,7 +585,7 @@ char* mympd_get_song_uri_from_song_id(int song_id) {
|
||||||
if (song_id > -1) {
|
if (song_id > -1) {
|
||||||
song = mpd_run_get_queue_song_id(mpd.conn, song_id);
|
song = mpd_run_get_queue_song_id(mpd.conn, song_id);
|
||||||
if (song) {
|
if (song) {
|
||||||
str = (char *)mpd_song_get_uri(song);
|
str = strdup(mpd_song_get_uri(song));
|
||||||
mpd_song_free(song);
|
mpd_song_free(song);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -592,8 +593,7 @@ char* mympd_get_song_uri_from_song_id(int song_id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void mympd_count_song_id(int song_id, char *name, int value) {
|
void mympd_count_song_id(int song_id, char *name, int value) {
|
||||||
char *uri = mympd_get_song_uri_from_song_id(song_id);
|
mympd_count_song_uri(mympd_get_song_uri_from_song_id(song_id), name, value);
|
||||||
mympd_count_song_uri(uri, name, value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void mympd_count_song_uri(const char *uri, char *name, int value) {
|
void mympd_count_song_uri(const char *uri, char *name, int value) {
|
||||||
|
@ -624,6 +624,10 @@ void mympd_like_song_uri(const char *uri, int value) {
|
||||||
mpd_run_sticker_set(mpd.conn, "song", uri, "like", v);
|
mpd_run_sticker_set(mpd.conn, "song", uri, "like", v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mympd_last_played_song_id(int song_id) {
|
||||||
|
mympd_last_played_song_uri(mympd_get_song_uri_from_song_id(song_id));
|
||||||
|
}
|
||||||
|
|
||||||
void mympd_last_played_song_uri(const char *uri) {
|
void mympd_last_played_song_uri(const char *uri) {
|
||||||
char v[20];
|
char v[20];
|
||||||
snprintf(v, 19, "%lu", time(NULL));
|
snprintf(v, 19, "%lu", time(NULL));
|
||||||
|
@ -656,6 +660,7 @@ void mympd_parse_idle(struct mg_mgr *s) {
|
||||||
case MPD_IDLE_PLAYER:
|
case MPD_IDLE_PLAYER:
|
||||||
len = mympd_put_state(mpd.buf, &mpd.song_id, &mpd.next_song_id, &mpd.queue_version);
|
len = mympd_put_state(mpd.buf, &mpd.song_id, &mpd.next_song_id, &mpd.queue_version);
|
||||||
mympd_count_song_id(mpd.song_id, "playCount", 1);
|
mympd_count_song_id(mpd.song_id, "playCount", 1);
|
||||||
|
mympd_last_played_song_id(mpd.song_id);
|
||||||
break;
|
break;
|
||||||
case MPD_IDLE_MIXER:
|
case MPD_IDLE_MIXER:
|
||||||
len = mympd_put_state(mpd.buf, &mpd.song_id, &mpd.next_song_id, &mpd.queue_version);
|
len = mympd_put_state(mpd.buf, &mpd.song_id, &mpd.next_song_id, &mpd.queue_version);
|
||||||
|
|
|
@ -150,6 +150,8 @@ void mympd_notify(struct mg_mgr *s);
|
||||||
void mympd_count_song_id(int song_id, char *name, int value);
|
void mympd_count_song_id(int song_id, char *name, int value);
|
||||||
void mympd_count_song_uri(const char *uri, char *name, int value);
|
void mympd_count_song_uri(const char *uri, char *name, int value);
|
||||||
void mympd_like_song_uri(const char *uri, int value);
|
void mympd_like_song_uri(const char *uri, int value);
|
||||||
|
void mympd_last_played_song_uri(const char *uri);
|
||||||
|
void mympd_last_played_song_id(int song_id);
|
||||||
int mympd_put_state(char *buffer, int *current_song_id, int *next_song_id, unsigned *queue_version);
|
int mympd_put_state(char *buffer, int *current_song_id, int *next_song_id, unsigned *queue_version);
|
||||||
int mympd_put_outputs(char *buffer);
|
int mympd_put_outputs(char *buffer);
|
||||||
int mympd_put_current_song(char *buffer);
|
int mympd_put_current_song(char *buffer);
|
||||||
|
|
Loading…
Reference in New Issue