diff --git a/htdocs/index.html b/htdocs/index.html
index 4550725..9d8f9a3 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 50beef9..56984aa 100644
--- a/htdocs/js/mpd.js
+++ b/htdocs/js/mpd.js
@@ -517,6 +517,8 @@ function webSocketConnect() {
$('#album').text("");
$('#artist').text("");
+ $('#btnlove').removeClass("active");
+
$('#currenttrack').text(" " + obj.data.title);
var notification = "" + obj.data.title + "
";
@@ -679,6 +681,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));
diff --git a/src/mpd_client.c b/src/mpd_client.c
index 159b24d..1a02490 100644
--- a/src/mpd_client.c
+++ b/src/mpd_client.c
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
#include "mpd_client.h"
#include "config.h"
@@ -241,6 +242,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 d637848..951869d 100644
--- a/src/mpd_client.h
+++ b/src/mpd_client.h
@@ -50,6 +50,7 @@
X(MPD_API_RM_ALL) \
X(MPD_API_MOVE_TRACK) \
X(MPD_API_SEARCH) \
+ X(MPD_API_SEND_MESSAGE) \
X(MPD_API_SET_VOLUME) \
X(MPD_API_SET_PAUSE) \
X(MPD_API_SET_PLAY) \