gboolean mc_db_is_server_table_exist(void *handle, const char *server_name);
gboolean _mc_db_is_activated_client(void *handle, const char *client_name);
gboolean _mc_db_is_activated_server(void *handle, const char *server_name);
+gboolean _mc_db_is_latest_server(void *handle, const char *server_name);
int mc_db_update_playback_info(const char *table_name, const media_controller_playback_s playback);
int mc_db_update_whole_metadata(const char *server_name,
const char *title, const char *artist, const char *album, const char *author, const char *genre, const char *duration, const char *date,
return TRUE;
}
+gboolean _mc_db_is_latest_server(void *handle, const char *server_name)
+{
+ char *sql_str = NULL;
+ int count = 0;
+
+ mc_retvm_if(!handle, FALSE, "Handle is NULL");
+ mc_retvm_if(!server_name, FALSE, "server_name is NULL");
+
+ mc_secure_debug("server name [%s]", server_name);
+
+ sql_str = sqlite3_mprintf("SELECT COUNT(*) FROM '%q' WHERE server_name='%q'", MC_DB_TABLE_LATEST_SERVER, server_name);
+ mc_retvm_if(!MC_STRING_VALID(sql_str), FALSE, "SQL string is null");
+
+ count = __mc_db_get_count(handle, sql_str);
+ SQLITE3_SAFE_FREE(sql_str);
+
+ if (count <= 0) {
+ mc_secure_debug("[%s] is not latest", server_name);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+
int mc_db_foreach_server_list(void *handle, mc_activated_server_cb callback, void *user_data)
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
}
if (mc_server->playback.state == MC_PLAYBACK_STATE_PLAYING) {
- ret = mc_db_update_latest_server_table(mc_server->server_name);
- mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail mc_db_update_latest_server_table [%d]", ret);
+ if(!_mc_db_is_latest_server(mc_server->db_handle, mc_server->server_name)) {
+ ret = mc_db_update_latest_server_table(mc_server->server_name);
+ mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "fail mc_db_update_latest_server_table [%d]", ret);
+ }
}
ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAY_BACK, 0, 0, NULL);