#define SAFE_STRLCPY(dst, src, n) ((g_strlcpy(dst, src, n) < n) ? TRUE : FALSE)
#define SAFE_STRLCAT(dst, src, n) g_strlcat(dst, src, n);
#define SAFE_FREE(src) {if (src) {free(src); src = NULL; } }
-#define SAFE_G_FREE(src) {if (src) {g_free(src); src = NULL; } }
#define STRING_VALID(str) ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
#define SQLITE3_FINALIZE(x) {if (x != NULL) sqlite3_finalize(x); }
#define SQLITE3_SAFE_FREE(x) {if (x != NULL) {sqlite3_free(x); x = NULL; } }
MEDIA_INFO_SAMPLERATE,
MEDIA_INFO_CHANNEL,
MEDIA_INFO_TIMELINE,
- MEDIA_INFO_SYNC_STATUS,
MEDIA_INFO_STORAGE_UUID,
MEDIA_INFO_IS_360,
MEDIA_INFO_PLAYED_COUNT,
int width;
int height;
char *date_taken;
- char *title;
char *exposure_time;
double fnumber;
int iso;
typedef struct {
char *media_id;
- char *title;
char *album;
char *artist;
char *album_artist;
typedef struct {
char *media_id;
- char *title;
char *album;
char *artist;
char *album_artist;
int played_position;
char *modified_month;
char *storage_uuid;
- int sync_status;
unsigned int request_id;
unsigned int face_request_id;
int is_360;
#define DB_FIELD_UHD_PLAYED_COUNT "played_count"
/* DB Query Keyword */
-#define QUERY_KEYWORD_AND "AND"
-#define QUERY_KEYWORD_OR "OR"
+#define QUERY_KEYWORD_AND "AND "
+#define QUERY_KEYWORD_OR "OR "
#define QUERY_KEYWORD_ORDER_BY "ORDER BY "
#define QUERY_KEYWORD_LIMIT "limit"
#define QUERY_KEYWORD_DESC "DESC"
#define REMOVE_TAG_ITEM_FROM_TAG_MAP "DELETE FROM "DB_TABLE_TAG_MAP" WHERE tag_id=%d AND media_id='%q';"
#define UPDATE_TAG_NAME_FROM_TAG "UPDATE "DB_TABLE_TAG" SET tag_name='%q' WHERE tag_id=%d;"
#define SELECT_TAG_COUNT_BY_MEDIA_ID "SELECT COUNT(*) FROM "DB_VIEW_TAG" WHERE media_id = '%s'"
-#define SELECT_TAG_LIST_BY_MEDIA_ID "SELECT tag_id, tag_name FROM "DB_VIEW_TAG" WHERE media_id = '%s'"
+#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
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, sync_status, storage_uuid, media_360, played_count, last_played_time, last_played_position, stitched_info, extract_flag, modified_date, contact, \
+ 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, sync_status, storage_uuid, media_360, played_count, last_played_time, last_played_position, stitched_info, extract_flag, modified_date"
+ media_timeline, storage_uuid, media_360, played_count, last_played_time, last_played_position, stitched_info, extract_flag, modified_date"
#endif
/* Playlist Info */
#define UPDATE_MEDIA_INFO_IN_FACE_SCAN_LIST "UPDATE "DB_TABLE_FACE_SCAN_LIST" SET modified_time = 0 WHERE media_id IN (SELECT media_id FROM "DB_TABLE_FACE" WHERE media_face_id=%d)"
#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_id IN (SELECT storage_id FROM "DB_TABLE_STORAGE" WHERE validity=1)"
+#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 path='%q' AND storage_uuid='%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 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_PVR_GROUP_AND_COUNT_BY_STORAGE_ID "SELECT %s, COUNT(*) FROM "DB_TABLE_PVR" WHERE storage_uuid='%s'"
#define SELECT_PVR_GROUP_AND_COUNT "SELECT %s, COUNT(*) FROM "DB_TABLE_PVR" "SELECT_VALID_STORAGE_FROM_PVR
-#define SELECT_VALID_STORAGE_FROM_UHD "WHERE storage_id IN (SELECT storage_id FROM "DB_TABLE_STORAGE" WHERE validity=1)"
+#define SELECT_VALID_STORAGE_FROM_UHD "WHERE storage_uuid IN (SELECT storage_id FROM "DB_TABLE_STORAGE" WHERE validity=1)"
#define SELECT_UHD_GROUP_LIST "SELECT DISTINCT %s FROM "DB_TABLE_UHD" "SELECT_VALID_STORAGE_FROM_UHD
#define SELECT_UHD_GROUP_LIST_BY_STORAGE_ID "SELECT DISTINCT %s FROM "DB_TABLE_UHD" WHERE storage_uuid='%s'"
#define SELECT_UHD_GROUP_COUNT "SELECT COUNT(*) FROM ("SELECT_UHD_GROUP_LIST
#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'"
-int _content_query_prepare(sqlite3_stmt **stmt, char *select_query, char *condition_query, char *option_query);
-int _content_error_capi(int type, int cotent_error);
+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 _content_error_capi(int internal_error);
int _content_query_sql(char *query_str);
sqlite3 * _content_get_db_handle(void);
uid_t _content_get_uid(void);
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);
-int _media_db_get_storage_id_by_media_id(const char *media_id, char *storage_id);
-int _media_db_get_storage(filter_h filter, media_storage_cb callback, void *user_data);
-int _media_db_get_storage_id_by_media_id(const char *media_id, char *storage_id);
+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_filter_attribute_generate(filter_h filter, char **generated_condition);
-int _media_filter_attribute_option_generate(filter_h filter, char **generated_option);
-int _media_filter_attribute_option_generate_with_full_query(filter_h filter, char **generated_option);
+int _media_filter_build_condition(bool is_full, const char *condition, media_content_collation_e collate_type, char **result);
+int _media_filter_build_option(filter_h filter, char **result);
GMutex* _content_get_db_mutex(void);