8269df3e7bbe9f5093eb1bc64397fc5104d69cf1
[platform/core/api/media-content.git] / src / media_audio.c
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 #include <media_info_private.h>
19
20 int audio_meta_destroy(audio_meta_h audio)
21 {
22         audio_meta_s *_audio = (audio_meta_s*)audio;
23         media_content_retvm_if(_audio == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Audio handle is null");
24
25         SAFE_FREE(_audio->media_id);
26         SAFE_FREE(_audio->album);
27         SAFE_FREE(_audio->artist);
28         SAFE_FREE(_audio->album_artist);
29         SAFE_FREE(_audio->genre);
30         SAFE_FREE(_audio->composer);
31         SAFE_FREE(_audio->year);
32         SAFE_FREE(_audio->recorded_date);
33         SAFE_FREE(_audio->copyright);
34         SAFE_FREE(_audio->track_num);
35         SAFE_FREE(_audio);
36
37         return MEDIA_CONTENT_ERROR_NONE;
38 }
39
40 int audio_meta_clone(audio_meta_h *dst, audio_meta_h src)
41 {
42         audio_meta_s *_src = (audio_meta_s*)src;
43         media_content_retvm_if(_src == NULL, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Source handle is null");
44
45         audio_meta_s *_dst = (audio_meta_s*)calloc(1, sizeof(audio_meta_s));
46         media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
47
48         _dst->media_id = g_strdup(_src->media_id);
49         _dst->album = g_strdup(_src->album);
50         _dst->artist = g_strdup(_src->artist);
51         _dst->album_artist = g_strdup(_src->album_artist);
52         _dst->genre = g_strdup(_src->genre);
53         _dst->composer = g_strdup(_src->composer);
54         _dst->year = g_strdup(_src->year);
55         _dst->recorded_date = g_strdup(_src->recorded_date);
56         _dst->copyright = g_strdup(_src->copyright);
57         _dst->track_num = g_strdup(_src->track_num);
58
59         _dst->bitrate = _src->bitrate;
60         _dst->bitpersample = _src->bitpersample;
61         _dst->samplerate = _src->samplerate;
62         _dst->channel = _src->channel;
63         _dst->duration = _src->duration;
64
65         *dst = (audio_meta_h)_dst;
66
67         return MEDIA_CONTENT_ERROR_NONE;
68 }
69
70 int audio_meta_get_media_id(audio_meta_h audio, char **media_id)
71 {
72         audio_meta_s *_audio = (audio_meta_s*)audio;
73         media_content_retvm_if(!_audio || !media_id, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
74
75         *media_id = g_strdup(_audio->media_id);
76
77         return MEDIA_CONTENT_ERROR_NONE;
78 }
79
80 int audio_meta_get_album(audio_meta_h audio, char **album)
81 {
82         audio_meta_s *_audio = (audio_meta_s*)audio;
83         media_content_retvm_if(!_audio || !album, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
84
85         /*album can be empty string*/
86         *album = g_strdup(_audio->album);
87
88         return MEDIA_CONTENT_ERROR_NONE;
89 }
90
91 int audio_meta_get_artist(audio_meta_h audio, char **artist)
92 {
93         audio_meta_s *_audio = (audio_meta_s*)audio;
94         media_content_retvm_if(!_audio || !artist, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
95
96         /*artist can be empty string*/
97         *artist = g_strdup(_audio->artist);
98
99         return MEDIA_CONTENT_ERROR_NONE;
100 }
101
102 int audio_meta_get_album_artist(audio_meta_h audio, char **album_artist)
103 {
104         audio_meta_s *_audio = (audio_meta_s*)audio;
105         media_content_retvm_if(!_audio || !album_artist, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
106
107         /*album_artist can be empty string*/
108         *album_artist = g_strdup(_audio->album_artist);
109
110         return MEDIA_CONTENT_ERROR_NONE;
111 }
112
113 int audio_meta_get_genre(audio_meta_h audio, char **genre)
114 {
115         audio_meta_s *_audio = (audio_meta_s*)audio;
116         media_content_retvm_if(!_audio || !genre, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
117
118         /*genre can be empty string*/
119         *genre = g_strdup(_audio->genre);
120
121         return MEDIA_CONTENT_ERROR_NONE;
122 }
123
124 int audio_meta_get_composer(audio_meta_h audio, char **composer)
125 {
126         audio_meta_s *_audio = (audio_meta_s*)audio;
127         media_content_retvm_if(!_audio || !composer, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
128
129         /*composer can be empty string*/
130         *composer = g_strdup(_audio->composer);
131
132         return MEDIA_CONTENT_ERROR_NONE;
133 }
134
135 int audio_meta_get_year(audio_meta_h audio, char **year)
136 {
137         audio_meta_s *_audio = (audio_meta_s*)audio;
138         media_content_retvm_if(!_audio || !year, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
139
140         /*year can be empty string*/
141         *year = g_strdup(_audio->year);
142
143         return MEDIA_CONTENT_ERROR_NONE;
144 }
145
146 int audio_meta_get_recorded_date(audio_meta_h audio, char **recorded_date)
147 {
148         audio_meta_s *_audio = (audio_meta_s*)audio;
149         media_content_retvm_if(!_audio || !recorded_date, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
150
151         *recorded_date = g_strdup(_audio->recorded_date);
152
153         return MEDIA_CONTENT_ERROR_NONE;
154 }
155
156 int audio_meta_get_copyright(audio_meta_h audio, char **copyright)
157 {
158         audio_meta_s *_audio = (audio_meta_s*)audio;
159         media_content_retvm_if(!_audio || !copyright, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
160
161         /*copyright can be empty string*/
162         *copyright = g_strdup(_audio->copyright);
163
164         return MEDIA_CONTENT_ERROR_NONE;
165 }
166
167 int audio_meta_get_track_num(audio_meta_h audio, char **track_num)
168 {
169         audio_meta_s *_audio = (audio_meta_s*)audio;
170         media_content_retvm_if(!_audio || !track_num, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
171
172         /*track_num can be empty string*/
173         *track_num = g_strdup(_audio->track_num);
174
175         return MEDIA_CONTENT_ERROR_NONE;
176 }
177
178 int audio_meta_get_bit_rate(audio_meta_h audio, int *bit_rate)
179 {
180         audio_meta_s *_audio = (audio_meta_s*)audio;
181         media_content_retvm_if(!_audio || !bit_rate, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
182
183         *bit_rate = _audio->bitrate;
184
185         return MEDIA_CONTENT_ERROR_NONE;
186 }
187
188 int audio_meta_get_bitpersample(audio_meta_h audio, int *bitpersample)
189 {
190         audio_meta_s *_audio = (audio_meta_s*)audio;
191         media_content_retvm_if(!_audio || !bitpersample, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
192
193         *bitpersample = _audio->bitpersample;
194
195         return MEDIA_CONTENT_ERROR_NONE;
196 }
197
198 int audio_meta_get_sample_rate(audio_meta_h audio, int *sample_rate)
199 {
200         audio_meta_s *_audio = (audio_meta_s*)audio;
201         media_content_retvm_if(!_audio || !sample_rate, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
202
203         *sample_rate = _audio->samplerate;
204
205         return MEDIA_CONTENT_ERROR_NONE;
206 }
207
208 int audio_meta_get_channel(audio_meta_h audio, int *channel)
209 {
210         audio_meta_s *_audio = (audio_meta_s*)audio;
211         media_content_retvm_if(!_audio || !channel, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
212
213         *channel = _audio->channel;
214
215         return MEDIA_CONTENT_ERROR_NONE;
216 }
217
218 int audio_meta_get_duration(audio_meta_h audio, int *duration)
219 {
220         audio_meta_s *_audio = (audio_meta_s*)audio;
221         media_content_retvm_if(!_audio || !duration, MEDIA_CONTENT_ERROR_INVALID_PARAMETER, "Invalid parameter");
222
223         *duration = _audio->duration;
224
225         return MEDIA_CONTENT_ERROR_NONE;
226 }
227
228 #ifdef TIZEN_FEATURE_COMPATIBILITY
229 int audio_meta_get_played_time(audio_meta_h audio, time_t* played_time)
230 {
231         media_content_warn("DEPRECATION WARNING: audio_meta_get_played_time() is removed from 5.5.");
232
233         return MEDIA_CONTENT_ERROR_NONE;
234 }
235
236 int audio_meta_get_played_count(audio_meta_h audio, int *played_count)
237 {
238         media_content_warn("DEPRECATION WARNING: audio_meta_get_played_count() is removed from 5.5.");
239
240         return MEDIA_CONTENT_ERROR_NONE;
241 }
242
243 int audio_meta_set_played_count(audio_meta_h audio, int played_count)
244 {
245         media_content_warn("DEPRECATION WARNING: audio_meta_set_played_count() is removed from 5.5.");
246
247         return MEDIA_CONTENT_ERROR_NONE;
248 }
249
250 int audio_meta_set_played_time(audio_meta_h audio, time_t played_time)
251 {
252         media_content_warn("DEPRECATION WARNING: audio_meta_set_played_time() is removed from 5.5.");
253
254         return MEDIA_CONTENT_ERROR_NONE;
255 }
256
257 int audio_meta_update_to_db(audio_meta_h audio)
258 {
259         media_content_warn("DEPRECATION WARNING: audio_meta_update_to_db() is removed from 5.5.");
260
261         return MEDIA_CONTENT_ERROR_NONE;
262 }
263 #endif