int media_info_get_media_info_by_path_from_db(const char* path, media_info_h* media);
-#ifdef _USE_SENIOR_MODE
-int media_info_insert_to_db_with_contact_data(const char *path, const char* contact, const char* app_data, media_info_h *info);
-int media_info_delete_contact_from_db(const char* contact, const char* storage_id);
-int media_info_delete_item(const char *media_id);
-int media_info_get_contact(media_info_h media, char **contact);
-int media_info_get_app_data(media_info_h media, char **app_data);
-int media_info_set_contact(media_info_h media, const char *contact);
-int media_info_set_app_data(media_info_h media, const char *app_data);
-#endif
/********** media_folder **********/
-
-#ifdef _USE_SENIOR_MODE
-int media_folder_foreach_media_from_db_by_union_select(const char* folder_id, filter_h filter1, filter_h filter2, media_info_cb callback, void* user_data);
-#endif
int media_folder_get_scan_status(const char *storage_uuid, char* path, media_folder_scan_status_e *scan_status);
int media_folder_reset_scan_status(const char *storage_uuid, const char* path);
extern "C" {
#endif /* __cplusplus */
-#if 0
-#ifndef _USE_SENIOR_MODE
-#define _USE_SENIOR_MODE
-#endif
-#endif
-
/**
* @file media_content_type.h
* @brief This file contains API related to media-content enumerations for media data types, groups, orientations, \n
MEDIA_CONTENT_GROUP_RATING = 20, /**< Media group ID for a rating*/
MEDIA_CONTENT_GROUP_MODIFIED_MONTH = 29, /**< Media group ID for the modified time*/
MEDIA_CONTENT_GROUP_MODIFIED_DATE, /**< Media group ID for the modified date*/
-#ifdef _USE_SENIOR_MODE
- MEDIA_CONTENT_GROUP_CONTACT,
-#endif
MEDIA_CONTENT_GROUP_ALBUM,
MEDIA_CONTENT_GROUP_MAX, /**< Invalid media group ID*/
MEDIA_PVR_GROUP_DURATION,
#define MEDIA_MODIFIED_DATE "modified_date" /**< media modified date */
#define MEDIA_STITCHED_INFO "stitched_info"
-#ifdef _USE_SENIOR_MODE
-#define MEDIA_CONTACT "contact"
-#define MEDIA_APP_DATA "app_data"
-#endif
-
#define PVR_DURATION "duration"
#define PVR_TIME_ZONE "timezone"
#define PVR_PTC "ptc"
MEDIA_INFO_STITCHED_INFO,
MEDIA_INFO_EXTRACT_FLAG,
MEDIA_INFO_MODIFIED_MONTH,
-#ifdef _USE_SENIOR_MODE
- MEDIA_INFO_CONTACT,
- MEDIA_INFO_APP_DATA,
-#endif
MEDIA_INFO_ITEM_MAX,
} media_info_item_e;
int is_360;
int stitched_info;
int extract_flag;
-#ifdef _USE_SENIOR_MODE
- char* contact;
- char* app_data;
-#endif
image_meta_s *image_meta;
video_meta_s *video_meta;
audio_meta_s *audio_meta;
#define DB_FIELD_MEDIA_MODIFIED_MONTH "modified_month"
#define DB_FIELD_MEDIA_MODIFIED_DATE "modified_date"
#define DB_FIELD_MEDIA_STITCHED_INFO "stitched_info"
-#ifdef _USE_SENIOR_MODE
-#define DB_FIELD_MEDIA_CONTACT "contact"
-#define DB_FIELD_MEDIA_APP_DATA "app_data"
-#endif
/* DB field for PVR*/
#define DB_FIELD_PVR_DURATION "duration"
#define SELECT_TAG_LIST_BY_MEDIA_ID "SELECT tag_id, tag_name FROM "DB_VIEW_TAG" WHERE media_id = '%s' "
/* Get Media list of Group */
-#ifdef _USE_SENIOR_MODE
-#define MEDIA_INFO_ITEM "media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, media_thumbnail_path, media_description, \
- media_rating, media_favourite, media_is_drm, media_storage_type, media_longitude, media_latitude, media_altitude, exposure_time, fnumber, iso, \
- model, media_width, media_height, media_datetaken, media_orientation, media_title, media_album, media_artist, media_album_artist, media_genre, \
- media_composer, media_year, media_recorded_date, media_copyright, media_track_num, media_bitrate, media_bitpersample, media_duration, media_samplerate, media_channel, \
- media_timeline, storage_uuid, media_360, played_count, last_played_time, last_played_position, stitched_info, extract_flag, modified_date, contact, \
- app_data"
-#else
#define MEDIA_INFO_ITEM "media_id, media_path, media_display_name, media_type, media_mime_type, media_size, media_added_time, media_modified_time, media_thumbnail_path, media_description, \
media_rating, media_favourite, media_is_drm, media_storage_type, media_longitude, media_latitude, media_altitude, exposure_time, fnumber, iso, \
model, media_width, media_height, media_datetaken, media_orientation, media_title, media_album, media_artist, media_album_artist, media_genre, \
media_composer, media_year, media_recorded_date, media_copyright, media_track_num, media_bitrate, media_bitpersample, media_duration, media_samplerate, media_channel, \
media_timeline, storage_uuid, media_360, played_count, last_played_time, last_played_position, stitched_info, extract_flag, modified_date"
-#endif
/* Playlist Info */
#define INSERT_PLAYLIST_TO_PLAYLIST "INSERT INTO "DB_TABLE_PLAYLIST" (playlist_name) VALUES (%Q)"
int _media_db_get_group_item_count(const char *group_name, filter_h filter, group_list_e group_type, int *item_count);
int _media_db_get_group_item_by_id(int group_id, filter_h filter, media_info_cb callback, void *user_data, group_list_e group_type);
int _media_db_get_group_item(const char *group_name, filter_h filter, media_info_cb callback, void *user_data, group_list_e group_type);
-#ifdef _USE_SENIOR_MODE
-int _content_query_prepare_by_union_select(sqlite3_stmt **stmt, char *select_query1, char *condition_query1, char *option_query1, char *select_query2, char *condition_query2, char *option_query2);
-int _media_db_get_group_item_by_union_select(const char *group_name, filter_h filter1, filter_h filter2, media_info_cb callback, void *user_data);
-#endif
int _media_db_get_media_group_item_count(const char *group_name, filter_h filter, media_group_e group, int *item_count);
int _media_db_get_media_group_item(const char *group_name, filter_h filter, media_group_e group, media_info_cb callback, void *user_data);
int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data);
char * _media_content_replace_path_in_condition(const char *condition);
int _media_content_replace_path(const char *path, char *replace_path);
-#ifdef _USE_SENIOR_MODE
-bool _media_content_is_support_senior_mode();
-#endif
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
Name: capi-content-media-content
Summary: A Media content library in Tizen Native API
-Version: 0.4.9
+Version: 0.4.10
Release: 0
Group: Multimedia/API
License: Apache-2.0
return MEDIA_CONTENT_ERROR_NONE;
}
-#ifdef _USE_SENIOR_MODE
-int _content_query_prepare_by_union_select(sqlite3_stmt **stmt, char *select_query1, char *condition_query1, char *option_query1, char *select_query2, char *condition_query2, char *option_query2)
-{
- int len = 0;
- int err = MEDIA_CONTENT_ERROR_NONE;
- char query[MAX_QUERY_SIZE] = {0, };
-
- content_retip_if_fail(_content_get_db_handle());
- content_retip_if_fail(select_query1);
- content_retip_if_fail(select_query2);
-
- if (!STRING_VALID(condition_query1))
- condition_query1 = (char *)" ";
-
- if (!STRING_VALID(option_query1))
- option_query1 = (char *)" ";
-
- if (!STRING_VALID(condition_query2))
- condition_query2 = (char *)" ";
-
- if (!STRING_VALID(option_query2))
- option_query2 = (char *)" ";
-
- len = snprintf(query, sizeof(query), "SELECT * FROM (%s %s %s) as table1 UNION ALL SELECT * FROM (%s %s %s) as table2",
- select_query1, condition_query1, option_query1, select_query2, condition_query2, option_query2);
- if (len > 0 && len < sizeof(query)) {
- query[len] = '\0';
- } else if (len >= sizeof(query)) {
- query[MAX_QUERY_SIZE -1] = '\0';
- } else {
- content_error("snprintf failed");
- return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
- }
-
- content_sec_debug("Query : [%s]", query);
-
- err = sqlite3_prepare_v2(_content_get_db_handle(), query, strlen(query), stmt, NULL);
- if (err != SQLITE_OK) {
- content_error("DB_FAILED(0x%08x) fail to sqlite3_prepare(), %s", MEDIA_CONTENT_ERROR_DB_FAILED, sqlite3_errmsg(_content_get_db_handle()));
-
- if (err == SQLITE_BUSY) {
- content_error(" BUSY ERROR");
- return MEDIA_CONTENT_ERROR_DB_BUSY;
- } else if (err == SQLITE_PERM) {
- content_error("PERMISSION EROR");
- return MEDIA_CONTENT_ERROR_PERMISSION_DENIED;
- } else {
- content_error("OTHER ERROR");
- return MEDIA_CONTENT_ERROR_DB_FAILED;
- }
- }
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-#endif
-
int _content_error_capi(int internal_error)
{
if (internal_error == MS_MEDIA_ERR_NONE)
return DB_FIELD_MEDIA_MODIFIED_DATE;
case MEDIA_CONTENT_GROUP_MODIFIED_DATE:
return DB_FIELD_MEDIA_MODIFIED_DATE;
-#endif
-#ifdef _USE_SENIOR_MODE
- case MEDIA_CONTENT_GROUP_CONTACT:
- return DB_FIELD_MEDIA_CONTACT;
-#endif
-#ifdef _USE_TVPD_MODE
case MEDIA_CONTENT_GROUP_ALBUM:
return DB_FIELD_MEDIA_ALBUM;
case MEDIA_PVR_GROUP_DURATION:
return ret;
}
-#ifdef _USE_SENIOR_MODE
-int _media_db_get_group_item_by_union_select(const char *group_name, filter_h filter1, filter_h filter2, media_info_cb callback, void *user_data)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- char select_query1[MAX_QUERY_SIZE] = {0, };
- char *condition_query1 = NULL;
- char *option_query1 = NULL;
- char select_query2[MAX_QUERY_SIZE] = {0, };
- char *condition_query2 = NULL;
- char *option_query2 = NULL;
- sqlite3_stmt *stmt = NULL;
- filter_s *_filter1 = (filter_s *)filter1;
- filter_s *_filter2 = (filter_s *)filter2;
-
- if ((_filter1 != NULL) && STRING_VALID(_filter1->storage_id))
- snprintf(select_query1, sizeof(select_query1), SELECT_MEDIA_FROM_FOLDER, _filter1->storage_id, group_name);
- else
- snprintf(select_query1, sizeof(select_query1), SELECT_MEDIA_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
-
- ret = __media_db_make_query(filter1, &condition_query1, &option_query1);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- SAFE_FREE(condition_query1);
- SAFE_FREE(option_query1);
- content_error("create select_query1 failed");
- return ret;
- }
-
- if ((_filter2 != NULL) && STRING_VALID(_filter2->storage_id))
- snprintf(select_query2, sizeof(select_query2), SELECT_MEDIA_FROM_FOLDER, _filter2->storage_id, group_name);
- else
- snprintf(select_query2, sizeof(select_query2), SELECT_MEDIA_FROM_FOLDER, DB_VIEW_MEDIA, group_name);
-
- ret = __media_db_make_query(filter2, &condition_query2, &option_query2);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- SAFE_FREE(condition_query1);
- SAFE_FREE(option_query1);
- SAFE_FREE(condition_query2);
- SAFE_FREE(option_query2);
- content_error("create select_query2 failed");
- return ret;
- }
-
- ret = _content_query_prepare_by_union_select(&stmt, select_query1, condition_query1, option_query1, select_query2, condition_query2, option_query2);
- SAFE_FREE(condition_query1);
- SAFE_FREE(option_query1);
- SAFE_FREE(condition_query2);
- SAFE_FREE(option_query2);
- content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
-
- while (sqlite3_step(stmt) == SQLITE_ROW) {
- media_info_s *item = g_new0(media_info_s, 1);
-
- _media_info_item_get_detail(stmt, (media_info_h)item);
-
- if (callback((media_info_h)item, user_data) == false) {
- media_info_destroy((media_info_h)item);
- break;
- }
-
- media_info_destroy((media_info_h)item);
- }
-
- SQLITE3_FINALIZE(stmt);
-
- return ret;
-}
-#endif
-
int _media_db_get_media_group_item_count(const char *group_name, filter_h filter, media_group_e group, int *item_count)
{
int ret = MEDIA_CONTENT_ERROR_NONE;
return ret;
}
-#ifdef _USE_SENIOR_MODE
-int media_folder_foreach_media_from_db_by_union_select(const char* folder_id, filter_h filter1, filter_h filter2, media_info_cb callback, void* user_data)
-{
- content_retip_if_fail(STRING_VALID(folder_id));
- content_retip_if_fail(callback);
-
- return _media_db_get_group_item_by_union_select(folder_id, filter1, filter2, callback, user_data);
-}
-#endif
-
int media_folder_destroy(media_folder_h folder)
{
media_folder_s *_folder = (media_folder_s*)folder;
g_free(_media->modified_month);
#endif
g_free(_media->storage_uuid);
-#ifdef _USE_SENIOR_MODE
- g_free(_media->contact);
- g_free(_media->app_data);
-#endif
if (_media->image_meta) {
g_free(_media->image_meta->media_id);
#ifdef _USE_TVPD_MODE
_dst->modified_month = g_strdup(_src->modified_month);
#endif
-#ifdef _USE_SENIOR_MODE
- _dst->contact = g_strdup(_src->contact);
- _dst->app_data = g_strdup(_src->app_data);
-#endif
-
_dst->media_type = _src->media_type;
_dst->size = _src->size;
_dst->added_time = _src->added_time;
return MEDIA_CONTENT_ERROR_NONE;
}
-#ifdef _USE_SENIOR_MODE
-int media_info_set_contact(media_info_h media, const char *contact)
-{
- media_info_s *_media = (media_info_s*)media;
-
- content_retip_if_fail(media);
-
- g_free(_media->contact);
- _media->contact = g_strdup(contact);
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
-int media_info_set_app_data(media_info_h media, const char *app_data)
-{
- media_info_s *_media = (media_info_s*)media;
-
- content_retip_if_fail(media);
-
- g_free(_media->app_data);
- _media->app_data = g_strdup(app_data);
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
-int media_info_insert_to_db_with_contact_data(const char *path, const char* contact, const char* app_data, media_info_h *info)
-{
- int ret = media_info_insert_to_db(path, info);
- content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "media_info_insert_to_db [%s] failed", path);
-
- ret = media_info_set_contact(*info, contact);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- content_error("media_info_set_contact [%s] failed", contact);
-
- media_info_s* _media_info = (media_info_s*)*info;
- ret = media_info_delete_from_db(_media_info->media_id);
- content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "media_info_delete_from_db [%s] failed", _media_info->media_id);
-
- media_info_destroy(*info);
- return ret;
- }
-
- ret = media_info_set_app_data(*info, app_data);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- content_error("media_info_set_app_data [%s] failed", app_data);
-
- media_info_s* _media_info = (media_info_s*)*info;
- ret = media_info_delete_from_db(_media_info->media_id);
- content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "media_info_delete_from_db [%s] failed", _media_info->media_id);
-
- media_info_destroy(*info);
- return ret;
- }
-
- ret = media_info_update_to_db(*info);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- content_error("media_info_update_to_db [] failed");
-
- media_info_s* _media_info = (media_info_s*)*info;
- ret = media_info_delete_from_db(_media_info->media_id);
- content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "media_info_delete_from_db [%s] failed", _media_info->media_id);
-
- media_info_destroy(*info);
- return ret;
- }
-
- return ret;
-}
-
-int media_info_delete_contact_from_db(const char* contact, const char* storage_id)
-{
- return -1;
-}
-
-int media_info_delete_item(const char *media_id)
-{
- int ret = MEDIA_CONTENT_ERROR_NONE;
- char *path = NULL;
- char *storage_id = NULL;
-
- content_retip_if_fail(STRING_VALID(media_id));
-
- ret = __media_info_get_media_path_by_id_from_db(media_id, &path);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- content_error("__media_info_get_media_path_by_id_from_db failed : %d", ret);
- g_free(path);
- return ret;
- }
-
- ret = _media_db_get_storage_id_by_media_id(media_id, &storage_id);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- content_error("_media_db_get_storage_id_by_media_id failed : %d", ret);
- g_free(path);
- return ret;
- }
-
- ret = media_svc_delete_item_by_path(_content_get_db_handle(), storage_id, path, tzplatform_getuid(TZ_USER_NAME));
- g_free(storage_id);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- content_error("remove from DB failed : %d", ret);
- g_free(path);
- return ret;
- }
-
- ret = media_svc_remove_file(path);
- g_free(path);
-
- return _content_error_capi(ret);
-}
-
-int media_info_get_contact(media_info_h media, char **contact)
-{
- media_info_s *_media = (media_info_s*)media;
-
- content_retip_if_fail(media);
- content_retip_if_fail(contact);
-
- *contact = g_strdup(_media->contact);
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-
-int media_info_get_app_data(media_info_h media, char **app_data)
-{
- media_info_s *_media = (media_info_s*)media;
-
- content_retip_if_fail(media);
- content_retip_if_fail(app_data);
-
- *app_data = g_strdup(_media->app_data);
-
- return MEDIA_CONTENT_ERROR_NONE;
-}
-#endif
#ifdef _USE_TVPD_MODE
int media_info_get_played_count(media_info_h media, int *played_count)
{
media_svc_get_pinyin(_media->description, &description_pinyin);
}
#ifdef _USE_TVPD_MODE
-#ifdef _USE_SENIOR_MODE
- if (_media_content_is_support_senior_mode()) {
- set_sql = sqlite3_mprintf("media_display_name=%Q, media_description=%Q, media_longitude=%f, media_latitude=%f, media_file_name_pinyin=%Q, media_description_pinyin=%Q, played_count=%d, last_played_time=%d, last_played_position=%d, media_rating=%d, media_favourite=%d, contact=%Q, app_data=%Q",
- _media->display_name, _media->description, _media->longitude, _media->latitude, file_name_pinyin, description_pinyin, _media->played_count, _media->played_time, _media->played_position, _media->rating, _media->favourite, _media->contact, _media->app_data);
- } else
-#endif
- {
- set_sql = sqlite3_mprintf("media_display_name=%Q, media_description=%Q, media_longitude=%f, media_latitude=%f, media_file_name_pinyin=%Q, media_description_pinyin=%Q, played_count=%d, last_played_time=%d, last_played_position=%d, media_rating=%d, media_favourite=%d",
+ set_sql = sqlite3_mprintf("media_display_name=%Q, media_description=%Q, media_longitude=%f, media_latitude=%f, media_file_name_pinyin=%Q, media_description_pinyin=%Q, played_count=%d, last_played_time=%d, last_played_position=%d, media_rating=%d, media_favourite=%d",
_media->display_name, _media->description, _media->longitude, _media->latitude, file_name_pinyin, description_pinyin, _media->played_count, _media->played_time, _media->played_position, _media->rating, _media->favourite);
- }
#else
set_sql = sqlite3_mprintf("media_display_name=%Q, media_description=%Q, media_longitude=%f, media_latitude=%f, media_file_name_pinyin=%Q, media_description_pinyin=%Q, media_rating=%d, media_favourite=%d", _media->display_name, _media->description, _media->longitude, _media->latitude, file_name_pinyin, description_pinyin, _media->rating, _media->favourite);
#endif
#include <system_info.h>
#include <sys/stat.h>
-#ifdef _USE_SENIOR_MODE
-#include <media_util_private.h>
-#endif
-
static int MEDIA_CONTENT_OTHER_SUPPORT = -1;
bool _media_util_check_support_media_type(const char *path)
return MEDIA_CONTENT_ERROR_NONE;
}
-#ifdef _USE_SENIOR_MODE
-bool _media_content_is_support_senior_mode()
-{
- bool bSupportSeniorMode = false;
-
- if (system_info_get_value_bool(SYSTEM_INFO_KEY_GET_SENIOR_MODE_SUPPORTED, &bSupportSeniorMode) != SYSTEM_INFO_ERROR_NONE) {
- content_debug("Get senior mode support failed");
- return false;
- }
- /* content_debug("Senior mode Support : [%d]", bSupportSeniorMode); */
- return bSupportSeniorMode;
-}
-#endif
-