mc_retvm_if(mc_server == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid server");
mc_retvm_if(!MC_STRING_VALID(playlist_name), MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid playlist_name");
- ret = mc_db_remove_playlist(mc_server->db_handle, mc_server->server_name);
- mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to mc_db_remove_playlist");
if (mode == MC_PLAYLIST_UPDATED) {
ret = mc_db_update_playlist(mc_server->db_handle, mc_server->server_name, playlist_name, data);
mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to mc_db_update_playlist");
+ } else if (mode == MC_PLAYLIST_REMOVED) {
+ ret = mc_db_remove_playlist(mc_server->db_handle, mc_server->server_name);
+ mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail to mc_db_remove_playlist");
+ } else {
+ mc_error("Wrong mode [%d]", mode);
+ return MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER;
}
ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAYLIST, mode, 0, playlist_name);
mc_safe_strtoi(params[4], &i_value);
- sql_str = sqlite3_mprintf("INSERT INTO '%q' (server_name, playlist_name, data, data_size) VALUES (%Q, %Q, %Q, %d);", MC_DB_TABLE_PLAYLIST,
- params[1], params[2], params[3], i_value);
+ sql_str = sqlite3_mprintf("DELETE FROM '%q' WHERE server_name='%q';INSERT INTO '%q' (server_name, playlist_name, data, data_size) VALUES (%Q, %Q, %Q, %d);",
+ MC_DB_TABLE_PLAYLIST, params[1],
+ MC_DB_TABLE_PLAYLIST, params[1], params[2], params[3], i_value);
} else if (strncmp(MC_DB_CMD_REMOVE_SERVER_LIST, params[0], strlen(MC_DB_CMD_REMOVE_SERVER_LIST)) == 0) {
sql_str = sqlite3_mprintf("DELETE FROM %q WHERE server_name = '%q';", MC_DB_TABLE_SERVER_LIST, params[1]);