diff options
author | Jehun Lim <jehun.lim@samsung.com> | 2015-09-15 23:11:01 +0900 |
---|---|---|
committer | Jehun Lim <jehun.lim@samsung.com> | 2015-09-17 15:43:02 +0900 |
commit | 0af99a6362c4884be52d933c86208106e19439c8 (patch) | |
tree | f3f2dddf36a0cd6739aee44b6c71dcfec62a8e6a /include/data | |
parent | 83bb3618a1a39b293c24ef6635383420bab24cab (diff) | |
download | air_mediahub-0af99a6362c4884be52d933c86208106e19439c8.tar.gz air_mediahub-0af99a6362c4884be52d933c86208106e19439c8.tar.bz2 air_mediahub-0af99a6362c4884be52d933c86208106e19439c8.zip |
mediadata: add datamgr to manage several data types
Change-Id: I82351fc4074e0835fa50c8b85dd24511f7280d2a
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
Diffstat (limited to 'include/data')
-rw-r--r-- | include/data/datamgr.h | 59 | ||||
-rw-r--r-- | include/data/mediadata.h | 57 |
2 files changed, 73 insertions, 43 deletions
diff --git a/include/data/datamgr.h b/include/data/datamgr.h new file mode 100644 index 0000000..cd017f2 --- /dev/null +++ b/include/data/datamgr.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved + * + * 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _AIR_MEDIAHUB_DATAMGR_H__ +#define _AIR_MEDIAHUB_DATAMGR_H__ + +#include "data/mediadata.h" + +enum data_type { + E_DATA_MEDIA = 0, + E_DATA_MAX + /* Album and folder will be added later */ +}; + +enum source_type { + E_SOURCE_INTERNAL = 0, + E_SOURCE_EXTERNAL, + E_SOURCE_ALL, + E_SOURCE_MAX +}; + +struct data_ops { + void *(*create)(const char *media_type, int source_type); + void (*destroy)(void *handle); + Eina_List *(*get_list)(void *handle); + int (*get_count)(void *handle, int type); + Eina_List *(*get_group)(void *handle, int type); + void (*free_group)(Eina_List *list); +}; + +struct datamgr { + void *handle; + struct data_ops *ops; +}; + +struct group_info { + char *name; + Eina_List *list; + void *data; +}; + +struct datamgr *datamgr_create(int data_type, const char *media_type, + int source_type); +void datamgr_destroy(struct datamgr *dmgr); + +#endif /* _AIR_MEDIAHUB_DATAMGR_H__ */ diff --git a/include/data/mediadata.h b/include/data/mediadata.h index f6ce7c7..bc75495 100644 --- a/include/data/mediadata.h +++ b/include/data/mediadata.h @@ -17,54 +17,25 @@ #ifndef _AIR_MEDIAHUB_MEDIADATA_H__ #define _AIR_MEDIAHUB_MEDIADATA_H__ -#include <stdbool.h> +struct data_ops; -struct mediadata; - -enum media_type { - E_MEDIA_PHOTO = 0, - E_MEDIA_VIDEO, - E_MEDIA_SOUND, - E_MEDIA_MUSIC, - E_MEDIA_OTHER, +enum media_group_type { + E_MEDIA_DATE = 0, + E_MEDIA_NAME, + E_MEDIA_GENRE, + E_MEDIA_TYPE, E_MEDIA_MAX }; -enum source_type { - E_SOURCE_INTERNAL = 0, - E_SOURCE_EXTERNAL, - E_SOURCE_ALL, - E_SOURCE_MAX -}; - -enum sort_type { - E_SORT_DATE = 0, - E_SORT_NAME, - E_SORT_MAX -}; - -enum list_type { - E_LIST_DATE = 0, - E_LIST_NAME, - E_LIST_GENRE, - E_LIST_TYPE, - E_LIST_MAX +enum media_file_type { + E_FILE_PHOTO = 0, + E_FILE_VIDEO, + E_FILE_SOUND, + E_FILE_MUSIC, + E_FILE_OTHER, + E_FILE_MAX }; -struct group_info { - char *name; - Eina_List *list; - void *data; -}; - -struct mediadata *mediadata_create(const char *media_type, - int source_type, int sort_type); -void mediadata_destroy(struct mediadata *md); - -Eina_List *mediadata_get_medialist(struct mediadata *md); -int mediadata_get_media_count(struct mediadata *md, int media_type); - -Eina_List *mediadata_get_list(struct mediadata *md, int list_type); -void mediadata_free_list(Eina_List *list); +struct data_ops *mediadata_get_ops(void); #endif /* _AIR_MEDIAHUB_MEDIADATA_H__ */ |