updating duplicated code regarding getting value from db 38/222338/12
authorhj kim <backto.kim@samsung.com>
Tue, 14 Jan 2020 00:22:22 +0000 (09:22 +0900)
committerhj kim <backto.kim@samsung.com>
Wed, 15 Jan 2020 05:58:12 +0000 (14:58 +0900)
Change-Id: Iafd589a36cbfed804c4bb2eb114223097cb76fd5

src/media_controller_db.c

index 7bef16e..a773ea3 100644 (file)
@@ -52,6 +52,42 @@ static int __mc_db_get_record(sqlite3 *handle, char *sql_str, sqlite3_stmt **stm
        return MEDIA_CONTROLLER_ERROR_NONE;
 }
 
+static int __mc_db_get_int_value(sqlite3 *handle, const char *server_name, const char *column, int *value)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       char *sql_str = NULL;
+       sqlite3_stmt *stmt = NULL;
+
+       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
+       mc_retvm_if(!column, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "Invalid column");
+       mc_retvm_if(!value, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid value");
+
+       sql_str = sqlite3_mprintf("SELECT %Q FROM %q WHERE name=%Q", column, MC_DB_TABLE_SERVER_INFO, server_name);
+
+       ret = __mc_db_get_record(handle, sql_str, &stmt);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
+
+       *value = sqlite3_column_int(stmt, 0);
+       SQLITE3_FINALIZE(stmt);
+
+       return MEDIA_CONTROLLER_ERROR_NONE;
+}
+
+static int __mc_db_get_bool_value(sqlite3 *handle, const char *server_name, const char *column, bool *value)
+{
+       int ret = MEDIA_CONTROLLER_ERROR_NONE;
+       int int_val = 0;
+
+       mc_retvm_if(!value, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid value");
+
+       ret = __mc_db_get_int_value(handle, server_name, column, &int_val);
+       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "__mc_db_get_int_value failed [%d]", ret);
+
+       *value = (bool)int_val;
+
+       return ret;
+}
+
 int _mc_db_update_playback_info(const char *server_name, const media_controller_playback_s playback)
 {
        int ret = MEDIA_CONTROLLER_ERROR_NONE;
@@ -272,45 +308,14 @@ int _mc_db_get_metadata_info(sqlite3 *handle, const char *server_name, mc_metada
 
        return ret;
 }
-
 int _mc_db_get_shuffle_mode(sqlite3 *handle, const char *server_name, mc_shuffle_mode_e *mode)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!mode, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid mode");
-
-       sql_str = sqlite3_mprintf("SELECT shuffle_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name);
-
-       ret = __mc_db_get_record(handle, sql_str, &stmt);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
-
-       *mode = sqlite3_column_int(stmt, 0);
-       SQLITE3_FINALIZE(stmt);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return __mc_db_get_int_value(handle, server_name, "shuffle_mode", (int *)mode);
 }
 
 int _mc_db_get_repeat_mode(sqlite3 *handle, const char *server_name, mc_repeat_mode_e *mode)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!mode, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid mode");
-
-       sql_str = sqlite3_mprintf("SELECT repeat_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name);
-
-       ret = __mc_db_get_record(handle, sql_str, &stmt);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
-
-       *mode = sqlite3_column_int(stmt, 0);
-       SQLITE3_FINALIZE(stmt);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return __mc_db_get_int_value(handle, server_name, "repeat_mode", (int *)mode);
 }
 
 int _mc_db_get_icon_uri(sqlite3 *handle, const char *server_name, char **uri)
@@ -953,82 +958,22 @@ int _mc_db_get_int_value(sqlite3 *handle, const char *server_name, const char *c
 
 int _mc_db_get_subtitles_enabled(sqlite3 *handle, const char *server_name, bool *enabled)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!enabled, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid enabled");
-
-       sql_str = sqlite3_mprintf("SELECT subtitles_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name);
-
-       ret = __mc_db_get_record(handle, sql_str, &stmt);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
-
-       *enabled = sqlite3_column_int(stmt, 0);
-       SQLITE3_FINALIZE(stmt);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return __mc_db_get_bool_value(handle, server_name, "subtitles_mode", enabled);
 }
 
 int _mc_db_get_360_mode_enabled(sqlite3 *handle, const char *server_name, bool *enabled)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!enabled, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid enabled");
-
-       sql_str = sqlite3_mprintf("SELECT spherical_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name);
-
-       ret = __mc_db_get_record(handle, sql_str, &stmt);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
-
-       *enabled = sqlite3_column_int(stmt, 0);
-       SQLITE3_FINALIZE(stmt);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return __mc_db_get_bool_value(handle, server_name, "spherical_mode", enabled);
 }
 
 int _mc_db_get_display_mode(sqlite3 *handle, const char *server_name, mc_display_mode_e *mode)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!mode, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid mode");
-
-       sql_str = sqlite3_mprintf("SELECT display_mode FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name);
-
-       ret = __mc_db_get_record(handle, sql_str, &stmt);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
-
-       *mode = sqlite3_column_int(stmt, 0);
-       SQLITE3_FINALIZE(stmt);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return __mc_db_get_int_value(handle, server_name, "display_mode", (int *)mode);
 }
 
 int _mc_db_get_display_rotation(sqlite3 *handle, const char *server_name, mc_display_rotation_e *rotation)
 {
-       int ret = MEDIA_CONTROLLER_ERROR_NONE;
-       char *sql_str = NULL;
-       sqlite3_stmt *stmt = NULL;
-
-       mc_retvm_if(!server_name, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid server_name");
-       mc_retvm_if(!rotation, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "Invalid rotation");
-
-       sql_str = sqlite3_mprintf("SELECT display_rotation FROM %q WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, server_name);
-
-       ret = __mc_db_get_record(handle, sql_str, &stmt);
-       mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "__mc_db_get_record failed [%d]", ret);
-
-       *rotation = sqlite3_column_int(stmt, 0);
-       SQLITE3_FINALIZE(stmt);
-
-       return MEDIA_CONTROLLER_ERROR_NONE;
+       return __mc_db_get_int_value(handle, server_name, "display_rotation", (int *)rotation);
 }
 
 int _mc_db_get_ability(sqlite3 *handle, const char *server_name, unsigned long long *decided, unsigned long long *supported)