Change the order of the workflow when update server playback info 20/197520/1
authorhj kim <backto.kim@samsung.com>
Fri, 11 Jan 2019 07:29:55 +0000 (16:29 +0900)
committerhj kim <backto.kim@samsung.com>
Sun, 13 Jan 2019 23:15:05 +0000 (23:15 +0000)
when playback state is "PLAYING", latest server should be updated.
but previous coude send dbus msg of updating playback info to the client first and then update latest server info.
However, some client apps could expect to update the latest server info when they receive a dbus msg of "PLAYING".
but when clients check it right after getting the dbus msg, db didn't updated yet.
So change order to do update latest server info first before send dbus msg to the client.

Change-Id: I2d659287e1f8e5d758e13ea69f481701a8f287e3
(cherry picked from commit dc281b25100e919ffe2b95a7c429223c42b384e2)

src/media_controller_db.c
src/media_controller_server.c

index 4f70ab89213d9f11bff2e9a6a3defec038345d35..1449747a65119f4bbe2e1fe23ffe1e1ba946b9ec 100755 (executable)
@@ -405,10 +405,10 @@ int mc_db_get_latest_server_name(void *handle, char **latest_server_name)
 
        ret = sqlite3_step(stmt);
        if (SQLITE_ROW != ret) {
-               mc_error("end of row [%s]", sqlite3_errmsg(db_handle));
+               mc_error("[No-Error] No latest server [%s]", sqlite3_errmsg(db_handle));
                SQLITE3_FINALIZE(stmt);
                SQLITE3_SAFE_FREE(sql_str);
-               return MEDIA_CONTROLLER_ERROR_NONE;     /*There is no activated server yet. */
+               return MEDIA_CONTROLLER_ERROR_NONE;     /*There is no latest server yet. */
        }
 
        while (SQLITE_ROW == ret) {
index 5c289844877cbad98ed121d09e72c2c87a8f0594..9d2503dfdd8fb76066f2ee67f2330858ba3263af 100755 (executable)
@@ -820,15 +820,15 @@ int mc_server_update_playback_info(mc_server_h server)
                return ret;
        }
 
-       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAY_BACK, 0, 0, NULL);
-       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
-               mc_error("Error __mc_server_send_message [%d]", ret);
-
        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);
        }
 
+       ret = __mc_server_send_message(mc_server, MC_DBUS_UPDATE_INTERFACE, MC_DBUS_SIGNAL_NAME_PLAY_BACK, 0, 0, NULL);
+       if (ret != MEDIA_CONTROLLER_ERROR_NONE)
+               mc_error("Error __mc_server_send_message [%d]", ret);
+
        return ret;
 }