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.
18 #include <media_info_private.h>
21 int audio_meta_destroy(audio_meta_h audio)
23 int ret = MEDIA_CONTENT_ERROR_NONE;
24 audio_meta_s *_audio = (audio_meta_s*)audio;
27 SAFE_FREE(_audio->media_id);
28 SAFE_FREE(_audio->title);
29 SAFE_FREE(_audio->album);
30 SAFE_FREE(_audio->artist);
31 SAFE_FREE(_audio->album_artist);
32 SAFE_FREE(_audio->genre);
33 SAFE_FREE(_audio->composer);
34 SAFE_FREE(_audio->year);
35 SAFE_FREE(_audio->recorded_date);
36 SAFE_FREE(_audio->copyright);
37 SAFE_FREE(_audio->track_num);
40 ret = MEDIA_CONTENT_ERROR_NONE;
42 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
43 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
49 int audio_meta_clone(audio_meta_h *dst, audio_meta_h src)
51 int ret = MEDIA_CONTENT_ERROR_NONE;
52 audio_meta_s *_src = (audio_meta_s*)src;
55 audio_meta_s *_dst = (audio_meta_s*)calloc(1, sizeof(audio_meta_s));
56 media_content_retvm_if(_dst == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
58 if (_src->media_id != NULL) {
59 _dst->media_id = g_strdup(_src->media_id);
60 if (_dst->media_id == NULL) {
61 audio_meta_destroy((audio_meta_h)_dst);
62 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
63 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
67 if (_src->title != NULL) {
68 _dst->title = g_strdup(_src->title);
69 if (_dst->title == NULL) {
70 audio_meta_destroy((audio_meta_h)_dst);
71 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
72 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
76 if (_src->album != NULL) {
77 _dst->album = g_strdup(_src->album);
78 if (_dst->album == NULL) {
79 audio_meta_destroy((audio_meta_h)_dst);
80 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
81 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
85 if (_src->artist != NULL) {
86 _dst->artist = g_strdup(_src->artist);
87 if (_dst->artist == NULL) {
88 audio_meta_destroy((audio_meta_h)_dst);
89 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
90 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
94 if (_src->album_artist != NULL) {
95 _dst->album_artist = g_strdup(_src->album_artist);
96 if (_dst->album_artist == NULL) {
97 audio_meta_destroy((audio_meta_h)_dst);
98 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
99 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
103 if (_src->genre != NULL) {
104 _dst->genre = g_strdup(_src->genre);
105 if (_dst->genre == NULL) {
106 audio_meta_destroy((audio_meta_h)_dst);
107 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
108 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
112 if (_src->composer != NULL) {
113 _dst->composer = g_strdup(_src->composer);
114 if (_dst->composer == NULL) {
115 audio_meta_destroy((audio_meta_h)_dst);
116 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
117 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
121 if (_src->year != NULL) {
122 _dst->year = g_strdup(_src->year);
123 if (_dst->year == NULL) {
124 audio_meta_destroy((audio_meta_h)_dst);
125 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
126 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
130 if (_src->recorded_date != NULL) {
131 _dst->recorded_date = g_strdup(_src->recorded_date);
132 if (_dst->recorded_date == NULL) {
133 audio_meta_destroy((audio_meta_h)_dst);
134 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
135 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
139 if (_src->copyright != NULL) {
140 _dst->copyright = g_strdup(_src->copyright);
141 if (_dst->copyright == NULL) {
142 audio_meta_destroy((audio_meta_h)_dst);
143 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
144 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
148 if (_src->track_num != NULL) {
149 _dst->track_num = g_strdup(_src->track_num);
150 if (_dst->track_num == NULL) {
151 audio_meta_destroy((audio_meta_h)_dst);
152 media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
153 return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
157 _dst->bitrate = _src->bitrate;
158 _dst->bitpersample = _src->bitpersample;
159 _dst->samplerate = _src->samplerate;
160 _dst->channel = _src->channel;
161 _dst->duration = _src->duration;
163 *dst = (audio_meta_h)_dst;
165 ret = MEDIA_CONTENT_ERROR_NONE;
167 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
168 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
174 int audio_meta_get_media_id(audio_meta_h audio, char **media_id)
176 int ret = MEDIA_CONTENT_ERROR_NONE;
177 audio_meta_s *_audio = (audio_meta_s*)audio;
179 if (STRING_VALID(_audio->media_id)) {
180 *media_id = strdup(_audio->media_id);
181 media_content_retvm_if(*media_id == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
185 ret = MEDIA_CONTENT_ERROR_NONE;
188 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
189 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
195 int audio_meta_get_album(audio_meta_h audio, char **album)
197 int ret = MEDIA_CONTENT_ERROR_NONE;
198 audio_meta_s *_audio = (audio_meta_s*)audio;
200 if (_audio->album != NULL) {
201 *album = g_strdup(_audio->album); /*album can be empty string*/
202 media_content_retvm_if(*album == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
206 ret = MEDIA_CONTENT_ERROR_NONE;
209 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
210 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
216 int audio_meta_get_artist(audio_meta_h audio, char **artist)
218 int ret = MEDIA_CONTENT_ERROR_NONE;
219 audio_meta_s *_audio = (audio_meta_s*)audio;
222 if (_audio->artist != NULL) {
223 *artist = g_strdup(_audio->artist); /*artist can be empty string*/
224 media_content_retvm_if(*artist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
228 ret = MEDIA_CONTENT_ERROR_NONE;
231 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
232 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
238 int audio_meta_get_album_artist(audio_meta_h audio, char **album_artist)
240 int ret = MEDIA_CONTENT_ERROR_NONE;
241 audio_meta_s *_audio = (audio_meta_s*)audio;
244 if (_audio->album_artist != NULL) {
245 *album_artist = g_strdup(_audio->album_artist); /*album_artist can be empty string*/
246 media_content_retvm_if(*album_artist == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
248 *album_artist = NULL;
250 ret = MEDIA_CONTENT_ERROR_NONE;
253 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
254 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
260 int audio_meta_get_genre(audio_meta_h audio, char **genre)
262 int ret = MEDIA_CONTENT_ERROR_NONE;
263 audio_meta_s *_audio = (audio_meta_s*)audio;
266 if (_audio->genre != NULL) {
267 *genre = g_strdup(_audio->genre); /*genre can be empty string*/
268 media_content_retvm_if(*genre == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
273 ret = MEDIA_CONTENT_ERROR_NONE;
275 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
276 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
282 int audio_meta_get_composer(audio_meta_h audio, char **composer)
284 int ret = MEDIA_CONTENT_ERROR_NONE;
285 audio_meta_s *_audio = (audio_meta_s*)audio;
288 if (_audio->composer != NULL) {
289 *composer = g_strdup(_audio->composer); /*composer can be empty string*/
290 media_content_retvm_if(*composer == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
295 ret = MEDIA_CONTENT_ERROR_NONE;
297 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
298 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
304 int audio_meta_get_year(audio_meta_h audio, char **year)
306 int ret = MEDIA_CONTENT_ERROR_NONE;
307 audio_meta_s *_audio = (audio_meta_s*)audio;
310 if (_audio->year != NULL) {
311 *year = g_strdup(_audio->year); /*year can be empty string*/
312 media_content_retvm_if(*year == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
317 ret = MEDIA_CONTENT_ERROR_NONE;
319 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
320 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
326 int audio_meta_get_recorded_date(audio_meta_h audio, char **recorded_date)
328 int ret = MEDIA_CONTENT_ERROR_NONE;
329 audio_meta_s *_audio = (audio_meta_s*)audio;
332 if (_audio->recorded_date != NULL) {
333 *recorded_date = g_strdup(_audio->recorded_date);
334 media_content_retvm_if(*recorded_date == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
336 *recorded_date = NULL;
339 ret = MEDIA_CONTENT_ERROR_NONE;
341 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
342 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
348 int audio_meta_get_copyright(audio_meta_h audio, char **copyright)
350 int ret = MEDIA_CONTENT_ERROR_NONE;
351 audio_meta_s *_audio = (audio_meta_s*)audio;
354 if (_audio->copyright != NULL) {
355 *copyright = g_strdup(_audio->copyright); /*copyright can be empty string*/
356 media_content_retvm_if(*copyright == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
361 ret = MEDIA_CONTENT_ERROR_NONE;
363 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
364 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
370 int audio_meta_get_track_num(audio_meta_h audio, char **track_num)
372 int ret = MEDIA_CONTENT_ERROR_NONE;
373 audio_meta_s *_audio = (audio_meta_s*)audio;
376 if (_audio->track_num != NULL) {
377 *track_num = g_strdup(_audio->track_num); /*track_num can be empty string*/
378 media_content_retvm_if(*track_num == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
383 ret = MEDIA_CONTENT_ERROR_NONE;
385 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
386 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
392 int audio_meta_get_bit_rate(audio_meta_h audio, int *bit_rate)
394 int ret = MEDIA_CONTENT_ERROR_NONE;
395 audio_meta_s *_audio = (audio_meta_s*)audio;
397 if (_audio && bit_rate) {
398 *bit_rate = _audio->bitrate;
399 ret = MEDIA_CONTENT_ERROR_NONE;
401 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
402 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
408 int audio_meta_get_bitpersample(audio_meta_h audio, int *bitpersample)
410 int ret = MEDIA_CONTENT_ERROR_NONE;
411 audio_meta_s *_audio = (audio_meta_s*)audio;
413 if (_audio && bitpersample) {
414 *bitpersample = _audio->bitpersample;
415 ret = MEDIA_CONTENT_ERROR_NONE;
417 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
418 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
424 int audio_meta_get_sample_rate(audio_meta_h audio, int *sample_rate)
426 int ret = MEDIA_CONTENT_ERROR_NONE;
427 audio_meta_s *_audio = (audio_meta_s*)audio;
429 if (_audio && sample_rate) {
430 *sample_rate = _audio->samplerate;
431 ret = MEDIA_CONTENT_ERROR_NONE;
433 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
434 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
440 int audio_meta_get_channel(audio_meta_h audio, int *channel)
442 int ret = MEDIA_CONTENT_ERROR_NONE;
443 audio_meta_s *_audio = (audio_meta_s*)audio;
445 if (_audio && channel) {
446 *channel = _audio->channel;
447 ret = MEDIA_CONTENT_ERROR_NONE;
449 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
450 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
456 int audio_meta_get_duration(audio_meta_h audio, int *duration)
458 int ret = MEDIA_CONTENT_ERROR_NONE;
459 audio_meta_s *_audio = (audio_meta_s*)audio;
462 *duration = _audio->duration;
463 ret = MEDIA_CONTENT_ERROR_NONE;
465 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
466 ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
472 int audio_meta_update_to_db(audio_meta_h audio)
474 media_content_warn("DEPRECATION WARNING: audio_meta_update_to_db() is deprecated and will be removed from next release.");
475 audio_meta_s *_audio = (audio_meta_s*)audio;
477 if (_audio == NULL) {
478 media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
479 return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
482 return MEDIA_CONTENT_ERROR_NONE;