char *media_id;
time_t marked_time;
char *thumbnail_path;
+ char *name;
} media_bookmark_s;
typedef struct {
/* DB field for bookmark */
#define DB_FIELD_BOOKMARK_ID "bookmark_id"
#define DB_FIELD_BOOKMARK_MARKED_TIME "marked_time"
+#define DB_FIELD_BOOKMARK_NAME "name"
/* DB field for album*/
#define DB_FIELD_ALBUM_ID "album_id"
/* Bookmark */
#define INSERT_BOOKMARK_TO_BOOKMARK "INSERT INTO "DB_TABLE_BOOKMARK" (media_uuid, marked_time, thumbnail_path) VALUES ('%q', '%d', %Q)"
#define SELECT_BOOKMARK_COUNT_BY_MEDIA_ID "SELECT COUNT(*) FROM "BOOKMARK_MEDIA_JOIN" AND b.media_uuid='%s'"
-#define SELECT_BOOKMARK_LIST_BY_MEDIA_ID "SELECT b.bookmark_id, b.media_uuid, b.marked_time, b.thumbnail_path FROM "BOOKMARK_MEDIA_JOIN" AND b.media_uuid='%s'"
+#define SELECT_BOOKMARK_LIST_BY_MEDIA_ID "SELECT b.bookmark_id, b.media_uuid, b.marked_time, b.thumbnail_path, b.name FROM "BOOKMARK_MEDIA_JOIN" AND b.media_uuid='%s'"
+#define UPDATE_BOOKMARK_FROM_BOOKMARK "UPDATE "DB_TABLE_BOOKMARK" SET name=%Q WHERE bookmark_id=%d;"
/* Update Meta*/
#define UPDATE_AV_META_FROM_MEDIA "UPDATE '%s' SET played_count=%d, last_played_time=%d, last_played_position=%d WHERE media_uuid='%q'"
if (_bookmark) {
SAFE_FREE(_bookmark->media_id);
SAFE_FREE(_bookmark->thumbnail_path);
+ SAFE_FREE(_bookmark->name);
free(_bookmark);
ret = MEDIA_CONTENT_ERROR_NONE;
} else {
}
}
+ if (STRING_VALID(_src->name)) {
+ _dst->name = (char*)strdup(_src->name);
+ if (_dst->name == NULL) {
+ media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
+ media_bookmark_destroy((media_bookmark_h)_dst);
+ return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
+ }
+ }
+
*dst = (media_bookmark_h)_dst;
ret = MEDIA_CONTENT_ERROR_NONE;
return ret;
}
+
+int media_bookmark_get_name(media_bookmark_h bookmark, char **name)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
+
+ if (_bookmark) {
+ if (STRING_VALID(_bookmark->name)) {
+ *name = strdup(_bookmark->name);
+ media_content_retvm_if(*name == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+ } else {
+ *name = NULL;
+ }
+
+ ret = MEDIA_CONTENT_ERROR_NONE;
+ } else {
+ media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+ ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+ }
+
+ return ret;
+}
+
+int media_bookmark_set_name(media_bookmark_h bookmark, const char *name)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
+
+ if (STRING_VALID(name)) {
+ _bookmark->name = strdup(name);
+ media_content_retvm_if(_bookmark->name == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+ } else {
+ _bookmark->name = NULL;
+ }
+
+ return ret;
+}
+
+int media_bookmark_update_to_db(media_bookmark_h bookmark)
+{
+ int ret = MEDIA_CONTENT_ERROR_NONE;
+ media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
+ char *sql = NULL;
+
+ if (_bookmark != NULL) {
+ sql = sqlite3_mprintf(UPDATE_BOOKMARK_FROM_BOOKMARK, _bookmark->name, _bookmark->bookmark_id);
+ ret = _content_query_sql(sql);
+ SQLITE3_SAFE_FREE(sql);
+ } else {
+ media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+ ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+ }
+
+ return ret;
+}
ret = _media_filter_attribute_add(g_attr_handle, BOOKMARK_MARKED_TIME, DB_FIELD_BOOKMARK_MARKED_TIME);
media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+ ret = _media_filter_attribute_add(g_attr_handle, BOOKMARK_NAME, DB_FIELD_BOOKMARK_NAME);
+ media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+
ret = _media_filter_attribute_add(g_attr_handle, MEDIA_360, DB_FIELD_MEDIA_360);
media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
ret = _media_filter_attribute_add(g_alias_attr_handle, BOOKMARK_MARKED_TIME, DB_TABLE_ALIAS_BOOKMARK"."DB_FIELD_BOOKMARK_MARKED_TIME);
media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+ ret = _media_filter_attribute_add(g_alias_attr_handle, BOOKMARK_NAME, DB_TABLE_ALIAS_BOOKMARK"."BOOKMARK_NAME);
+ media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+
return ret;
}