2 * Copyright (c) 2012 Samsung Electronics Co., Ltd
\r
4 * Licensed under the Flora License, Version 1.1 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://floralicense.org/license/
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
17 #include <media_info.h>
\r
18 #include "ge-data-type.h"
\r
19 #include "ge-debug.h"
\r
21 int _ge_data_type_new_media(ge_media_s **item)
\r
23 GE_CHECK_VAL(item, -1);
\r
24 ge_media_s *tmp_item = (ge_media_s *)calloc(1, sizeof(ge_media_s));
\r
25 GE_CHECK_VAL(tmp_item, -1);
\r
26 tmp_item->gtype = GE_TYPE_MEDIA;
\r
31 int _ge_data_type_new_album(ge_album_s **album)
\r
33 GE_CHECK_VAL(album, -1);
\r
34 ge_album_s *tmp_item = (ge_album_s *)calloc(1, sizeof(ge_album_s));
\r
35 GE_CHECK_VAL(tmp_item, -1);
\r
36 tmp_item->gtype = GE_TYPE_ALBUM;
\r
42 static int __ge_data_type_free_media(ge_media_s **item)
\r
44 GE_CHECK_VAL(item, -1);
\r
45 GE_CHECK_VAL(*item, -1);
\r
46 ge_media_s *tmp_item = *item;
\r
48 /* For local medias */
\r
49 if (tmp_item->media_h)
\r
50 media_info_destroy(tmp_item->media_h);
\r
52 GE_FREEIF(tmp_item->uuid);
\r
53 GE_FREEIF(tmp_item->thumb_url);
\r
54 GE_FREEIF(tmp_item->file_url);
\r
55 GE_FREEIF(tmp_item->album_uuid);
\r
56 GE_FREEIF(tmp_item->display_name);
\r
58 if (MEDIA_CONTENT_TYPE_IMAGE == tmp_item->type &&
\r
59 tmp_item->image_info) {
\r
60 /* For local medias */
\r
61 if (tmp_item->image_info->image_h)
\r
62 image_meta_destroy(tmp_item->image_info->image_h);
\r
64 GE_FREEIF(tmp_item->image_info->media_uuid);
\r
65 GE_FREE(tmp_item->image_info);
\r
66 } else if (MEDIA_CONTENT_TYPE_VIDEO == tmp_item->type &&
\r
67 tmp_item->video_info) {
\r
68 /* For local medias */
\r
69 if (tmp_item->video_info->video_h)
\r
70 video_meta_destroy(tmp_item->video_info->video_h);
\r
72 GE_FREEIF(tmp_item->video_info->media_uuid);
\r
73 GE_FREEIF(tmp_item->video_info->title);
\r
81 int _ge_data_type_free_media_list(Eina_List **list)
\r
83 GE_CHECK_VAL(list, -1);
\r
84 GE_CHECK_VAL(*list, -1);
\r
85 ge_media_s *item = NULL;
\r
86 Eina_List *tmp_list = *list;
\r
87 EINA_LIST_FREE(tmp_list, item) {
\r
89 __ge_data_type_free_media(&item);
\r
91 eina_list_free(*list);
\r
96 static int __ge_data_type_free_album(ge_album_s **album)
\r
98 GE_CHECK_VAL(album, -1);
\r
99 GE_CHECK_VAL(*album, -1);
\r
100 ge_album_s *tmp_album = *album;
\r
102 GE_FREEIF(tmp_album->uuid);
\r
103 GE_FREEIF(tmp_album->display_name);
\r
104 GE_FREEIF(tmp_album->path);
\r
106 if (tmp_album->folder_h)
\r
107 media_folder_destroy(tmp_album->folder_h);
\r
108 GE_FREE(tmp_album);
\r
113 int _ge_data_type_free_album_list(Eina_List **list)
\r
115 GE_CHECK_VAL(list, -1);
\r
116 GE_CHECK_VAL(*list, -1);
\r
117 ge_album_s *item = NULL;
\r
118 Eina_List *tmp_list = *list;
\r
119 EINA_LIST_FREE(tmp_list, item) {
\r
121 __ge_data_type_free_album(&item);
\r
123 eina_list_free(*list);
\r
128 int _ge_data_type_free_geitem(void **item)
\r
130 GE_CHECK_VAL(item, -1);
\r
131 GE_CHECK_VAL(*item, -1);
\r
134 if(((ge_album_s *)*item)->gtype == GE_TYPE_ALBUM)
\r
135 ret = __ge_data_type_free_album((ge_album_s **)item);
\r
136 else if (((ge_media_s *)*item)->gtype == GE_TYPE_MEDIA)
\r
137 ret = __ge_data_type_free_media((ge_media_s **)item);
\r