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 #ifndef __TIZEN_MEDIA_CONTENT_DOC_H__
19 #define __TIZEN_MEDIA_CONTENT_DOC_H__
22 * @defgroup CAPI_MEDIA_CONTENT_MODULE Media Content
23 * @brief The Media Content API provides functions, enumerations used in the entire Content Service.
25 * @ingroup CAPI_CONTENT_FRAMEWORK
27 * @section CAPI_MEDIA_CONTENT_MODULE_HEADER Required Header
28 * \#include <media_content.h>
30 * @section CAPI_MEDIA_CONTENT_MODULE_OVERVIEW Overview
31 * The Media Content API provides functions and enumerations used in the entire Content Service.\n
32 * The information about media items i.e. image, audio, video and ebook, are managed in the content database and
33 * operations that involve database requires an active connection with the media content service.\n
34 * During media scanning, Media Service extract media information automatically. media information include basic file info like
35 * path, size, modified time etc and some metadata like ID3tag, EXIF, thumbnail, etc. (thumbnail extracted only in Internal and SD card storage.) \n
36 * Since 3.0, a thumbnail is not automatically extracted during media scanning. A thumbnail will be created only when media_info_create_thumbnail() is called by any application. \n
37 * Media content services do not manage hidden files. \n
38 * The API provides functions for connecting (#media_content_connect()) and disconnecting (#media_content_disconnect()) from the media content service.
40 * The API consists of @ref CAPI_CONTENT_MEDIA_ALBUM_MODULE, @ref CAPI_CONTENT_MEDIA_BOOKMARK_MODULE, @ref CAPI_CONTENT_MEDIA_FACE_MODULE,
41 * @ref CAPI_CONTENT_MEDIA_FILTER_MODULE, @ref CAPI_CONTENT_MEDIA_FOLDER_MODULE, @ref CAPI_CONTENT_MEDIA_GROUP_MODULE,
42 * @ref CAPI_CONTENT_MEDIA_INFO_MODULE, @ref CAPI_CONTENT_MEDIA_PLAYLIST_MODULE, @ref CAPI_CONTENT_MEDIA_TAG_MODULE API.
47 * <th>Description</th>
50 * <td>@ref CAPI_CONTENT_MEDIA_ALBUM_MODULE </td>
51 * <td> Provide information about the media album. </td>
54 * <td>@ref CAPI_CONTENT_MEDIA_BOOKMARK_MODULE </td>
55 * <td> Provide information about the media bookmark. </td>
58 * <td>@ref CAPI_CONTENT_MEDIA_FACE_MODULE </td>
59 * <td> Provide information about the detected faces from image. </td>
62 * <td>@ref CAPI_CONTENT_MEDIA_FILTER_MODULE </td>
63 * <td> Provide functions for creating and destroying media filters.\n
64 * Provide functions to get filter properties</td>
67 * <td>@ref CAPI_CONTENT_MEDIA_FOLDER_MODULE </td>
68 * <td> Provide information about folders (e.g. path, name, modification date) stored on the device.\n
69 * Provide information about the media items present in the folders.</td>
72 * <td>@ref CAPI_CONTENT_MEDIA_GROUP_MODULE </td>
73 * <td> Provide information about the media group(e.g. media artist, composer, genre, year). </td>
76 * <td>@ref CAPI_CONTENT_MEDIA_INFO_MODULE </td>
77 * <td> Provide generic information about media content items (i.e. image, audio, video, ebook and others).\n
78 * Provide details about audio files (e.g. name, genre etc) present in the device.\n
79 * Provide details about image files (e.g. width, height, orientation etc) present in the device.\n
80 * Provide details about video files (e.g. width, height, duration etc) present in the device.\n
81 * Provide details about ebook files (e.g. subject, author etc) present in the device.</td>
84 * <td>@ref CAPI_CONTENT_MEDIA_PLAYLIST_MODULE </td>
85 * <td> Provide information about the media playlist. </td>
88 * <td>@ref CAPI_CONTENT_MEDIA_TAG_MODULE </td>
89 * <td> Provide information about media tags.\n
90 * Provide functions to insert or delete tag from database.\n
91 * Provide functions to add and remove media item from tags in the database. </td>
98 * @defgroup CAPI_CONTENT_MEDIA_FOLDER_MODULE Media Folder
99 * @brief The Media folder API provides functions to get information about folders.
101 * @ingroup CAPI_MEDIA_CONTENT_MODULE
103 * @section CAPI_CONTENT_MEDIA_FOLDER_MODULE_HEADER Required Header
104 * \#include <media_content.h>
106 * @section CAPI_CONTENT_MEDIA_FOLDER_MODULE_OVERVIEW Overview
107 * A Folder is used to organize media content files i.e. image, audio, video, ebook files, in the physical storage of the device.
108 * The Media Folder API provides functions to get basic information about existing folders e.g. folder name, path and storage type.
109 * It also provides functions to get information related to media items present in the folder.
111 * For getting information about folder call the respective get functions e.g. to get path and name of a given folder call #media_folder_get_path() and #media_folder_get_name() function respectively and so on.\n
112 * Similarly call media_folder_get_media_count_from_db() to get count of media items present in a given folder.
113 * @subsection CAPI_CONTENT_MEDIA_FOLDER_FOREACH_OPERATIONS Foreach Operations
114 * <div><table class="doxtable">
116 * <th><b>FOREACH</b></th>
117 * <th><b>CALLBACK</b></th>
118 * <th><b>DESCRIPTION</b></th>
121 * <td>media_folder_foreach_folder_from_db()</td>
122 * <td>media_folder_cb()</td>
123 * <td>Iterates over a folder information list</td>
126 * <td>media_folder_foreach_media_from_db()</td>
127 * <td>media_info_cb()</td>
128 * <td>Iterates media information trough the folder</td>
137 * @defgroup CAPI_CONTENT_MEDIA_TAG_MODULE Media Tag
138 * @brief The Media Tag API provides functions to manage media content tags.
140 * @ingroup CAPI_MEDIA_CONTENT_MODULE
142 * @section CAPI_CONTENT_MEDIA_TAG_MODULE_HEADER Required Header
143 * \#include <media_content.h>
145 * @section CAPI_CONTENT_MEDIA_TAG_MODULE_OVERVIEW Overview
146 * A Tag is a special piece of information that may be associated with media content items.
147 * Tagging allows a user to organize large number of items into logical groups providing a simplified
148 * and faster way of accessing media content items.\n\n
149 * Media Tag API provides functions to get basic information about existing tags and manage tags
150 * associated with Media Information (#media_info_h).
151 * For inserting a new tag to the database call #media_tag_insert_to_db() function and for deleting existing tag from database
152 * call media_tag_delete_from_db() function.\n
153 * A Media item can be associated and dissociated from tags by calling #media_tag_add_media() and #media_tag_remove_media() function respectively.
154 * Finally, #media_tag_update_to_db function should be called so as to update the given item in the media database.
156 * @subsection CAPI_CONTENT_MEDIA_TAG_FOREACH_OPERATIONS Foreach Operations
157 * <div><table class="doxtable">
159 * <th><b>FOREACH</b></th>
160 * <th><b>CALLBACK</b></th>
161 * <th><b>DESCRIPTION</b></th>
164 * <td>media_tag_foreach_tag_from_db()</td>
165 * <td> media_tag_cb()</td>
166 * <td>Iterates through tags</td>
169 * <td>media_tag_foreach_media_from_db()</td>
170 * <td>media_info_cb()</td>
171 * <td> Iterates through the media items for a given tag
182 * @defgroup CAPI_CONTENT_MEDIA_FILTER_MODULE Media Filter
183 * @brief The Media Filter API provides functions to manage media filters.
185 * @ingroup CAPI_MEDIA_CONTENT_MODULE
187 * @section CAPI_CONTENT_MEDIA_FILTER_MODULE_HEADER Required Header
188 * \#include <media_content.h>
190 * @section CAPI_CONTENT_MEDIA_FILTER_MODULE_OVERVIEW Overview
191 * A Media filter is required for filtering information associated with media Folder, Tag, Audio, Bookmark and Media Information on basis of details like offset, count, order and condition for searching.\n
192 * @ref CAPI_CONTENT_MEDIA_FILTER_MODULE API provides functions for creating and destroying media filters. \n
193 * It provide functions to set properties and also provide functions for getting filter properties associated with a given media filter.
196 * Setting media filter properties helps to limit the number of filtered items as following:
197 * - Offset - Used to set starting position of the filter's search
198 * - Count - Used to set number of items to be searched from offset
199 * - Condition - Used to set keyword which user want to search
200 * - Order - Used to set type of media to be ordered by the filter
203 * The Media Filter API provides functions for creating and destroying media filters.\n
204 * It provide functions to set and get properties of the filter associated with a given media filter. \n
205 * For creating a media filter (@ref filter_h), call #media_filter_create() function and call #media_filter_destroy() function for destroying an existing filter. \n
206 * For setting filter properties call the respective set functions e.g. to set offset position, call #media_filter_set_offset() function and
207 * call #media_filter_set_condition() function to set the condition like an sql "where" clause. \n
208 * Searchable expression can use one of the following forms:
217 * - * - value > column
221 * - column IN (value)
222 * - column IN (value-list)
223 * - column NOT IN (value)
224 * - column NOT IN (value-list)
225 * - column LIKE value
226 * - expression1 AND expression2 OR expression3
230 * Note that if you want to set qoutation(" ' " or " " ") as value of LIKE operator, you should use two times.(" '' " or " "" ") \n
231 * And the optional ESCAPE clause is supported. Both percent symbol("%") and underscore symbol("_") are used in the LIKE pattern.\n
232 * If these characters are used as value of LIKE operation, then the expression following the ESCAPE clause of sqlite will be ignored. \n
235 * - column LIKE ('#%') ESCAPE('#') - "#" is escape character, it will be ignored.
239 * Similarly, call respective get function to get filter properties e.g. call #media_filter_get_condition() function
240 * to get condition of the media filter and call #media_filter_get_order() function to get order (#media_content_order_e) of the filtered items and so on.
242 * @section CAPI_CONTENT_MEDIA_FILTER_MODULE_EXAMPLE Example
243 * You can set the filter as follows.
247 * #include <string.h>
248 * #include <media_content.h>
250 * #define MAX_QUERY_LEN 512
251 * #define DLOG_TAG "media-content-test"
253 * filter_h g_filter = NULL;
255 * int create_filter()
257 * int ret = MEDIA_CONTENT_ERROR_NONE;
258 * char condition[MAX_QUERY_LEN] = {0,};
260 * snprintf(condition,sizeof(condition),"%s = 0",MEDIA_TYPE);
262 * ret = media_filter_create(&g_filter);
263 * ret = media_filter_set_condition(g_filter, condition, MEDIA_CONTENT_COLLATE_DEFAULT);
264 * ret = media_filter_set_order(g_filter, MEDIA_CONTENT_ORDER_DESC, MEDIA_ARTIST, MEDIA_CONTENT_COLLATE_DEFAULT);
270 * And you can use the created filter as follows.
273 * int get_media_count()
275 * int ret = MEDIA_CONTENT_ERROR_NONE;
278 * ret = media_info_get_media_count_from_db(g_filter, &media_cnt);
279 * dlog_print(DLOG_DEBUG, DLOG_TAG, "media count [%d]\n", media_cnt);
289 * @defgroup CAPI_CONTENT_MEDIA_AUDIO_META_MODULE Audio Metadata
290 * @brief The Audio Metadata API provides functions to get information about audio items.
292 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
294 * @section CAPI_CONTENT_MEDIA_AUDIO_META_MODULE_HEADER Required Header
295 * \#include <media_content.h>
297 * @section CAPI_CONTENT_MEDIA_AUDIO_META_MODULE_OVERVIEW Overview
298 * The Audio Metadata API provides functions to get information about stored audio files.
299 * Its purpose is twofold:
300 * - to provide information about audio content
301 * - to organize audio content logically (grouping)
303 * API provides functions that allow to check attributes of audio files. Following information about audio content is provided:
308 * <th>Filter Keyword</th>
313 * <td>#MEDIA_ALBUM</td>
314 * <td>Get from metadata if exist.</td>
318 * <td>#MEDIA_ARTIST</td>
319 * <td>Get from metadata if exist.</td>
322 * <td>album_artist</td>
323 * <td>#MEDIA_ALBUM_ARTIST</td>
324 * <td>Get from metadata if exist.</td>
328 * <td>#MEDIA_GENRE</td>
329 * <td>Get from metadata if exist.</td>
333 * <td>#MEDIA_COMPOSER</td>
334 * <td>Get from metadata if exist.</td>
338 * <td>#MEDIA_YEAR</td>
339 * <td>Get from metadata if exist.</td>
342 * <td>recorded_date</td>
343 * <td>#MEDIA_RECORDED_DATE</td>
344 * <td>Get from metadata if exist. if not, same as modified time.</td>
348 * <td>#MEDIA_COPYRIGHT</td>
349 * <td>Get from metadata if exist.</td>
353 * <td>#MEDIA_TRACK_NUM</td>
354 * <td>Get from metadata if exist.</td>
358 * <td>#MEDIA_BITRATE</td>
362 * <td>bitpersample</td>
363 * <td>#MEDIA_BITPERSAMPLE</td>
364 * <td>Bit per sample</td>
367 * <td>sample_rate</td>
368 * <td>#MEDIA_SAMPLERATE</td>
369 * <td>Samplerate</td>
373 * <td>#MEDIA_CHANNEL</td>
378 * <td>#MEDIA_DURATION</td>
383 * <td>#MEDIA_RATING</td>
384 * <td>Get from metadata if exist.</td>
390 * For getting the audio handle (#audio_meta_h) from the media information (#media_info_h), call #media_info_get_audio() function.\n
391 * For getting the information related to audio files stored in the device, call the respective get functions e.g. to get the artist of a audio, call #audio_meta_get_artist() function and
392 * to get bitrate of a audio, call #audio_meta_get_bit_rate() function and so on.\n
393 * When the audio handle is no longer needed, it should be destroyed by calling #audio_meta_destroy() function.\n
401 * @defgroup CAPI_CONTENT_MEDIA_PLAYLIST_MODULE Media Playlist
402 * @brief The Media Playlist API provides functions to manage media playlists.
404 * @ingroup CAPI_MEDIA_CONTENT_MODULE
406 * @section CAPI_CONTENT_MEDIA_PLAYLIST_MODULE_HEADER Required Header
407 * \#include <media_content.h>
409 * @section CAPI_CONTENT_MEDIA_PLAYLIST_MODULE_OVERVIEW Overview
410 * A Playlist is a list of songs which can be played in some sequence i.e. sequential or shuffled order.
411 * The Media Playlist API provides functions to insert, delete or updates a media playlist in the database.
413 * For inserting new playlist (#media_playlist_h) in the database, call #media_playlist_insert_to_db() function and call #media_playlist_delete_from_db() function
414 * to delete a playlist from the database.\n
415 * For adding a media item to the playlist, call #media_playlist_add_media() function, for removing a media item from the playlist, call
416 * #media_playlist_remove_media() function.\n
417 * Finally, #media_playlist_update_to_db() function should be called so as to update the given item in the media database.
419 * @subsection CAPI_CONTENT_MEDIA_PLAYLIST_FOREACH_OPERATIONS Foreach Operations
420 * <div><table class="doxtable">
422 * <th><b>FOREACH</b></th>
423 * <th><b>CALLBACK</b></th>
424 * <th><b>DESCRIPTION</b></th>
427 * <td>media_playlist_foreach_playlist_from_db()</td>
428 * <td>media_playlist_cb()</td>
429 * <td>Iterates through playlist</td>
432 * <td>media_playlist_foreach_media_from_db()</td>
433 * <td>media_info_cb()</td>
434 * <td>Iterates through playlist's items</td>
443 * @defgroup CAPI_CONTENT_MEDIA_ALBUM_MODULE Media Album
444 * @brief The Media Album API provides information related to album of media items.
446 * @ingroup CAPI_MEDIA_CONTENT_MODULE
448 * @section CAPI_CONTENT_MEDIA_ALBUM_MODULE_HEADER Required Header
449 * \#include <media_content.h>
451 * @section CAPI_CONTENT_MEDIA_ALBUM_MODULE_OVERVIEW Overview
452 * An album is a logical collection or grouping of related audio files. It is also used for filtering media items.\n
453 * The Media Album API allows to manage media albums which contains all video and audio items from
456 * The API provides functions to get and search media items in album group.
457 * For getting the count of media items associated with a given album, call #media_album_get_media_count_from_db() function.
459 * @subsection CAPI_CONTENT_MEDIA_ALBUM_FOREACH_OPERATIONS Foreach Operations
460 * <div><table class="doxtable">
462 * <th><b>FOREACH</b></th>
463 * <th><b>CALLBACK</b></th>
464 * <th><b>DESCRIPTION</b></th>
467 * <td>media_album_foreach_album_from_db()</td>
468 * <td>media_album_cb()</td>
469 * <td>Iterates through albums</td>
472 * <td>media_album_foreach_media_from_db()</td>
473 * <td>media_info_cb()</td>
474 * <td>Iterates through album's items</td>
483 * @defgroup CAPI_CONTENT_MEDIA_GROUP_MODULE Media Group
484 * @brief The Media Group API provides information related to artist of media group.
486 * @ingroup CAPI_MEDIA_CONTENT_MODULE
488 * @section CAPI_CONTENT_MEDIA_GROUP_MODULE_HEADER Required Header
489 * \#include <media_content.h>
491 * @section CAPI_CONTENT_MEDIA_GROUP_MODULE_OVERVIEW Overview
492 * A Media Group represents logical grouping of media files with respect to their group name. It is also used for filtering media items.\n
494 * The API provides functions to get and search image, video and audio items in media group.
495 * For getting the count of media items associated with a given group, call #media_group_get_media_count_from_db() function.
498 * @subsection CAPI_CONTENT_MEDIA_GROUP_FOREACH_OPERATIONS Foreach Operations
499 * <div><table class="doxtable">
501 * <th><b>FOREACH</b></th>
502 * <th><b>CALLBACK</b></th>
503 * <th><b>DESCRIPTION</b></th>
506 * <td>media_group_foreach_group_from_db()</td>
507 * <td> media_group_cb()</td>
508 * <td>Iterates through group</td>
511 * <td>media_group_foreach_media_from_db()</td>
512 * <td>media_info_cb()</td>
513 * <td>Iterates through group's items</td>
522 * @defgroup CAPI_CONTENT_MEDIA_IMAGE_META_MODULE Image Metadata
523 * @brief The Image Metadata API provides functions that allow to get information about
524 * stored image files.
526 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
528 * @section CAPI_CONTENT_MEDIA_IMAGE_META_MODULE_HEADER Required Header
529 * \#include <media_content.h>
531 * @section CAPI_CONTENT_MEDIA_IMAGE_META_MODULE_OVERVIEW Overview
532 * The Image Metadata API provides functions to get basic information associated with image files:
536 * <th>Filter Keyword</th>
541 * <td>#MEDIA_WIDTH</td>
546 * <td>#MEDIA_HEIGHT</td>
551 * <td>#MEDIA_LONGITUDE</td>
552 * <td>Get from metadata if exist.</td>
556 * <td>#MEDIA_LATITUDE</td>
557 * <td>Get from metadata if exist.</td>
561 * <td>#MEDIA_ALTITUDE</td>
562 * <td>Get from metadata if exist.</td>
565 * <td>exposure_time</td>
566 * <td>#MEDIA_EXPOSURE_TIME</td>
567 * <td>Get from EXIF if exist.</td>
571 * <td>#MEDIA_FNUMBER</td>
572 * <td>Get from EXIF if exist.</td>
576 * <td>#MEDIA_ISO</td>
577 * <td>Get from EXIF if exist.</td>
581 * <td>#MEDIA_MODEL</td>
582 * <td>Get from EXIF if exist.</td>
585 * <td>date_taken</td>
586 * <td>#MEDIA_DATETAKEN</td>
587 * <td>Get from EXIF if exist.</td>
590 * <td>orientation</td>
591 * <td>#MEDIA_ORIENTATION</td>
592 * <td>Get from EXIF if exist.</td>
595 * <td>is_360_content</td>
596 * <td>#MEDIA_360</td>
597 * <td>Whether 360 content or not.</td>
604 * For getting the image handle (#image_meta_h) from the media information (#media_info_h), call #media_info_get_image() function.\n
605 * For getting the information related to image files stored in the device call the respective get functions e.g. to get the width of a image, call #image_meta_get_width() function and
606 * to get orientation (#media_content_orientation_e) of a image, call #image_meta_get_orientation() function and so on.\n
607 * When the image handle is no longer needed, it should be destroyed by calling #image_meta_destroy() function.\n
615 * @defgroup CAPI_CONTENT_MEDIA_VIDEO_META_MODULE Video Metadata
616 * @brief The Video Metadata API provides functions to get information about video files present in the device.
618 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
620 * @section CAPI_CONTENT_MEDIA_VIDEO_META_MODULE_HEADER Required Header
621 * \#include <media_content.h>
623 * @section CAPI_CONTENT_MEDIA_VIDEO_META_MODULE_OVERVIEW Overview
624 * The Video Metadata API provides functions to get information about video files present in the device.
625 * Following information about video content (#video_meta_h) is provided:
629 * <th>Filter Keyword</th>
634 * <td>#MEDIA_ALBUM</td>
635 * <td>Get from metadata if exist.</td>
639 * <td>#MEDIA_ARTIST</td>
640 * <td>Get from metadata if exist.</td>
643 * <td>album_artist</td>
644 * <td>#MEDIA_ALBUM_ARTIST</td>
645 * <td>Get from metadata if exist.</td>
649 * <td>#MEDIA_GENRE</td>
650 * <td>Get from metadata if exist.</td>
654 * <td>#MEDIA_COMPOSER</td>
655 * <td>Get from metadata if exist.</td>
659 * <td>#MEDIA_YEAR</td>
660 * <td>Get from metadata if exist.</td>
663 * <td>recorded_date</td>
664 * <td>#MEDIA_RECORDED_DATE</td>
665 * <td>Get from metadata if exist. if not, same as modified time.</td>
669 * <td>#MEDIA_COPYRIGHT</td>
670 * <td>Get from metadata if exist.</td>
674 * <td>#MEDIA_TRACK_NUM</td>
675 * <td>Get from metadata if exist.</td>
679 * <td>#MEDIA_BITRATE</td>
683 * <td>bitpersample</td>
684 * <td>#MEDIA_BITPERSAMPLE</td>
685 * <td>Bit per sample</td>
688 * <td>sample_rate</td>
689 * <td>#MEDIA_SAMPLERATE</td>
690 * <td>Samplerate</td>
694 * <td>#MEDIA_CHANNEL</td>
699 * <td>#MEDIA_DURATION</td>
704 * <td>#MEDIA_RATING</td>
705 * <td>Get from metadata if exist.</td>
709 * <td>#MEDIA_ORIENTATION</td>
710 * <td>Video rotation</td>
714 * <td>#MEDIA_WIDTH</td>
719 * <td>#MEDIA_HEIGHT</td>
724 * <td>#MEDIA_LONGITUDE</td>
725 * <td>Get from metadata if exist.</td>
729 * <td>#MEDIA_LATITUDE</td>
730 * <td>Get from metadata if exist.</td>
734 * <td>#MEDIA_ALTITUDE</td>
735 * <td>Get from metadata if exist.</td>
738 * <td>is_360_content</td>
739 * <td>#MEDIA_360</td>
740 * <td>Whether 360 content or not.</td>
745 * For getting the video handle (#video_meta_h) from the media information (#media_info_h), call the media_info_get_video() function.\n
746 * For getting the information related to video files stored in the device call the respective get functions e.g. to get duration of the video file
747 * call #video_meta_get_duration() function and so on.\n
748 * When the video handle is no longer needed, it should be destroyed by calling #video_meta_destroy() function.
756 * @defgroup CAPI_CONTENT_MEDIA_BOOK_META_MODULE Book Metadata
757 * @brief The Book Metadata API provides functions to get information about ebook files present in the device.
759 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
761 * @section CAPI_CONTENT_MEDIA_BOOK_META_MODULE_HEADER Required Header
762 * \#include <media_content.h>
764 * @section CAPI_CONTENT_MEDIA_BOOK_META_MODULE_OVERVIEW Overview
765 * The Book Metadata API provides functions to get information about book files present in the device.
766 * Following information about book content (#book_meta_h) is provided:
770 * <th>Filter Keyword</th>
775 * <td>#MEDIA_GENRE</td>
776 * <td>Get from metadata if exist.</td>
780 * <td>#MEDIA_COMPOSER</td>
781 * <td>Get from metadata if exist.</td>
785 * <td>#MEDIA_RECORDED_DATE</td>
786 * <td>Get from metadata if exist.</td>
790 * <td>#MEDIA_COPYRIGHT</td>
791 * <td>Get from metadata if exist.</td>
796 * For getting the book handle (#book_meta_h) from the media information (#media_info_h), call the media_info_get_book() function.\n
797 * For getting the information related to book files stored in the device call the respective get functions e.g. to get author of the ebook file
798 * call #book_meta_get_author() function and so on.\n
799 * When the book handle is no longer needed, it should be destroyed by calling #book_meta_destroy() function.
803 * @defgroup CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE Face Detection
804 * @brief The Face Detection API provides functions to detect face information about stored image files.
806 * @ingroup CAPI_CONTENT_MEDIA_INFO_MODULE
808 * @section CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE_HEADER Required Header
809 * \#include <media_content.h>
811 * @section CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE_FEATURE Related Features
812 * This API is related with the following feature: \n
813 * - %http://tizen.org/feature/vision.face_recognition
814 * It is recommended to create applications with regard to features, to increase reliability. \n
816 * You can check if a device supports the related features for this API by using @ref CAPI_SYSTEM_SYSTEM_INFO_MODULE, thereby controlling the procedure of your application. \n
818 * To ensure your application is only running on a device with specific features, please define the features in your manifest file using the manifest editor in the SDK. \n
820 * More details on featuring your application can be found from <a href="https://docs.tizen.org/application/tizen-studio/native-tools/manifest-text-editor#feature-element"><b>Feature Element</b>.</a>
822 * @section CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE_OVERVIEW Overview
823 * The Face Detection API provides functions to detect face information associated with image files. \n
824 * Face information detected by mediavision API. To detect faces, you should use media_info_start_face_detection() API. \n
827 * - start and cancel face detection with image files
830 * To start face detection, call the #media_info_start_face_detection() function.\n
831 * To cancel face detection after it's been started, call the #media_info_cancel_face_detection() function.\n
836 * @defgroup CAPI_CONTENT_MEDIA_BOOKMARK_MODULE Media Bookmark
837 * @brief The Media Bookmark Information API provides functions to manage bookmark information on the media items.
839 * @ingroup CAPI_MEDIA_CONTENT_MODULE
841 * @section CAPI_CONTENT_MEDIA_BOOKMARKINFO_MODULE_HEADER Required Header
842 * \#include <media_content.h>
844 * @section CAPI_CONTENT_MEDIA_BOOKMARKINFO_MODULE_OVERVIEW Overview
845 * A Bookmark allows you to mark interesting moment in a media(video and audio) to enable fast searching.
846 * The Bookmark Information API provides functions to get information about bookmarks associated with video and audio items.
849 * - get and filter existing bookmarks
850 * - insert new bookmarks
853 * For inserting a bookmark to media item, call media_bookmark_insert_to_db() function and for deleting already set bookmark from a media, call
854 * #media_bookmark_delete_from_db() function.
855 * For retrieving time where the bookmark is placed on the media, call #media_bookmark_get_marked_time() function.
857 * @subsection CAPI_CONTENT_MEDIA_BOOKMARKINFO_FOREACH_OPERATIONS Foreach Operations
858 * <div><table class="doxtable" >
860 * <th><b>FOREACH</b></th>
861 * <th><b>CALLBACK</b></th>
862 * <th><b>DESCRIPTION</b></th>
865 * <td>media_info_foreach_bookmark_from_db()</td>
866 * <td>media_bookmark_cb()</td>
867 * <td>Iterates through bookmarks</td>
875 * @defgroup CAPI_CONTENT_MEDIA_INFO_MODULE Media Information
876 * @brief The Media Information API provides functions to get information about media items
877 * stored on an internal and external storage.
879 * @ingroup CAPI_MEDIA_CONTENT_MODULE
881 * @section CAPI_CONTENT_MEDIA_INFO_MODULE_HEADER Required Header
882 * \#include <media_content.h>
884 * @section CAPI_CONTENT_MEDIA_INFO_MODULE_OVERVIEW Overview
886 * The Media Information API provides functions to get basic information e.g. path, date, type etc about media items (#media_info_h) present in the device.
887 * Media Information (#media_info_h) is a generalization of media content of any type (audio, image, video and others).
889 * Received information about media items can be the processed using dedicated APIs:
893 * <th>Description</th>
896 * <td>@ref CAPI_CONTENT_MEDIA_INFO_MODULE </td>
897 * <td> Provides details about all items present in the device.\n
898 * Provide functions to get information (e.g. title, size, mime type etc) about the files.</td>
901 * <td>@ref CAPI_CONTENT_MEDIA_AUDIO_META_MODULE </td>
902 * <td> Provides details about audio items present in the device.\n
903 * Provide functions to get information (e.g. genre, album, year, bitrate etc) about the audio files.</td>
906 * <td>@ref CAPI_CONTENT_MEDIA_FACE_DETECTION_MODULE </td>
907 * <td> Provide functions to detect faces from image. </td>
910 * <td>@ref CAPI_CONTENT_MEDIA_IMAGE_META_MODULE </td>
911 * <td> Provides details about image items present in the device.\n
912 * Provide functions to get information (e.g. longitude, description, date etc) about the image files.</td>
915 * <td>@ref CAPI_CONTENT_MEDIA_VIDEO_META_MODULE </td>
916 * <td> Provides details about video items present in the device.\n
917 * Provide functions to get information (e.g. duration, date etc) about the video files.</td>
921 * The media information API provides the following information. Regarding the information of each media type (audio, video, or image), please refer to the type-specific metadata page.
926 * <th>Filter Keyword</th>
936 * <td>#MEDIA_PATH</td>
937 * <td>Full path of the file</td>
940 * <td>display_name</td>
941 * <td>#MEDIA_DISPLAY_NAME</td>
942 * <td>Base name of the file</td>
945 * <td>media_type</td>
946 * <td>#MEDIA_TYPE</td>
947 * <td>Type (media_content_type_e)</td>
951 * <td>#MEDIA_MIME_TYPE</td>
956 * <td>#MEDIA_SIZE</td>
960 * <td>added_time</td>
961 * <td>#MEDIA_ADDED_TIME</td>
962 * <td>Added time to Media DB</td>
965 * <td>modified_time</td>
966 * <td>#MEDIA_MODIFIED_TIME</td>
967 * <td>Time of last modification</td>
971 * <td>#MEDIA_TIMELINE</td>
972 * <td>Same as date taken time(for image) or recorded time(for Audio/Video) if exit. if not, same as modified time.</td>
976 * <td>#MEDIA_IS_DRM</td>
977 * <td>Whether DRM content or not</td>
980 * <td>storage_id</td>
981 * <td>#MEDIA_STORAGE_ID</td>
982 * <td>Storage UUID.</td>
985 * <td>storage_type</td>
986 * <td>#MEDIA_STORAGE_TYPE</td>
987 * <td>Storage type (media_content_storage_e)</td>
991 * <td>#MEDIA_FAVOURITE</td>
992 * <td>User data. Not guarantee independence between applications.</td>
995 * <td>thumbnail_path</td>
996 * <td>#MEDIA_THUMBNAIL_PATH</td>
997 * <td>Thumbnail path(album art for Audio) if exist.</td>
1000 * <td>description</td>
1001 * <td>#MEDIA_DESCRIPTION</td>
1002 * <td>Get from metadata if exist.</td>
1007 * Video and Audio information can be further processed with respect to its properties i.e. playlist, album, using their respective APIs.
1008 * - @ref CAPI_CONTENT_MEDIA_PLAYLIST_MODULE
1009 * - @ref CAPI_CONTENT_MEDIA_ALBUM_MODULE
1010 * - @ref CAPI_CONTENT_MEDIA_BOOKMARK_MODULE
1013 * @subsection CAPI_CONTENT_MEDIA_INFO_FOREACH_OPERATIONS Foreach Operations
1014 * <div><table class="doxtable">
1016 * <th><b>FOREACH</b></th>
1017 * <th><b>CALLBACK</b></th>
1018 * <th><b>DESCRIPTION</b></th>
1021 * <td>media_info_foreach_media_from_db()</td>
1022 * <td>media_info_cb()</td>
1023 * <td>Iterates through items</td>
1026 * <td>media_info_foreach_tag_from_db()</td>
1027 * <td>media_tag_cb()</td>
1028 * <td>Iterate through tags</td>
1031 * <td>media_info_foreach_bookmark_from_db()</td>
1032 * <td>media_bookmark_cb()</td>
1033 * <td>Iterate through bookmark</td>
1042 * @defgroup CAPI_CONTENT_MEDIA_STORAGE_MODULE Media Storage
1043 * @brief The Media Storage Information API provides functions to manage storage information on the media items.
1045 * @ingroup CAPI_MEDIA_CONTENT_MODULE
1047 * @section CAPI_CONTENT_MEDIA_STORAGE_MODULE_HEADER Required Header
1048 * \#include <media_content.h>
1050 * @section CAPI_CONTENT_MEDIA_STORAGE_MODULE_OVERVIEW Overview
1051 * A Storage allows you to manage external storage. \n
1052 * The system generates the storage id when the external storage is added. And the system manages the media information in each of the storage by using storage id. \n
1053 * So you can get the information from the storage that you want to view.
1058 * @defgroup CAPI_CONTENT_MEDIA_FACE_MODULE Media Face
1059 * @brief The Media Face Information API provides functions to manage the face information in the image files.
1061 * @ingroup CAPI_MEDIA_CONTENT_MODULE
1063 * @section CAPI_CONTENT_MEDIA_FACE_MODULE_HEADER Required Header
1064 * \#include <media_content.h>
1066 * @section CAPI_CONTENT_MEDIA_FACE_MODULE_OVERVIEW Overview
1067 * The Face Information API provides functions to manage the face information such as face id, face coordinates in the image files.\n
1073 #endif /* __TIZEN_MEDIA_CONTENT_DOC_H__ */