2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <media_info_private.h>
19 #include <media_util_private.h>
22 int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path)
24 int ret = MEDIA_CONTENT_ERROR_NONE;
27 if (STRING_VALID(media_id)) {
28 sql = sqlite3_mprintf(INSERT_BOOKMARK_TO_BOOKMARK, media_id, time, thumbnail_path, MEDIA_CONTENT_EMPTY_STRING);
29 ret = _content_query_sql(sql);
30 SQLITE3_SAFE_FREE(sql);
32 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
33 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
39 int media_bookmark_delete_from_db(int bookmark_id)
41 int ret = MEDIA_CONTENT_ERROR_NONE;
42 char *query_str = NULL;
44 if (bookmark_id < 0) {
45 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
46 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
49 query_str = sqlite3_mprintf(DELETE_BOOKMARK_FROM_BOOKMARK, bookmark_id);
51 ret = _content_query_sql(query_str);
53 SQLITE3_SAFE_FREE(query_str);
58 int media_bookmark_get_bookmark_count_from_db(filter_h filter, int *bookmark_count)
60 int ret = MEDIA_CONTENT_ERROR_NONE;
62 if (bookmark_count == NULL) {
63 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
64 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
67 ret = _media_db_get_group_count(filter, MEDIA_GROUP_BOOKMARK, bookmark_count);
72 int media_bookmark_destroy(media_bookmark_h bookmark)
74 int ret = MEDIA_CONTENT_ERROR_NONE;
75 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
78 SAFE_FREE(_bookmark->media_id);
79 SAFE_FREE(_bookmark->thumbnail_path);
80 SAFE_FREE(_bookmark->name);
82 ret = MEDIA_CONTENT_ERROR_NONE;
84 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
85 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
90 int media_bookmark_clone(media_bookmark_h *dst, media_bookmark_h src)
92 int ret = MEDIA_CONTENT_ERROR_NONE;
95 media_bookmark_s *_src = (media_bookmark_s*)src;
96 media_bookmark_s *_dst = (media_bookmark_s*)calloc(1, sizeof(media_bookmark_s));
97 media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
99 _dst->bookmark_id = _src->bookmark_id;
101 if (STRING_VALID(_src->media_id)) {
102 _dst->media_id = (char *)strdup(_src->media_id);
103 if (_dst->media_id == NULL) {
104 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
105 media_bookmark_destroy((media_bookmark_h)_dst);
106 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
110 _dst->marked_time = _src->marked_time;
112 if (STRING_VALID(_src->thumbnail_path)) {
113 _dst->thumbnail_path = (char*)strdup(_src->thumbnail_path);
114 if (_dst->thumbnail_path == NULL) {
115 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
116 media_bookmark_destroy((media_bookmark_h)_dst);
117 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
121 if (STRING_VALID(_src->name)) {
122 _dst->name = (char*)strdup(_src->name);
123 if (_dst->name == NULL) {
124 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
125 media_bookmark_destroy((media_bookmark_h)_dst);
126 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
130 *dst = (media_bookmark_h)_dst;
132 ret = MEDIA_CONTENT_ERROR_NONE;
134 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
135 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
141 int media_bookmark_get_bookmark_id(media_bookmark_h bookmark, int *bookmark_id)
143 int ret = MEDIA_CONTENT_ERROR_NONE;
144 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
147 *bookmark_id = _bookmark->bookmark_id;
148 ret = MEDIA_CONTENT_ERROR_NONE;
150 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
151 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
157 int media_bookmark_get_marked_time(media_bookmark_h bookmark, time_t* marked_time)
159 int ret = MEDIA_CONTENT_ERROR_NONE;
160 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
163 *marked_time = _bookmark->marked_time;
164 ret = MEDIA_CONTENT_ERROR_NONE;
166 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
167 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
173 int media_bookmark_get_thumbnail_path(media_bookmark_h bookmark, char **path)
175 int ret = MEDIA_CONTENT_ERROR_NONE;
176 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
179 if (STRING_VALID(_bookmark->thumbnail_path)) {
180 *path = strdup(_bookmark->thumbnail_path);
181 media_content_retvm_if(*path == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
186 ret = MEDIA_CONTENT_ERROR_NONE;
188 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
189 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
195 int media_bookmark_get_name(media_bookmark_h bookmark, char **name)
197 int ret = MEDIA_CONTENT_ERROR_NONE;
198 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
201 *name = g_strdup(_bookmark->name);
202 media_content_retvm_if(*name == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
204 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
205 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
211 int media_bookmark_set_name(media_bookmark_h bookmark, const char *name)
213 int ret = MEDIA_CONTENT_ERROR_NONE;
214 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
216 if (STRING_VALID(name)) {
217 _bookmark->name = g_strdup(name);
218 media_content_retvm_if(_bookmark->name == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
220 _bookmark->name = g_strdup(MEDIA_CONTENT_EMPTY_STRING);
226 int media_bookmark_update_to_db(media_bookmark_h bookmark)
228 int ret = MEDIA_CONTENT_ERROR_NONE;
229 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
232 if (_bookmark != NULL) {
233 sql = sqlite3_mprintf(UPDATE_BOOKMARK_FROM_BOOKMARK, _bookmark->name, _bookmark->bookmark_id);
234 ret = _content_query_sql(sql);
235 SQLITE3_SAFE_FREE(sql);
237 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
238 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;