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.
17 #include <media_info_private.h>
18 #include <media_util_private.h>
19 #include <media_uhd.h>
21 int media_uhd_foreach_media_from_db(filter_h filter, media_uhd_cb callback, void *user_data)
23 content_retip_if_fail(callback);
25 return _media_db_get_uhd(filter, callback, user_data);
28 int media_uhd_destroy(media_uhd_h uhd)
30 media_uhd_s *_uhd = (media_uhd_s*)uhd;
32 content_retip_if_fail(uhd);
34 g_free(_uhd->media_id);
36 g_free(_uhd->content_id);
37 g_free(_uhd->content_title);
38 g_free(_uhd->file_name);
39 g_free(_uhd->release_date);
42 return MEDIA_CONTENT_ERROR_NONE;
45 int media_uhd_clone(media_uhd_h *dst, media_uhd_h src)
47 media_uhd_s *_src = (media_uhd_s*)src;
49 content_retip_if_fail(dst);
50 content_retip_if_fail(src);
52 media_uhd_s *_dst = g_new0(media_uhd_s, 1);
54 _dst->media_id = g_strdup(_src->media_id);
55 _dst->path = g_strdup(_src->path);
56 _dst->content_id = g_strdup(_src->content_id);
57 _dst->content_title = g_strdup(_src->content_title);
58 _dst->release_date = g_strdup(_src->release_date);
59 _dst->file_name = g_strdup(_src->file_name);
60 _dst->size = _src->size;
61 _dst->modified_time = _src->modified_time;
62 _dst->played_position = _src->played_position;
63 _dst->played_count = _src->played_count;
65 *dst = (media_uhd_h)_dst;
67 return MEDIA_CONTENT_ERROR_NONE;
70 int media_uhd_get_uhd_from_db(const char *media_id, media_uhd_h *uhd)
72 int ret = MEDIA_CONTENT_ERROR_NONE;
73 char *select_query = NULL;
74 sqlite3_stmt *stmt = NULL;
76 content_retip_if_fail(STRING_VALID(media_id));
77 content_retip_if_fail(uhd);
79 select_query = sqlite3_mprintf(SELECT_UHD_FROM_UHD, media_id);
81 ret = _content_get_result(select_query, &stmt);
82 SQLITE3_SAFE_FREE(select_query);
83 content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
85 media_uhd_s *_uhd = NULL;
87 if (sqlite3_step(stmt) == SQLITE_ROW) {
88 _uhd = g_new0(media_uhd_s, 1);
90 _media_uhd_item_get_detail(stmt, (media_uhd_h)_uhd);
92 *uhd = (media_uhd_h)_uhd;
94 content_error("Nonexistent media id[%s]", media_id);
95 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
98 SQLITE3_FINALIZE(stmt);
103 int media_uhd_get_media_id(media_uhd_h uhd, char **media_id)
105 media_uhd_s *_uhd = (media_uhd_s*)uhd;
107 content_retip_if_fail(uhd);
108 content_retip_if_fail(media_id);
110 *media_id = g_strdup(_uhd->media_id);
112 return MEDIA_CONTENT_ERROR_NONE;
115 int media_uhd_get_path(media_uhd_h uhd, char **path)
117 media_uhd_s *_uhd = (media_uhd_s*)uhd;
119 content_retip_if_fail(uhd);
120 content_retip_if_fail(path);
122 *path = g_strdup(_uhd->path);
124 return MEDIA_CONTENT_ERROR_NONE;
127 int media_uhd_get_size(media_uhd_h uhd, unsigned long long *size)
129 media_uhd_s *_uhd = (media_uhd_s*)uhd;
131 content_retip_if_fail(uhd);
132 content_retip_if_fail(size);
136 return MEDIA_CONTENT_ERROR_NONE;
139 int media_uhd_get_content_id(media_uhd_h uhd, char **content_id)
141 media_uhd_s *_uhd = (media_uhd_s*)uhd;
143 content_retip_if_fail(uhd);
144 content_retip_if_fail(content_id);
146 *content_id = g_strdup(_uhd->content_id);
148 return MEDIA_CONTENT_ERROR_NONE;
151 int media_uhd_get_content_title(media_uhd_h uhd, char **content_title)
153 media_uhd_s *_uhd = (media_uhd_s*)uhd;
155 content_retip_if_fail(uhd);
156 content_retip_if_fail(content_title);
158 *content_title = g_strdup(_uhd->content_title);
160 return MEDIA_CONTENT_ERROR_NONE;
163 int media_uhd_get_file_name(media_uhd_h uhd, char **file_name)
165 media_uhd_s *_uhd = (media_uhd_s*)uhd;
167 content_retip_if_fail(uhd);
168 content_retip_if_fail(file_name);
170 *file_name = g_strdup(_uhd->file_name);
172 return MEDIA_CONTENT_ERROR_NONE;
175 int media_uhd_get_release_date(media_uhd_h uhd, char **release_date)
177 media_uhd_s *_uhd = (media_uhd_s*)uhd;
179 content_retip_if_fail(uhd);
180 content_retip_if_fail(release_date);
182 *release_date = g_strdup(_uhd->release_date);
184 return MEDIA_CONTENT_ERROR_NONE;
187 int media_uhd_get_modified_time(media_uhd_h uhd, time_t *modified_time)
189 media_uhd_s *_uhd = (media_uhd_s*)uhd;
191 content_retip_if_fail(uhd);
192 content_retip_if_fail(modified_time);
194 *modified_time = _uhd->modified_time;
196 return MEDIA_CONTENT_ERROR_NONE;
199 int media_uhd_get_played_position(media_uhd_h uhd, int *played_position)
201 media_uhd_s *_uhd = (media_uhd_s*)uhd;
203 content_retip_if_fail(uhd);
204 content_retip_if_fail(played_position);
206 *played_position = _uhd->played_position;
208 return MEDIA_CONTENT_ERROR_NONE;
211 int media_uhd_get_played_count(media_uhd_h uhd, int *played_count)
213 media_uhd_s *_uhd = (media_uhd_s*)uhd;
215 content_retip_if_fail(uhd);
216 content_retip_if_fail(played_count);
218 *played_count = _uhd->played_count;
220 return MEDIA_CONTENT_ERROR_NONE;
223 int media_uhd_set_played_position(media_uhd_h uhd, int played_position)
225 media_uhd_s *_uhd = (media_uhd_s*)uhd;
227 content_retip_if_fail(uhd);
228 content_retip_if_fail(played_position);
230 _uhd->played_position = played_position;
232 return MEDIA_CONTENT_ERROR_NONE;
235 int media_uhd_set_content_title(media_uhd_h uhd, const char *content_title)
237 media_uhd_s *_uhd = (media_uhd_s*)uhd;
239 content_retip_if_fail(uhd);
240 content_retip_if_fail(STRING_VALID(content_title));
242 g_free(_uhd->content_title);
243 _uhd->content_title = g_strdup(content_title);
245 return MEDIA_CONTENT_ERROR_NONE;
248 int media_uhd_set_played_count(media_uhd_h uhd, int played_count)
250 media_uhd_s *_uhd = (media_uhd_s*)uhd;
252 content_retip_if_fail(uhd);
254 _uhd->played_count = played_count;
256 return MEDIA_CONTENT_ERROR_NONE;
259 int media_uhd_update_to_db(media_uhd_h uhd)
261 int ret = MEDIA_CONTENT_ERROR_NONE;
262 media_uhd_s *_uhd = (media_uhd_s*)uhd;
263 char *update_query = NULL;
265 content_retip_if_fail(uhd);
266 content_retip_if_fail(STRING_VALID(_uhd->media_id));
267 content_retip_if_fail(STRING_VALID(_uhd->path));
269 update_query = sqlite3_mprintf(UPDATE_UHD_META_FROM_UHD, _uhd->content_title, _uhd->played_position, _uhd->played_count, _uhd->media_id);
271 ret = _content_query_sql(update_query);
272 sqlite3_free(update_query);