summaryrefslogtreecommitdiff
path: root/include/data
diff options
context:
space:
mode:
authorJehun Lim <jehun.lim@samsung.com>2015-09-15 23:11:01 +0900
committerJehun Lim <jehun.lim@samsung.com>2015-09-17 15:43:02 +0900
commit0af99a6362c4884be52d933c86208106e19439c8 (patch)
treef3f2dddf36a0cd6739aee44b6c71dcfec62a8e6a /include/data
parent83bb3618a1a39b293c24ef6635383420bab24cab (diff)
downloadair_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.h59
-rw-r--r--include/data/mediadata.h57
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__ */