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_content.h>
19 #include <media_info_private.h>
20 #include <media-svc.h>
22 int media_bookmark_foreach_bookmark_from_db (filter_h filter, media_bookmark_cb callback, void *user_data);
23 int media_bookmark_get_media_id(media_bookmark_h bookmark, char **media_id);
25 int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path)
27 int ret = MEDIA_CONTENT_ERROR_NONE;
30 if(STRING_VALID(media_id))
32 sql = sqlite3_mprintf(INSERT_BOOKMARK_TO_BOOKMARK, media_id, time, thumbnail_path);
33 ret = _content_query_sql(sql);
38 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
39 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
45 int media_bookmark_delete_from_db(int bookmark_id)
47 int ret = MEDIA_CONTENT_ERROR_NONE;
48 char *query_str = NULL;
52 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
53 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
56 query_str = sqlite3_mprintf(DELETE_BOOKMARK_FROM_BOOKMARK, bookmark_id);
58 ret = _content_query_sql(query_str);
60 sqlite3_free(query_str);
65 int media_bookmark_get_bookmark_count_from_db(filter_h filter, int *bookmark_count)
67 int ret = MEDIA_CONTENT_ERROR_NONE;
69 media_content_debug_func();
71 ret = _media_db_get_group_count(filter, MEDIA_GROUP_BOOKMARK, bookmark_count);
76 int media_bookmark_foreach_bookmark_from_db (filter_h filter, media_bookmark_cb callback, void *user_data)
78 int ret = MEDIA_CONTENT_ERROR_NONE;
80 media_content_debug_func();
84 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
85 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
88 ret = _media_db_get_bookmark(NULL, filter, callback, user_data);
93 int media_bookmark_destroy(media_bookmark_h bookmark)
95 int ret = MEDIA_CONTENT_ERROR_NONE;
96 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
100 SAFE_FREE(_bookmark->media_id);
101 SAFE_FREE(_bookmark->thumbnail);
103 ret = MEDIA_CONTENT_ERROR_NONE;
107 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
108 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
113 int media_bookmark_clone(media_bookmark_h *dst, media_bookmark_h src)
115 int ret = MEDIA_CONTENT_ERROR_NONE;
119 media_bookmark_s *_src = (media_bookmark_s*)src;
120 media_bookmark_s *_dst = (media_bookmark_s*)calloc(1, sizeof(media_bookmark_s));
124 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
125 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
128 _dst->bookmark_id = _src->bookmark_id;
130 if(STRING_VALID(_src->media_id))
132 _dst->media_id = (char*)strdup(_src->media_id);
133 if(_dst->media_id == NULL)
135 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
136 media_bookmark_destroy((media_bookmark_h)_dst);
137 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
141 _dst->marked_time = _src->marked_time;
143 if(STRING_VALID(_src->thumbnail))
145 _dst->thumbnail = (char*)strdup(_src->thumbnail);
146 if(_dst->thumbnail == NULL)
148 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
149 media_bookmark_destroy((media_bookmark_h)_dst);
150 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
154 *dst = (media_bookmark_h)_dst;
156 ret = MEDIA_CONTENT_ERROR_NONE;
160 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
161 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
167 int media_bookmark_get_bookmark_id(media_bookmark_h bookmark, int *bookmark_id)
169 int ret = MEDIA_CONTENT_ERROR_NONE;
170 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
174 *bookmark_id = _bookmark->bookmark_id;
175 ret = MEDIA_CONTENT_ERROR_NONE;
179 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
180 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
186 int media_bookmark_get_media_id(media_bookmark_h bookmark, char **media_id)
188 int ret = MEDIA_CONTENT_ERROR_NONE;
189 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
193 if(STRING_VALID(_bookmark->media_id))
195 *media_id = strdup(_bookmark->media_id);
196 if(*media_id == NULL)
198 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
199 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
207 ret = MEDIA_CONTENT_ERROR_NONE;
211 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
212 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
218 int media_bookmark_get_marked_time(media_bookmark_h bookmark, time_t* marked_time)
220 int ret = MEDIA_CONTENT_ERROR_NONE;
221 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
225 *marked_time = _bookmark->marked_time;
226 ret = MEDIA_CONTENT_ERROR_NONE;
230 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
231 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
237 int media_bookmark_get_thumbnail_path(media_bookmark_h bookmark, char **thumbnail)
239 int ret = MEDIA_CONTENT_ERROR_NONE;
240 media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
244 if(STRING_VALID(_bookmark->thumbnail))
246 *thumbnail = strdup(_bookmark->thumbnail);
247 if(*thumbnail == NULL)
249 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
250 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
258 ret = MEDIA_CONTENT_ERROR_NONE;
262 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
263 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;