Improve API description
[platform/core/api/media-content.git] / src / media_bookmark.c
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16
17
18 #include <media_info_private.h>
19
20 // LCOV_EXCL_START
21 static int __media_bookmark_check_media_id(const char *media_id)
22 {
23         int ret = MEDIA_CONTENT_ERROR_NONE;
24         char *query_str = NULL;
25         sqlite3_stmt *stmt = NULL;
26         int item_count = 0;
27
28         content_retip_if_fail(STRING_VALID(media_id));
29
30         query_str = sqlite3_mprintf(SELECT_MEDIA_COUNT_FROM_MEDIA_BY_ID, media_id);
31         ret = _content_get_result(query_str, &stmt);
32         sqlite3_free(query_str);
33         content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
34
35         if (sqlite3_step(stmt) == SQLITE_ROW)
36                 item_count = (int)sqlite3_column_int(stmt, 0);
37
38         sqlite3_finalize(stmt);
39
40         content_retvm_if(item_count == 0, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid media_id");
41
42         return MEDIA_CONTENT_ERROR_NONE;
43 }
44
45 int media_bookmark_insert_to_db(const char *media_id, time_t time, const char *thumbnail_path)
46 {
47         content_warn("DEPRECATION WARNING: media_bookmark_insert_to_db() is deprecated and will be removed from next release.");
48         int ret = MEDIA_CONTENT_ERROR_NONE;
49         char *sql = NULL;
50
51         content_retip_if_fail(STRING_VALID(media_id));
52
53         sql = sqlite3_mprintf(INSERT_BOOKMARK_TO_BOOKMARK, media_id, time, thumbnail_path, "");
54         ret = _content_query_sql(sql);
55         sqlite3_free(sql);
56
57         return ret;
58 }
59
60 int media_bookmark_delete_from_db(int bookmark_id)
61 {
62         content_warn("DEPRECATION WARNING: media_bookmark_delete_from_db() is deprecated and will be removed from next release.");
63         int ret = MEDIA_CONTENT_ERROR_NONE;
64         char *query_str = NULL;
65
66         content_retip_if_fail(bookmark_id >= 0);
67
68         query_str = sqlite3_mprintf(DELETE_BOOKMARK_FROM_BOOKMARK, bookmark_id);
69         ret = _content_query_sql(query_str);
70         sqlite3_free(query_str);
71
72         return ret;
73 }
74
75 int media_bookmark_get_bookmark_count_from_db(filter_h filter, int *bookmark_count)
76 {
77         content_warn("DEPRECATION WARNING: media_bookmark_get_bookmark_count_from_db() is deprecated and will be removed from next release.");
78         content_retip_if_fail(bookmark_count);
79
80         return _media_db_get_group_count(filter, MEDIA_GROUP_BOOKMARK, bookmark_count);
81 }
82
83 int media_bookmark_foreach_bookmark_from_db(filter_h filter, media_bookmark_cb callback, void *user_data)
84 {
85         content_warn("DEPRECATION WARNING: media_bookmark_foreach_bookmark_from_db() is deprecated and will be removed from next release.");
86         content_retip_if_fail(callback);
87
88         return _media_db_get_bookmark(NULL, filter, callback, user_data);
89 }
90
91 int media_bookmark_destroy(media_bookmark_h bookmark)
92 {
93         content_warn("DEPRECATION WARNING: media_bookmark_destroy() is deprecated and will be removed from next release.");
94         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
95
96         content_retip_if_fail(bookmark);
97
98         g_free(_bookmark->media_id);
99         g_free(_bookmark->thumbnail_path);
100         g_free(_bookmark->name);
101         g_free(_bookmark);
102
103         return MEDIA_CONTENT_ERROR_NONE;
104 }
105 int media_bookmark_clone(media_bookmark_h *dst, media_bookmark_h src)
106 {
107         content_warn("DEPRECATION WARNING: media_bookmark_clone() is deprecated and will be removed from next release.");
108         media_bookmark_s *_src = (media_bookmark_s *)src;
109
110         content_retip_if_fail(dst);
111         content_retip_if_fail(src);
112
113         media_bookmark_s *_dst = g_new0(media_bookmark_s, 1);
114
115         _dst->bookmark_id = _src->bookmark_id;
116         _dst->media_id = g_strdup(_src->media_id);
117         _dst->marked_time = _src->marked_time;
118         _dst->thumbnail_path = g_strdup(_src->thumbnail_path);
119         _dst->name = g_strdup(_src->name);
120
121         *dst = (media_bookmark_h)_dst;
122
123         return MEDIA_CONTENT_ERROR_NONE;
124 }
125
126 int media_bookmark_get_bookmark_id(media_bookmark_h bookmark, int *bookmark_id)
127 {
128         content_warn("DEPRECATION WARNING: media_bookmark_get_bookmark_id() is deprecated and will be removed from next release.");
129         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
130
131         content_retip_if_fail(bookmark);
132         content_retip_if_fail(bookmark_id);
133
134         *bookmark_id = _bookmark->bookmark_id;
135
136         return MEDIA_CONTENT_ERROR_NONE;
137 }
138
139 int media_bookmark_get_marked_time(media_bookmark_h bookmark, time_t* marked_time)
140 {
141         content_warn("DEPRECATION WARNING: media_bookmark_get_marked_time() is deprecated and will be removed from next release.");
142         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
143
144         content_retip_if_fail(bookmark);
145         content_retip_if_fail(marked_time);
146
147         *marked_time = _bookmark->marked_time;
148
149         return MEDIA_CONTENT_ERROR_NONE;
150 }
151
152 int media_bookmark_get_thumbnail_path(media_bookmark_h bookmark, char **path)
153 {
154         content_warn("DEPRECATION WARNING: media_bookmark_get_thumbnail_path() is deprecated and will be removed from next release.");
155         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
156
157         content_retip_if_fail(bookmark);
158         content_retip_if_fail(path);
159
160         *path = g_strdup(_bookmark->thumbnail_path);
161
162         return MEDIA_CONTENT_ERROR_NONE;
163 }
164
165 int media_bookmark_get_name(media_bookmark_h bookmark, char **name)
166 {
167         content_warn("DEPRECATION WARNING: media_bookmark_get_name() is deprecated and will be removed from next release.");
168         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
169
170         content_retip_if_fail(bookmark);
171         content_retip_if_fail(name);
172
173         *name = g_strdup(_bookmark->name);
174
175         return MEDIA_CONTENT_ERROR_NONE;
176 }
177
178 int media_bookmark_set_name(media_bookmark_h bookmark, const char *name)
179 {
180         content_warn("DEPRECATION WARNING: media_bookmark_set_name() is deprecated and will be removed from next release.");
181         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
182
183         content_retip_if_fail(bookmark);
184
185         g_free(_bookmark->name);
186         _bookmark->name = g_strdup(STRING_VALID(name) ? name : "");
187
188         return MEDIA_CONTENT_ERROR_NONE;
189 }
190
191 int media_bookmark_update_to_db(media_bookmark_h bookmark)
192 {
193         content_warn("DEPRECATION WARNING: media_bookmark_update_to_db() is deprecated and will be removed from next release.");
194         int ret = MEDIA_CONTENT_ERROR_NONE;
195         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
196         char *sql = NULL;
197
198         content_retip_if_fail(bookmark);
199
200         sql = sqlite3_mprintf(UPDATE_BOOKMARK_FROM_BOOKMARK, _bookmark->name, _bookmark->bookmark_id);
201         ret = _content_query_sql(sql);
202         sqlite3_free(sql);
203
204         return ret;
205 }
206
207 int media_bookmark_create(const char *media_id, time_t time, media_bookmark_h *bookmark)
208 {
209         content_warn("DEPRECATION WARNING: media_bookmark_create() is deprecated and will be removed from next release.");
210         int ret = MEDIA_CONTENT_ERROR_NONE;
211
212         content_retip_if_fail(bookmark);
213
214         ret = __media_bookmark_check_media_id(media_id);
215         content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "Not exist media_id");
216
217         media_bookmark_s *_bookmark = g_new0(media_bookmark_s, 1);
218
219         _bookmark->media_id = g_strdup(media_id);
220         _bookmark->bookmark_id = -1;
221         _bookmark->marked_time = time;
222
223         *bookmark = (media_bookmark_h)_bookmark;
224
225         return ret;
226 }
227
228 int media_bookmark_set_thumbnail_path(media_bookmark_h bookmark, const char *path)
229 {
230         content_warn("DEPRECATION WARNING: media_bookmark_set_thumbnail_path() is deprecated and will be removed from next release.");
231         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
232
233         content_retip_if_fail(bookmark);
234
235         g_free(_bookmark->thumbnail_path);
236         _bookmark->thumbnail_path = g_strdup(path);
237
238         return MEDIA_CONTENT_ERROR_NONE;
239 }
240
241 int media_bookmark_insert_to_db_v2(media_bookmark_h bookmark)
242 {
243         content_warn("DEPRECATION WARNING: media_bookmark_insert_to_db_v2() is deprecated and will be removed from next release.");
244         int ret = MEDIA_CONTENT_ERROR_NONE;
245         media_bookmark_s *_bookmark = (media_bookmark_s *)bookmark;
246         char *sql = NULL;
247         sqlite3_stmt *stmt = NULL;
248         int bookmark_id = -1;
249
250         content_retip_if_fail(bookmark);
251         content_retip_if_fail(_bookmark->bookmark_id == -1);
252
253         sql = sqlite3_mprintf(INSERT_BOOKMARK_TO_BOOKMARK,
254                 _bookmark->media_id, _bookmark->marked_time, _bookmark->thumbnail_path, _bookmark->name);
255
256         ret = _content_query_sql(sql);
257         sqlite3_free(sql);
258         content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
259
260         sql = sqlite3_mprintf(SELECT_BOOKMARK_ID_FROM_BOOKMARK, _bookmark->media_id, _bookmark->marked_time);
261         ret = _content_get_result(sql, &stmt);
262         sqlite3_free(sql);
263         content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
264
265         if (sqlite3_step(stmt) == SQLITE_ROW)
266                 bookmark_id = sqlite3_column_int(stmt, 0);
267
268         sqlite3_finalize(stmt);
269
270         _bookmark->bookmark_id = bookmark_id;
271
272         return ret;
273 }
274 // LCOV_EXCL_STOP