add methods for saving and adding to playlists

This commit is contained in:
zmike 2014-04-27 23:03:02 -04:00
parent 3d40e9a7da
commit 892db1ad76
2 changed files with 49 additions and 0 deletions

View File

@ -61,6 +61,8 @@ typedef enum
EMPD_COMMAND_DELETE_LIST,
EMPD_COMMAND_ADD_LIST,
EMPD_COMMAND_MOVE_LIST,
EMPD_COMMAND_SAVE_PLAYLIST,
EMPD_COMMAND_ADDTO_PLAYLIST,
EMPD_COMMAND_LOAD_PLAYLIST,
EMPD_COMMAND_REPEAT,
EMPD_COMMAND_RANDOM,
@ -92,6 +94,8 @@ static const char *cmd_txt[] =
CMD_TXT(EMPD_COMMAND_DELETE_LIST)
CMD_TXT(EMPD_COMMAND_ADD_LIST)
CMD_TXT(EMPD_COMMAND_MOVE_LIST)
CMD_TXT(EMPD_COMMAND_SAVE_PLAYLIST)
CMD_TXT(EMPD_COMMAND_ADDTO_PLAYLIST)
CMD_TXT(EMPD_COMMAND_LOAD_PLAYLIST)
CMD_TXT(EMPD_COMMAND_REPEAT)
CMD_TXT(EMPD_COMMAND_RANDOM)
@ -1054,6 +1058,40 @@ _dbus_move_list_cb(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldb
return eldbus_message_method_return_new(msg);
}
static Eldbus_Message *
_dbus_save_playlist_cb(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
const char *uri;
if (!empd->connected)
return eldbus_message_method_return_new(msg);
if (eldbus_message_arguments_get(msg, "s", &uri))
{
cmd_append(EMPD_COMMAND_SAVE_PLAYLIST);
mpd_async_send_command(empd->async, "save", uri, NULL);
fdh_update();
}
return eldbus_message_method_return_new(msg);
}
static Eldbus_Message *
_dbus_addto_playlist_cb(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
const char *playlist, *uri;
if (!empd->connected)
return eldbus_message_method_return_new(msg);
if (eldbus_message_arguments_get(msg, "ss", &playlist, &uri))
{
cmd_append(EMPD_COMMAND_ADDTO_PLAYLIST);
mpd_async_send_command(empd->async, "playlistadd", playlist, uri, NULL);
fdh_update();
}
return eldbus_message_method_return_new(msg);
}
static Eldbus_Message *
_dbus_load_playlist_cb(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
{
@ -1154,6 +1192,8 @@ static const Eldbus_Method empd_methods[] =
{ "ClearList", NULL, NULL, _dbus_clear_cb, 0},
{ "DeleteListRange", ELDBUS_ARGS({"i", "start"}, {"i", "num"}), NULL, _dbus_delete_list_cb, 0},
{ "AddList", ELDBUS_ARGS({"s", "path"}), NULL, _dbus_add_list_cb, 0},
{ "SavePlaylist", ELDBUS_ARGS({"s", "path"}), NULL, _dbus_save_playlist_cb, 0},
{ "AddToPlaylist", ELDBUS_ARGS({"s", "playlist"}, {"s", "uri"}), NULL, _dbus_addto_playlist_cb, 0},
{ "LoadPlaylist", ELDBUS_ARGS({"s", "path"}), NULL, _dbus_load_playlist_cb, 0},
{ "MoveList", ELDBUS_ARGS({"u", "start_pos"}, {"i", "number"}, {"u", "target_pos"}), NULL, _dbus_move_list_cb, 0},
{ "Repeat", ELDBUS_ARGS({"b", "mode"}), NULL, _dbus_repeat_cb, 0},

View File

@ -78,6 +78,15 @@
<arg type="s" name="uri" direction="in" />
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true" />
</method>
<method name="SavePlaylist">
<arg type="s" name="uri" direction="in" />
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true" />
</method>
<method name="AddToPlaylist">
<arg type="s" name="playlist" direction="in" />
<arg type="s" name="uri" direction="in" />
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true" />
</method>
<method name="LoadPlaylist">
<arg type="s" name="uri" direction="in" />
<annotation name="org.freedesktop.DBus.Method.NoReply" value="true" />