4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Hyunjun Ko <zzoon.ko@samsung.com>, Haejeong Kim <backto.kim@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
26 #include <media-svc.h>
28 #include <tzplatform_config.h>
30 #define PLUGIN_SO_FILE_NAME "/usr/lib/libmedia-content-plugin.so"
31 void *funcHandle = NULL;
33 static void msg_print(int line, char *msg);
35 int (*svc_connect)(void **handle, char **err_msg);
36 int (*svc_disconnect)(void *handle, char **err_msg);
37 int (*svc_check_item_exist)(void *handle, const char *file_path, bool *modified, char **err_msg);
38 int (*svc_insert_item_immediately)(void *handle, const char *file_path, int storage_type, const char *mime_type, char **err_msg);
39 int (*svc_set_folder_item_validity)(void *handle, const char *folder_path, int validity, int recursive, char **err_msg);
40 int (*svc_delete_all_invalid_items_in_folder)(void *handle, const char *folder_path, char **err_msg);
42 int __load_functions()
44 msg_print(__LINE__, "__load_functions");
46 funcHandle = dlopen(PLUGIN_SO_FILE_NAME, RTLD_LAZY);
48 fprintf(stderr, "error: %s\n", dlerror());
50 svc_connect = dlsym(funcHandle, "connect");
51 svc_disconnect = dlsym(funcHandle, "disconnect");
52 svc_check_item_exist = dlsym(funcHandle, "check_item_exist");
53 svc_insert_item_immediately = dlsym(funcHandle, "insert_item_immediately");
54 svc_set_folder_item_validity = dlsym(funcHandle, "set_folder_item_validity");
55 svc_delete_all_invalid_items_in_folder = dlsym(funcHandle, "delete_all_invalid_items_in_folder");
57 if (!svc_connect || !svc_disconnect || !svc_insert_item_immediately || !svc_set_folder_item_validity || !svc_delete_all_invalid_items_in_folder || !svc_check_item_exist) {
58 fprintf(stderr, "error: %s\n", dlerror());
65 int __unload_functions(void)
67 msg_print(__LINE__, "__unload_functions");
78 MediaSvcHandle *db_handle = NULL;
80 char path[1024] = {0, };
81 char type[1024] = {0, };
83 ret = __load_functions();
85 msg_print(__LINE__, "__load_functions error");
88 msg_print(__LINE__, "__load_functions success");
91 /*db open ================================================== */
92 ret = svc_connect(&db_handle, &err_msg);
94 msg_print(__LINE__, "svc_connect error");
95 if (err_msg != NULL) {
96 printf("err_msg[%s]\n", err_msg);
100 __unload_functions();
103 msg_print(__LINE__, "svc_connect success");
107 ret = media_svc_create_table(tzplatform_getuid(TZ_USER_NAME));
109 msg_print(__LINE__, "table already exists");
111 msg_print(__LINE__, "table create success");
117 printf("Enter path and mimetype ( ex. %s image ) : ", tzplatform_mkpath(TZ_USER_CONTENT, "a.jpg"));
118 scanf("%s %s", path, type);
119 bool modified = false;
120 /*check_item_exist ============================================ */
121 ret = svc_check_item_exist(db_handle, path, &modified, &err_msg);
123 msg_print(__LINE__, "svc_check_item_exist error");
124 if (err_msg != NULL) {
125 printf("err_msg[%s]\n", err_msg);
129 /*__unload_functions(); */
133 msg_print(__LINE__, "svc_check_item_exist success. Modified");
135 msg_print(__LINE__, "svc_check_item_exist success. Not modified");
138 /* svc_check_item_exist ============================================ */
139 ret = svc_insert_item_immediately(db_handle, path, 0, type, &err_msg);
141 msg_print(__LINE__, "svc_insert_item_immediately error");
142 if (err_msg != NULL) {
143 printf("err_msg[%s]\n", err_msg);
147 /*__unload_functions(); */
150 msg_print(__LINE__, "svc_insert_item_immediately success");
154 ret = media_svc_insert_folder(db_handle, 0, path);
156 msg_print(__LINE__, "media_svc_insert_folder error ");
158 msg_print(__LINE__, "media_svc_insert_folder success");
161 /*folder test ================================================== */
162 char *folder_path = tzplatform_mkpath(TZ_USER_CONTENT, "Sounds");
163 ret = svc_set_folder_item_validity(db_handle, folder_path, 0, 1, &err_msg);
165 msg_print(__LINE__, "svc_set_folder_item_validity error");
166 if (err_msg != NULL) {
167 printf("err_msg[%s]\n", err_msg);
172 msg_print(__LINE__, "svc_insert_item_immediately success");
175 ret = svc_delete_all_invalid_items_in_folder(db_handle, folder_path, &err_msg);
177 msg_print(__LINE__, "svc_delete_all_invalid_items_in_folder error");
178 if (err_msg != NULL) {
179 printf("err_msg[%s]\n", err_msg);
184 msg_print(__LINE__, "svc_insert_item_immediately success");
187 /*db close ================================================== */
188 ret = svc_disconnect(db_handle, &err_msg);
190 msg_print(__LINE__, "svc_disconnect error");
191 if (err_msg != NULL) {
192 printf("err_msg[%s]\n", err_msg);
196 __unload_functions();
199 msg_print(__LINE__, "svc_disconnect success");
202 __unload_functions();
208 static void msg_print(int line, char *msg)
210 fprintf(stderr, "[%d]%s\n", line, msg);