MEDIA_PVR_GROUP_MAX,
MEDIA_UHD_GROUP_CONTENT_TITLE,
MEDIA_UHD_GROUP_RELEASE_DATE,
- MEDIA_UHD_GROUP_SUB_TYPE,
MEDIA_UHD_GROUP_FILE_NAME,
MEDIA_UHD_GROUP_PLAYED_COUNT,
MEDIA_UHD_GROUP_MAX,
#define PVR_PRIVATE_DATA "private_data"
#define UHD_CONTENT_TITLE "content_title"
#define UHD_RELEASE_DATE "release_date"
-#define UHD_SUB_TYPE "sub_type"
#define UHD_FILE_NAME "file_name"
#define UHD_FOLDER_ID "folder_id"
#define UHD_PLAYED_COUNT "played_count"
MEDIA_GROUP_BOOKMARK_BY_MEDIA_ID,
MEDIA_GROUP_FACE,
MEDIA_GROUP_FACE_BY_MEDIA_ID,
- MEDIA_GROUP_PVR,
- MEDIA_GROUP_UHD,
} group_list_e;
typedef struct _filter_s {
int guidance_length;
int tvmode;
int play_count;
- int highlight;
char* private_data;
unsigned int service_profile;
} media_pvr_s;
typedef struct {
char *media_id;
- char *storage_id;
char *path;
unsigned long long size;
char *content_id;
char* release_date;
time_t modified_time;
int played_position;
- int sub_type;
int played_count;
} media_uhd_s;
/* DB fiedl for UHD */
#define DB_FIELD_UHD_CONTENT_TITLE "content_title"
#define DB_FIELD_UHD_RELEASE_DATE "release_date"
-#define DB_FIELD_UHD_SUB_TYPE "sub_type"
#define DB_FIELD_UHD_FILE_NAME "file_name"
#define DB_FIELD_UHD_PLAYED_COUNT "played_count"
#define SELECT_FACE_ID "SELECT media_face_id FROM "DB_TABLE_FACE" WHERE media_id='%q' AND face_rect_x=%d AND face_rect_y=%d AND face_rect_w=%d AND face_rect_h=%d AND face_orientation=%d"
#define SELECT_VALID_STORAGE_FROM_PVR "WHERE storage_uuid IN (SELECT storage_id FROM "DB_TABLE_STORAGE" WHERE validity=1)"
-#define SELECT_PVR_COUNT "SELECT COUNT(*) FROM "DB_TABLE_PVR" "SELECT_VALID_STORAGE_FROM_PVR
#define SELECT_PVR_LIST "SELECT * FROM "DB_TABLE_PVR" "SELECT_VALID_STORAGE_FROM_PVR
-#define SELECT_PVR_COUNT_BY_STORAGE_ID SELECT_PVR_COUNT" AND storage_uuid='%s'"
#define SELECT_PVR_LIST_BY_STORAGE_ID SELECT_PVR_LIST" AND storage_uuid='%s'"
#define SELECT_PVR_FROM_PVR "SELECT * FROM "DB_TABLE_PVR" WHERE media_id='%q'"
-#define UPDATE_PVR_META_FROM_PVR "UPDATE "DB_TABLE_PVR" SET program_title=%Q, content_lock=%d, content_watch=%d, play_count=%d, highlight=%d WHERE media_id='%q'"
-#define UPDATE_PVR_LOCAL_RECORD_PVR "UPDATE "DB_TABLE_PVR" SET is_local_record=%d WHERE media_path='%q' AND storage_uuid='%q'"
+#define UPDATE_PVR_META_FROM_PVR "UPDATE "DB_TABLE_PVR" SET program_title=%Q, content_lock=%d, content_watch=%d, play_count=%d WHERE media_id='%q'"
#define SELECT_PVR_GROUP_LIST "SELECT DISTINCT %s FROM "DB_TABLE_PVR" "SELECT_VALID_STORAGE_FROM_PVR
#define SELECT_PVR_GROUP_LIST_BY_STORAGE_ID "SELECT DISTINCT %s FROM "DB_TABLE_PVR" WHERE storage_uuid='%s'"
#define SELECT_UHD_GROUP_AND_COUNT_BY_STORAGE_ID "SELECT %s, COUNT(*) FROM "DB_TABLE_UHD" WHERE storage_uuid='%s'"
#define SELECT_UHD_GROUP_AND_COUNT "SELECT %s, COUNT(*) FROM "DB_TABLE_UHD" "SELECT_VALID_STORAGE_FROM_UHD
-#define SELECT_UHD_COUNT "SELECT COUNT(*) FROM "DB_TABLE_UHD" "SELECT_VALID_STORAGE_FROM_UHD
-#define SELECT_UHD_COUNT_BY_STORAGE_ID SELECT_UHD_COUNT" AND storage_uuid='%s'"
#define SELECT_UHD_LIST "SELECT * FROM "DB_TABLE_UHD" "SELECT_VALID_STORAGE_FROM_UHD
#define SELECT_UHD_LIST_BY_STORAGE_ID SELECT_UHD_LIST" AND storage_uuid='%s'"
#define SELECT_UHD_FROM_UHD "SELECT * FROM "DB_TABLE_UHD" WHERE media_id='%q'"
-#define UPDATE_UHD_META_FROM_UHD "UPDATE "DB_TABLE_UHD" SET content_title=%Q, release_date=%Q, played_position=%d, sub_type=%d, played_count=%d WHERE media_id='%q'"
+#define UPDATE_UHD_META_FROM_UHD "UPDATE "DB_TABLE_UHD" SET content_title=%Q, played_position=%d, played_count=%d WHERE media_id='%q'"
int _content_query_prepare(const char *select_query, const char *condition_query, const char *option_query, sqlite3_stmt **stmt);
int _content_get_result(char *query, sqlite3_stmt **stmt);
int _media_db_get_storage_id_by_media_id(const char *media_id, char **storage_id);
int _media_db_get_pvr(filter_h filter, media_pvr_cb callback, void *user_data);
void _media_pvr_item_get_detail(sqlite3_stmt* stmt, media_pvr_h pvr);
-int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_group_e group, media_pvr_cb callback, void *user_data);
int _media_db_get_uhd(filter_h filter, media_uhd_cb callback, void *user_data);
void _media_uhd_item_get_detail(sqlite3_stmt* stmt, media_uhd_h uhd);
int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data);
MEDIA_PVR_ASPECTRATIO_100_221 = 4, /* 1:2.21 */
} media_pvr_aspectratio_e;
-int media_pvr_get_media_count_from_db(filter_h filter, int *media_count);
int media_pvr_foreach_media_from_db(filter_h filter, media_pvr_cb callback, void *user_data);
int media_pvr_destroy(media_pvr_h pvr);
int media_pvr_clone(media_pvr_h *dst, media_pvr_h src);
int media_pvr_get_tvmode(media_pvr_h pvr, int* tvmode);
int media_pvr_get_play_count(media_pvr_h pvr, int* play_count);
int media_pvr_get_private_data(media_pvr_h pvr, char **private_data);
-int media_pvr_get_highlight(media_pvr_h pvr, bool *highlight);
int media_pvr_set_play_count(media_pvr_h pvr, int play_count);
int media_pvr_set_program_title(media_pvr_h pvr, const char *program_title);
int media_pvr_set_content_lock(media_pvr_h pvr, bool content_lock);
int media_pvr_set_content_watch(media_pvr_h pvr, bool content_watch);
-int media_pvr_set_highlight(media_pvr_h pvr, bool highlight);
int media_pvr_update_to_db(media_pvr_h pvr);
-int media_pvr_group_foreach_media_from_db(const char *group_name, media_group_e group, filter_h filter, media_pvr_cb callback, void *user_data);
-int media_pvr_set_is_local_record(const char *pvr_path, bool is_local_record);
#ifdef __cplusplus
}
extern "C" {
#endif /* __cplusplus */
-int media_uhd_get_media_count_from_db(filter_h filter, int *media_count);
int media_uhd_foreach_media_from_db(filter_h filter, media_uhd_cb callback, void *user_data);
int media_uhd_destroy(media_uhd_h uhd);
int media_uhd_clone(media_uhd_h *dst, media_uhd_h src);
int media_uhd_get_uhd_from_db(const char *media_id, media_uhd_h *uhd);
int media_uhd_get_media_id(media_uhd_h uhd, char **media_id);
-int media_uhd_get_storage_id(media_uhd_h uhd, char **storage_id);
int media_uhd_get_path(media_uhd_h uhd, char **path);
int media_uhd_get_size(media_uhd_h uhd, unsigned long long *size);
int media_uhd_get_content_id(media_uhd_h uhd, char **content_id);
int media_uhd_get_release_date(media_uhd_h uhd, char **release_date);
int media_uhd_get_modified_time(media_uhd_h uhd, time_t *modified_time);
int media_uhd_get_played_position(media_uhd_h uhd, int *played_position);
-int media_uhd_get_sub_type(media_uhd_h uhd, int *sub_type);
int media_uhd_get_played_count(media_uhd_h uhd, int *played_count);
int media_uhd_set_played_position(media_uhd_h uhd, int played_position);
int media_uhd_set_content_title(media_uhd_h uhd, const char *content_title);
-int media_uhd_set_release_date(media_uhd_h uhd, const char *release_date);
-int media_uhd_set_sub_type(media_uhd_h uhd, int sub_type);
int media_uhd_set_played_count(media_uhd_h uhd, int played_count);
int media_uhd_update_to_db(media_uhd_h uhd);
Name: capi-content-media-content
Summary: A Media content library in Tizen Native API
-Version: 0.4.28
+Version: 0.4.29
Release: 0
Group: Multimedia/API
License: Apache-2.0
return DB_FIELD_UHD_CONTENT_TITLE;
case MEDIA_UHD_GROUP_RELEASE_DATE:
return DB_FIELD_UHD_RELEASE_DATE;
- case MEDIA_UHD_GROUP_SUB_TYPE:
- return DB_FIELD_UHD_SUB_TYPE;
case MEDIA_UHD_GROUP_FILE_NAME:
return DB_FIELD_UHD_FILE_NAME;
case MEDIA_UHD_GROUP_PLAYED_COUNT:
#endif
break;
-#ifdef _USE_TVPD_MODE
- case MEDIA_GROUP_PVR:
- if (_filter && STRING_VALID(_filter->storage_id))
- select_query = g_strdup_printf(SELECT_PVR_COUNT_BY_STORAGE_ID, _filter->storage_id);
- else
- select_query = g_strdup(SELECT_PVR_COUNT);
- break;
-
- case MEDIA_GROUP_UHD:
- if (_filter && STRING_VALID(_filter->storage_id))
- select_query = g_strdup_printf(SELECT_UHD_COUNT_BY_STORAGE_ID, _filter->storage_id);
- else
- select_query = g_strdup(SELECT_UHD_COUNT);
- break;
-#endif
default:
content_error("INVALID_PARAMETER");
return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
return ret;
}
-int _media_db_get_pvr_group_item(const char *group_name, filter_h filter, media_group_e group, media_pvr_cb callback, void *user_data)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- char select_query[DEFAULT_QUERY_SIZE] = {0, };
- char *condition_query = NULL;
- char *option_query = NULL;
- sqlite3_stmt *stmt = NULL;
- filter_s *_filter = (filter_s *)filter;
-
- if (group_name) {
- if (_filter && STRING_VALID(_filter->storage_id))
- sqlite3_snprintf(sizeof(select_query), select_query, SELECT_PVR_FROM_GROUP_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group), group_name);
- else
- sqlite3_snprintf(sizeof(select_query), select_query, SELECT_PVR_FROM_GROUP, __media_db_get_group_name(group), group_name);
- } else {
- if (_filter && STRING_VALID(_filter->storage_id))
- snprintf(select_query, sizeof(select_query), SELECT_PVR_FROM_GROUP_NULL_BY_STORAGE_ID, _filter->storage_id, __media_db_get_group_name(group));
- else
- snprintf(select_query, sizeof(select_query), SELECT_PVR_FROM_GROUP_NULL, __media_db_get_group_name(group));
- }
-
- ret = __media_db_make_query(filter, &condition_query, &option_query);
- content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
-
- ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
- g_free(condition_query);
- g_free(option_query);
- content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
-
- while (sqlite3_step(stmt) == SQLITE_ROW) {
- media_pvr_s *item = g_new0(media_pvr_s, 1);
-
- _media_pvr_item_get_detail(stmt, (media_pvr_h)item);
-
- if (callback((media_pvr_h)item, user_data) == false) {
- media_info_destroy((media_pvr_h)item);
- break;
- }
-
- media_pvr_destroy((media_pvr_h)item);
- }
-
- SQLITE3_FINALIZE(stmt);
-
- return ret;
-}
-
typedef enum {
MEDIA_PVR_MEDIA_ID = 0,
MEDIA_PVR_STORAGE_ID,
MEDIA_PVR_TVMODE,
MEDIA_PVR_PLAY_COUNT,
MEDIA_PVR_PRIVATE_DATA,
- MEDIA_PVR_HIGHLIGHT,
} media_pvr_field_e;
void _media_pvr_item_get_detail(sqlite3_stmt* stmt, media_pvr_h pvr)
_pvr->guidance_length = sqlite3_column_int(stmt, MEDIA_PVR_GUIDANCE_LENGTH);
_pvr->tvmode = sqlite3_column_int(stmt, MEDIA_PVR_TVMODE);
_pvr->play_count = sqlite3_column_int(stmt, MEDIA_PVR_PLAY_COUNT);
- _pvr->highlight = sqlite3_column_int(stmt, MEDIA_PVR_HIGHLIGHT);
return;
}
MEDIA_UHD_RELEASE_DATE,
MEDIA_UHD_MODIFIED_TIME,
MEDIA_UHD_PLAYED_POSITION,
- MEDIA_UHD_SUB_TYPE,
MEDIA_UHD_PLAYED_COUNT,
} media_uhd_field_e;
media_uhd_s *_uhd = (media_uhd_s*)uhd;
_uhd->media_id = g_strdup((const char *)sqlite3_column_text(stmt, MEDIA_UHD_MEDIA_ID));
- _uhd->storage_id = g_strdup((const char *)sqlite3_column_text(stmt, MEDIA_UHD_STORAGE_ID));
_uhd->path = g_strdup((const char *)sqlite3_column_text(stmt, MEDIA_UHD_PATH));
_uhd->size = (unsigned long long)sqlite3_column_int64(stmt, MEDIA_UHD_SIZE);
_uhd->content_id = g_strdup((const char *)sqlite3_column_text(stmt, MEDIA_UHD_CONTENT_ID));
_uhd->release_date = g_strdup((const char *)sqlite3_column_text(stmt, MEDIA_UHD_RELEASE_DATE));
_uhd->modified_time = sqlite3_column_int(stmt, MEDIA_UHD_MODIFIED_TIME);
_uhd->played_position = sqlite3_column_int(stmt, MEDIA_UHD_PLAYED_POSITION);
- _uhd->sub_type = sqlite3_column_int(stmt, MEDIA_UHD_SUB_TYPE);
_uhd->played_count = sqlite3_column_int(stmt, MEDIA_UHD_PLAYED_COUNT);
return;
#include <media_pvr.h>
-int media_pvr_get_media_count_from_db(filter_h filter, int *media_count)
-{
- content_retip_if_fail(media_count);
-
- return _media_db_get_group_item_count(NULL, filter, MEDIA_GROUP_PVR, media_count);
-}
-
int media_pvr_foreach_media_from_db(filter_h filter, media_pvr_cb callback, void *user_data)
{
content_retip_if_fail(callback);
return MEDIA_CONTENT_ERROR_NONE;
}
-int media_pvr_get_highlight(media_pvr_h pvr, bool *highlight)
-{
- media_pvr_s *_pvr = (media_pvr_s*)pvr;
-
- content_retip_if_fail(pvr);
- content_retip_if_fail(highlight);
-
- *highlight = _pvr->highlight;
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
int media_pvr_set_play_count(media_pvr_h pvr, int play_count)
{
media_pvr_s *_pvr = (media_pvr_s*)pvr;
return MEDIA_CONTENT_ERROR_NONE;
}
-int media_pvr_set_highlight(media_pvr_h pvr, bool highlight)
-{
- media_pvr_s *_pvr = (media_pvr_s*)pvr;
-
- content_retip_if_fail(pvr);
-
- _pvr->highlight = highlight;
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
int media_pvr_update_to_db(media_pvr_h pvr)
{
int ret = MEDIA_CONTENT_ERROR_NONE;
content_retip_if_fail(STRING_VALID(_pvr->media_id));
content_retip_if_fail(STRING_VALID(_pvr->path));
- update_query = sqlite3_mprintf(UPDATE_PVR_META_FROM_PVR, _pvr->program_title, _pvr->content_lock, _pvr->content_watch, _pvr->play_count, _pvr->highlight, _pvr->media_id);
+ update_query = sqlite3_mprintf(UPDATE_PVR_META_FROM_PVR, _pvr->program_title, _pvr->content_lock, _pvr->content_watch, _pvr->play_count, _pvr->media_id);
ret = _content_query_sql(update_query);
sqlite3_free(update_query);
return ret;
}
-
-int media_pvr_group_foreach_media_from_db(const char *group_name, media_group_e group, filter_h filter, media_pvr_cb callback, void *user_data)
-{
- content_retip_if_fail(callback);
- content_retvm_if((group < MEDIA_PVR_GROUP_DURATION) || (group >= MEDIA_GROUP_MAX), MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid group");
-
- return _media_db_get_pvr_group_item(group_name, filter, group, callback, user_data);
-}
-
-int media_pvr_set_is_local_record(const char *pvr_path, bool is_local_record)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- char *update_query = NULL;
- char storage_id[MEDIA_CONTENT_UUID_SIZE+1] = {0,};
-
- content_retip_if_fail(pvr_path);
-
- /*get the storage uuid*/
- ret = media_svc_get_storage_id(_content_get_db_handle(), pvr_path, storage_id, tzplatform_getuid(TZ_USER_NAME));
- content_retvm_if(ret != MS_MEDIA_ERR_NONE, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid pvr path[%s] error[%d]", pvr_path, ret);
-
- content_error("storage uuid [%s]", storage_id);
- update_query = sqlite3_mprintf(UPDATE_PVR_LOCAL_RECORD_PVR, is_local_record, pvr_path, storage_id);
-
- ret = _content_query_sql(update_query);
- sqlite3_free(update_query);
-
- return ret;
-}
#endif
#include <media_util_private.h>
#include <media_uhd.h>
-int media_uhd_get_media_count_from_db(filter_h filter, int *media_count)
-{
- content_retip_if_fail(media_count);
-
- return _media_db_get_group_item_count(NULL, filter, MEDIA_GROUP_UHD, media_count);
-}
-
int media_uhd_foreach_media_from_db(filter_h filter, media_uhd_cb callback, void *user_data)
{
content_retip_if_fail(callback);
content_retip_if_fail(uhd);
g_free(_uhd->media_id);
- g_free(_uhd->storage_id);
g_free(_uhd->path);
g_free(_uhd->content_id);
g_free(_uhd->content_title);
media_uhd_s *_dst = g_new0(media_uhd_s, 1);
_dst->media_id = g_strdup(_src->media_id);
- _dst->storage_id = g_strdup(_src->storage_id);
_dst->path = g_strdup(_src->path);
_dst->content_id = g_strdup(_src->content_id);
_dst->content_title = g_strdup(_src->content_title);
_dst->size = _src->size;
_dst->modified_time = _src->modified_time;
_dst->played_position = _src->played_position;
- _dst->sub_type = _src->sub_type;
_dst->played_count = _src->played_count;
*dst = (media_uhd_h)_dst;
return MEDIA_CONTENT_ERROR_NONE;
}
-int media_uhd_get_storage_id(media_uhd_h uhd, char **storage_id)
-{
- media_uhd_s *_uhd = (media_uhd_s*)uhd;
-
- content_retip_if_fail(uhd);
- content_retip_if_fail(storage_id);
-
- *storage_id = g_strdup(_uhd->storage_id);
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
int media_uhd_get_path(media_uhd_h uhd, char **path)
{
media_uhd_s *_uhd = (media_uhd_s*)uhd;
return MEDIA_CONTENT_ERROR_NONE;
}
-int media_uhd_get_sub_type(media_uhd_h uhd, int *sub_type)
-{
- media_uhd_s *_uhd = (media_uhd_s*)uhd;
-
- content_retip_if_fail(uhd);
- content_retip_if_fail(sub_type);
-
- *sub_type = _uhd->sub_type;
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
int media_uhd_get_played_count(media_uhd_h uhd, int *played_count)
{
media_uhd_s *_uhd = (media_uhd_s*)uhd;
return MEDIA_CONTENT_ERROR_NONE;
}
-int media_uhd_set_release_date(media_uhd_h uhd, const char *release_date)
-{
- media_uhd_s *_uhd = (media_uhd_s*)uhd;
-
- content_retip_if_fail(uhd);
- content_retip_if_fail(STRING_VALID(release_date));
-
- g_free(_uhd->release_date);
- _uhd->release_date = g_strdup(release_date);
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
-int media_uhd_set_sub_type(media_uhd_h uhd, int sub_type)
-{
- media_uhd_s *_uhd = (media_uhd_s*)uhd;
-
- content_retip_if_fail(uhd);
- content_retip_if_fail(sub_type >= 0);
-
- _uhd->sub_type = sub_type;
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
int media_uhd_set_played_count(media_uhd_h uhd, int played_count)
{
media_uhd_s *_uhd = (media_uhd_s*)uhd;
content_retip_if_fail(STRING_VALID(_uhd->media_id));
content_retip_if_fail(STRING_VALID(_uhd->path));
- update_query = sqlite3_mprintf(UPDATE_UHD_META_FROM_UHD, _uhd->content_title, _uhd->release_date, _uhd->played_position, _uhd->sub_type, _uhd->played_count, _uhd->media_id);
+ update_query = sqlite3_mprintf(UPDATE_UHD_META_FROM_UHD, _uhd->content_title, _uhd->played_position, _uhd->played_count, _uhd->media_id);
ret = _content_query_sql(update_query);
sqlite3_free(update_query);
content_error("Fail to media_pvr_get_aspectratio");
content_debug("aspectratio [%d]", i_value);
- ret = media_pvr_get_highlight(pvr, &b_value);
- if (ret != MEDIA_CONTENT_ERROR_NONE)
- content_error("Fail to media_pvr_get_highlight");
- content_debug("highlight [%d]", b_value);
-
-
return TRUE;
}
int test_pvr()
{
int ret = MEDIA_CONTENT_ERROR_NONE;
- int media_count = 0;
content_debug("\n============PVR Test============\n\n");
test_tv_filter_create();
- ret = media_pvr_get_media_count_from_db(g_tv_filter, &media_count);
- if (ret != MEDIA_CONTENT_ERROR_NONE)
- content_error("media_pvr_get_media_count_from_db failed: %d", ret);
- else
- content_debug("media_count : [%d]", media_count);
-
ret = media_pvr_foreach_media_from_db(g_tv_filter, pvr_item_cb, NULL);
if (ret != MEDIA_CONTENT_ERROR_NONE)
content_error("media_pvr_foreach_media_from_db is failed");
if (ret != MEDIA_CONTENT_ERROR_NONE)
content_error("Fail to media_pvr_set_program_title");
- ret = media_pvr_set_highlight(pvr, TRUE);
- if (ret != MEDIA_CONTENT_ERROR_NONE)
- content_error("Fail to media_pvr_set_highlight");
-
ret = media_pvr_update_to_db(pvr);
if (ret != MEDIA_CONTENT_ERROR_NONE)
content_error("Fail to media_pvr_update_to_db");