{
int ret = MEDIA_CONTENT_ERROR_NONE;
sqlite3_stmt *stmt = NULL;
- char select_query[MAX_QUERY_SIZE] = {0, };
+ char *select_query = NULL;
char *condition_query = NULL;
char *option_query = NULL;
filter_s *_filter = (filter_s *)filter;
- memset(select_query, 0x00, sizeof(select_query));
-
switch (group_type) {
case MEDIA_GROUP_ALBUM:
if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
- snprintf(select_query, sizeof(select_query), SELECT_ALBUM_COUNT, _filter->storage_id);
+ select_query = g_strdup_printf(SELECT_ALBUM_COUNT, _filter->storage_id);
else
- snprintf(select_query, sizeof(select_query), SELECT_ALBUM_COUNT, DB_VIEW_MEDIA);
+ select_query = g_strdup_printf(SELECT_ALBUM_COUNT, DB_VIEW_MEDIA);
break;
case MEDIA_GROUP_FOLDER:
if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
- snprintf(select_query, sizeof(select_query), SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
+ select_query = g_strdup_printf(SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
else
- snprintf(select_query, sizeof(select_query), SELECT_FOLDER_COUNT, DB_VIEW_MEDIA);
+ select_query = g_strdup_printf(SELECT_FOLDER_COUNT, DB_VIEW_MEDIA);
break;
case MEDIA_GROUP_PLAYLIST:
- if (!SAFE_STRLCPY(select_query, SELECT_PLAYLIST_COUNT, sizeof(select_query))) {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
+ select_query = g_strdup(SELECT_PLAYLIST_COUNT);
break;
case MEDIA_GROUP_TAG:
- if (!SAFE_STRLCPY(select_query, SELECT_TAG_COUNT, sizeof(select_query))) {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
+ select_query = g_strdup(SELECT_TAG_COUNT);
break;
case MEDIA_GROUP_BOOKMARK:
if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
- snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_COUNT, _filter->storage_id);
+ select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT, _filter->storage_id);
else
- snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_COUNT, DB_VIEW_MEDIA);
+ select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT, DB_VIEW_MEDIA);
break;
case MEDIA_GROUP_STORAGE:
- if (!SAFE_STRLCPY(select_query, SELECT_STORAGE_COUNT, sizeof(select_query))) {
- media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
+ select_query = g_strdup(SELECT_STORAGE_COUNT);
break;
case MEDIA_GROUP_FACE:
if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
- snprintf(select_query, sizeof(select_query), SELECT_FACE_COUNT, _filter->storage_id);
+ select_query = g_strdup_printf(SELECT_FACE_COUNT, _filter->storage_id);
else
- snprintf(select_query, sizeof(select_query), SELECT_FACE_COUNT, DB_VIEW_MEDIA);
+ select_query = g_strdup_printf(SELECT_FACE_COUNT, DB_VIEW_MEDIA);
break;
default:
}
ret = __media_db_make_query(filter, &condition_query, &option_query);
- media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+ if (ret != MEDIA_CONTENT_ERROR_NONE) {
+ g_free(select_query);
+ return ret;
+ }
ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
- SAFE_FREE(condition_query);
- SAFE_FREE(option_query);
+ g_free(select_query);
+ g_free(condition_query);
+ g_free(option_query);
media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
if (sqlite3_step(stmt) == SQLITE_ROW)
memset(select_query, 0x00, sizeof(select_query));
memset(group_query, 0x00, sizeof(group_query));
- char* group_name = __media_db_get_group_name(group);
+ const char* group_name = __media_db_get_group_name(group);
if (!STRING_VALID(group_name)) {
ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
#endif
} else {
#ifdef _USE_TVPD_MODE
- snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA);
+ if (STRING_VALID(_filter->storage_id))
+ snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, _filter->storage_id);
+ else
+ snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA);
#else
- snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA);
+ if (STRING_VALID(_filter->storage_id))
+ snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_BY_STORAGE_ID, _filter->storage_id);
+ else
+ snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA);
+
#endif
need_bracket = true;
}
ret = __media_db_make_query(filter, &condition_query, &option_query);
media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+ /* If 'filter' is not NULL, 'option_query' must be created. */
if (option_query) {
tmp_option = g_strconcat(option_query, ")", NULL);
g_free(option_query);