From 07c6df23bcce91aeaa3e28318e0985b1cfa549be Mon Sep 17 00:00:00 2001 From: SuperBFG7 Date: Sat, 18 Mar 2017 13:31:26 +0100 Subject: [PATCH 1/2] added API command to send messages to MPD channels --- src/mpd_client.c | 21 +++++++++++++++++++++ src/mpd_client.h | 1 + 2 files changed, 22 insertions(+) diff --git a/src/mpd_client.c b/src/mpd_client.c index 7271984..0922b66 100644 --- a/src/mpd_client.c +++ b/src/mpd_client.c @@ -229,6 +229,27 @@ out_save_queue: out_search: free(p_charbuf); break; + case MPD_API_SEND_MESSAGE: + p_charbuf = strdup(c->content); + if(strcmp(strtok(p_charbuf, ","), "MPD_API_SEND_MESSAGE")) + goto out_send_message; + + if((token = strtok(NULL, ",")) == NULL) + goto out_send_message; + + free(p_charbuf); + p_charbuf = strdup(get_arg1(c->content)); + + if ( strtok(p_charbuf, ",") == NULL ) + goto out_send_message; + + if ( (token = strtok(NULL, ",")) == NULL ) + goto out_send_message; + + mpd_run_send_message(mpd.conn, p_charbuf, token); +out_send_message: + free(p_charbuf); + break; #ifdef WITH_MPD_HOST_CHANGE /* Commands allowed when disconnected from MPD server */ case MPD_API_SET_MPDHOST: diff --git a/src/mpd_client.h b/src/mpd_client.h index dd78af9..1fde010 100644 --- a/src/mpd_client.h +++ b/src/mpd_client.h @@ -48,6 +48,7 @@ X(MPD_API_RM_TRACK) \ X(MPD_API_RM_ALL) \ X(MPD_API_SEARCH) \ + X(MPD_API_SEND_MESSAGE) \ X(MPD_API_SET_VOLUME) \ X(MPD_API_SET_PAUSE) \ X(MPD_API_SET_PLAY) \ From 152defeaaaeb0ec001549f43f6ba3f247be6f106 Mon Sep 17 00:00:00 2001 From: SuperBFG7 Date: Sat, 18 Mar 2017 13:32:17 +0100 Subject: [PATCH 2/2] add a button to love tracks on last.fm using mpdas --- htdocs/index.html | 5 +++++ htdocs/js/mpd.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/htdocs/index.html b/htdocs/index.html index ed77279..0ed3f94 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -55,6 +55,11 @@ +
+ +
diff --git a/htdocs/js/mpd.js b/htdocs/js/mpd.js index 6000b79..577b076 100644 --- a/htdocs/js/mpd.js +++ b/htdocs/js/mpd.js @@ -466,6 +466,8 @@ function webSocketConnect() { $('#album').text(""); $('#artist').text(""); + $('#btnlove').removeClass("active"); + $('#currenttrack').text(" " + obj.data.title); var notification = "

" + obj.data.title + "

"; @@ -598,6 +600,14 @@ function basename(path) { return path.split('/').reverse()[0]; } +function clickLove() { + socket.send("MPD_API_SEND_MESSAGE,mpdas," + ($('#btnlove').hasClass('active') ? "unlove" : "love")); + if ( $('#btnlove').hasClass('active') ) + $('#btnlove').removeClass("active"); + else + $('#btnlove').addClass("active"); +} + $('#btnrandom').on('click', function (e) { socket.send("MPD_API_TOGGLE_RANDOM," + ($(this).hasClass('active') ? 0 : 1));