8 #include "debug_printf.h"
10 #include "libmpd-internal.h"
14 char * mpd_sticker_song_get(MpdObj
*mi
, const char *path
, const char *tag
)
16 char *retv_value
= NULL
;
18 if(!mpd_check_connected(mi
))
20 debug_printf(DEBUG_INFO
,"Where not connected\n");
23 if(mpd_server_check_command_allowed(mi
, "sticker") != MPD_SERVER_COMMAND_ALLOWED
) {
24 debug_printf(DEBUG_WARNING
, "Command not allowed\n");
29 debug_printf(DEBUG_ERROR
,"lock failed\n");
33 mpd_sendGetSongSticker(mi
->connection
,path
, tag
);
34 retv_value
= mpd_getNextSticker(mi
->connection
);
35 mpd_finishCommand(mi
->connection
);
36 if(retv_value
&& strlen(retv_value
) > strlen(tag
)){
37 retv
= g_strdup(&retv_value
[strlen(tag
)]+1);
40 if(mi
->connection
->error
== MPD_ERROR_ACK
&& mi
->connection
->errorCode
== MPD_ACK_ERROR_NO_EXIST
)
42 mpd_clearError(mi
->connection
);
46 if(mpd_unlock_conn(mi
))
48 debug_printf(DEBUG_ERROR
, "Failed to unlock");
55 int mpd_sticker_song_set(MpdObj
*mi
, const char *path
, const char *tag
, const char *value
)
57 if(!mpd_check_connected(mi
))
59 debug_printf(DEBUG_INFO
,"Where not connected\n");
60 return MPD_NOT_CONNECTED
;
62 if(mpd_server_check_command_allowed(mi
, "sticker") != MPD_SERVER_COMMAND_ALLOWED
) {
63 debug_printf(DEBUG_WARNING
, "Command not allowed\n");
64 return MPD_SERVER_NOT_SUPPORTED
;
68 debug_printf(DEBUG_ERROR
,"lock failed\n");
69 return MPD_LOCK_FAILED
;
72 mpd_sendSetSongSticker(mi
->connection
,path
, tag
,value
);
73 mpd_finishCommand(mi
->connection
);
74 if(mpd_unlock_conn(mi
))
76 debug_printf(DEBUG_ERROR
, "Failed to unlock");
77 return MPD_LOCK_FAILED
;