4 #include <media-svc-noti.h>
6 GMainLoop *g_loop = NULL;
7 MediaSvcHandle *g_db_handle = NULL;
10 media_item_type_e update_item,
11 media_item_update_type_e update_type,
14 media_type_e content_type,
18 media_svc_debug("Noti from PID(%d)", pid);
20 if (update_item == MS_MEDIA_ITEM_FILE) {
21 media_svc_debug("Noti item : MS_MEDIA_ITEM_FILE");
22 } else if (update_item == MS_MEDIA_ITEM_DIRECTORY) {
23 media_svc_debug("Noti item : MS_MEDIA_ITEM_DIRECTORY");
26 if (update_type == MS_MEDIA_ITEM_INSERT) {
27 media_svc_debug("Noti type : MS_MEDIA_ITEM_INSERT");
28 } else if (update_type == MS_MEDIA_ITEM_DELETE) {
29 media_svc_debug("Noti type : MS_MEDIA_ITEM_DELETE");
30 } else if (update_type == MS_MEDIA_ITEM_UPDATE) {
31 media_svc_debug("Noti type : MS_MEDIA_ITEM_UPDATE");
34 //media_svc_debug("content type : %d", content_type);
35 printf("content type : %d\n", content_type);
38 printf("path : %s\n", path);
43 printf("mime_type : %s", mime_type);
47 if (user_data) printf("String : %s\n", (char *)user_data);
55 gboolean _send_noti_batch_operations(gpointer data)
57 int ret = MEDIA_INFO_ERROR_NONE;
59 /* First of all, noti subscription */
60 char *user_str = strdup("hi");
61 media_db_update_subscribe(_noti_cb, (void*)user_str);
63 /* 1. media_svc_insert_item_immediately */
64 char *path = "/opt/usr/media/test/image1.jpg";
66 media_svc_media_type_e media_type;
67 media_svc_storage_type_e storage_type;
68 char mime_type[255] = {0, };
70 ret = media_svc_get_storage_type(path, &storage_type);
71 if (ret < MEDIA_INFO_ERROR_NONE) {
72 media_svc_error("media_svc_get_storage_type failed : %d (%s)", ret, path);
76 ret = media_svc_get_mime_type(path, mime_type);
77 if (ret < MEDIA_INFO_ERROR_NONE) {
78 media_svc_error("media_svc_get_mime_type failed : %d (%s)", ret, path);
82 ret = media_svc_get_media_type(path, mime_type, &media_type);
83 if (ret < MEDIA_INFO_ERROR_NONE) {
84 media_svc_error("media_svc_get_media_type failed : %d (%s)", ret, path);
91 ret = media_svc_insert_item_begin(g_db_handle, 100, TRUE, getpid());
92 //ret = media_svc_insert_item_begin(g_db_handle, 100);
93 for (i = 0; i < 16; i++) {
94 char filepath[255] = {0,};
95 snprintf(filepath, sizeof(filepath), "%s%d.jpg", "/opt/usr/media/test/image", i+1);
96 media_svc_debug("File : %s\n", filepath);
97 file_list[i] = strdup(filepath);
98 ret = media_svc_insert_item_bulk(g_db_handle, storage_type, file_list[i], mime_type, media_type, FALSE);
100 media_svc_error("media_svc_insert_item_bulk[%d] failed", i);
102 media_svc_debug("media_svc_insert_item_bulk[%d] success", i);
106 ret = media_svc_insert_item_end(g_db_handle);
112 gboolean _send_noti_operations(gpointer data)
114 int ret = MEDIA_INFO_ERROR_NONE;
116 /* First of all, noti subscription */
117 char *user_str = strdup("hi");
118 media_db_update_subscribe(_noti_cb, (void*)user_str);
120 /* 1. media_svc_insert_item_immediately */
121 char *path = "/opt/usr/media/test/image1.jpg";
123 media_svc_media_type_e media_type;
124 media_svc_storage_type_e storage_type;
125 char mime_type[255] = {0, };
127 ret = media_svc_get_storage_type(path, &storage_type);
128 if (ret < MEDIA_INFO_ERROR_NONE) {
129 media_svc_error("media_svc_get_storage_type failed : %d (%s)", ret, path);
133 ret = media_svc_get_mime_type(path, mime_type);
134 if (ret < MEDIA_INFO_ERROR_NONE) {
135 media_svc_error("media_svc_get_mime_type failed : %d (%s)", ret, path);
139 ret = media_svc_get_media_type(path, mime_type, &media_type);
140 if (ret < MEDIA_INFO_ERROR_NONE) {
141 media_svc_error("media_svc_get_media_type failed : %d (%s)", ret, path);
145 ret = media_svc_insert_item_immediately(g_db_handle, storage_type, path, mime_type, media_type);
146 if (ret < MEDIA_INFO_ERROR_NONE) {
147 media_svc_error("media_svc_insert_item_immediately failed : %d", ret);
151 media_svc_debug("media_svc_insert_item_immediately success");
153 /* 2. media_svc_refresh_item */
154 ret = media_svc_refresh_item(g_db_handle, storage_type, path, media_type);
155 if (ret < MEDIA_INFO_ERROR_NONE) {
156 media_svc_error("media_svc_refresh_item failed : %d", ret);
159 media_svc_debug("media_svc_refresh_item success");
161 /* 2. media_svc_move_item */
162 const char *dst_path = "/opt/usr/media/test/image11.jpg";
163 ret = media_svc_move_item(g_db_handle, storage_type, path, storage_type, dst_path);
164 if (ret < MEDIA_INFO_ERROR_NONE) {
165 media_svc_error("media_svc_move_item failed : %d", ret);
168 media_svc_debug("media_svc_move_item success");
170 ret = media_svc_move_item(g_db_handle, storage_type, dst_path, storage_type, path);
171 if (ret < MEDIA_INFO_ERROR_NONE) {
172 media_svc_error("media_svc_move_item failed : %d", ret);
175 media_svc_debug("media_svc_move_item success");
177 /* 4. media_svc_delete_item_by_path */
178 ret = media_svc_delete_item_by_path(g_db_handle, path);
179 if (ret < MEDIA_INFO_ERROR_NONE) {
180 media_svc_error("media_svc_delete_item_by_path failed : %d", ret);
183 media_svc_debug("media_svc_delete_item_by_path success");
186 const char *src_folder_path = "/opt/usr/media/test";
187 const char *dst_folder_path = "/opt/usr/media/test_test";
188 ret = media_svc_rename_folder(g_db_handle, src_folder_path, dst_folder_path);
189 if (ret < MEDIA_INFO_ERROR_NONE) {
190 media_svc_error("media_svc_rename_folder failed : %d", ret);
193 media_svc_debug("media_svc_rename_folder success");
195 /* Rename folder again */
196 ret = media_svc_rename_folder(g_db_handle, dst_folder_path, src_folder_path);
197 if (ret < MEDIA_INFO_ERROR_NONE) {
198 media_svc_error("media_svc_rename_folder failed : %d", ret);
201 media_svc_debug("media_svc_rename_folder success");
208 GSource *source = NULL;
209 GMainContext *context = NULL;
211 g_loop = g_main_loop_new(NULL, FALSE);
212 context = g_main_loop_get_context(g_loop);
213 source = g_idle_source_new();
215 g_source_set_callback (source, _send_noti_operations, NULL, NULL);
217 g_source_set_callback (source, _send_noti_batch_operations, NULL, NULL);
219 g_source_attach (source, context);
221 g_main_loop_run(g_loop);
223 g_main_loop_unref(g_loop);
224 media_db_update_unsubscribe();
226 return MEDIA_INFO_ERROR_NONE;
231 int ret = MEDIA_INFO_ERROR_NONE;
232 ret = media_svc_connect(&g_db_handle);
233 if (ret < MEDIA_INFO_ERROR_NONE) {
234 media_svc_error("media_svc_connect failed : %d", ret);
236 media_svc_debug("media_svc_connect success");
240 if (ret < MEDIA_INFO_ERROR_NONE) {
241 media_svc_error("test_noti failed : %d", ret);
243 media_svc_debug("test_noti success");
246 media_svc_disconnect(g_db_handle);