*query_list = g_list_append(*query_list, sql_str);
}
-int mc_db_parse_and_update_db(uid_t uid, const char *data, int data_size)
+static int __parse_and_update_db(uid_t uid, gchar **params)
{
int ret = MEDIA_CONTROLLER_ERROR_NONE;
char *sql_str = NULL;
- gchar **params = NULL;
int i_value = 0;
int i_value_1 = 0;
int i_value_2 = 0;
unsigned long long llu_value = 0, llu_value2 = 0;
sqlite3* _db_handle = NULL;
- mc_retvm_if(data == NULL, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "data is NULL");
- mc_retvm_if(data_size <= 0 , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid data_size");
-
- params = g_strsplit(data, MC_STRING_DELIMITER, 0);
- mc_retvm_if(params == NULL, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail to parsing query");
-
- if (!params[0] || !params[1]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid params");
+ mc_retvm_if((!params[0] || !params[1]),
+ MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
if (strncmp(MC_DB_CMD_UPDATE_PLAYBACK, params[0], strlen(MC_DB_CMD_UPDATE_PLAYBACK)) == 0) {
- if (!params[2] || !params[3] || !params[4] || !params[5]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if((!params[2] || !params[3] || !params[4] || !params[5]),
+ MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
mc_safe_strtoull(params[3], &llu_value);
__replace_null(params[14]), __replace_null(params[15]));
} else if (strncmp(MC_DB_CMD_UPDATE_SHUFFLE, params[0], strlen(MC_DB_CMD_UPDATE_SHUFFLE)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
sql_str = sqlite3_mprintf("UPDATE %q SET shuffle_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_REPEAT, params[0], strlen(MC_DB_CMD_UPDATE_REPEAT)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
sql_str = sqlite3_mprintf("UPDATE %q SET repeat_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_ADD_PLAYLIST, params[0], strlen(MC_DB_CMD_ADD_PLAYLIST)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
sql_str = sqlite3_mprintf("INSERT INTO %q(server_name, playlist_name) VALUES (%Q, %Q)", MC_DB_TABLE_PLAYLIST, params[1], params[2]);
int total_query_len = 0;
int i = 0;
- if (!params[2] || !params[3] || !params[4]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if((!params[2] || !params[3] || !params[4]),
+ MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[3], &i_value);
bundle = bundle_decode((bundle_raw *)params[4], i_value);
- if (!bundle) {
- mc_error("invalid bundle_data");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!bundle, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid bundle_data");
mc_debug("bundle item count [%d]", bundle_get_count(bundle));
list_len = g_list_length(query_list);
if (list_len < 3) {
mc_error("invalid query_list len [%d]", list_len);
- g_strfreev(params);
return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
}
sql_str = sqlite3_mprintf("UPDATE %q SET icon_uri=NULL WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_ABILITY, params[0], strlen(MC_DB_CMD_UPDATE_ABILITY)) == 0) {
- if (!params[2] || !params[3]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if((!params[2] || !params[3]),
+ MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoull(params[2], &llu_value);
mc_safe_strtoull(params[3], &llu_value2);
sql_str = sqlite3_mprintf("UPDATE %q SET ability_decided=%llu, ability_supported=%llu WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, llu_value, llu_value2, params[1]);
} else if (strncmp(MC_DB_CMD_REMOVE_PLAYLIST, params[0], strlen(MC_DB_CMD_REMOVE_PLAYLIST)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
sql_str = sqlite3_mprintf("DELETE FROM %q WHERE server_name=%Q and playlist_name=%Q", MC_DB_TABLE_PLAYLIST, params[1], params[2]);
} else if (strncmp(MC_DB_CMD_UPDATE_SUBTITLES, params[0], strlen(MC_DB_CMD_UPDATE_SUBTITLES)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
sql_str = sqlite3_mprintf("UPDATE %q SET subtitles_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_DISPLAY_MODE, params[0], strlen(MC_DB_CMD_UPDATE_DISPLAY_MODE)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
sql_str = sqlite3_mprintf("UPDATE %q SET display_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_DISPLAY_ROTATION, params[0], strlen(MC_DB_CMD_UPDATE_DISPLAY_ROTATION)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
sql_str = sqlite3_mprintf("UPDATE %q SET display_rotation=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else if (strncmp(MC_DB_CMD_UPDATE_360, params[0], strlen(MC_DB_CMD_UPDATE_360)) == 0) {
- if (!params[2]) {
- mc_error("invalid query");
- g_strfreev(params);
- return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
- }
+ mc_retvm_if(!params[2], MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "invalid query");
mc_safe_strtoi(params[2], &i_value);
sql_str = sqlite3_mprintf("UPDATE %q SET spherical_mode=%d WHERE name=%Q", MC_DB_TABLE_SERVER_INFO, i_value, params[1]);
} else {
mc_error("invalid request [%s]", params[0]);
- g_strfreev(params);
return MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;
}
ret = MEDIA_CONTROLLER_ERROR_OUT_OF_MEMORY;
}
+ return ret;
+}
+
+int mc_db_request(uid_t uid, const char *data, int data_size)
+{
+ int ret = MEDIA_CONTROLLER_ERROR_NONE;
+ gchar **params = NULL;
+
+ mc_retvm_if(!data, MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid data");
+ mc_retvm_if(data_size <= 0 , MEDIA_CONTROLLER_ERROR_INVALID_PARAMETER, "invalid data_size");
+
+ params = g_strsplit(data, MC_STRING_DELIMITER, 0);
+ mc_retvm_if(!params, MEDIA_CONTROLLER_ERROR_INVALID_OPERATION, "fail to parsing query");
+
+ ret = __parse_and_update_db(uid, params);
+
g_strfreev(params);
return ret;