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.
21 #include <media_content.h>
22 #include <media_info_private.h>
26 #include <tzplatform_config.h>
28 filter_h g_filter = NULL;
29 filter_h g_filter_g = NULL; /*filter for group like folder, tag, playlist, album, year ... */
31 GMainLoop *g_loop = NULL;
33 static int g_media_cnt = 0;
35 #define test_audio_id "0f999626-6218-450c-a4ad-181a3bab6ebf"
36 #define test_video_id "c1a92494-cc5b-4d74-aa7d-253199234548"
37 #define test_image_id "db1c184c-6f31-43b4-b924-8c00ac5b6197"
38 media_folder_h g_folder = NULL;
40 bool get_audio_meta(audio_meta_h audio)
45 int ret = MEDIA_CONTENT_ERROR_NONE;
47 media_content_debug("=== audio meta ===");
49 ret = audio_meta_get_media_id(audio, &c_value);
50 if (ret != MEDIA_CONTENT_ERROR_NONE)
51 media_content_error("error when get meta : [%d]", ret);
52 media_content_debug("audio_id : [%s]", c_value);
55 ret = audio_meta_get_album(audio, &c_value);
56 if (ret != MEDIA_CONTENT_ERROR_NONE)
57 media_content_error("error when get meta : [%d]", ret);
58 media_content_debug("album : [%s]", c_value);
61 ret = audio_meta_get_artist(audio, &c_value);
62 if (ret != MEDIA_CONTENT_ERROR_NONE)
63 media_content_error("error when get meta : [%d]", ret);
64 media_content_debug("artist : [%s]", c_value);
67 ret = audio_meta_get_album_artist(audio, &c_value);
68 if (ret != MEDIA_CONTENT_ERROR_NONE)
69 media_content_error("error when get meta : [%d]", ret);
70 media_content_debug("album_artist : [%s]", c_value);
73 ret = audio_meta_get_genre(audio, &c_value);
74 if (ret != MEDIA_CONTENT_ERROR_NONE)
75 media_content_error("error when get meta : [%d]", ret);
76 media_content_debug("genre : [%s]", c_value);
79 ret = audio_meta_get_composer(audio, &c_value);
80 if (ret != MEDIA_CONTENT_ERROR_NONE)
81 media_content_error("error when get meta : [%d]", ret);
82 media_content_debug("composer : [%s]", c_value);
85 ret = audio_meta_get_year(audio, &c_value);
86 if (ret != MEDIA_CONTENT_ERROR_NONE)
87 media_content_error("error when get meta : [%d]", ret);
88 media_content_debug("year : [%s]", c_value);
91 ret = audio_meta_get_recorded_date(audio, &c_value);
92 if (ret != MEDIA_CONTENT_ERROR_NONE)
93 media_content_error("error when get meta : [%d]", ret);
94 media_content_debug("recorded_date : [%s]", c_value);
97 ret = audio_meta_get_copyright(audio, &c_value);
98 if (ret != MEDIA_CONTENT_ERROR_NONE)
99 media_content_error("error when get meta : [%d]", ret);
100 media_content_debug("copyright : [%s]", c_value);
103 ret = audio_meta_get_track_num(audio, &c_value);
104 if (ret != MEDIA_CONTENT_ERROR_NONE)
105 media_content_error("error when get meta : [%d]", ret);
106 media_content_debug("track_num : [%s]", c_value);
109 ret = audio_meta_get_bit_rate(audio, &i_value);
110 if (ret != MEDIA_CONTENT_ERROR_NONE)
111 media_content_error("error when get meta : [%d]", ret);
112 media_content_debug("bitrate : [%d]", i_value);
114 ret = audio_meta_get_sample_rate(audio, &i_value);
115 if (ret != MEDIA_CONTENT_ERROR_NONE)
116 media_content_error("error when get meta : [%d]", ret);
117 media_content_debug("samplerate : [%d]", i_value);
119 ret = audio_meta_get_channel(audio, &i_value);
120 if (ret != MEDIA_CONTENT_ERROR_NONE)
121 media_content_error("error when get meta : [%d]", ret);
122 media_content_debug("channel : [%d]", i_value);
124 ret = audio_meta_get_duration(audio, &i_value);
125 if (ret != MEDIA_CONTENT_ERROR_NONE)
126 media_content_error("error when get meta : [%d]", ret);
127 media_content_debug("duration : [%d]", i_value);
129 ret = audio_meta_get_played_count(audio, &i_value);
130 if (ret != MEDIA_CONTENT_ERROR_NONE)
131 media_content_error("error when get meta : [%d]", ret);
132 media_content_debug("played_count : [%d]", i_value);
134 ret = audio_meta_get_played_time(audio, &t_value);
135 if (ret != MEDIA_CONTENT_ERROR_NONE)
136 media_content_error("error when get meta : [%d]", ret);
137 media_content_debug("played_time : [%d]", t_value);
139 ret = audio_meta_get_played_position(audio, &i_value);
140 if (ret != MEDIA_CONTENT_ERROR_NONE)
141 media_content_error("error when get meta : [%d]", ret);
142 media_content_debug("played_position : [%d]", i_value);
147 bool get_video_meta(video_meta_h video)
149 char *c_value = NULL;
152 int ret = MEDIA_CONTENT_ERROR_NONE;
154 media_content_debug("=== video meta ===");
156 ret = video_meta_get_media_id(video, &c_value);
157 if (ret != MEDIA_CONTENT_ERROR_NONE)
158 media_content_error("error when get meta : [%d]", ret);
159 media_content_debug("video_id : [%s]", c_value);
162 ret = video_meta_get_album(video, &c_value);
163 if (ret != MEDIA_CONTENT_ERROR_NONE)
164 media_content_error("error when get meta : [%d]", ret);
165 media_content_debug("album : [%s]", c_value);
168 ret = video_meta_get_artist(video, &c_value);
169 if (ret != MEDIA_CONTENT_ERROR_NONE)
170 media_content_error("error when get meta : [%d]", ret);
171 media_content_debug("artist : [%s]", c_value);
174 ret = video_meta_get_album_artist(video, &c_value);
175 if (ret != MEDIA_CONTENT_ERROR_NONE)
176 media_content_error("error when get meta : [%d]", ret);
177 media_content_debug("album_artist : [%s]", c_value);
180 ret = video_meta_get_genre(video, &c_value);
181 if (ret != MEDIA_CONTENT_ERROR_NONE)
182 media_content_error("error when get meta : [%d]", ret);
183 media_content_debug("genre : [%s]", c_value);
186 ret = video_meta_get_composer(video, &c_value);
187 if (ret != MEDIA_CONTENT_ERROR_NONE)
188 media_content_error("error when get meta : [%d]", ret);
189 media_content_debug("omposer : [%s]", c_value);
192 ret = video_meta_get_year(video, &c_value);
193 if (ret != MEDIA_CONTENT_ERROR_NONE)
194 media_content_error("error when get meta : [%d]", ret);
195 media_content_debug("year : [%s]", c_value);
198 ret = video_meta_get_recorded_date(video, &c_value);
199 if (ret != MEDIA_CONTENT_ERROR_NONE)
200 media_content_error("error when get meta : [%d]", ret);
201 media_content_debug("recorded_date : [%s]", c_value);
204 ret = video_meta_get_copyright(video, &c_value);
205 if (ret != MEDIA_CONTENT_ERROR_NONE)
206 media_content_error("error when get meta : [%d]", ret);
207 media_content_debug("copyright : [%s]", c_value);
210 ret = video_meta_get_track_num(video, &c_value);
211 if (ret != MEDIA_CONTENT_ERROR_NONE)
212 media_content_error("error when get meta : [%d]", ret);
213 media_content_debug("track_num : [%s]", c_value);
216 ret = video_meta_get_bit_rate(video, &i_value);
217 if (ret != MEDIA_CONTENT_ERROR_NONE)
218 media_content_error("error when get meta : [%d]", ret);
219 media_content_debug("bitrate : [%d]", i_value);
221 ret = video_meta_get_duration(video, &i_value);
222 if (ret != MEDIA_CONTENT_ERROR_NONE)
223 media_content_error("error when get meta : [%d]", ret);
224 media_content_debug("duration : [%d]", i_value);
226 ret = video_meta_get_width(video, &i_value);
227 if (ret != MEDIA_CONTENT_ERROR_NONE)
228 media_content_error("error when get meta : [%d]", ret);
229 media_content_debug("width : [%d]", i_value);
231 ret = video_meta_get_height(video, &i_value);
232 if (ret != MEDIA_CONTENT_ERROR_NONE)
233 media_content_error("error when get meta : [%d]", ret);
234 media_content_debug("height : [%d]", i_value);
236 ret = video_meta_get_played_count(video, &i_value);
237 if (ret != MEDIA_CONTENT_ERROR_NONE)
238 media_content_error("error when get meta : [%d]", ret);
239 media_content_debug("played_count : [%d]", i_value);
241 ret = video_meta_get_played_time(video, &t_value);
242 if (ret != MEDIA_CONTENT_ERROR_NONE)
243 media_content_error("error when get meta : [%d]", ret);
244 media_content_debug("played_time : [%d]", t_value);
246 ret = video_meta_get_played_position(video, &i_value);
247 if (ret != MEDIA_CONTENT_ERROR_NONE)
248 media_content_error("error when get meta : [%d]", ret);
249 media_content_debug("played_position : [%d]", i_value);
254 bool gallery_folder_list_cb(media_folder_h folder, void *user_data)
256 media_folder_h new_folder = NULL;
257 media_folder_clone(&new_folder, folder);
259 GList **list = (GList**)user_data;
260 *list = g_list_append(*list, new_folder);
265 bool gallery_media_item_cb(media_info_h media, void *user_data)
267 media_info_h new_media = NULL;
268 media_info_clone(&new_media, media);
270 GList **list = (GList**)user_data;
271 *list = g_list_append(*list, new_media);
276 bool gallery_tag_item_cb(media_tag_h tag, void *user_data)
278 media_tag_h new_tag = NULL;
279 media_tag_clone(&new_tag, tag);
281 GList **list = (GList**)user_data;
282 *list = g_list_append(*list, new_tag);
287 bool gallery_bookmarks_cb(media_bookmark_h bookmark, void *user_data)
289 media_bookmark_h new_bm = NULL;
290 int ret = MEDIA_CONTENT_ERROR_NONE;
292 ret = media_bookmark_clone(&new_bm, bookmark);
293 if (ret != MEDIA_CONTENT_ERROR_NONE)
294 media_content_error("error media_bookmark_clone : [%d]", ret);
296 GList **list = (GList**)user_data;
297 *list = g_list_append(*list, new_bm);
302 bool media_item_cb(media_info_h media, void *user_data)
304 char *c_value = NULL;
305 char *media_id = NULL;
306 media_content_type_e media_type = 0;
307 int ret = MEDIA_CONTENT_ERROR_NONE;
310 media_content_debug("NO Item");
314 ret = media_info_get_media_type(media, &media_type);
315 if (ret != MEDIA_CONTENT_ERROR_NONE)
316 media_content_error("error when get info : [%d]", ret);
317 media_content_debug("media_type : [%d]", media_type);
319 ret = media_info_get_media_id(media, &media_id);
320 if (ret != MEDIA_CONTENT_ERROR_NONE)
321 media_content_error("error when get info : [%d]", ret);
322 media_content_debug("media_id : [%s]", media_id);
324 ret = media_info_get_file_path(media, &c_value);
325 if (ret != MEDIA_CONTENT_ERROR_NONE)
326 media_content_error("error when get info : [%d]", ret);
327 media_content_debug("file_path : [%s]", c_value);
333 bool b_value = false;
334 unsigned long long size = 0;
336 if (media_type == MEDIA_CONTENT_TYPE_MUSIC) {
339 if (media_info_get_audio(media, &audio) == MEDIA_CONTENT_ERROR_NONE) {
340 get_audio_meta(audio);
341 ret = audio_meta_destroy(audio);
342 if (ret != MEDIA_CONTENT_ERROR_NONE)
343 media_content_error("error audio_meta_destroy : [%d]", ret);
345 media_content_error("[audio_error]");
347 } else if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
349 media_content_orientation_e orientation = 0;
350 bool is_burst_shot = false;
351 char *burst_id = NULL;
352 char *weather = NULL;
354 if (media_info_get_image(media, &image) == MEDIA_CONTENT_ERROR_NONE) {
355 ret = image_meta_get_orientation(image, &orientation);
356 if (ret != MEDIA_CONTENT_ERROR_NONE)
357 media_content_error("error image_meta_get_orientation : [%d]", ret);
359 media_content_debug("[image] orientation : %d", orientation);
361 ret = image_meta_is_burst_shot(image, &is_burst_shot);
362 if (ret != MEDIA_CONTENT_ERROR_NONE)
363 media_content_error("error image_meta_is_burst_shot : [%d]", ret);
365 ret = image_meta_get_burst_id(image, &burst_id);
366 if (ret != MEDIA_CONTENT_ERROR_NONE)
367 media_content_error("error image_meta_get_burst_id : [%d]", ret);
369 media_content_debug("[image] burst_id : [%s]", burst_id);
374 ret = image_meta_destroy(image);
375 if (ret != MEDIA_CONTENT_ERROR_NONE)
376 media_content_error("error image_meta_destroy : [%d]", ret);
378 media_content_error("[image_error]");
380 } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
383 if (media_info_get_video(media, &video) == MEDIA_CONTENT_ERROR_NONE) {
384 get_video_meta(video);
385 ret = video_meta_destroy(video);
386 if (ret != MEDIA_CONTENT_ERROR_NONE)
387 media_content_error("error video_meta_destroy : [%d]", ret);
389 media_content_error("[video_error]");
392 media_content_debug("Other Content");
395 media_content_debug("=== media_info ===");
396 ret = media_info_get_file_path(media, &c_value);
397 if (ret != MEDIA_CONTENT_ERROR_NONE)
398 media_content_error("error when get info : [%d]", ret);
399 media_content_debug("file_path : [%s]", c_value);
402 ret = media_info_get_display_name(media, &c_value);
403 if (ret != MEDIA_CONTENT_ERROR_NONE)
404 media_content_error("error when get info : [%d]", ret);
405 media_content_debug("display_name : [%s]", c_value);
408 ret = media_info_get_mime_type(media, &c_value);
409 if (ret != MEDIA_CONTENT_ERROR_NONE)
410 media_content_error("error when get info : [%d]", ret);
411 media_content_debug("mime_type : [%s]", c_value);
414 ret = media_info_get_thumbnail_path(media, &c_value);
415 if (ret != MEDIA_CONTENT_ERROR_NONE)
416 media_content_error("error when get info : [%d]", ret);
417 media_content_debug("thumbnail_path : [%s]", c_value);
420 ret = media_info_get_description(media, &c_value);
421 if (ret != MEDIA_CONTENT_ERROR_NONE)
422 media_content_error("error when get info : [%d]", ret);
423 media_content_debug("description : [%s]", c_value);
426 ret = media_info_get_author(media, &c_value);
427 if (ret != MEDIA_CONTENT_ERROR_NONE)
428 media_content_error("error when get info : [%d]", ret);
429 media_content_debug("author : [%s]", c_value);
432 ret = media_info_get_provider(media, &c_value);
433 if (ret != MEDIA_CONTENT_ERROR_NONE)
434 media_content_error("error when get info : [%d]", ret);
435 media_content_debug("provider : [%s]", c_value);
438 ret = media_info_get_content_name(media, &c_value);
439 if (ret != MEDIA_CONTENT_ERROR_NONE)
440 media_content_error("error when get info : [%d]", ret);
441 media_content_debug("content_name : [%s]", c_value);
444 ret = media_info_get_category(media, &c_value);
445 if (ret != MEDIA_CONTENT_ERROR_NONE)
446 media_content_error("error when get info : [%d]", ret);
447 media_content_debug("category : [%s]", c_value);
450 ret = media_info_get_location_tag(media, &c_value);
451 if (ret != MEDIA_CONTENT_ERROR_NONE)
452 media_content_error("error when get info : [%d]", ret);
453 media_content_debug("location_tag : [%s]", c_value);
456 ret = media_info_get_age_rating(media, &c_value);
457 if (ret != MEDIA_CONTENT_ERROR_NONE)
458 media_content_error("error when get info : [%d]", ret);
459 media_content_debug("age_rating : [%s]", c_value);
462 ret = media_info_get_keyword(media, &c_value);
463 if (ret != MEDIA_CONTENT_ERROR_NONE)
464 media_content_error("error when get info : [%d]", ret);
465 media_content_debug("keyword : [%s]", c_value);
468 ret = media_info_get_size(media, &size);
469 if (ret != MEDIA_CONTENT_ERROR_NONE)
470 media_content_error("error when get info : [%d]", ret);
471 media_content_debug("size : [%lld]", size);
473 ret = media_info_get_added_time(media, &t_value);
474 if (ret != MEDIA_CONTENT_ERROR_NONE)
475 media_content_error("error when get info : [%d]", ret);
476 media_content_debug("added_time : [%d]", t_value);
478 ret = media_info_get_modified_time(media, &t_value);
479 if (ret != MEDIA_CONTENT_ERROR_NONE)
480 media_content_error("error when get info : [%d]", ret);
481 media_content_debug("modified_time : [%d]", t_value);
483 ret = media_info_get_timeline(media, &t_value);
484 if (ret != MEDIA_CONTENT_ERROR_NONE)
485 media_content_error("error when get info : [%d]", ret);
486 media_content_debug("timeline : [%d]", t_value);
488 ret = media_info_get_rating(media, &i_value);
489 if (ret != MEDIA_CONTENT_ERROR_NONE)
490 media_content_error("error when get info : [%d]", ret);
491 media_content_debug("rating : [%d]", i_value);
493 ret = media_info_get_favorite(media, &b_value);
494 if (ret != MEDIA_CONTENT_ERROR_NONE)
495 media_content_error("error when get info : [%d]", ret);
496 media_content_debug("favorite : [%d]", b_value);
498 ret = media_info_is_drm(media, &b_value);
499 if (ret != MEDIA_CONTENT_ERROR_NONE)
500 media_content_error("error when get info : [%d]", ret);
501 media_content_debug("is_drm : [%d]", b_value);
503 ret = media_info_is_360_content(media, &b_value);
504 if (ret != MEDIA_CONTENT_ERROR_NONE)
505 media_content_error("error when get info : [%d]", ret);
506 media_content_debug("is_360 : [%d]", b_value);
508 ret = media_info_get_stitched_state(media, &i_value);
509 if (ret != MEDIA_CONTENT_ERROR_NONE)
510 media_content_error("error when get info : [%d]", ret);
511 media_content_debug("360 stitched : [%d]", i_value);
513 ret = media_info_get_stitched_engine(media, &i_value);
514 if (ret != MEDIA_CONTENT_ERROR_NONE)
515 media_content_error("error when get info : [%d]", ret);
516 media_content_debug("360 engine : [%d]", i_value);
518 ret = media_info_set_weather(media, "Sunny");
519 if (ret != MEDIA_CONTENT_ERROR_NONE) {
520 media_content_error("Fail to set weather");
523 ret = media_info_get_weather(media, &c_value);
524 if (ret != MEDIA_CONTENT_ERROR_NONE)
525 media_content_error("error when get info : [%d]", ret);
526 media_content_debug("weather : [%s]", c_value);
529 /* Media server can't update when another db handle holds DB connection by sqlite3_prepare */
530 /*ret = media_info_set_location_tag(media, "Test location tag");*/
531 /*media_info_update_to_db(media);*/
538 bool folder_list_cb(media_folder_h folder, void *user_data)
541 char *folder_id = NULL;
542 char *str_val = NULL;
544 media_content_storage_e storage_type;
546 media_folder_h *_folder = (media_folder_h*)user_data;
548 media_content_debug("===========================");
549 if (folder != NULL) {
551 media_folder_clone(_folder, folder);
553 if (media_folder_get_folder_id(folder, &folder_id) != MEDIA_CONTENT_ERROR_NONE) {
554 media_content_error("[ERROR] media_folder_get_folder_id is failed");
557 media_content_debug("folder_id = [%s]", folder_id);
559 if (media_folder_get_parent_folder_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
560 media_content_error("[ERROR] media_folder_get_parent_folder_id is failed");
563 media_content_debug("parent_folder_id = [%s]", str_val);
565 if (media_folder_get_path(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
566 SAFE_FREE(folder_id);
567 media_content_error("[ERROR] media_folder_get_path is failed");
570 media_content_debug("folder_path = [%s]", str_val);
573 if (media_folder_get_name(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
574 SAFE_FREE(folder_id);
575 media_content_error("[ERROR] media_folder_get_name is failed");
578 media_content_debug("folder_name = [%s]", str_val);
581 if (media_folder_get_storage_type(folder, &storage_type) != MEDIA_CONTENT_ERROR_NONE) {
582 SAFE_FREE(folder_id);
583 media_content_error("[ERROR] media_folder_get_storage_type is failed");
586 media_content_debug("storage_type = [%d]", storage_type);
588 if (media_folder_get_storage_id(folder, &str_val) != MEDIA_CONTENT_ERROR_NONE) {
589 SAFE_FREE(folder_id);
590 media_content_error("[ERROR] media_folder_get_name is failed");
593 media_content_debug("storage_id = [%s]", str_val);
595 if (media_folder_get_order(folder, &int_val) != MEDIA_CONTENT_ERROR_NONE) {
596 media_content_error("[ERROR] media_folder_get_order is failed");
599 media_content_debug("folder_order = [%d]", int_val);
601 if (media_folder_get_media_count_from_db(folder_id, g_filter, &item_count) != MEDIA_CONTENT_ERROR_NONE) {
602 SAFE_FREE(folder_id);
603 media_content_error("[ERROR] media_folder_get_media_count_from_db is failed");
607 if (media_folder_foreach_media_from_db(folder_id, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE) {
608 SAFE_FREE(folder_id);
609 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed");
613 SAFE_FREE(folder_id);
622 bool test_album_from_db(int album_id)
624 int ret = MEDIA_CONTENT_ERROR_NONE;
625 media_album_h album_h;
626 int test_album_id = 0;
627 char *album_name = NULL;
630 ret = media_album_get_album_from_db(album_id, &album_h);
631 if (ret != MEDIA_CONTENT_ERROR_NONE) {
632 media_content_error("error when get album");
636 if (media_album_get_album_id(album_h, &test_album_id) != MEDIA_CONTENT_ERROR_NONE) {
637 media_album_destroy(album_h);
641 media_content_debug("test_album_id : [%d]", test_album_id);
643 if (media_album_get_name(album_h, &album_name) != MEDIA_CONTENT_ERROR_NONE) {
644 media_album_destroy(album_h);
648 media_content_debug("album_name : [%s]", album_name);
650 if (media_album_get_artist(album_h, &artist) != MEDIA_CONTENT_ERROR_NONE) {
651 media_album_destroy(album_h);
652 /* fix prevent: Resource Leak */
653 SAFE_FREE(album_name);
657 media_content_debug("artist : [%s]", artist);
659 SAFE_FREE(album_name);
662 media_album_destroy(album_h);
667 bool playlist_list_cb(media_playlist_h playlist, void *user_data)
670 char *playlist_name = NULL;
671 media_playlist_h playlist_h;
672 char *playlist_thumbnail_path = NULL;
674 media_content_debug("playlist_list_cb ======");
676 GList **list = (GList**)user_data;
679 if (playlist == NULL) {
680 media_content_debug(" playlist handle is NULL");
684 media_playlist_get_playlist_id(playlist, &playlist_id);
685 media_content_debug("playlist_id : %d", playlist_id);
686 /* 64bit build issue */
688 if (user_data != NULL)
689 *list = g_list_append(*list, (gpointer)playlist_id);
691 media_playlist_get_name(playlist, &playlist_name);
692 media_content_debug("playlist_name : %s", playlist_name);
693 SAFE_FREE(playlist_name);
695 media_playlist_get_thumbnail_path(playlist, &playlist_thumbnail_path);
696 media_content_debug("playlist_thumbnail_path : %s", playlist_thumbnail_path);
697 SAFE_FREE(playlist_thumbnail_path);
699 media_playlist_get_playlist_from_db(playlist_id, &playlist_h);
701 media_playlist_destroy(playlist_h);
706 bool tag_list_cb(media_tag_h tag, void *user_data)
709 char *tag_name = NULL;
710 int ret = MEDIA_CONTENT_ERROR_NONE;
713 media_content_debug(" tag handle is NULL");
717 ret = media_tag_get_tag_id(tag, &tag_id);
718 if (ret != MEDIA_CONTENT_ERROR_NONE)
719 media_content_error("error media_tag_get_tag_id : [%d]", ret);
721 media_content_debug("tag_id : %d", tag_id);
723 ret = media_tag_get_name(tag, &tag_name);
724 if (ret != MEDIA_CONTENT_ERROR_NONE)
725 media_content_error("error media_tag_get_name : [%d]", ret);
727 media_content_debug("tag_name : %s", tag_name);
733 bool bookmarks_cb(media_bookmark_h bookmark, void *user_data)
735 media_bookmark_h *_bookmark = (media_bookmark_h*)bookmark;
736 int ret = MEDIA_CONTENT_ERROR_NONE;
738 if (_bookmark != NULL && user_data != NULL) {
739 media_bookmark_h new_bookmark;
741 media_bookmark_clone(&new_bookmark, bookmark);
742 GList **list = (GList**)user_data;
743 *list = g_list_append(*list, new_bookmark);
746 if (_bookmark != NULL) {
751 ret = media_bookmark_get_bookmark_id(bookmark, &bookmark_id);
752 if (ret != MEDIA_CONTENT_ERROR_NONE)
753 media_content_error("error media_bookmark_get_bookmark_id : [%d]", ret);
755 media_content_debug("bookmark_id : %d", bookmark_id);
757 ret = media_bookmark_get_thumbnail_path(bookmark, &name);
758 if (ret != MEDIA_CONTENT_ERROR_NONE)
759 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
761 media_content_debug("bookmark thumbnail_path : %s", name);
764 ret = media_bookmark_get_marked_time(bookmark, &time);
765 if (ret != MEDIA_CONTENT_ERROR_NONE)
766 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
768 media_content_debug("bookmark marked_time : %d", time);
770 ret = media_bookmark_get_name(bookmark, &name);
771 if (ret != MEDIA_CONTENT_ERROR_NONE)
772 media_content_error("error media_bookmark_get_name : [%d]", ret);
774 media_content_debug("bookmark name : %s", name);
783 bool album_list_cb(media_album_h album, void *user_data)
786 char *album_name = NULL;
788 char *album_art = NULL;
790 int ret = MEDIA_CONTENT_ERROR_NONE;
791 filter_h filter = NULL;
794 const char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
796 ret = media_filter_create(&filter);
797 if (ret != MEDIA_CONTENT_ERROR_NONE) {
798 media_content_error("Fail to create filter");
801 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
802 if (ret != MEDIA_CONTENT_ERROR_NONE) {
803 media_filter_destroy(filter);
804 media_content_error("Fail to set condition");
807 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_NOCASE);
808 if (ret != MEDIA_CONTENT_ERROR_NONE) {
809 media_filter_destroy(filter);
810 media_content_error("Fail to set order");
815 if (media_album_get_album_id(album, &album_id) != MEDIA_CONTENT_ERROR_NONE) {
816 media_filter_destroy(filter);
820 media_content_debug("album_id : [%d]", album_id);
822 if (media_album_get_name(album, &album_name) != MEDIA_CONTENT_ERROR_NONE) {
823 media_filter_destroy(filter);
827 media_content_debug("album_name : [%s]", album_name);
828 SAFE_FREE(album_name);
830 if (media_album_get_artist(album, &artist) != MEDIA_CONTENT_ERROR_NONE) {
831 media_filter_destroy(filter);
835 media_content_debug("artist : [%s]", artist);
838 if (media_album_get_album_art(album, &album_art) != MEDIA_CONTENT_ERROR_NONE) {
839 media_filter_destroy(filter);
843 media_content_debug("album_art : [%s]", album_art);
844 SAFE_FREE(album_art);
846 if (media_album_get_media_count_from_db(album_id, filter, &media_count) != MEDIA_CONTENT_ERROR_NONE) {
847 media_filter_destroy(filter);
851 media_content_debug("media_count : [%d]", media_count);
853 if (media_album_foreach_media_from_db(album_id, filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE) {
854 media_filter_destroy(filter);
858 test_album_from_db(album_id);
860 media_content_error("album item not Found!!");
863 media_filter_destroy(filter);
868 bool group_list_cb(const char *group_name, void *user_data)
871 int *idx = user_data;
873 media_content_debug("group item : [%s] [%d]", group_name, *idx);
875 if (media_group_get_media_count_from_db(group_name, *idx, g_filter, &media_count) != MEDIA_CONTENT_ERROR_NONE)
878 media_content_debug("media_count : [%d]", media_count);
880 if (media_group_foreach_media_from_db(group_name, *idx, g_filter, media_item_cb, NULL) != MEDIA_CONTENT_ERROR_NONE)
886 bool playlist_item_cb(int playlist_member_id, media_info_h media, void *user_data)
888 media_content_debug("playlist_member_id : [%d]", playlist_member_id);
889 /* 64bit build issue */
891 GList **list = (GList**)user_data;
893 *list = g_list_append(*list, (gpointer)playlist_member_id);
895 /*media_item_cb(media, user_data);*/
900 int test_filter_create(void)
902 media_content_debug("\n============Filter Create============\n\n");
904 int ret = MEDIA_CONTENT_ERROR_NONE;
906 /* Filter for media */
907 const char *condition = "MEDIA_TYPE=3"; /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
908 /*const char *condition = "MEDIA_TYPE IS NOT 0 AND MEDIA_DESCRIPTION IS NOT NULL"; */ /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
910 ret = media_filter_create(&g_filter);
912 /* Set condition and collate
913 * Condition string : You can make where statement of sql.
914 * Colation : You can use collation when comparing.
915 * Ex) In case of FILE_NAME='Samsung' as condition string,
916 * if you want to compare with NOCASE collation,
917 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
918 * if you want to compare in case-sensitive,
919 * call media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
921 ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
923 /* Collation of ordering
924 * If you want to get list, which is sorted by NOCASE,
925 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_NOCASE);
927 * call media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
929 /* Able to set multi column to set order */
931 ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, "MEDIA_MODIFIED_TIME, MEDIA_DISPLAY_NAME", MEDIA_CONTENT_COLLATE_DEFAULT);
932 ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
933 ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TRACK_NUM_INT, MEDIA_CONTENT_COLLATE_DEFAULT);
934 ret = media_filter_set_storage(g_filter, "cfbf3d2c-71c5-4611-bccc-7cbac890146e");
936 /* Filter for group */
937 const char *g_condition = "TAG_NAME like \"\%my\%\"";
938 const char *g_condition = "BOOKMARK_MARKED_TIME > 300";
940 ret = media_filter_create(&g_filter_g);
942 ret = media_filter_set_order(g_filter_g, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
947 int test_filter_destroy(void)
949 media_content_debug("\n============Filter Create============\n\n");
951 int ret = MEDIA_CONTENT_ERROR_NONE;
953 ret = media_filter_destroy(g_filter);
958 int test_connect_database(void)
960 int ret = MEDIA_CONTENT_ERROR_NONE;
962 media_content_debug("\n============DB Connection Test============\n\n");
964 ret = media_content_connect();
966 if (ret == MEDIA_CONTENT_ERROR_NONE)
967 media_content_debug("connection is success\n\n");
969 media_content_error("connection is failed\n\n");
974 int test_gallery_scenario(void)
976 int ret = MEDIA_CONTENT_ERROR_NONE;
978 filter_h filter = NULL;
981 GList *folder_list = NULL;
982 media_folder_h folder_handle = NULL;
984 /* First, Get folder list */
985 ret = media_folder_foreach_folder_from_db(filter, gallery_folder_list_cb, &folder_list);
986 if (ret != MEDIA_CONTENT_ERROR_NONE) {
987 media_content_error("media_folder_foreach_folder_from_db failed: %d", ret);
990 media_content_debug("media_folder_foreach_folder_from_db success!!");
991 char *folder_id = NULL;
992 char *folder_name = NULL;
993 char *folder_path = NULL;
995 for (i = 0; i < g_list_length(folder_list); i++) {
996 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
998 ret = media_folder_get_folder_id(folder_handle, &folder_id);
999 if (ret != MEDIA_CONTENT_ERROR_NONE)
1000 media_content_error("media_folder_get_folder_id failed: %d", ret);
1001 ret = media_folder_get_name(folder_handle, &folder_name);
1002 if (ret != MEDIA_CONTENT_ERROR_NONE)
1003 media_content_error("media_folder_get_name failed: %d", ret);
1004 ret = media_folder_get_path(folder_handle, &folder_path);
1005 if (ret != MEDIA_CONTENT_ERROR_NONE)
1006 media_content_error("media_folder_get_path failed: %d", ret);
1008 media_content_debug("folder_id [%d] : %s", i, folder_id);
1009 media_content_debug("folder_name [%d] : %s", i, folder_name);
1010 media_content_debug("folder_path [%d] : %s", i, folder_path);
1012 ret = media_folder_get_media_count_from_db(folder_id, filter, &count);
1013 /* User should free these string */
1014 SAFE_FREE(folder_id);
1015 SAFE_FREE(folder_name);
1016 SAFE_FREE(folder_path);
1017 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1018 media_content_error("media_folder_get_media_count_from_db failed: %d", ret);
1021 media_content_debug("media count [%d] : %d", i, count);
1026 /* To check performance */
1027 struct timeval start, end;
1028 gettimeofday(&start, NULL);
1030 /* Second, Get all item list */
1031 media_info_h media_handle = NULL;
1032 GList *all_item_list = NULL;
1034 media_content_collation_e collate_type = MEDIA_CONTENT_COLLATE_NOCASE;
1035 media_content_order_e order_type = MEDIA_CONTENT_ORDER_DESC;
1036 ret = media_filter_create(&filter);
1037 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1038 media_content_error("Fail to create filter");
1041 ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", collate_type);
1042 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1043 media_filter_destroy(filter);
1044 media_content_error("Fail to set condition");
1047 ret = media_filter_set_order(filter, order_type, MEDIA_DISPLAY_NAME, collate_type);
1048 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1049 media_filter_destroy(filter);
1050 media_content_error("Fail to set order");
1054 ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
1055 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1056 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
1057 media_filter_destroy(filter);
1060 media_content_debug("media_info_foreach_media_from_db success");
1061 media_content_type_e media_type;
1062 char *media_id = NULL;
1063 char *media_name = NULL;
1064 char *media_path = NULL;
1066 for (i = 0; i < g_list_length(all_item_list); i++) {
1067 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1069 ret = media_info_get_media_id(media_handle, &media_id);
1070 if (ret != MEDIA_CONTENT_ERROR_NONE)
1071 media_content_error("media_info_get_media_id failed: %d", ret);
1072 ret = media_info_get_media_type(media_handle, &media_type);
1073 if (ret != MEDIA_CONTENT_ERROR_NONE)
1074 media_content_error("media_info_get_media_type failed: %d", ret);
1075 ret = media_info_get_display_name(media_handle, &media_name);
1076 if (ret != MEDIA_CONTENT_ERROR_NONE)
1077 media_content_error("media_info_get_display_name failed: %d", ret);
1078 ret = media_info_get_file_path(media_handle, &media_path);
1079 if (ret != MEDIA_CONTENT_ERROR_NONE)
1080 media_content_error("media_info_get_file_path failed: %d", ret);
1082 if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1083 image_meta_h image_handle;
1084 int width = 0, height = 0;
1085 media_content_orientation_e orientation = 0;
1086 char *datetaken = NULL;
1087 char *burst_id = NULL;
1089 ret = media_info_get_image(media_handle, &image_handle);
1090 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1091 media_content_error("media_info_get_image failed: %d", ret);
1093 ret = image_meta_get_width(image_handle, &width);
1094 if (ret != MEDIA_CONTENT_ERROR_NONE)
1095 media_content_error("error image_meta_get_width : [%d]", ret);
1096 ret = image_meta_get_height(image_handle, &height);
1097 if (ret != MEDIA_CONTENT_ERROR_NONE)
1098 media_content_error("error image_meta_get_height : [%d]", ret);
1099 ret = image_meta_get_orientation(image_handle, &orientation);
1100 if (ret != MEDIA_CONTENT_ERROR_NONE)
1101 media_content_error("error image_meta_get_orientation : [%d]", ret);
1102 ret = image_meta_get_date_taken(image_handle, &datetaken);
1103 if (ret != MEDIA_CONTENT_ERROR_NONE)
1104 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1105 ret = image_meta_get_burst_id(image_handle, &burst_id);
1106 if (ret != MEDIA_CONTENT_ERROR_NONE)
1107 media_content_error("error image_meta_get_burst_id : [%d]", ret);
1109 media_content_debug("This is Image");
1110 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1113 SAFE_FREE(datetaken);
1114 SAFE_FREE(burst_id);
1115 ret = image_meta_destroy(image_handle);
1116 if (ret != MEDIA_CONTENT_ERROR_NONE)
1117 media_content_error("error image_meta_destroy : [%d]", ret);
1119 } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1120 video_meta_h video_handle;
1121 char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;
1123 time_t time_played = 0;
1125 ret = media_info_get_video(media_handle, &video_handle);
1126 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1127 media_content_error("media_info_get_video failed: %d", ret);
1129 ret = video_meta_get_artist(video_handle, &artist);
1130 if (ret != MEDIA_CONTENT_ERROR_NONE)
1131 media_content_error("error video_meta_get_artist : [%d]", ret);
1132 ret = video_meta_get_album(video_handle, &album);
1133 if (ret != MEDIA_CONTENT_ERROR_NONE)
1134 media_content_error("error video_meta_get_album : [%d]", ret);
1135 ret = video_meta_get_album_artist(video_handle, &album_artist);
1136 if (ret != MEDIA_CONTENT_ERROR_NONE)
1137 media_content_error("error video_meta_get_album_artist : [%d]", ret);
1138 ret = video_meta_get_duration(video_handle, &duration);
1139 if (ret != MEDIA_CONTENT_ERROR_NONE)
1140 media_content_error("error video_meta_get_duration : [%d]", ret);
1141 ret = video_meta_get_played_time(video_handle, &time_played);
1142 if (ret != MEDIA_CONTENT_ERROR_NONE)
1143 media_content_error("error video_meta_get_played_time : [%d]", ret);
1145 media_content_debug("This is Video");
1146 media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d, Played time: %d", title, album, artist, album_artist, duration, time_played);
1152 SAFE_FREE(album_artist);
1154 ret = video_meta_destroy(video_handle);
1155 if (ret != MEDIA_CONTENT_ERROR_NONE)
1156 media_content_error("error video_meta_destroy : [%d]", ret);
1159 SAFE_FREE(media_id);
1160 SAFE_FREE(media_name);
1161 SAFE_FREE(media_path);
1165 media_filter_destroy(filter);
1168 /* To check performance */
1169 gettimeofday(&end, NULL);
1170 long time = (end.tv_sec * 1000000 + end.tv_usec) - (start.tv_sec * 1000000 + start.tv_usec);
1171 media_content_debug("Time : %ld\n", time);
1173 /* Third, Get item list of a folder */
1174 GList *item_list = NULL;
1176 for (i = 0; i < g_list_length(folder_list); i++) {
1178 char *folder_id = NULL;
1179 char *folder_name = NULL;
1180 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1182 media_folder_get_folder_id(folder_handle, &folder_id);
1183 media_folder_get_name(folder_handle, &folder_name);
1185 ret = media_folder_foreach_media_from_db(folder_id, filter, gallery_media_item_cb, &item_list);
1186 SAFE_FREE(folder_id);
1187 SAFE_FREE(folder_name);
1189 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1190 media_content_error("media_folder_foreach_media_from_db failed: %d", ret);
1193 media_content_error("media_folder_foreach_media_from_db success!", ret);
1194 char *media_id = NULL;
1195 char *media_name = NULL;
1196 char *media_path = NULL;
1197 media_content_type_e media_type = 0;
1199 for (j = 0; j < g_list_length(item_list); j++) {
1200 media_handle = (media_info_h)g_list_nth_data(item_list, j);
1202 ret = media_info_get_media_id(media_handle, &media_id);
1203 if (ret != MEDIA_CONTENT_ERROR_NONE)
1204 media_content_error("media_info_get_media_id failed: %d", ret);
1205 ret = media_info_get_display_name(media_handle, &media_name);
1206 if (ret != MEDIA_CONTENT_ERROR_NONE)
1207 media_content_error("media_info_get_display_name failed: %d", ret);
1208 ret = media_info_get_file_path(media_handle, &media_path);
1209 if (ret != MEDIA_CONTENT_ERROR_NONE)
1210 media_content_error("media_info_get_file_path failed: %d", ret);
1211 ret = media_info_get_media_type(media_handle, &media_type);
1212 if (ret != MEDIA_CONTENT_ERROR_NONE)
1213 media_content_error("media_info_get_media_type failed: %d", ret);
1215 media_content_debug("[%s] media_id [%d] : %s", folder_name, j, media_id);
1216 media_content_debug("[%s] media_type [%d] : %d", folder_name, j, media_type);
1217 media_content_debug("[%s] media_name [%d] : %s", folder_name, j, media_name);
1218 media_content_debug("[%s] media_path [%d] : %s", folder_name, j, media_path);
1220 if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
1221 image_meta_h image_handle;
1222 int width = 0, height = 0;
1223 media_content_orientation_e orientation = 0;
1224 char *datetaken = NULL;
1226 ret = media_info_get_image(media_handle, &image_handle);
1227 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1228 media_content_error("media_info_get_image failed: %d", ret);
1230 ret = image_meta_get_width(image_handle, &width);
1231 if (ret != MEDIA_CONTENT_ERROR_NONE)
1232 media_content_error("error image_meta_get_width : [%d]", ret);
1233 ret = image_meta_get_height(image_handle, &height);
1234 if (ret != MEDIA_CONTENT_ERROR_NONE)
1235 media_content_error("error image_meta_get_height : [%d]", ret);
1236 ret = image_meta_get_orientation(image_handle, &orientation);
1237 if (ret != MEDIA_CONTENT_ERROR_NONE)
1238 media_content_error("error image_meta_get_orientation : [%d]", ret);
1239 ret = image_meta_get_date_taken(image_handle, &datetaken);
1240 if (ret != MEDIA_CONTENT_ERROR_NONE)
1241 media_content_error("error image_meta_get_date_taken : [%d]", ret);
1243 media_content_debug("This is Image");
1244 media_content_debug("Width : %d, Height : %d, Orientation : %d, Date taken : %s", width, height, orientation, datetaken);
1247 SAFE_FREE(datetaken);
1248 ret = image_meta_destroy(image_handle);
1249 if (ret != MEDIA_CONTENT_ERROR_NONE)
1250 media_content_error("error image_meta_destroy : [%d]", ret);
1252 } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
1253 video_meta_h video_handle;
1254 char *title = NULL, *artist = NULL, *album = NULL, *album_artist = NULL;;
1258 ret = media_info_get_video(media_handle, &video_handle);
1259 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1260 media_content_error("media_info_get_video failed: %d", ret);
1262 ret = video_meta_get_artist(video_handle, &artist);
1263 if (ret != MEDIA_CONTENT_ERROR_NONE)
1264 media_content_error("error video_meta_get_artist : [%d]", ret);
1265 ret = video_meta_get_album(video_handle, &album);
1266 if (ret != MEDIA_CONTENT_ERROR_NONE)
1267 media_content_error("error video_meta_get_album : [%d]", ret);
1268 ret = video_meta_get_album_artist(video_handle, &album_artist);
1269 if (ret != MEDIA_CONTENT_ERROR_NONE)
1270 media_content_error("error video_meta_get_album_artist : [%d]", ret);
1271 ret = video_meta_get_duration(video_handle, &duration);
1272 if (ret != MEDIA_CONTENT_ERROR_NONE)
1273 media_content_error("error video_meta_get_duration : [%d]", ret);
1274 ret = video_meta_get_played_time(video_handle, &time_played);
1275 if (ret != MEDIA_CONTENT_ERROR_NONE)
1276 media_content_error("error video_meta_get_played_time : [%d]", ret);
1278 media_content_debug("This is Video");
1279 media_content_debug("Title: %s, Album: %s, Artist: %s, Album_artist: %s \n Duration: %d, Played time: %d\n", title, album, artist, album_artist, duration, time_played);
1285 SAFE_FREE(album_artist);
1287 ret = video_meta_destroy(video_handle);
1288 if (ret != MEDIA_CONTENT_ERROR_NONE)
1289 media_content_error("error video_meta_destroy : [%d]", ret);
1291 /* Get bookmar list in case of video */
1292 media_bookmark_h bm_handle;
1293 GList *bm_list = NULL;
1295 ret = media_info_foreach_bookmark_from_db(media_id, filter, gallery_bookmarks_cb, &bm_list);
1296 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1297 media_content_error("media_info_foreach_bookmark_from_db failed: %d", ret);
1299 media_content_debug("media_info_foreach_bookmark_from_db success");
1303 for (k = 0; k < g_list_length(bm_list); k++) {
1304 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, k);
1306 char *thumb_path = NULL;
1308 ret = media_bookmark_get_marked_time(bm_handle, &marked_time);
1309 if (ret != MEDIA_CONTENT_ERROR_NONE)
1310 media_content_error("error media_bookmark_get_marked_time : [%d]", ret);
1311 ret = media_bookmark_get_thumbnail_path(bm_handle, &thumb_path);
1312 if (ret != MEDIA_CONTENT_ERROR_NONE)
1313 media_content_error("error media_bookmark_get_thumbnail_path : [%d]", ret);
1315 media_content_debug("Bookmark time : %d\nBookmar thumb: %s", marked_time, thumb_path);
1316 SAFE_FREE(thumb_path);
1319 /* Remove bookmark list */
1322 for (l = 0; l < g_list_length(bm_list); l++) {
1323 bm_handle = (media_bookmark_h)g_list_nth_data(bm_list, l);
1324 ret = media_bookmark_destroy(bm_handle);
1325 if (ret != MEDIA_CONTENT_ERROR_NONE)
1326 media_content_error("error media_bookmark_destroy : [%d]", ret);
1329 g_list_free(bm_list);
1335 SAFE_FREE(media_id);
1336 SAFE_FREE(media_name);
1337 SAFE_FREE(media_path);
1343 media_tag_h tag_handle = NULL;
1344 GList *tag_list = NULL;
1345 GList *media_list_in_tag = NULL;
1347 ret = media_tag_foreach_tag_from_db(filter, gallery_tag_item_cb, &tag_list);
1349 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1350 media_content_error("media_tag_foreach_tag_from_db failed: %d", ret);
1353 media_content_error("media_tag_foreach_tag_from_db success");
1354 char *tag_name = NULL;
1357 for (i = 0; i < g_list_length(tag_list); i++) {
1358 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1359 media_tag_get_tag_id(tag_handle, &tag_id);
1360 media_tag_get_name(tag_handle, &tag_name);
1362 media_content_debug("[%d] %s", tag_id, tag_name);
1364 ret = media_tag_foreach_media_from_db(tag_id, filter, gallery_media_item_cb, &media_list_in_tag);
1365 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1366 media_content_error("media_tag_foreach_media_from_db failed: %d", ret);
1369 media_content_error("media_tag_foreach_media_from_db success");
1371 media_info_h tag_media_handle;
1372 char *media_id = NULL;
1373 char *media_name = NULL;
1374 char *media_path = NULL;
1375 media_content_type_e media_type = 0;
1377 for (j = 0; j < g_list_length(media_list_in_tag); j++) {
1378 tag_media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, j);
1379 ret = media_info_get_media_id(tag_media_handle, &media_id);
1380 if (ret != MEDIA_CONTENT_ERROR_NONE)
1381 media_content_error("media_info_get_media_id failed: %d", ret);
1382 ret = media_info_get_display_name(tag_media_handle, &media_name);
1383 if (ret != MEDIA_CONTENT_ERROR_NONE)
1384 media_content_error("media_info_get_display_name failed: %d", ret);
1385 ret = media_info_get_file_path(tag_media_handle, &media_path);
1386 if (ret != MEDIA_CONTENT_ERROR_NONE)
1387 media_content_error("media_info_get_file_path failed: %d", ret);
1388 ret = media_info_get_media_type(tag_media_handle, &media_type);
1389 if (ret != MEDIA_CONTENT_ERROR_NONE)
1390 media_content_error("media_info_get_media_type failed: %d", ret);
1392 media_content_debug("[%s] media_id [%d] : %s", tag_name, j, media_id);
1393 media_content_debug("[%s] media_type [%d] : %d", tag_name, j, media_type);
1394 media_content_debug("[%s] media_name [%d] : %s", tag_name, j, media_name);
1395 media_content_debug("[%s] media_path [%d] : %s", tag_name, j, media_path);
1397 SAFE_FREE(media_id);
1398 SAFE_FREE(media_name);
1399 SAFE_FREE(media_path);
1401 SAFE_FREE(tag_name);
1405 /* Remove folder list */
1407 for (i = 0; i < g_list_length(folder_list); i++) {
1408 folder_handle = (media_folder_h)g_list_nth_data(folder_list, i);
1409 media_folder_destroy(folder_handle);
1412 g_list_free(folder_list);
1415 /* Remove all items list */
1416 if (all_item_list) {
1417 for (i = 0; i < g_list_length(all_item_list); i++) {
1418 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
1419 ret = media_info_destroy(media_handle);
1420 if (ret != MEDIA_CONTENT_ERROR_NONE)
1421 media_content_error("media_info_destroy failed: %d", ret);
1424 g_list_free(all_item_list);
1427 /* Remove items list */
1429 for (i = 0; i < g_list_length(item_list); i++) {
1430 media_handle = (media_info_h)g_list_nth_data(item_list, i);
1431 ret = media_info_destroy(media_handle);
1432 if (ret != MEDIA_CONTENT_ERROR_NONE)
1433 media_content_error("media_info_destroy failed: %d", ret);
1436 g_list_free(item_list);
1439 /* Remove tag list */
1441 for (i = 0; i < g_list_length(tag_list); i++) {
1442 tag_handle = (media_tag_h)g_list_nth_data(tag_list, i);
1443 ret = media_tag_destroy(tag_handle);
1444 if (ret != MEDIA_CONTENT_ERROR_NONE)
1445 media_content_error("error media_tag_destroy : [%d]", ret);
1448 g_list_free(tag_list);
1451 /* Remove media list in a tag */
1452 if (media_list_in_tag) {
1453 for (i = 0; i < g_list_length(media_list_in_tag); i++) {
1454 media_handle = (media_info_h)g_list_nth_data(media_list_in_tag, i);
1455 ret = media_info_destroy(media_handle);
1456 if (ret != MEDIA_CONTENT_ERROR_NONE)
1457 media_content_error("media_info_destroy failed: %d", ret);
1460 g_list_free(media_list_in_tag);
1463 return MEDIA_CONTENT_ERROR_NONE;
1466 /*Get All Music file. sort by Title and not case sensitive*/
1467 int test_get_all_music_files(void)
1469 int ret = MEDIA_CONTENT_ERROR_NONE;
1470 int media_count = 0;
1474 const char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1476 ret = media_filter_create(&filter);
1477 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1478 media_content_error("Fail to create filter");
1481 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_LOCALIZED);
1482 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1483 media_filter_destroy(filter);
1484 media_content_error("Fail to set condition");
1487 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_TITLE, MEDIA_CONTENT_COLLATE_LOCALIZED);
1488 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1489 media_filter_destroy(filter);
1490 media_content_error("Fail to set order");
1495 ret = media_info_get_media_count_from_db(filter, &media_count);
1496 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1497 media_filter_destroy(filter);
1498 media_content_error("Fail to get media count");
1502 media_content_debug("media_count : [%d]", media_count);
1504 ret = media_info_foreach_media_from_db(filter, media_item_cb, NULL);
1505 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1506 media_filter_destroy(filter);
1507 media_content_error("Fail to get media");
1511 ret = media_filter_destroy(filter);
1516 int test_media_info_operation(void)
1518 int ret = MEDIA_CONTENT_ERROR_NONE;
1519 int media_count = 0;
1521 media_content_debug("\n============Media info Test============\n\n");
1523 test_filter_create();
1525 ret = media_info_get_media_count_from_db(g_filter, &media_count);
1526 if (ret != MEDIA_CONTENT_ERROR_NONE)
1527 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
1529 media_content_debug("media_count : [%d]", media_count);
1531 ret = media_info_foreach_media_from_db(g_filter, media_item_cb, NULL);
1532 if (ret == MEDIA_CONTENT_ERROR_NONE)
1533 media_content_debug("media_info_foreach_media_from_db is success");
1535 media_content_error("media_info_foreach_media_from_db is failed");
1537 test_filter_destroy();
1542 int test_media_info_operation_2(void)
1544 int ret = MEDIA_CONTENT_ERROR_NONE;
1545 int bookmark_count = 0;
1547 media_content_debug("\n============Media info Test 2============\n\n");
1549 test_filter_create();
1553 char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg"));
1554 media_bookmark_insert_to_db(test_video_id, 100, thumbnail_path1);
1555 media_bookmark_insert_to_db(test_video_id, 200, thumbnail_path1);
1557 media_info_get_bookmark_count_from_db(test_video_id, g_filter_g, &bookmark_count);
1559 media_content_debug("bookmark_count : [%d]", bookmark_count);
1561 ret = media_info_foreach_bookmark_from_db(test_video_id, g_filter_g, bookmarks_cb, NULL);
1565 ret = media_info_get_tag_count_from_db(test_audio_id, g_filter_g, &bookmark_count);
1566 if (ret != MEDIA_CONTENT_ERROR_NONE)
1567 media_content_error("media_info_get_tag_count_from_db failed: %d", ret);
1569 media_content_debug("tag_count : [%d]", bookmark_count);
1571 ret = media_info_foreach_tag_from_db(test_audio_id, g_filter_g, tag_list_cb, NULL);
1572 if (ret != MEDIA_CONTENT_ERROR_NONE)
1573 media_content_error("media_info_foreach_tag_from_db failed: %d", ret);
1575 test_filter_destroy();
1580 int test_folder_operation(void)
1582 int ret = MEDIA_CONTENT_ERROR_NONE;
1583 filter_h filter = NULL;
1584 media_folder_h folder = NULL;
1585 char *folder_id = NULL;
1588 media_content_debug("\n============Folder Test============\n\n");
1590 test_filter_create();
1592 ret = media_filter_create(&filter);
1593 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1594 media_content_error("[ERROR] media_folder_filter_create is failed");
1598 media_filter_set_condition(filter, "(MEDIA_TYPE = 0 or MEDIA_TYPE = 1) and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1599 media_filter_set_offset(filter, 0, 5);
1600 media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1601 media_filter_set_storage(filter, "cfbf3d2c-71c5-4611-bccc-7cbac890146e");
1603 ret = media_folder_get_folder_count_from_db(filter, &count);
1604 media_content_debug("Folder count : [%d]", count);
1606 ret = media_folder_foreach_folder_from_db(filter, folder_list_cb, &folder);
1608 filter_h m_filter = NULL;
1610 ret = media_filter_create(&m_filter);
1611 if (ret != MEDIA_CONTENT_ERROR_NONE) {
1612 test_filter_destroy();
1613 media_filter_destroy(filter);
1614 media_content_error("[ERROR] media_info_filter_create is failed");
1618 media_filter_set_condition(m_filter, "MEDIA_TYPE=1 and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1619 media_filter_set_offset(m_filter, 0, 5);
1620 media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
1622 ret = media_folder_foreach_media_from_db(folder_id, m_filter, media_item_cb, NULL);
1623 if (ret != MEDIA_CONTENT_ERROR_NONE)
1624 media_content_error("[ERROR] media_folder_foreach_media_from_db is failed, error code : %d", ret);
1626 media_filter_destroy(filter);
1627 media_filter_destroy(m_filter);
1629 test_filter_destroy();
1631 /* fix prevent: Resource Leak */
1632 SAFE_FREE(folder_id);
1637 bool folder_update_cb(media_folder_h folder, void *user_data)
1639 char *folder_id = NULL;
1640 char *folder_path = NULL;
1641 char *folder_name = NULL;
1642 int folder_order = -1;
1645 if (folder != NULL) {
1646 ret = media_folder_get_folder_id(folder, &folder_id);
1647 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1648 media_content_debug("folder_id = [%s]", folder_id);
1649 SAFE_FREE(folder_id);
1651 ret = media_folder_get_path(folder, &folder_path);
1652 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1653 media_content_debug("folder_path = [%s]", folder_path);
1654 SAFE_FREE(folder_path);
1656 ret = media_folder_get_name(folder, &folder_name);
1657 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1658 media_content_debug("folder_name = [%s]", folder_name);
1659 SAFE_FREE(folder_name);
1661 ret = media_folder_get_order(folder, &folder_order);
1662 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1663 media_content_debug("folder_order = [%d]", folder_order);
1665 ret = media_folder_clone(&g_folder, folder);
1666 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1677 int test_folder_update(void)
1679 int ret = MEDIA_CONTENT_ERROR_NONE;
1681 int folder_count = 0;
1683 media_content_debug("\n============Folder Update Test============\n\n");
1685 ret = media_filter_create(&filter);
1686 media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
1688 ret = media_filter_set_condition(filter, "MEDIA_TYPE=0 and MEDIA_STORAGE_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT); /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
1689 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, FOLDER_ORDER, MEDIA_CONTENT_COLLATE_NOCASE);
1691 ret = media_folder_get_folder_count_from_db(filter, &folder_count);
1693 media_content_debug("Folder count : %d", folder_count);
1695 ret = media_folder_foreach_folder_from_db(filter, folder_update_cb, NULL);
1697 media_filter_destroy(filter);
1699 ret = media_folder_set_name(g_folder, "test_folder");
1701 ret = media_folder_set_order(g_folder, 200);
1703 ret = media_folder_update_to_db(g_folder);
1705 ret = media_folder_destroy(g_folder);
1710 int test_playlist_operation(void)
1712 int ret = MEDIA_CONTENT_ERROR_NONE;
1713 media_playlist_h playlist_1 = NULL;
1714 media_playlist_h playlist_2 = NULL;
1715 media_playlist_h playlist_3 = NULL;
1716 media_playlist_h playlist_4 = NULL;
1717 int playlist_id_1 = 0;
1718 int playlist_id_2 = 0;
1719 int playlist_id_3 = 0;
1720 const char *playlist_name_1 = "myPlaylist_1";
1721 const char *playlist_name_2 = "myPlaylist_2";
1722 const char *playlist_name_3 = "myPlaylist_3";
1723 int playlist_count = 0;
1724 int media_count = 0;
1730 filter_h filter = NULL;
1731 filter_h m_filter = NULL;
1733 media_content_debug("\n============Playlist Test============\n\n");
1735 /* Filter for playlist */
1737 const char *condition = "(MEDIA_TYPE=1 or MEDIA_TYPE=3)"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
1739 ret = media_filter_create(&filter);
1740 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_NOCASE);
1741 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_NAME, MEDIA_CONTENT_COLLATE_NOCASE);
1743 /* Create Playlist */
1744 media_playlist_insert_to_db(playlist_name_1, &playlist_1);
1745 media_playlist_insert_to_db(playlist_name_2, &playlist_2);
1746 media_playlist_insert_to_db(playlist_name_3, &playlist_3);
1748 if (playlist_1 != NULL) {
1749 /* Add media to Playlist */
1750 media_playlist_add_media(playlist_1, test_audio_id);
1751 media_playlist_add_media(playlist_1, test_audio_id);
1752 media_playlist_add_media(playlist_1, test_video_id);
1755 char *playlist_thumb_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/Default.jpg"));
1756 media_playlist_set_thumbnail_path(playlist_1, playlist_thumb_path);
1759 media_playlist_update_to_db(playlist_1);
1762 if (playlist_2 != NULL) {
1763 media_playlist_add_media(playlist_2, test_audio_id);
1764 media_playlist_add_media(playlist_2, test_audio_id);
1765 media_playlist_update_to_db(playlist_2);
1768 /* Get Playlist Count*/
1769 ret = media_playlist_get_playlist_count_from_db(filter, &playlist_count);
1771 media_content_debug("playlist_count [%d]", playlist_count);
1774 GList *playlist_id_list = NULL;
1775 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, &playlist_id_list);
1776 /* 64bit build issue */
1778 /* Get Playlist id*/
1779 playlist_id_1 = (int)g_list_nth_data(playlist_id_list, 0);
1780 playlist_id_2 = (int)g_list_nth_data(playlist_id_list, 1);
1781 playlist_id_3 = (int)g_list_nth_data(playlist_id_list, 2);
1783 media_content_debug("playlist_id_1 [%d]", playlist_id_1);
1784 media_content_debug("playlist_id_2 [%d]", playlist_id_2);
1785 media_content_debug("playlist_id_3 [%d]", playlist_id_3);
1787 /* Export and import playlist */
1788 media_playlist_export_to_file(playlist_3, "/opt/usr/media/Music/playlist.m3u");
1789 media_playlist_import_from_file("/opt/usr/media/Music/playlist.m3u", "playlist_4", &playlist_4);
1791 /* Filter for media*/
1792 ret = media_filter_create(&m_filter);
1794 ret = media_filter_set_condition(m_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1796 ret = media_filter_set_order(m_filter, MEDIA_CONTENT_ORDER_ASC, PLAYLIST_MEMBER_ORDER, MEDIA_CONTENT_COLLATE_DEFAULT);
1798 /* Get media count */
1799 media_playlist_get_media_count_from_db(playlist_id_1, m_filter, &media_count);
1800 media_content_debug("playlist_1_media_count [%d]", media_count);
1802 media_playlist_get_media_count_from_db(playlist_id_2, m_filter, &media_count);
1803 media_content_debug("playlist_2_media_count [%d]", media_count);
1805 media_playlist_get_media_count_from_db(playlist_id_3, m_filter, &media_count);
1806 media_content_debug("playlist_3_media_count [%d]", media_count);
1808 /* Get media of playlist */
1809 GList *playlist_member_id_list = NULL;
1810 GList *playlist_member_id_list_1 = NULL;
1812 media_playlist_foreach_media_from_db(playlist_id_1, m_filter, playlist_item_cb, &playlist_member_id_list);
1813 media_playlist_foreach_media_from_db(playlist_id_2, m_filter, playlist_item_cb, &playlist_member_id_list_1);
1815 int playlist_member_id_1_1 = 0;
1816 int playlist_member_id_1_2 = 0;
1817 int playlist_member_id_1_3 = 0;
1818 int playlist_member_id_2_1 = 0;
1819 int playlist_member_id_2_2 = 0;
1820 /* 64bit build issue */
1822 playlist_member_id_1_1 = (int)g_list_nth_data(playlist_member_id_list, 0);
1823 playlist_member_id_1_2 = (int)g_list_nth_data(playlist_member_id_list, 1);
1824 playlist_member_id_1_3 = (int)g_list_nth_data(playlist_member_id_list, 2);
1825 playlist_member_id_2_1 = (int)g_list_nth_data(playlist_member_id_list_1, 0);
1826 playlist_member_id_2_2 = (int)g_list_nth_data(playlist_member_id_list_1, 1);
1828 media_content_debug("playlist_member_id_1_1 [%d]", playlist_member_id_1_1);
1829 media_content_debug("playlist_member_id_1_2 [%d]", playlist_member_id_1_2);
1830 media_content_debug("playlist_member_id_1_3 [%d]", playlist_member_id_1_3);
1831 media_content_debug("playlist_member_id_2_1 [%d]", playlist_member_id_2_1);
1832 media_content_debug("playlist_member_id_2_2 [%d]", playlist_member_id_2_2);
1834 media_playlist_get_play_order(playlist_1, playlist_member_id_1_1, &order_1);
1835 media_playlist_get_play_order(playlist_1, playlist_member_id_1_2, &order_2);
1836 media_playlist_get_play_order(playlist_1, playlist_member_id_1_3, &order_3);
1837 media_playlist_get_play_order(playlist_2, playlist_member_id_2_1, &order_4);
1838 media_playlist_get_play_order(playlist_2, playlist_member_id_2_2, &order_5);
1839 media_content_debug("order_1 [%d] order_2 [%d] order_3 [%d] order_4 [%d] order_5 [%d]", order_1, order_2, order_3, order_4, order_5);
1841 /* Update Playlist */
1842 media_playlist_remove_media(playlist_2, playlist_member_id_2_1);
1843 media_playlist_add_media(playlist_2, test_video_id);
1844 media_playlist_set_name(playlist_2, "test_playlist");
1845 media_playlist_set_play_order(playlist_2, playlist_member_id_2_2, order_5+100);
1846 media_playlist_update_to_db(playlist_2);
1848 /* Get Updated Playlist*/
1849 media_playlist_foreach_playlist_from_db(filter, playlist_list_cb, NULL);
1851 /* deletes the playlist */
1853 media_playlist_delete_from_db(playlist_id_1);
1854 media_playlist_delete_from_db(playlist_id_2);
1857 if (playlist_1 != NULL)
1858 media_playlist_destroy(playlist_1);
1859 if (playlist_2 != NULL)
1860 media_playlist_destroy(playlist_2);
1861 if (playlist_3 != NULL)
1862 media_playlist_destroy(playlist_3);
1863 if (playlist_4 != NULL)
1864 media_playlist_destroy(playlist_4);
1866 g_list_free(playlist_id_list);
1867 g_list_free(playlist_member_id_list);
1868 g_list_free(playlist_member_id_list_1);
1871 ret = media_filter_destroy(filter);
1872 if (m_filter != NULL)
1873 ret = media_filter_destroy(m_filter);
1878 int test_tag_operation(void)
1880 int ret = MEDIA_CONTENT_ERROR_NONE;
1887 const char *tag_name_1 = "myTag_1";
1888 const char *tag_name_2 = "myTag_2";
1889 const char *tag_name_3 = "myTag_3";
1891 int media_count = 0;
1894 media_content_debug("\n============Tag Test============\n\n");
1896 const char *g_condition = "TAG_NAME like \"%%my%%\"";
1898 ret = media_filter_create(&filter);
1900 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
1902 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, TAG_NAME, MEDIA_CONTENT_COLLATE_DEFAULT);
1905 ret = media_tag_insert_to_db(tag_name_1, &tag_1);
1906 if (ret != MEDIA_CONTENT_ERROR_NONE)
1907 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1908 ret = media_tag_insert_to_db(tag_name_2, &tag_2);
1909 if (ret != MEDIA_CONTENT_ERROR_NONE)
1910 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1911 ret = media_tag_insert_to_db(tag_name_3, &tag_3);
1912 if (ret != MEDIA_CONTENT_ERROR_NONE)
1913 media_content_error("error media_tag_insert_to_db : [%d]", ret);
1915 /* Add media to Tag */
1916 ret = media_tag_add_media(tag_1, test_audio_id);
1917 if (ret != MEDIA_CONTENT_ERROR_NONE)
1918 media_content_error("error media_tag_add_media : [%d]", ret);
1919 ret = media_tag_add_media(tag_1, test_video_id);
1920 if (ret != MEDIA_CONTENT_ERROR_NONE)
1921 media_content_error("error media_tag_add_media : [%d]", ret);
1922 ret = media_tag_update_to_db(tag_1);
1923 if (ret != MEDIA_CONTENT_ERROR_NONE)
1924 media_content_error("error media_tag_update_to_db : [%d]", ret);
1926 ret = media_tag_add_media(tag_2, test_audio_id);
1927 if (ret != MEDIA_CONTENT_ERROR_NONE)
1928 media_content_error("error media_tag_add_media : [%d]", ret);
1929 ret = media_tag_update_to_db(tag_2);
1930 if (ret != MEDIA_CONTENT_ERROR_NONE)
1931 media_content_error("error media_tag_update_to_db : [%d]", ret);
1934 ret = media_tag_get_tag_count_from_db(filter, &tag_count);
1935 if (ret != MEDIA_CONTENT_ERROR_NONE)
1936 media_content_error("error media_tag_get_tag_count_from_db : [%d]", ret);
1938 media_content_debug("tag_count [%d]", tag_count);
1941 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1942 if (ret != MEDIA_CONTENT_ERROR_NONE)
1943 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
1946 ret = media_tag_get_tag_id(tag_1, &tag_id_1);
1947 if (ret != MEDIA_CONTENT_ERROR_NONE)
1948 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1950 media_content_debug("tag_id_1 [%d]", tag_id_1);
1952 ret = media_tag_get_tag_id(tag_2, &tag_id_2);
1953 if (ret != MEDIA_CONTENT_ERROR_NONE)
1954 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1956 media_content_debug("tag_id_2 [%d]", tag_id_2);
1958 ret = media_tag_get_tag_id(tag_3, &tag_id_3);
1959 if (ret != MEDIA_CONTENT_ERROR_NONE)
1960 media_content_error("error media_tag_get_tag_id : [%d]", ret);
1962 media_content_debug("tag_id_3 [%d]", tag_id_3);
1964 /* Get media count */
1965 ret = media_tag_get_media_count_from_db(tag_id_1, NULL, &media_count);
1966 if (ret != MEDIA_CONTENT_ERROR_NONE)
1967 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1969 media_content_debug("tag_1_media_count [%d]", media_count);
1971 ret = media_tag_get_media_count_from_db(tag_id_2, NULL, &media_count);
1972 if (ret != MEDIA_CONTENT_ERROR_NONE)
1973 media_content_error("error media_tag_get_media_count_from_db : [%d]", ret);
1975 media_content_debug("tag_2_media_count [%d]", media_count);
1977 /* Get media of Tag */
1978 ret = media_tag_foreach_media_from_db(tag_id_1, NULL, media_item_cb, NULL);
1979 if (ret != MEDIA_CONTENT_ERROR_NONE)
1980 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1982 ret = media_tag_foreach_media_from_db(tag_id_2, NULL, media_item_cb, NULL);
1983 if (ret != MEDIA_CONTENT_ERROR_NONE)
1984 media_content_error("error media_tag_foreach_media_from_db : [%d]", ret);
1987 ret = media_tag_add_media(tag_2, test_video_id);
1988 if (ret != MEDIA_CONTENT_ERROR_NONE)
1989 media_content_error("error media_tag_add_media : [%d]", ret);
1990 ret = media_tag_set_name(tag_2, (char *)"test_tag");
1991 if (ret != MEDIA_CONTENT_ERROR_NONE)
1992 media_content_error("error media_tag_set_name : [%d]", ret);
1993 ret = media_tag_update_to_db(tag_2);
1994 if (ret != MEDIA_CONTENT_ERROR_NONE)
1995 media_content_error("error media_tag_update_to_db : [%d]", ret);
1997 /* Get Updated Tag*/
1998 ret = media_tag_foreach_tag_from_db(filter, tag_list_cb, NULL);
1999 if (ret != MEDIA_CONTENT_ERROR_NONE)
2000 media_content_error("error media_tag_foreach_tag_from_db : [%d]", ret);
2002 /* deletes the tag */
2003 ret = media_tag_delete_from_db(tag_id_1);
2004 if (ret != MEDIA_CONTENT_ERROR_NONE)
2005 media_content_error("error media_tag_delete_from_db : [%d]", ret);
2006 ret = media_tag_delete_from_db(tag_id_2);
2007 if (ret != MEDIA_CONTENT_ERROR_NONE)
2008 media_content_error("error media_tag_delete_from_db : [%d]", ret);
2010 ret = media_tag_destroy(tag_1);
2011 if (ret != MEDIA_CONTENT_ERROR_NONE)
2012 media_content_error("error media_tag_destroy : [%d]", ret);
2013 ret = media_tag_destroy(tag_2);
2014 if (ret != MEDIA_CONTENT_ERROR_NONE)
2015 media_content_error("error media_tag_destroy : [%d]", ret);
2016 ret = media_filter_destroy(filter);
2017 if (ret != MEDIA_CONTENT_ERROR_NONE)
2018 media_content_error("error media_filter_destroy : [%d]", ret);
2024 int test_bookmark_operation(void)
2026 /* bookmark is only supported for video information. */
2027 int ret = MEDIA_CONTENT_ERROR_NONE;
2028 int bookmark_count = 0;
2030 GList *all_item_list = NULL;
2033 media_content_debug("\n============Bookmark Test============\n\n");
2035 const char *g_condition = "BOOKMARK_MARKED_TIME > 300";
2037 ret = media_filter_create(&filter);
2038 if (ret != MEDIA_CONTENT_ERROR_NONE)
2039 media_content_error("error media_filter_create : [%d]", ret);
2041 ret = media_filter_set_condition(filter, g_condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2042 if (ret != MEDIA_CONTENT_ERROR_NONE)
2043 media_content_error("error media_filter_set_condition : [%d]", ret);
2045 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_DESC, BOOKMARK_MARKED_TIME, MEDIA_CONTENT_COLLATE_DEFAULT);
2046 if (ret != MEDIA_CONTENT_ERROR_NONE)
2047 media_content_error("error media_filter_set_order : [%d]", ret);
2049 /* insert bookmark to video */
2050 const char *thumbnail_path1 = tzplatform_mkpath(TZ_USER_CONTENT, "Images and videos/My video clips/teat11.jpg");
2051 ret = media_bookmark_insert_to_db(test_video_id, 400, thumbnail_path1);
2052 if (ret != MEDIA_CONTENT_ERROR_NONE)
2053 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
2055 ret = media_bookmark_insert_to_db(test_video_id, 600, thumbnail_path1);
2056 if (ret != MEDIA_CONTENT_ERROR_NONE)
2057 media_content_error("error media_bookmark_insert_to_db : [%d]", ret);
2059 ret = media_bookmark_get_bookmark_count_from_db(filter, &bookmark_count);
2060 if (ret != MEDIA_CONTENT_ERROR_NONE)
2061 media_content_error("error media_bookmark_get_bookmark_count_from_db : [%d]", ret);
2063 media_content_debug("bookmark_count = [%d]", bookmark_count);
2065 ret = media_info_foreach_bookmark_from_db(test_video_id, NULL, bookmarks_cb, &all_item_list);
2066 if (ret != MEDIA_CONTENT_ERROR_NONE)
2067 media_content_error("error media_info_foreach_bookmark_from_db : [%d]", ret);
2069 for (idx = 0; idx < g_list_length(all_item_list); idx++) {
2070 media_bookmark_h bookmark_handle;
2071 bookmark_handle = (media_bookmark_h)g_list_nth_data(all_item_list, idx);
2073 ret = media_bookmark_set_name(bookmark_handle, "test 1");
2074 if (ret != MEDIA_CONTENT_ERROR_NONE)
2075 media_content_error("error media_bookmark_set_name : [%d]", ret);
2077 ret = media_bookmark_update_to_db(bookmark_handle);
2080 ret = media_info_foreach_bookmark_from_db(test_video_id, NULL, bookmarks_cb, NULL);
2081 if (ret != MEDIA_CONTENT_ERROR_NONE)
2082 media_content_error("error media_info_foreach_bookmark_from_db : [%d]", ret);
2084 ret = media_filter_destroy(filter);
2085 if (ret != MEDIA_CONTENT_ERROR_NONE)
2086 media_content_error("error media_filter_destroy : [%d]", ret);
2091 int test_album_list(void)
2093 media_content_debug("\n============Album Test============\n\n");
2095 int ret = MEDIA_CONTENT_ERROR_NONE;
2096 int album_count = 0;
2100 const char *condition = "MEDIA_TYPE=3"; /*0-image, 1-video, 2-sound, 3-music, 4-other*/
2102 ret = media_filter_create(&filter);
2103 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2104 media_content_error("Fail to create filter");
2107 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2108 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2109 media_filter_destroy(filter);
2110 media_content_error("Fail to set condition");
2113 ret = media_filter_set_order(filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_ALBUM, MEDIA_CONTENT_COLLATE_NOCASE);
2114 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2115 media_filter_destroy(filter);
2116 media_content_error("Fail to set order");
2120 ret = media_album_get_album_count_from_db(filter, &album_count);
2121 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2122 media_filter_destroy(filter);
2125 media_content_debug("album_count [%d]", album_count);
2128 ret = media_album_foreach_album_from_db(filter, album_list_cb, NULL);
2129 if (ret != MEDIA_CONTENT_ERROR_NONE)
2130 media_content_error("error media_album_foreach_album_from_db : [%d]", ret);
2132 ret = media_filter_destroy(filter);
2133 if (ret != MEDIA_CONTENT_ERROR_NONE)
2134 media_content_error("error media_filter_destroy : [%d]", ret);
2139 int test_group_operation(void)
2141 media_content_debug("\n============Group Test============\n\n");
2143 int ret = MEDIA_CONTENT_ERROR_NONE;
2144 int group_count = 0;
2147 ret = test_filter_create();
2148 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2149 media_content_error("[error(0x%08x)", ret);
2153 for (idx = 0; idx < MEDIA_CONTENT_GROUP_MAX; idx++) {
2154 ret = media_group_get_group_count_from_db(g_filter, idx, &group_count);
2155 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2156 test_filter_destroy();
2157 media_content_error("media_group_get_group_count_from_db fail. idx=[%d]", ret, idx);
2160 media_content_debug("[%2d]group_count [%d]", idx, group_count);
2163 ret = media_group_foreach_group_from_db(g_filter, idx, group_list_cb, &idx);
2165 ret = test_filter_destroy();
2170 int test_update_operation()
2172 int ret = MEDIA_CONTENT_ERROR_NONE;
2174 media_info_h media_handle = NULL;
2175 GList *all_item_list = NULL;
2177 /* Get all item list */
2178 ret = media_info_foreach_media_from_db(NULL, gallery_media_item_cb, &all_item_list);
2179 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2180 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
2183 media_content_debug("media_info_foreach_media_from_db success");
2184 char *media_id = NULL;
2185 char *media_path = NULL;
2186 media_content_type_e media_type = 0;
2188 for (i = 0; i < g_list_length(all_item_list); i++) {
2189 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
2191 ret = media_info_get_media_id(media_handle, &media_id);
2192 if (ret != MEDIA_CONTENT_ERROR_NONE)
2193 media_content_error("media_info_get_media_id failed: %d", ret);
2194 ret = media_info_get_file_path(media_handle, &media_path);
2195 if (ret != MEDIA_CONTENT_ERROR_NONE)
2196 media_content_error("media_info_get_file_path failed: %d", ret);
2197 ret = media_info_get_media_type(media_handle, &media_type);
2198 if (ret != MEDIA_CONTENT_ERROR_NONE)
2199 media_content_error("media_info_get_media_type failed: %d", ret);
2201 media_content_debug("media_id [%d] : %s", i, media_id);
2202 media_content_debug("media_type [%d] : %d", i, media_type);
2203 media_content_debug("media_path [%d] : %s", i, media_path);
2205 if (media_type == MEDIA_CONTENT_TYPE_IMAGE) {
2206 image_meta_h image_handle;
2207 media_content_orientation_e orientation;
2209 ret = media_info_get_image(media_handle, &image_handle);
2210 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2211 media_content_error("media_info_get_image failed: %d", ret);
2213 media_content_debug("media_info_get_image success");
2215 /* update image meta */
2216 orientation = MEDIA_CONTENT_ORIENTATION_ROT_180;
2217 image_meta_set_orientation(image_handle, orientation);
2219 ret = image_meta_update_to_db(image_handle);
2220 if (ret != MEDIA_CONTENT_ERROR_NONE)
2221 media_content_error("image_meta_update_to_db failed: %d", ret);
2223 media_content_debug("image_meta_update_to_db success");
2226 } else if (media_type == MEDIA_CONTENT_TYPE_VIDEO) {
2227 video_meta_h video_handle;
2229 ret = media_info_get_video(media_handle, &video_handle);
2230 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2231 media_content_error("media_info_get_video failed: %d", ret);
2233 media_content_debug("media_info_get_video success");
2235 /* update video meta */
2236 video_meta_set_played_count(video_handle, 5);
2237 video_meta_set_played_time(video_handle, 5);
2238 video_meta_set_played_position(video_handle, 5);
2239 video_meta_update_to_db(video_handle);
2241 ret = video_meta_update_to_db(video_handle);
2242 if (ret != MEDIA_CONTENT_ERROR_NONE)
2243 media_content_error("video_meta_update_to_db failed: %d", ret);
2245 media_content_debug("video_meta_update_to_db success");
2247 } else if (media_type == MEDIA_CONTENT_TYPE_MUSIC) {
2248 audio_meta_h audio_handle = NULL;
2249 ret = media_info_get_audio(media_handle, &audio_handle);
2250 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2251 media_content_error("media_info_get_audio failed: %d", ret);
2253 media_content_debug("media_info_get_audio success");
2255 audio_meta_set_played_count(audio_handle, 5);
2256 audio_meta_set_played_time(audio_handle, 1000);
2257 audio_meta_set_played_position(audio_handle, 180);
2259 ret = audio_meta_update_to_db(audio_handle);
2260 if (ret != MEDIA_CONTENT_ERROR_NONE)
2261 media_content_error("audio_meta_update_to_db failed: %d", ret);
2263 media_content_debug("audio_meta_update_to_db success");
2270 /* fix prevent: Resource Leak */
2271 SAFE_FREE(media_id);
2272 SAFE_FREE(media_path);
2275 return MEDIA_CONTENT_ERROR_NONE;
2278 int test_insert(void)
2280 int ret = MEDIA_CONTENT_ERROR_NONE;
2281 const char *path = "/opt/usr/media/Images/Default.jpg";
2283 const char *path = "/opt/usr/media/Others/other.txt";
2286 media_info_h media_item = NULL;
2287 media_content_debug("\n============DB Insert Test============\n\n");
2289 ret = media_info_insert_to_db(path, &media_item);
2291 if ((ret == MEDIA_CONTENT_ERROR_NONE) && (media_item != NULL)) {
2292 media_content_debug("Insertion is success");
2294 media_content_error("Insertion is failed");
2295 ret = media_info_destroy(media_item);
2299 char *media_id = NULL;
2301 ret = media_info_get_media_id(media_item, &media_id);
2302 if (ret != MEDIA_CONTENT_ERROR_NONE)
2303 media_content_error("media_info_get_media_id failed: %d", ret);
2305 media_content_debug("Media ID: %s", media_id);
2307 SAFE_FREE(media_id);
2309 ret = media_info_update_to_db(media_item);
2310 if (ret == MEDIA_CONTENT_ERROR_NONE)
2311 media_content_debug("media_info_update_to_db is success");
2313 media_content_error("media_info_update_to_db is failed");
2315 ret = media_info_destroy(media_item);
2316 if (ret != MEDIA_CONTENT_ERROR_NONE)
2317 media_content_error("media_info_destroy failed: %d", ret);
2324 int ret = MEDIA_CONTENT_ERROR_NONE;
2325 const char *move_media_id = "60aea677-4742-408e-b5f7-f2628062d06d";
2326 const char *dst_path = tzplatform_mkpath(TZ_USER_CONTENT, "Images/XX/Default1.jpg");
2327 media_info_h move_media = NULL;
2329 ret = media_info_get_media_from_db(move_media_id, &move_media);
2330 if (ret == MEDIA_CONTENT_ERROR_NONE)
2331 media_content_debug("media_info_get_media_from_db success");
2333 media_content_error("media_info_get_media_from_db failed: %d", ret);
2335 media_content_debug("\n============DB Move Test============\n\n");
2338 ret = media_info_move_to_db(move_media, dst_path);
2340 if (ret == MEDIA_CONTENT_ERROR_NONE)
2341 media_content_debug("Move is success");
2343 media_content_error("Move is failed");
2345 ret = media_info_destroy(move_media);
2347 media_content_debug("There is no item : %s", move_media_id);
2353 void thumbnail_completed_cb(media_content_error_e error, const char *path, void *user_data)
2355 char *thumbnail_path = NULL;
2356 int ret = MEDIA_CONTENT_ERROR_NONE;
2359 media_content_debug("=================[%d][%d]", g_media_cnt, g_cnt);
2360 media_content_debug("error_code [%d]", error);
2361 media_content_debug("thumbnail_path [%s]", path);
2362 if (user_data != NULL) {
2363 media_info_h media = (media_info_h)user_data;
2364 ret = media_info_get_thumbnail_path(media, &thumbnail_path);
2365 if (ret != MEDIA_CONTENT_ERROR_NONE)
2366 media_content_error("media_info_get_thumbnail_path failed: %d", ret);
2368 media_content_debug("thumbnail_path get from media[%s]", thumbnail_path);
2369 SAFE_FREE(thumbnail_path);
2370 ret = media_info_destroy(media);
2371 if (ret != MEDIA_CONTENT_ERROR_NONE)
2372 media_content_error("media_info_destroy failed: %d", ret);
2375 if (g_cnt == g_media_cnt)
2376 g_main_loop_quit(g_loop);
2381 bool thumbnail_create_cb(media_info_h media, void *user_data)
2383 char *media_id = NULL;
2384 media_info_h dst = NULL;
2385 int ret = MEDIA_CONTENT_ERROR_NONE;
2387 if (media == NULL) {
2388 media_content_debug("NO Item");
2392 ret = media_info_get_media_id(media, &media_id);
2393 if (ret != MEDIA_CONTENT_ERROR_NONE)
2394 media_content_error("media_info_get_media_id failed: %d", ret);
2396 media_content_debug("media_id : [%s]", media_id);
2398 ret = media_info_clone(&dst, media);
2399 if (ret != MEDIA_CONTENT_ERROR_NONE)
2400 media_content_error("media_info_clone failed: %d", ret);
2402 ret = media_info_create_thumbnail(dst, thumbnail_completed_cb, dst);
2403 if (ret != MEDIA_CONTENT_ERROR_NONE)
2404 media_content_error("media_info_create_thumbnail failed: %d", ret);
2407 /* fix prevent: Resource leak */
2408 SAFE_FREE(media_id);
2413 bool thumbnail_cancel_cb(media_info_h media, void *user_data)
2415 int ret = MEDIA_CONTENT_ERROR_NONE;
2417 char *media_id = NULL;
2418 media_info_h dst = NULL;
2422 if (media == NULL) {
2423 media_content_debug("NO Item");
2427 ret = media_info_get_media_id(media, &media_id);
2428 if (ret != MEDIA_CONTENT_ERROR_NONE)
2429 media_content_error("media_info_get_media_id failed: %d", ret);
2431 media_content_debug("media_id : [%s]", media_id);
2433 ret = media_info_clone(&dst, media);
2434 if (ret != MEDIA_CONTENT_ERROR_NONE)
2435 media_content_error("media_info_clone failed: %d", ret);
2437 ret = media_info_cancel_thumbnail(dst);
2438 if (ret != MEDIA_CONTENT_ERROR_NONE)
2439 media_content_error("media_info_cancel_thumbnail failed: %d", ret);
2441 ret = media_info_destroy(dst);
2442 if (ret != MEDIA_CONTENT_ERROR_NONE)
2443 media_content_error("media_info_destroy failed: %d", ret);
2445 if (g_cnt == g_media_cnt)
2446 g_main_loop_quit(g_loop);
2448 /* fix prevent: Resource leak */
2449 SAFE_FREE(media_id);
2454 gboolean create_thumbnail_start(gpointer data)
2456 int ret = MEDIA_CONTENT_ERROR_NONE;
2458 ret = media_info_foreach_media_from_db(g_filter, thumbnail_create_cb, NULL);
2460 if (ret == MEDIA_CONTENT_ERROR_NONE)
2461 media_content_debug("media_info_foreach_media_from_db is success");
2463 media_content_error("media_info_foreach_media_from_db is failed");
2468 gboolean cancel_thumbnail_start(gpointer data)
2470 int ret = MEDIA_CONTENT_ERROR_NONE;
2472 ret = media_info_foreach_media_from_db(g_filter, thumbnail_cancel_cb, NULL);
2474 if (ret == MEDIA_CONTENT_ERROR_NONE)
2475 media_content_debug("media_info_foreach_media_from_db is success");
2477 media_content_error("media_info_foreach_media_from_db is failed");
2482 int test_create_thumbnail(int cancel)
2484 int ret = MEDIA_CONTENT_ERROR_NONE;
2485 GSource *source = NULL;
2486 GMainContext *context = NULL;
2488 test_filter_create();
2490 ret = media_info_get_media_count_from_db(g_filter, &g_media_cnt);
2491 if (ret != MEDIA_CONTENT_ERROR_NONE)
2492 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
2494 media_content_debug("media_count : [%d]", g_media_cnt);
2496 g_loop = g_main_loop_new(NULL, FALSE);
2497 context = g_main_loop_get_context(g_loop);
2498 source = g_idle_source_new();
2499 g_source_set_callback(source, create_thumbnail_start, NULL, NULL);
2500 g_source_attach(source, context);
2502 /* Logic to cancel */
2504 GSource *cancel_src = NULL;
2505 cancel_src = g_idle_source_new();
2506 g_source_set_callback(cancel_src, cancel_thumbnail_start, NULL, NULL);
2507 g_source_attach(cancel_src, context);
2510 g_main_loop_run(g_loop);
2511 g_main_loop_unref(g_loop);
2513 test_filter_destroy();
2518 bool face_cb(media_face_h face, void *user_data)
2520 if (user_data != NULL) {
2521 unsigned x, y, rect_w, rect_h;
2522 media_face_get_face_rect(face, &x, &y, &rect_w, &rect_h);
2523 media_content_debug("face(%p) x = %d, y = %d [%d, %d]", face, x, y, rect_w, rect_h);
2529 void face_detection_complete_cb(media_content_error_e error, int count, void *user_data)
2531 int ret = MEDIA_CONTENT_ERROR_NONE;
2534 media_content_debug("=================[%d][%d]", g_media_cnt, g_cnt);
2535 media_content_debug("error_code [%d]", error);
2536 media_content_debug("face_count [%d]", count);
2538 media_content_debug("No faces are detected!");
2539 } else if (user_data != NULL) {
2540 media_info_h media = (media_info_h)user_data;
2541 char *media_id = NULL;
2542 ret = media_info_get_media_id(media, &media_id);
2543 if (ret != MEDIA_CONTENT_ERROR_NONE)
2544 media_content_error("media_info_get_media_id failed: %d", ret);
2545 if (media_id != NULL) {
2546 ret = media_info_foreach_face_from_db(media_id, NULL, face_cb, NULL);
2547 if (ret != MEDIA_CONTENT_ERROR_NONE)
2548 media_content_error("media_info_foreach_face_from_db failed: %d", ret);
2550 ret = media_info_destroy(media);
2551 if (ret != MEDIA_CONTENT_ERROR_NONE)
2552 media_content_error("media_info_destroy failed: %d", ret);
2555 if (g_cnt == g_media_cnt)
2556 g_main_loop_quit(g_loop);
2561 bool start_face_detection_cb(media_info_h media, void *user_data)
2563 char *media_id = NULL;
2564 media_info_h dst = NULL;
2565 int ret = MEDIA_CONTENT_ERROR_NONE;
2567 if (media == NULL) {
2568 media_content_debug("NO Item");
2572 ret = media_info_get_media_id(media, &media_id);
2573 if (ret != MEDIA_CONTENT_ERROR_NONE)
2574 media_content_error("media_info_get_media_id failed: %d", ret);
2576 media_content_debug("media_id : [%s]", media_id);
2578 ret = media_info_clone(&dst, media);
2579 if (ret != MEDIA_CONTENT_ERROR_NONE)
2580 media_content_error("media_info_clone failed: %d", ret);
2582 ret = media_info_start_face_detection(dst, face_detection_complete_cb, dst);
2583 if (ret != MEDIA_CONTENT_ERROR_NONE)
2584 media_content_error("media_info_start_face_detection failed: %d", ret);
2587 /* fix prevent: Resource leak */
2588 SAFE_FREE(media_id);
2593 bool cancel_face_detection_cb(media_info_h media, void *user_data)
2595 int ret = MEDIA_CONTENT_ERROR_NONE;
2597 char *media_id = NULL;
2598 media_info_h dst = NULL;
2602 if (media == NULL) {
2603 media_content_debug("NO Item");
2607 ret = media_info_get_media_id(media, &media_id);
2608 if (ret != MEDIA_CONTENT_ERROR_NONE)
2609 media_content_error("media_info_get_media_id failed: %d", ret);
2611 media_content_debug("media_id : [%s]", media_id);
2613 ret = media_info_clone(&dst, media);
2614 if (ret != MEDIA_CONTENT_ERROR_NONE)
2615 media_content_error("media_info_clone failed: %d", ret);
2617 ret = media_info_cancel_face_detection(dst);
2618 if (ret != MEDIA_CONTENT_ERROR_NONE)
2619 media_content_error("media_info_cancel_face_detection failed: %d", ret);
2621 ret = media_info_destroy(dst);
2622 if (ret != MEDIA_CONTENT_ERROR_NONE)
2623 media_content_error("media_info_destroy failed: %d", ret);
2625 if (g_cnt == g_media_cnt)
2626 g_main_loop_quit(g_loop);
2628 /* fix prevent: Resource leak */
2629 SAFE_FREE(media_id);
2634 gboolean face_detection_start(gpointer data)
2636 int ret = MEDIA_CONTENT_ERROR_NONE;
2638 ret = media_info_foreach_media_from_db(g_filter, start_face_detection_cb, NULL);
2640 if (ret == MEDIA_CONTENT_ERROR_NONE)
2641 media_content_debug("media_info_foreach_media_from_db is success");
2643 media_content_error("media_info_foreach_media_from_db is failed");
2648 gboolean face_detection_cancel(gpointer data)
2650 int ret = MEDIA_CONTENT_ERROR_NONE;
2652 ret = media_info_foreach_media_from_db(g_filter, cancel_face_detection_cb, NULL);
2654 if (ret == MEDIA_CONTENT_ERROR_NONE)
2655 media_content_debug("media_info_foreach_media_from_db is success");
2657 media_content_error("media_info_foreach_media_from_db is failed");
2662 int test_start_face_detection(int cancel)
2664 int ret = MEDIA_CONTENT_ERROR_NONE;
2665 GSource *source = NULL;
2666 GMainContext *context = NULL;
2668 test_filter_create();
2670 ret = media_info_get_media_count_from_db(g_filter, &g_media_cnt);
2671 if (ret != MEDIA_CONTENT_ERROR_NONE)
2672 media_content_error("media_info_get_media_count_from_db failed: %d", ret);
2674 media_content_debug("media_count : [%d]", g_media_cnt);
2676 if (g_media_cnt == 0)
2679 g_loop = g_main_loop_new(NULL, FALSE);
2680 context = g_main_loop_get_context(g_loop);
2681 source = g_idle_source_new();
2682 g_source_set_callback(source, face_detection_start, NULL, NULL);
2683 g_source_attach(source, context);
2685 /* Logic to cancel */
2687 GSource *cancel_src = NULL;
2688 cancel_src = g_idle_source_new();
2689 g_source_set_callback(cancel_src, face_detection_cancel, NULL, NULL);
2690 g_source_attach(cancel_src, context);
2693 g_main_loop_run(g_loop);
2694 g_main_loop_unref(g_loop);
2697 test_filter_destroy();
2702 int test_disconnect_database(void)
2704 int ret = MEDIA_CONTENT_ERROR_NONE;
2705 media_content_debug("\n============DB Disconnection Test============\n\n");
2707 ret = media_content_disconnect();
2709 if (ret == MEDIA_CONTENT_ERROR_NONE)
2710 media_content_debug("disconnection is success");
2712 media_content_error("disconnection is failed");
2717 int test_request_update_db(void)
2719 int ret = MEDIA_CONTENT_ERROR_NONE;
2720 media_info_h media = NULL;
2721 char *content_name = NULL;
2722 bool favorite = FALSE;
2724 ret = media_info_get_media_from_db("71b19196-5b38-4ab1-ab34-bfe05c369614", &media);
2725 if (ret != MEDIA_CONTENT_ERROR_NONE)
2726 media_content_error("media_info_get_media_from_db failed: %d", ret);
2728 ret = media_info_set_content_name(media, "TEST_content_name");
2729 if (ret != MEDIA_CONTENT_ERROR_NONE)
2730 media_content_error("media_info_set_content_name failed: %d", ret);
2732 ret = media_info_set_favorite(media, TRUE);
2733 if (ret != MEDIA_CONTENT_ERROR_NONE)
2734 media_content_error("media_info_set_favorite failed: %d", ret);
2736 ret = media_info_update_to_db(media);
2737 if (ret == MEDIA_CONTENT_ERROR_NONE)
2738 media_content_debug("media_info_update_to_db is success");
2740 media_content_error("media_info_update_to_db is failed");
2743 media_info_destroy(media);
2745 /*get the updated value*/
2746 ret = media_info_get_media_from_db("71b19196-5b38-4ab1-ab34-bfe05c369614", &media);
2747 if (ret != MEDIA_CONTENT_ERROR_NONE)
2748 media_content_error("media_info_get_media_from_db failed: %d", ret);
2750 ret = media_info_get_content_name(media, &content_name);
2751 if (ret != MEDIA_CONTENT_ERROR_NONE)
2752 media_content_error("media_info_get_content_name failed: %d", ret);
2754 media_content_debug("content name [%s]", content_name);
2756 SAFE_FREE(content_name);
2758 ret = media_info_get_favorite(media, &favorite);
2759 if (ret != MEDIA_CONTENT_ERROR_NONE)
2760 media_content_error("media_info_get_favorite failed: %d", ret);
2762 media_content_debug("favorite [%d]", favorite);
2764 ret = media_info_destroy(media);
2769 int g_total_photo_size = 0;
2770 int g_total_video_size = 0;
2771 int g_total_mp3_size = 0;
2772 int g_total_voice_memo_size = 0;
2774 bool dft_cb(media_info_h media, void *user_data)
2776 unsigned long long file_size = 0;
2777 media_content_type_e media_type = -1;
2778 char *mime_type = NULL;
2779 int ret = MEDIA_CONTENT_ERROR_NONE;
2784 ret = media_info_get_media_type(media, &media_type);
2785 if (ret != MEDIA_CONTENT_ERROR_NONE)
2786 media_content_error("media_info_get_media_type failed: %d", ret);
2787 ret = media_info_get_size(media, &file_size);
2788 if (ret != MEDIA_CONTENT_ERROR_NONE)
2789 media_content_error("media_info_get_size failed: %d", ret);
2790 ret = media_info_get_mime_type(media, &mime_type);
2791 if (ret != MEDIA_CONTENT_ERROR_NONE)
2792 media_content_error("media_info_get_mime_type failed: %d", ret);
2794 if (media_type == MEDIA_CONTENT_TYPE_IMAGE)
2795 g_total_photo_size += file_size;
2796 else if (media_type == MEDIA_CONTENT_TYPE_VIDEO)
2797 g_total_video_size += file_size;
2798 else if (media_type == MEDIA_CONTENT_TYPE_SOUND)
2799 g_total_voice_memo_size += file_size;
2800 else if (media_type == MEDIA_CONTENT_TYPE_MUSIC) {
2801 if ((mime_type != NULL) && (!strcmp("audio/mpeg", mime_type)))
2802 g_total_mp3_size += file_size;
2804 g_total_voice_memo_size += file_size;
2806 media_content_debug("invalid media_type");
2808 if (mime_type != NULL)
2817 int ret = MEDIA_CONTENT_ERROR_NONE;
2818 media_content_debug("\n============DFT_test============\n\n");
2820 filter_h filter = NULL;
2823 /*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music, 4-other*/
2825 ret = media_filter_create(&filter);
2828 media_content_debug("[Internal Memory]\n");
2829 /*1. Photo ============================================================*/
2830 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2833 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2834 media_content_debug("Photo count = [%d]\n", media_cnt);
2837 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2838 media_content_debug("Photo size = [%d]\n", g_total_photo_size);
2840 /*2. Video ============================================================*/
2841 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2844 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2845 media_content_debug("Video count = [%d]\n", media_cnt);
2848 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2849 media_content_debug("Video size = [%d]\n", g_total_video_size);
2851 /*3. MP3 ============================================================*/
2852 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2855 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2856 media_content_debug("MP3 count = [%d]\n", media_cnt);
2859 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2860 media_content_debug("MP3 size = [%d]\n", g_total_mp3_size);
2862 /*4. Voice Memo ============================================================*/
2863 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=0 AND (MEDIA_MIME_TYPE=\"audio/AMR\" OR MEDIA_MIME_TYPE=\"audio/mp4\")", MEDIA_CONTENT_COLLATE_DEFAULT);
2865 /*Get Voice Memo Count*/
2866 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2867 media_content_debug("Voice Memo count = [%d]\n", media_cnt);
2869 /*Get Voice Memo Size*/
2870 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2871 media_content_debug("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2873 g_total_photo_size = 0;
2874 g_total_video_size = 0;
2875 g_total_mp3_size = 0;
2876 g_total_voice_memo_size = 0;
2879 media_content_debug("\n[External Memory]\n");
2880 /*1. Photo ============================================================*/
2881 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=0", MEDIA_CONTENT_COLLATE_DEFAULT);
2884 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2885 media_content_debug("Photo count = [%d]\n", media_cnt);
2888 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2889 media_content_debug("Photo size = [%d]\n", g_total_photo_size);
2891 /*2. Video ============================================================*/
2892 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=1", MEDIA_CONTENT_COLLATE_DEFAULT);
2895 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2896 media_content_debug("Video count = [%d]\n", media_cnt);
2899 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2900 media_content_debug("Video size = [%d]\n", g_total_video_size);
2902 /*3. MP3 ============================================================*/
2903 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND MEDIA_TYPE=3 AND MEDIA_MIME_TYPE=\"audio/mpeg\"", MEDIA_CONTENT_COLLATE_DEFAULT);
2906 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2907 media_content_debug("MP3 count = [%d]\n", media_cnt);
2910 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2911 media_content_debug("MP3 size = [%d]\n", g_total_mp3_size);
2913 /*4. Voice Memo ============================================================*/
2914 ret = media_filter_set_condition(filter, "MEDIA_STORAGE_TYPE=1 AND (MEDIA_MIME_TYPE=\"audio/AMR\" OR MEDIA_MIME_TYPE=\"audio/mp4\")", MEDIA_CONTENT_COLLATE_DEFAULT);
2916 /*Get Voice Memo Count*/
2917 ret = media_info_get_media_count_from_db(filter, &media_cnt);
2918 media_content_debug("Voice Memo count = [%d]\n", media_cnt);
2920 /*Get Voice Memo Size*/
2921 ret = media_info_foreach_media_from_db(filter, dft_cb, NULL);
2922 media_content_debug("Voice Memo size = [%d]\n", g_total_voice_memo_size);
2923 ret = media_filter_destroy(filter);
2928 void insert_batch_cb(media_content_error_e error, void * user_data)
2930 media_content_debug("media_info_insert_batch_to_db completed!\n");
2933 int test_batch_operations()
2937 char *file_list[10];
2939 for (i = 0; i < 10; i++) {
2940 char filepath[255] = {0,};
2941 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2942 media_content_debug("File : %s\n", filepath);
2943 file_list[i] = strdup(filepath);
2946 ret = media_info_insert_batch_to_db((const char **)file_list, 10, insert_batch_cb, NULL);
2947 if (ret != MEDIA_CONTENT_ERROR_NONE)
2948 media_content_error("media_info_insert_batch_to_db failed : %d\n", ret);
2951 char *condition = "MEDIA_PATH LIKE \'";
2952 strncat(condition, tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%jpg\'"), 17);
2953 ret = media_filter_create(&filter);
2954 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2955 media_content_error("Fail to create filter");
2959 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
2960 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2961 media_filter_destroy(filter);
2962 media_content_error("Fail to set condition");
2966 ret = media_info_delete_batch_from_db(filter);
2967 if (ret != MEDIA_CONTENT_ERROR_NONE) {
2968 media_filter_destroy(filter);
2969 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
2973 ret = media_filter_destroy(filter);
2978 void insert_burst_shot_cb(media_content_error_e error, void * user_data)
2980 media_content_debug("media_info_insert_burst_shot_to_db completed![%d]\n", error);
2981 g_main_loop_quit(g_loop);
2984 gboolean test_insert_burst_shot_to_db_start(gpointer data)
2986 int ret = MEDIA_CONTENT_ERROR_NONE;
2988 char *file_list[10];
2990 for (i = 0; i < 10; i++) {
2991 char filepath[255] = {0,};
2992 snprintf(filepath, sizeof(filepath), "%s%d.jpg", tzplatform_mkpath(TZ_USER_CONTENT, "test/image"), i+1);
2993 media_content_debug("File : %s\n", filepath);
2994 file_list[i] = strdup(filepath);
2997 ret = media_info_insert_burst_shot_to_db((const char **)file_list, 10, insert_burst_shot_cb, NULL);
2998 if (ret != MEDIA_CONTENT_ERROR_NONE)
2999 media_content_error("media_info_insert_burst_shot_to_db failed : %d\n", ret);
3004 int test_insert_burst_shot_to_db(void)
3006 GSource *source = NULL;
3007 GMainContext *context = NULL;
3009 g_loop = g_main_loop_new(NULL, FALSE);
3010 context = g_main_loop_get_context(g_loop);
3011 source = g_idle_source_new();
3012 g_source_set_callback(source, test_insert_burst_shot_to_db_start, NULL, NULL);
3013 g_source_attach(source, context);
3015 g_main_loop_run(g_loop);
3016 g_main_loop_unref(g_loop);
3021 void _scan_cb(media_content_error_e err, void *user_data)
3023 media_content_debug("scan callback is called : %d\n", err);
3024 g_main_loop_quit(g_loop);
3029 int test_scan_file()
3033 const char *file_path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
3034 ret = media_content_scan_file(file_path);
3035 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3036 media_content_error("Fail to media_content_scan_file : %d", ret);
3043 gboolean test_scan_dir_start(gpointer data)
3047 const char *dir_path = tzplatform_getenv(TZ_USER_CONTENT);
3049 ret = media_content_scan_folder(dir_path, TRUE, _scan_cb, NULL);
3051 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3052 media_content_error("Fail to test_scan_dir_start : %d", ret);
3059 gboolean cancel_scan_dir_start(gpointer data)
3061 int ret = MEDIA_CONTENT_ERROR_NONE;
3063 const char *dir_path = "/opt/usr/media/Images";
3065 ret = media_content_cancel_scan_folder(dir_path);
3067 if (ret == MEDIA_CONTENT_ERROR_NONE)
3068 media_content_debug("media_content_cancel_scan_folder is success");
3070 media_content_error("media_content_cancel_scan_folder is failed");
3075 int test_scan_dir(int cancel)
3077 GSource *source = NULL;
3078 GMainContext *context = NULL;
3080 g_loop = g_main_loop_new(NULL, FALSE);
3081 context = g_main_loop_get_context(g_loop);
3082 source = g_idle_source_new();
3083 g_source_set_callback(source, test_scan_dir_start, NULL, NULL);
3084 g_source_attach(source, context);
3087 GSource *cancel_src = NULL;
3088 cancel_src = g_idle_source_new();
3089 g_source_set_callback(cancel_src, cancel_scan_dir_start, NULL, NULL);
3090 g_source_attach(cancel_src, context);
3093 g_main_loop_run(g_loop);
3094 g_main_loop_unref(g_loop);
3099 void _noti_cb(media_content_error_e error,
3101 media_content_db_update_item_type_e update_item,
3102 media_content_db_update_type_e update_type,
3103 media_content_type_e media_type,
3110 media_content_debug("noti success! : %d\n", error);
3112 media_content_debug("error occured! : %d\n", error);
3114 media_content_debug("Noti from PID(%d)\n", pid);
3116 if (update_item == MEDIA_ITEM_FILE)
3117 media_content_debug("Noti item : MEDIA_ITEM_FILE\n");
3118 else if (update_item == MEDIA_ITEM_DIRECTORY)
3119 media_content_debug("Noti item : MEDIA_ITEM_DIRECTORY\n");
3121 if (update_type == MEDIA_CONTENT_INSERT)
3122 media_content_debug("Noti type : MEDIA_CONTENT_INSERT\n");
3123 else if (update_type == MEDIA_CONTENT_DELETE)
3124 media_content_debug("Noti type : MEDIA_CONTENT_DELETE\n");
3125 else if (update_type == MEDIA_CONTENT_UPDATE)
3126 media_content_debug("Noti type : MEDIA_CONTENT_UPDATE\n");
3128 media_content_debug("content type : %d\n", media_type);
3131 media_content_debug("path : %s\n", path);
3133 media_content_debug("path not\n");
3136 media_content_debug("uuid : %s\n", uuid);
3138 media_content_debug("uuid not\n");
3141 media_content_debug("mime_type : %s\n", mime_type);
3143 media_content_debug("mime not\n");
3145 if (user_data) media_content_debug("String : %s\n", (char *)user_data);
3150 void _noti_cb_2(media_content_error_e error,
3152 media_content_db_update_item_type_e update_item,
3153 media_content_db_update_type_e update_type,
3154 media_content_type_e media_type,
3161 media_content_debug("noti_2 success! : %d\n", error);
3163 media_content_debug("error occured! : %d\n", error);
3165 media_content_debug("Noti_2 from PID(%d)\n", pid);
3167 g_main_loop_quit(g_loop);
3171 static media_content_noti_h noti_h;
3172 static media_content_noti_h noti_h_2;
3174 gboolean _send_noti_operations(gpointer data)
3176 int ret = MEDIA_CONTENT_ERROR_NONE;
3178 /* First of all, noti subscription */
3179 char *user_str = strdup("hi");
3180 media_content_add_db_updated_cb(_noti_cb, (void*)user_str, ¬i_h);
3181 media_content_add_db_updated_cb(_noti_cb_2, (void*)user_str, ¬i_h_2);
3183 /* media_info_insert_to_db */
3184 media_info_h media_item = NULL;
3185 const char *path = tzplatform_mkpath(TZ_USER_CONTENT, "test/image1.jpg");
3187 ret = media_info_insert_to_db(path, &media_item);
3188 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3189 media_content_error("media_info_insert_to_db failed : %d", ret);
3190 media_info_destroy(media_item);
3194 media_content_debug("media_info_insert_to_db success");
3196 /* media_info_delete_batch_from_db */
3198 char condition[2048] = {0,};
3199 const char *temp = NULL;
3200 temp = tzplatform_mkpath(TZ_USER_CONTENT, "test/image%%\'");
3201 snprintf(condition, sizeof(condition), "MEDIA_PATH LIKE \'%s", temp);
3203 ret = media_filter_create(&filter);
3204 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3205 media_content_error("Fail to create filter");
3206 media_info_destroy(media_item);
3210 ret = media_filter_set_condition(filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
3211 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3212 media_filter_destroy(filter);
3213 media_info_destroy(media_item);
3214 media_content_error("Fail to set condition");
3217 ret = media_info_delete_batch_from_db(filter);
3218 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3219 media_filter_destroy(filter);
3220 media_info_destroy(media_item);
3221 media_content_error("media_info_delete_batch_from_db failed : %d\n", ret);
3225 media_filter_destroy(filter);
3227 media_content_remove_db_updated_cb(noti_h);
3229 /* media_info_update_to_db */
3230 ret = media_info_update_to_db(media_item);
3231 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3232 media_content_error("media_info_update_to_db failed : %d\n", ret);
3233 media_info_destroy(media_item);
3237 media_info_destroy(media_item);
3244 int ret = MEDIA_CONTENT_ERROR_NONE;
3245 GSource *source = NULL;
3246 GMainContext *context = NULL;
3248 g_loop = g_main_loop_new(NULL, FALSE);
3249 context = g_main_loop_get_context(g_loop);
3250 source = g_idle_source_new();
3251 g_source_set_callback(source, _send_noti_operations, NULL, NULL);
3252 g_source_attach(source, context);
3254 g_main_loop_run(g_loop);
3255 g_main_loop_unref(g_loop);
3257 test_filter_destroy();
3258 media_content_remove_db_updated_cb(noti_h_2);
3263 int test_create_handle(void)
3265 int ret = MEDIA_CONTENT_ERROR_NONE;
3266 media_info_h media = NULL;
3267 const char *path = "/home/owner/content/test/test.txt";
3268 char *str_value = NULL;
3270 bool bool_value = FALSE;
3271 unsigned long long content_size = 0;
3272 time_t modified_time = 0;
3273 double double_value = 0.0;
3275 ret = media_info_create(path, &media);
3277 ret = media_info_set_title(media, "test_title");
3278 ret = media_info_set_album(media, "test_album");
3279 ret = media_info_set_artist(media, "test_artist");
3280 ret = media_info_set_genre(media, "test_genre");
3281 ret = media_info_set_recorded_date(media, "test_recorded_date");
3282 ret = media_info_set_age_rating(media, "test_age_rating");
3283 ret = media_info_set_author(media, "test_author");
3284 ret = media_info_set_category(media, "test_category");
3285 ret = media_info_set_content_name(media, "test_content_name");
3286 ret = media_info_set_description(media, "test_description");
3287 ret = media_info_set_display_name(media, "test_display_name");
3288 ret = media_info_set_keyword(media, "test_keyword");
3289 ret = media_info_set_location_tag(media, "test_location_tag");
3290 ret = media_info_set_weather(media, "test_weather");
3291 ret = media_info_set_provider(media, "test_provider");
3293 ret = media_info_set_altitude(media, 100.10);
3294 ret = media_info_set_latitude(media, 200.20);
3295 ret = media_info_set_longitude(media, 300.30);
3296 ret = media_info_set_rating(media, 10);
3297 ret = media_info_set_played_time(media);
3298 ret = media_info_set_favorite(media, TRUE);
3299 ret = media_info_increase_played_count(media);
3300 ret = media_info_set_added_time(media, 12345);
3302 ret = media_info_insert_to_db_with_data(media);
3303 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3304 media_content_error("media_info_insert_to_db_with_data failed : %d\n", ret);
3305 media_info_destroy(media);
3309 ret = media_info_get_media_id(media, &str_value);
3310 media_content_debug("media_id = [%s]", str_value);
3311 SAFE_FREE(str_value);
3313 ret = media_info_get_file_path(media, &str_value);
3314 media_content_debug("file_path = [%s]", str_value);
3315 SAFE_FREE(str_value);
3317 ret = media_info_get_title(media, &str_value);
3318 media_content_debug("title = [%s]", str_value);
3319 SAFE_FREE(str_value);
3321 ret = media_info_get_age_rating(media, &str_value);
3322 media_content_debug("age_rating = [%s]", str_value);
3323 SAFE_FREE(str_value);
3325 ret = media_info_get_author(media, &str_value);
3326 media_content_debug("author = [%s]", str_value);
3327 SAFE_FREE(str_value);
3329 ret = media_info_get_category(media, &str_value);
3330 media_content_debug("category = [%s]", str_value);
3331 SAFE_FREE(str_value);
3333 ret = media_info_get_content_name(media, &str_value);
3334 media_content_debug("content_name = [%s]", str_value);
3335 SAFE_FREE(str_value);
3337 ret = media_info_get_description(media, &str_value);
3338 media_content_debug("description = [%s]", str_value);
3339 SAFE_FREE(str_value);
3341 ret = media_info_get_display_name(media, &str_value);
3342 media_content_debug("display_name = [%s]", str_value);
3343 SAFE_FREE(str_value);
3345 ret = media_info_get_keyword(media, &str_value);
3346 media_content_debug("keyword = [%s]", str_value);
3347 SAFE_FREE(str_value);
3349 ret = media_info_get_location_tag(media, &str_value);
3350 media_content_debug("location_tag = [%s]", str_value);
3351 SAFE_FREE(str_value);
3353 ret = media_info_get_weather(media, &str_value);
3354 media_content_debug("weather = [%s]", str_value);
3355 SAFE_FREE(str_value);
3357 ret = media_info_get_provider(media, &str_value);
3358 media_content_debug("provider = [%s]", str_value);
3359 SAFE_FREE(str_value);
3361 ret = media_info_get_longitude(media, &double_value);
3362 media_content_debug("longitude = [%lf]", double_value);
3364 ret = media_info_get_latitude(media, &double_value);
3365 media_content_debug("latitude = [%lf]", double_value);
3367 ret = media_info_get_altitude(media, &double_value);
3368 media_content_debug("altitud = [%lf]", double_value);
3370 ret = media_info_get_rating(media, &int_value);
3371 media_content_debug("rating = [%d]", int_value);
3373 ret = media_info_get_favorite(media, &bool_value);
3374 media_content_debug("favorite = [%d]", bool_value);
3376 ret = media_info_get_played_time(media, &modified_time);
3377 media_content_debug("played_time = [%d]", modified_time);
3379 ret = media_info_get_played_count(media, &int_value);
3380 media_content_debug("played_count = [%d]", int_value);
3382 ret = media_info_get_added_time(media, &modified_time);
3383 media_content_debug("added_time = [%d]", modified_time);
3385 ret = media_info_get_size(media, &content_size);
3386 media_content_debug("size = [%d]", content_size);
3388 ret = media_info_get_modified_time(media, &modified_time);
3389 media_content_debug("modified_time = [%d]", modified_time);
3391 ret = media_info_get_media_type(media, (media_content_type_e *)&int_value);
3392 media_content_debug("media_type = [%d]", int_value);
3394 ret = media_info_get_storage_type(media, (media_content_storage_e *)&int_value);
3395 media_content_debug("storage_type = [%d]", int_value);
3397 media_info_destroy(media);
3403 bool media_face_test_cb(media_face_h face, void *user_data)
3405 char *face_id = NULL;
3406 char *media_id = NULL;
3407 unsigned int rect_x = 0;
3408 unsigned int rect_y = 0;
3409 unsigned int rect_w = 0;
3410 unsigned int rect_h = 0;
3411 media_content_orientation_e orientation = 0;
3412 char *face_tag = NULL;
3414 media_face_get_face_id(face, &face_id);
3415 media_face_get_media_id(face, &media_id);
3416 media_face_get_face_rect(face, &rect_x, &rect_y, &rect_w, &rect_h);
3417 media_face_get_orientation(face, &orientation);
3418 media_face_get_tag(face, &face_tag);
3420 media_content_debug("face_id [%s] media_id [%s]", face_id, media_id);
3421 media_content_debug("rect_x [%d] rect_y [%d] rect_w [%d] rect_h [%d] orientation [%d]", rect_x, rect_y, rect_w, rect_h, orientation);
3422 media_content_debug("tag [%s]", face_tag);
3424 if (user_data != NULL) {
3425 media_face_h new_face = NULL;
3426 media_face_clone(&new_face, face);
3428 GList **list = (GList**)user_data;
3429 *list = g_list_append(*list, new_face);
3433 SAFE_FREE(media_id);
3434 SAFE_FREE(face_tag);
3441 int ret = MEDIA_CONTENT_ERROR_NONE;
3442 filter_h filter = NULL;
3443 GList *all_item_list = NULL;
3446 ret = media_filter_create(&filter);
3447 media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_filter_create");
3449 ret = media_filter_set_condition(filter, "MEDIA_TYPE = 0", MEDIA_CONTENT_COLLATE_DEFAULT);
3450 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3451 media_filter_destroy(filter);
3452 media_content_error("Fail to set condition");
3456 ret = media_info_foreach_media_from_db(filter, gallery_media_item_cb, &all_item_list);
3457 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3458 media_content_error("media_info_foreach_media_from_db failed: %d", ret);
3459 media_filter_destroy(filter);
3463 for (i = 0; i < g_list_length(all_item_list); i++) {
3464 media_info_h media_handle = NULL;
3465 char *media_id = NULL;
3468 media_handle = (media_info_h)g_list_nth_data(all_item_list, i);
3470 ret = media_info_get_media_id(media_handle, &media_id);
3471 if (ret != MEDIA_CONTENT_ERROR_NONE)
3472 media_content_error("media_info_get_media_id failed: %d", ret);
3474 ret = media_info_get_face_count_from_db(media_id, filter, &face_count);
3475 if (ret != MEDIA_CONTENT_ERROR_NONE)
3476 media_content_error("media_info_get_face_count_from_db failed: %d", ret);
3478 media_content_error("media_id [%s] face_count [%d]", media_id, face_count);
3480 ret = media_info_foreach_face_from_db(media_id, filter, media_face_test_cb, NULL);
3481 if (ret != MEDIA_CONTENT_ERROR_NONE)
3482 media_content_error("media_info_foreach_face_from_db failed: %d", ret);
3484 media_info_destroy(media_handle);
3487 media_filter_destroy(filter);
3492 int test_face_add_del(void)
3494 int ret = MEDIA_CONTENT_ERROR_NONE;
3495 char *media_id = "ecca7366-e085-41d8-a12b-cbdfc2b9c5fc";
3498 media_face_h face = NULL;
3500 char *face_tag = "test_face_tag";
3502 ret = media_face_create(media_id, &face);
3503 media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_face_create");
3505 ret = media_face_set_face_rect(face, 10, 12, 50, 100);
3506 ret = media_face_set_orientation(face, 5);
3507 ret = media_face_set_tag(face, face_tag);
3509 ret = media_face_insert_to_db(face);
3510 ret = media_face_destroy(face);
3513 GList *all_item_list = NULL;
3514 filter_h filter = NULL;
3515 ret = media_filter_create(&filter);
3516 media_content_retvm_if(ret != MEDIA_CONTENT_ERROR_NONE, ret, "fail media_filter_create");
3518 ret = media_filter_set_condition(filter, "MEDIA_FACE_TAG IS NOT NULL", MEDIA_CONTENT_COLLATE_DEFAULT);
3519 if (ret != MEDIA_CONTENT_ERROR_NONE) {
3520 media_filter_destroy(filter);
3521 media_content_error("Fail to set condition");
3525 ret = media_info_foreach_face_from_db(media_id, filter, media_face_test_cb, &all_item_list);
3527 if (g_list_length(all_item_list) > 0) {
3528 media_face_h face_handle = NULL;
3529 face_handle = (media_face_h)g_list_nth_data(all_item_list, 0);
3531 ret = media_face_set_face_rect(face_handle, 20, 22, 70, 70);
3532 ret = media_face_set_orientation(face_handle, 3);
3533 ret = media_face_set_tag(face_handle, NULL);
3534 ret = media_face_update_to_db(face_handle);
3536 media_face_destroy(face_handle);
3539 media_filter_destroy(filter);
3542 char *face_id = "5e58a3a8-f0b2-4c29-b799-b49a70dc2313";
3545 ret = media_face_delete_from_db(face_id);
3550 #ifdef _USE_TV_PROFILE
3551 filter_h g_tv_filter = NULL;
3553 int test_tv_filter_create(void)
3555 media_content_debug("\n============Filter Create============\n\n");
3557 int ret = MEDIA_CONTENT_ERROR_NONE;
3559 ret = media_filter_create(&g_tv_filter);
3561 ret = media_filter_set_storage(g_tv_filter, "0a22a163-e634-4a2e-ba14-0469a969eea0");
3563 ret = media_filter_set_order(g_tv_filter, MEDIA_CONTENT_ORDER_ASC, MEDIA_STORAGE_ID, MEDIA_CONTENT_COLLATE_DEFAULT);
3568 int test_tv_filter_destroy(void)
3570 media_content_debug("\n============Filter Destroy============\n\n");
3572 int ret = MEDIA_CONTENT_ERROR_NONE;
3574 ret = media_filter_destroy(g_tv_filter);
3579 bool pvr_item_cb(media_pvr_h pvr, void *user_data)
3581 int ret = MEDIA_CONTENT_ERROR_NONE;
3582 char *c_value = NULL;
3584 bool b_value = false;
3585 unsigned long long l_value = 0;
3588 media_content_debug("NO Item");
3592 ret = media_pvr_get_media_id(pvr, &c_value);
3593 if (ret != MEDIA_CONTENT_ERROR_NONE)
3594 media_content_error("Fail to media_pvr_get_media_id");
3595 media_content_debug("media_id [%s]", c_value);
3598 ret = media_pvr_get_channel_name(pvr, &c_value);
3599 if (ret != MEDIA_CONTENT_ERROR_NONE)
3600 media_content_error("Fail to media_pvr_get_channel_name");
3601 media_content_debug("channel_name [%s]", c_value);
3604 ret = media_pvr_get_program_title(pvr, &c_value);
3605 if (ret != MEDIA_CONTENT_ERROR_NONE)
3606 media_content_error("Fail to media_pvr_get_program_title");
3607 media_content_debug("program_title [%s]", c_value);
3610 ret = media_pvr_get_program_crid(pvr, &c_value);
3611 if (ret != MEDIA_CONTENT_ERROR_NONE)
3612 media_content_error("Fail to media_pvr_get_program_crid");
3613 media_content_debug("program_crid [%s]", c_value);
3616 ret = media_pvr_get_guidance(pvr, &c_value);
3617 if (ret != MEDIA_CONTENT_ERROR_NONE)
3618 media_content_error("Fail to media_pvr_get_guidance");
3619 media_content_debug("guidance [%s]", c_value);
3622 ret = media_pvr_get_synopsis(pvr, &c_value);
3623 if (ret != MEDIA_CONTENT_ERROR_NONE)
3624 media_content_error("Fail to media_pvr_get_synopsis");
3625 media_content_debug("synopsis [%s]", c_value);
3628 ret = media_pvr_get_genre(pvr, &c_value);
3629 if (ret != MEDIA_CONTENT_ERROR_NONE)
3630 media_content_error("Fail to media_pvr_get_synopsis");
3631 media_content_debug("genre [%s]", c_value);
3634 ret = media_pvr_get_language(pvr, &c_value);
3635 if (ret != MEDIA_CONTENT_ERROR_NONE)
3636 media_content_error("Fail to media_pvr_get_language");
3637 media_content_debug("language [%s]", c_value);
3640 ret = media_pvr_get_path(pvr, &c_value);
3641 if (ret != MEDIA_CONTENT_ERROR_NONE)
3642 media_content_error("Fail to media_pvr_get_path");
3643 media_content_debug("path [%s]", c_value);
3646 ret = media_pvr_get_storage_id(pvr, &c_value);
3647 if (ret != MEDIA_CONTENT_ERROR_NONE)
3648 media_content_error("Fail to media_pvr_get_storage_id");
3649 media_content_debug("storage_id [%s]", c_value);
3652 ret = media_pvr_get_size(pvr, &l_value);
3653 if (ret != MEDIA_CONTENT_ERROR_NONE)
3654 media_content_error("Fail to media_pvr_get_size");
3655 media_content_debug("size [%ld]", l_value);
3657 ret = media_pvr_get_timezone(pvr, &i_value);
3658 if (ret != MEDIA_CONTENT_ERROR_NONE)
3659 media_content_error("Fail to media_pvr_get_timezone");
3660 media_content_debug("timezone [%d]", i_value);
3662 ret = media_pvr_get_ptc(pvr, &i_value);
3663 if (ret != MEDIA_CONTENT_ERROR_NONE)
3664 media_content_error("Fail to media_pvr_get_ptc");
3665 media_content_debug("ptc [%d]", i_value);
3667 ret = media_pvr_get_major(pvr, &i_value);
3668 if (ret != MEDIA_CONTENT_ERROR_NONE)
3669 media_content_error("Fail to media_pvr_get_major");
3670 media_content_debug("[%d]", i_value);
3672 ret = media_pvr_get_minor(pvr, &i_value);
3673 if (ret != MEDIA_CONTENT_ERROR_NONE)
3674 media_content_error("Fail to media_pvr_get_minor");
3675 media_content_debug("minor [%d]", i_value);
3677 ret = media_pvr_get_channel_type(pvr, &i_value);
3678 if (ret != MEDIA_CONTENT_ERROR_NONE)
3679 media_content_error("Fail to media_pvr_get_channel_type");
3680 media_content_debug("channel_type [%d]", i_value);
3682 ret = media_pvr_get_program_num(pvr, &i_value);
3683 if (ret != MEDIA_CONTENT_ERROR_NONE)
3684 media_content_error("Fail to media_pvr_get_program_num");
3685 media_content_debug("program_num [%d]", i_value);
3687 ret = media_pvr_get_duration(pvr, &i_value);
3688 if (ret != MEDIA_CONTENT_ERROR_NONE)
3689 media_content_error("Fail to media_pvr_get_duration");
3690 media_content_debug("duration [%d]", i_value);
3692 ret = media_pvr_get_embargo_time(pvr, &i_value);
3693 if (ret != MEDIA_CONTENT_ERROR_NONE)
3694 media_content_error("Fail to media_pvr_get_embargo_time");
3695 media_content_debug("embargo_time [%d]", i_value);
3697 ret = media_pvr_get_expiry_time(pvr, &i_value);
3698 if (ret != MEDIA_CONTENT_ERROR_NONE)
3699 media_content_error("Fail to media_pvr_get_expiry_time");
3700 media_content_debug("expiry_time [%d]", i_value);
3702 ret = media_pvr_get_parental_rating(pvr, &i_value);
3703 if (ret != MEDIA_CONTENT_ERROR_NONE)
3704 media_content_error("Fail to media_pvr_get_parental_rating");
3705 media_content_debug("parental_rating [%d]", i_value);
3707 ret = media_pvr_get_start_time(pvr, &i_value);
3708 if (ret != MEDIA_CONTENT_ERROR_NONE)
3709 media_content_error("Fail to media_pvr_get_start_time");
3710 media_content_debug("start_time [%d]", i_value);
3712 ret = media_pvr_get_program_start_time(pvr, &i_value);
3713 if (ret != MEDIA_CONTENT_ERROR_NONE)
3714 media_content_error("Fail to media_pvr_get_program_start_time");
3715 media_content_debug("program_start_time [%d]", i_value);
3717 ret = media_pvr_get_program_end_time(pvr, &i_value);
3718 if (ret != MEDIA_CONTENT_ERROR_NONE)
3719 media_content_error("Fail to media_pvr_get_program_end_time");
3720 media_content_debug("program_end_time [%d]", i_value);
3722 ret = media_pvr_get_program_date(pvr, &i_value);
3723 if (ret != MEDIA_CONTENT_ERROR_NONE)
3724 media_content_error("Fail to media_pvr_get_program_date");
3725 media_content_debug("program_date [%d]", i_value);
3727 ret = media_pvr_get_timer_record(pvr, &b_value);
3728 if (ret != MEDIA_CONTENT_ERROR_NONE)
3729 media_content_error("Fail to media_pvr_get_timer_record");
3730 media_content_debug("timer_record [%d]", b_value);
3732 ret = media_pvr_get_series_record(pvr, &b_value);
3733 if (ret != MEDIA_CONTENT_ERROR_NONE)
3734 media_content_error("Fail to media_pvr_get_series_record");
3735 media_content_debug("series_record [%d]", b_value);
3737 ret = media_pvr_get_hd(pvr, &i_value);
3738 if (ret != MEDIA_CONTENT_ERROR_NONE)
3739 media_content_error("Fail to media_pvr_get_hd");
3740 media_content_debug("hd [%d]", i_value);
3742 ret = media_pvr_get_subtitle(pvr, &b_value);
3743 if (ret != MEDIA_CONTENT_ERROR_NONE)
3744 media_content_error("Fail to media_pvr_get_subtitle");
3745 media_content_debug("subtitle [%d]", b_value);
3747 ret = media_pvr_get_ttx(pvr, &b_value);
3748 if (ret != MEDIA_CONTENT_ERROR_NONE)
3749 media_content_error("Fail to media_pvr_get_ttx");
3750 media_content_debug("ttx [%d]", b_value);
3752 ret = media_pvr_get_ad(pvr, &b_value);
3753 if (ret != MEDIA_CONTENT_ERROR_NONE)
3754 media_content_error("Fail to media_pvr_get_ad");
3755 media_content_debug("ad [%d]", b_value);
3757 ret = media_pvr_get_hard_of_hearing_radio(pvr, &b_value);
3758 if (ret != MEDIA_CONTENT_ERROR_NONE)
3759 media_content_error("Fail to media_pvr_get_hard_of_hearing_radio");
3760 media_content_debug("hard_of_hearing_radio [%d]", b_value);
3762 ret = media_pvr_get_data_service(pvr, &b_value);
3763 if (ret != MEDIA_CONTENT_ERROR_NONE)
3764 media_content_error("Fail to media_pvr_get_data_service");
3765 media_content_debug("data_service [%d]", b_value);
3767 ret = media_pvr_get_content_lock(pvr, &b_value);
3768 if (ret != MEDIA_CONTENT_ERROR_NONE)
3769 media_content_error("Fail to media_pvr_get_content_lock");
3770 media_content_debug("content_lock [%d]", b_value);
3772 ret = media_pvr_get_content_watch(pvr, &b_value);
3773 if (ret != MEDIA_CONTENT_ERROR_NONE)
3774 media_content_error("Fail to media_pvr_get_content_watch");
3775 media_content_debug("content_watch [%d]", b_value);
3777 ret = media_pvr_get_has_audio_only(pvr, &b_value);
3778 if (ret != MEDIA_CONTENT_ERROR_NONE)
3779 media_content_error("Fail to media_pvr_get_has_audio_only");
3780 media_content_debug("has_audio_only [%d]", b_value);
3782 ret = media_pvr_get_is_local_record(pvr, &b_value);
3783 if (ret != MEDIA_CONTENT_ERROR_NONE)
3784 media_content_error("Fail to media_pvr_get_is_local_record");
3785 media_content_debug("is_local_record [%d]", b_value);
3787 ret = media_pvr_get_resolution(pvr, (media_pvr_resolution_e*)&i_value);
3788 if (ret != MEDIA_CONTENT_ERROR_NONE)
3789 media_content_error("Fail to media_pvr_get_resolution");
3790 media_content_debug("resolution [%d]", i_value);
3792 ret = media_pvr_get_aspectratio(pvr, (media_pvr_aspectratio_e*)&i_value);
3793 if (ret != MEDIA_CONTENT_ERROR_NONE)
3794 media_content_error("Fail to media_pvr_get_aspectratio");
3795 media_content_debug("aspectratio [%d]", i_value);
3797 ret = media_pvr_get_highlight(pvr, &b_value);
3798 if (ret != MEDIA_CONTENT_ERROR_NONE)
3799 media_content_error("Fail to media_pvr_get_highlight");
3800 media_content_debug("highlight [%d]", b_value);
3808 int ret = MEDIA_CONTENT_ERROR_NONE;
3809 int media_count = 0;
3811 media_content_debug("\n============PVR Test============\n\n");
3813 test_tv_filter_create();
3815 ret = media_pvr_get_media_count_from_db(g_tv_filter, &media_count);
3816 if (ret != MEDIA_CONTENT_ERROR_NONE)
3817 media_content_error("media_pvr_get_media_count_from_db failed: %d", ret);
3819 media_content_debug("media_count : [%d]", media_count);
3821 ret = media_pvr_foreach_media_from_db(g_tv_filter, pvr_item_cb, NULL);
3822 if (ret != MEDIA_CONTENT_ERROR_NONE)
3823 media_content_error("media_pvr_foreach_media_from_db is failed");
3825 test_tv_filter_destroy();
3830 int test_pvr_update_db(void)
3832 int ret = MEDIA_CONTENT_ERROR_NONE;
3833 media_pvr_h pvr = NULL;
3835 ret = media_pvr_get_pvr_from_db("ff9b5a9a-a7b4-47f4-8255-84e007e25f13", &pvr);
3836 if (ret != MEDIA_CONTENT_ERROR_NONE)
3837 media_content_error("media_pvr_get_pvr_from_db failed: %d", ret);
3839 ret = media_pvr_set_content_lock(pvr, TRUE);
3840 if (ret != MEDIA_CONTENT_ERROR_NONE)
3841 media_content_error("Fail to media_pvr_set_content_lock");
3843 ret = media_pvr_set_content_watch(pvr, TRUE);
3844 if (ret != MEDIA_CONTENT_ERROR_NONE)
3845 media_content_error("Fail to media_pvr_set_content_watch");
3847 ret = media_pvr_set_program_title(pvr, "TEST TITLE");
3848 if (ret != MEDIA_CONTENT_ERROR_NONE)
3849 media_content_error("Fail to media_pvr_set_program_title");
3851 ret = media_pvr_set_highlight(pvr, TRUE);
3852 if (ret != MEDIA_CONTENT_ERROR_NONE)
3853 media_content_error("Fail to media_pvr_set_highlight");
3855 ret = media_pvr_update_to_db(pvr);
3856 if (ret != MEDIA_CONTENT_ERROR_NONE)
3857 media_content_error("Fail to media_pvr_update_to_db");
3860 media_pvr_destroy(pvr);
3866 int main(int argc, char *argv[])
3868 int ret = MEDIA_CONTENT_ERROR_NONE;
3870 media_content_debug("--- content manager test start ---\n\n");
3872 ret = test_connect_database();
3873 if (ret != MEDIA_CONTENT_ERROR_NONE)
3874 return MEDIA_CONTENT_ERROR_NONE;
3875 #ifdef _USE_TV_PROFILE
3878 test_pvr_update_db();
3884 ret = test_start_face_detection(FALSE);
3885 if (ret != MEDIA_CONTENT_ERROR_NONE)
3889 if (ret != MEDIA_CONTENT_ERROR_NONE)
3892 ret = test_gallery_scenario();
3893 if (ret != MEDIA_CONTENT_ERROR_NONE)
3896 ret = test_get_all_music_files();
3897 if (ret != MEDIA_CONTENT_ERROR_NONE)
3900 ret = test_media_info_operation();
3901 if (ret != MEDIA_CONTENT_ERROR_NONE)
3904 ret = test_folder_operation();
3905 if (ret != MEDIA_CONTENT_ERROR_NONE)
3908 ret = test_folder_update();
3909 if (ret != MEDIA_CONTENT_ERROR_NONE)
3912 ret = test_playlist_operation();
3913 if (ret != MEDIA_CONTENT_ERROR_NONE)
3916 ret = test_tag_operation();
3917 if (ret != MEDIA_CONTENT_ERROR_NONE)
3920 ret = test_bookmark_operation();
3921 if (ret != MEDIA_CONTENT_ERROR_NONE)
3924 ret = test_album_list();
3925 if (ret != MEDIA_CONTENT_ERROR_NONE)
3928 ret = test_group_operation();
3929 if (ret != MEDIA_CONTENT_ERROR_NONE)
3932 ret = test_update_operation();
3933 if (ret != MEDIA_CONTENT_ERROR_NONE)
3936 ret = test_insert();
3937 if (ret != MEDIA_CONTENT_ERROR_NONE)
3941 if (ret != MEDIA_CONTENT_ERROR_NONE)
3944 ret = test_create_thumbnail(TRUE);
3945 if (ret != MEDIA_CONTENT_ERROR_NONE)
3948 ret = test_extrace_face(TRUE);
3949 if (ret != MEDIA_CONTENT_ERROR_NONE)
3952 ret = test_request_update_db();
3953 if (ret != MEDIA_CONTENT_ERROR_NONE)
3957 if (ret != MEDIA_CONTENT_ERROR_NONE)
3960 ret = test_batch_operations();
3961 if (ret != MEDIA_CONTENT_ERROR_NONE)
3962 return MEDIA_CONTENT_ERROR_NONE;
3964 ret = test_insert_burst_shot_to_db();
3965 if (ret != MEDIA_CONTENT_ERROR_NONE)
3966 return MEDIA_CONTENT_ERROR_NONE;
3968 ret = test_scan_file();
3969 if (ret != MEDIA_CONTENT_ERROR_NONE)
3970 return MEDIA_CONTENT_ERROR_NONE;
3972 ret = test_scan_dir(true);
3973 if (ret != MEDIA_CONTENT_ERROR_NONE)
3974 return MEDIA_CONTENT_ERROR_NONE;
3977 if (ret != MEDIA_CONTENT_ERROR_NONE)
3978 return MEDIA_CONTENT_ERROR_NONE;
3980 ret = test_create_handle();
3981 if (ret != MEDIA_CONTENT_ERROR_NONE)
3982 return MEDIA_CONTENT_ERROR_NONE;
3985 if (ret != MEDIA_CONTENT_ERROR_NONE)
3986 return MEDIA_CONTENT_ERROR_NONE;
3988 ret = test_face_add_del();
3989 if (ret != MEDIA_CONTENT_ERROR_NONE)
3990 return MEDIA_CONTENT_ERROR_NONE;
3993 ret = test_disconnect_database();
3994 if (ret != MEDIA_CONTENT_ERROR_NONE)
3997 media_content_debug("--- content manager test end ---\n");