Cleanup header
[platform/core/multimedia/libmedia-service.git] / src / include / common / media-svc-util.h
index b0b4d46..1c99112 100755 (executable)
@@ -3,8 +3,6 @@
  *
  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
  *
- * Contact: Hyunjun Ko <zzoon.ko@samsung.com>, Haejeong Kim <backto.kim@samsung.com>
- *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 
 #include <string.h>
 #include <stdbool.h>
+#include <sys/types.h>
 #include <sqlite3.h>
-#include <drm_client.h>
-#include "media-svc-types.h"
-#include "media-svc-env.h"
+#include <time.h>
+#include <glib.h>
+#include <media-util-err.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef FALSE
-#define FALSE  0
-#endif
-#ifndef TRUE
-#define TRUE   1
-#endif
+#define STRING_VALID(str)      (str && strlen(str) > 0)
 
-#define SAFE_FREE(src)      { if(src) {free(src); src = NULL;}}
-#define STRING_VALID(str)      \
-       ((str != NULL && strlen(str) > 0) ? TRUE : FALSE)
-
-char *_media_info_generate_uuid(void);
-char *_media_svc_escape_str(char *input, int len);
-void _strncpy_safe(char *x_dst, const char *x_src, int max_len);
-unsigned int _media_svc_get_current_time(void);
-int _media_svc_rename_file( const char *old_name, const char *new_name);
-bool _media_svc_remove_file(const char *path);
-int _media_svc_remove_all_files_in_dir(const char *dir_path);
-char *_media_svc_get_title_from_filepath (const char *path);
-int _media_svc_save_image(void *image, int size, char *image_path, uid_t uid);
-bool _media_svc_get_thumbnail_path(media_svc_storage_type_e storage_type, char *thumb_path, const char *pathname, const char *img_format, uid_t uid);
-bool _media_svc_get_file_ext(const char *file_path, char *file_ext);
+/**
+ * Media meta data information
+ */
+typedef struct {
+       char *title;                            /**< track title*/
+       char *album;                            /**< album name*/
+       char *artist;                           /**< artist name*/
+       char *album_artist;             /**< artist name*/
+       char *genre;                            /**< genre of track*/
+       char *year;                             /**< year*/
+       char *recorded_date;            /**< recorded date*/
+       char *copyright;                        /**< copyright*/
+       char *track_num;                        /**< track number*/
+       int width;                              /**< width*/
+       int height;                             /**< height*/
+       char *datetaken;                        /**< datetaken*/
+       int orientation;                        /**< orientation*/
+} media_svc_content_meta_s;
+
+/**
+ * Media data information
+ */
+typedef struct {
+       char *media_uuid;               /**< Unique ID of item */
+       char *path;                             /**< Full path of media file */
+       char *file_name;                /**< File name of media file. Display name */
+       int media_type;                 /**< Type of media file : internal/external */
+       char *mime_type;                /**< Full path and file name of media file */
+       unsigned long long size;        /**< size */
+       time_t added_time;                      /**< added time, time_t */
+       time_t modified_time;           /**< modified time, time_t */
+       time_t timeline;                        /**< timeline of media, time_t */
+       long long int folder_id;        /**< Unique ID of folder */
+       int album_id;                   /**< Unique ID of album */
+       char *thumbnail_path;   /**< Thumbnail image file path */
+       char *storage_uuid;             /**< Unique ID of storage */
+       media_svc_content_meta_s media_meta;    /**< meta data structure */
+} media_svc_content_info_s;
+
+/**
+ * Type definition for content type
+ */
+typedef enum {
+       MEDIA_SVC_MEDIA_TYPE_IMAGE      = 0,    /**< Image Content*/
+       MEDIA_SVC_MEDIA_TYPE_VIDEO      = 1,    /**< Video Content*/
+       MEDIA_SVC_MEDIA_TYPE_SOUND      = 2,    /**< Sound Content like Ringtone*/
+       MEDIA_SVC_MEDIA_TYPE_MUSIC      = 3,    /**< Music Content like mp3*/
+       MEDIA_SVC_MEDIA_TYPE_OTHER      = 4,    /**< Not media Content*/
+       MEDIA_SVC_MEDIA_TYPE_BOOK       = 5,    /**< Book Content like epub*/
+} media_svc_media_type_e;
+
+typedef enum {
+       MEDIA_SVC_SEARCH_TYPE_DIRECT = 0,
+       MEDIA_SVC_SEARCH_TYPE_DB,
+} media_svc_search_type_e;
+
+void _media_svc_remove_file(const char *path);
 int _media_svc_get_file_time(const char *full_path);
-int _media_svc_set_media_info(media_svc_content_info_s *content_info, media_svc_storage_type_e storage_type,
-                         const char *path, media_svc_media_type_e *media_type, bool refresh, drm_content_info_s **drm_contentInfo);
-int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info, media_svc_media_type_e media_type);
-int _media_svc_extract_media_metadata(sqlite3 *handle, media_svc_content_info_s *content_info, media_svc_media_type_e media_type, drm_content_info_s *drm_contentInfo, uid_t uid);
-int __media_svc_malloc_and_strncpy(char **dst, const char *src);
+char * _media_svc_get_title_from_filename(const char *filename);
+int _media_svc_set_media_info(media_svc_content_info_s *content_info, const char *storage_id, const char *path, bool refresh);
+int _media_svc_extract_image_metadata(media_svc_content_info_s *content_info);
+int _media_svc_extract_audio_metadata(sqlite3 *handle, bool is_direct, media_svc_content_info_s *content_info, uid_t uid);
+int _media_svc_extract_video_metadata(media_svc_content_info_s *content_info);
+int _media_svc_extract_book_metadata(media_svc_content_info_s *content_info);
 void _media_svc_destroy_content_info(media_svc_content_info_s *content_info);
-int _media_svc_get_store_type_by_path(const char *path, media_svc_storage_type_e *storage_type);
-char *_media_svc_replace_path(char *s, const char *olds, const char *news);
-char* _media_svc_get_thumb_internal_path(uid_t uid);
-char* _media_svc_get_thumb_external_path(uid_t uid);
-int _media_svc_error_convert(int error);
-
-/* Define data structures for media type and mime type */
-#define MEDIA_SVC_CATEGORY_UNKNOWN     0x00000000      /**< Default */
-#define MEDIA_SVC_CATEGORY_ETC         0x00000001      /**< ETC category */
-#define MEDIA_SVC_CATEGORY_IMAGE       0x00000002      /**< Image category */
-#define MEDIA_SVC_CATEGORY_VIDEO       0x00000004      /**< Video category */
-#define MEDIA_SVC_CATEGORY_MUSIC       0x00000008      /**< Music category */
-#define MEDIA_SVC_CATEGORY_SOUND       0x00000010      /**< Sound category */
-
-#define CONTENT_TYPE_NUM 4
-#define MUSIC_MIME_NUM 29
-#define SOUND_MIME_NUM 1
-#define MIME_TYPE_LENGTH 255
-#define MIME_LENGTH 50
-#define _3GP_FILE ".3gp"
-#define _MP4_FILE ".mp4"
-
-typedef struct {
-       char content_type[15];
-       int category_by_mime;
-} _media_svc_content_table_s;
-
-static const _media_svc_content_table_s content_category[CONTENT_TYPE_NUM] = {
-       {"audio", MEDIA_SVC_CATEGORY_SOUND},
-       {"image", MEDIA_SVC_CATEGORY_IMAGE},
-       {"video", MEDIA_SVC_CATEGORY_VIDEO},
-       {"application", MEDIA_SVC_CATEGORY_ETC},
-};
-
-static const char music_mime_table[MUSIC_MIME_NUM][MIME_LENGTH] = {
-       /*known mime types of normal files*/
-       "mpeg",
-       "ogg",
-       "x-ms-wma",
-       "x-flac",
-       "mp4",
-       /* known mime types of drm files*/
-       "mp3",
-       "x-mp3", /*alias of audio/mpeg*/
-       "x-mpeg", /*alias of audio/mpeg*/
-       "3gpp",
-       "x-ogg", /*alias of  audio/ogg*/
-       "vnd.ms-playready.media.pya:*.pya", /*playready*/
-       "wma",
-       "aac",
-       "x-m4a", /*alias of audio/mp4*/
-       /* below mimes are rare*/
-       "x-vorbis+ogg",
-       "x-flac+ogg",
-       "x-matroska",
-       "ac3",
-       "mp2",
-       "x-ape",
-       "x-ms-asx",
-       "vnd.rn-realaudio",
-
-       "x-vorbis", /*alias of audio/x-vorbis+ogg*/
-       "vorbis", /*alias of audio/x-vorbis+ogg*/
-       "x-oggflac",
-       "x-mp2", /*alias of audio/mp2*/
-       "x-pn-realaudio", /*alias of audio/vnd.rn-realaudio*/
-       "vnd.m-realaudio", /*alias of audio/vnd.rn-realaudio*/
-       "x-wav",
-};
-
-static const char sound_mime_table[SOUND_MIME_NUM][MIME_LENGTH] = {
-       "x-smaf",
-};
-
-bool _media_svc_is_drm_file(const char *path);
-int _media_svc_get_mime_in_drm_info(const char *path, char *mime, drm_content_info_s **drm_contentInfo);
-int _media_svc_get_content_type_from_mime(const char * path, const char * mimetype, int * category);
-int _media_svc_get_pinyin_str(const char *src_str, char **pinyin_str);
-bool _media_svc_check_pinyin_support(void);
-int _media_svc_get_mime_type(const char *path, char *mimetype, drm_bool_type_e *is_drm, drm_content_info_s **drm_contentInfo);
-
-int _media_svc_get_media_type(const char *path, const char *mime_type, media_svc_media_type_e *media_type);
+int _media_svc_create_thumbnail(const char *path, char *thumb_path, media_svc_media_type_e media_type, uid_t uid);
+int _media_svc_get_media_type(const char *path, int *mediatype);
+bool _media_svc_is_keyword_included(const char *path, const char *keyword);
+void _media_svc_update_wordbook(const char *path, uid_t uid);
+void _media_svc_clean_wordbook(uid_t uid);
+bool _media_svc_get_matched_list(const char *keyword, uid_t uid, GList **list);
 
 #ifdef __cplusplus
 }