summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryy9875-kim <yy9875-kim@yy9875-kim-Desktop.(none)>2012-08-21 17:50:44 +0900
committeryy9875-kim <yy9875-kim@yy9875-kim-Desktop.(none)>2012-08-21 17:50:44 +0900
commitf28d880d2f69e252e8355b06517bc3062dd2e34a (patch)
tree8f8dfc60be34732da93dd4e8bb7bc75037393cb0
parentf48e5455f367ed6e53b5978071c2b36c32817c4a (diff)
downloadmedia-server-f28d880d2f69e252e8355b06517bc3062dd2e34a.tar.gz
media-server-f28d880d2f69e252e8355b06517bc3062dd2e34a.tar.bz2
media-server-f28d880d2f69e252e8355b06517bc3062dd2e34a.zip
update latest code of media-server
-rwxr-xr-xMakefile.am31
-rwxr-xr-xcommon/include/media-server-db-svc.h50
-rwxr-xr-xcommon/include/media-server-dbus-type.h33
-rwxr-xr-xcommon/include/media-server-dbus.h30
-rwxr-xr-xcommon/include/media-server-drm.h54
-rwxr-xr-xcommon/include/media-server-error.h3
-rwxr-xr-xcommon/include/media-server-external-storage.h27
-rwxr-xr-xcommon/include/media-server-global.h34
-rwxr-xr-xcommon/include/media-server-inotify-internal.h12
-rwxr-xr-xcommon/include/media-server-inotify.h4
-rwxr-xr-xcommon/include/media-server-scan-internal.h12
-rwxr-xr-xcommon/include/media-server-scan.h4
-rwxr-xr-xcommon/include/media-server-socket.h12
-rwxr-xr-xcommon/include/media-server-types.h35
-rwxr-xr-xcommon/include/media-server-utils.h22
-rwxr-xr-xcommon/media-server-db-svc.c484
-rwxr-xr-xcommon/media-server-dbus.c80
-rwxr-xr-xcommon/media-server-drm.c131
-rwxr-xr-xcommon/media-server-external-storage.c156
-rwxr-xr-xcommon/media-server-inotify-internal.c12
-rwxr-xr-xcommon/media-server-inotify.c416
-rwxr-xr-xcommon/media-server-main.c225
-rwxr-xr-xcommon/media-server-scan-internal.c376
-rwxr-xr-xcommon/media-server-scan.c193
-rwxr-xr-xcommon/media-server-socket.c157
-rwxr-xr-xcommon/media-server-utils.c326
-rwxr-xr-xconfigure.ac10
-rwxr-xr-xdebian/changelog3573
-rwxr-xr-xdebian/control2
-rwxr-xr-xdebian/media-server.postinst.in4
-rwxr-xr-xdebian/rules2
-rw-r--r--lib/include/.media-util-register.h.swpbin12288 -> 0 bytes
-rwxr-xr-xlib/include/media-util-err.h5
-rwxr-xr-xlib/include/media-util-internal.h7
-rwxr-xr-xlib/include/media-util-noti.h39
-rwxr-xr-xlib/media-util-noti.c53
-rwxr-xr-xlib/media-util-register.c2
-rw-r--r--packaging/media-server.spec35
-rwxr-xr-xreset_mediadb.sh28
39 files changed, 5331 insertions, 1348 deletions
diff --git a/Makefile.am b/Makefile.am
index b8c8ad5..ff14a29 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = .
+SUBDIRS = .
AM_CPPFLAGS = $(FMS_DEBUG_FLAGS)
@@ -14,12 +14,14 @@ nor_directory = /etc/rc.d/rc3.d
hib_directory = /etc/rc.d/rc5.d
install-data-hook:
+ mkdir $(DESTDIR)/usr/local/bin/ -p
+ cp -a $(CURDIR)/reset_mediadb.sh $(DESTDIR)/usr/local/bin/
mkdir $(DESTDIR)$(nor_directory) -p
- ln -s ../init.d/mediasvr S48mediasvr
- mv ./S48mediasvr $(DESTDIR)$(nor_directory)
+ ln -s ../init.d/mediasvr S99mediasvr
+ mv ./S99mediasvr $(DESTDIR)$(nor_directory)
mkdir $(DESTDIR)$(hib_directory) -p
- ln -s ../init.d/mediasvr S48mediasvr
- mv ./S48mediasvr $(DESTDIR)$(hib_directory)
+ ln -s ../init.d/mediasvr S99mediasvr
+ mv ./S99mediasvr $(DESTDIR)$(hib_directory)
# init.d script
fmsvcdir = /etc/rc.d/init.d
@@ -32,16 +34,20 @@ libmedia_utils_la_SOURCES = lib/media-util-noti.c \
libmedia_utils_la_CFLAGS = -I${srcdir}/lib/include \
$(GLIB_CFLAGS) \
- $(DLOG_CFLAGS)
+ $(DLOG_CFLAGS) \
+ $(DBUS_CFLAGS)
libmedia_utils_la_LIBADD = $(GLIB_LIBS) \
- $(DLOG_LIBS)
+ $(DLOG_LIBS) \
+ $(DBUS_LIBS)
### file-manager-server ###
bin_PROGRAMS = media-server
-media_server_SOURCES = common/media-server-utils.c \
+media_server_SOURCES = common/media-server-dbus.c \
+ common/media-server-drm.c \
+ common/media-server-utils.c \
common/media-server-external-storage.c \
common/media-server-db-svc.c \
common/media-server-inotify-internal.c \
@@ -59,10 +65,13 @@ media_server_CFLAGS = -I${srcdir}/common/include \
$(DLOG_CFLAGS) \
$(DRM_SERVICE_CFLAGS) \
$(AUL_CFLAG)\
- $(LIBPMCONTROL_CFLAGS)
+ $(LIBPMCONTROL_CFLAGS) \
+ $(HEYNOTI_CFLAGS) \
+ $(DBUS_CFLAGS)
# $(LIBQUICKPANEL_CFLAGS)
-media_server_LDADD = $(GLIB_LIBS) \
+media_server_LDADD = libmedia-utils.la \
+ $(GLIB_LIBS) \
$(GTHREAD_LIBS) \
$(PHONESTATUS_LIBS) \
$(DLOG_LIBS) \
@@ -70,6 +79,8 @@ media_server_LDADD = $(GLIB_LIBS) \
$(AUL_LIBS) \
$(LIBPMCONTROL_LIBS) \
$(THUMB_GEN_LIBS) \
+ $(HEYNOTI_LIBS) \
+ $(DBUS_LIBS) \
-ldl #this is for using dlsym
# $(LIBQUICKPANEL_LIBS)
diff --git a/common/include/media-server-db-svc.h b/common/include/media-server-db-svc.h
index 67998b1..85aa483 100755
--- a/common/include/media-server-db-svc.h
+++ b/common/include/media-server-db-svc.h
@@ -27,6 +27,9 @@
* @version 1.0
* @brief
*/
+#ifndef _MEDIA_SERVER_DB_SVC_H_
+#define _MEDIA_SERVER_DB_SVC_H_
+
#include "media-server-global.h"
typedef int (*CHECK_ITEM)(const char*, const char*, char **);
@@ -49,6 +52,7 @@ typedef int (*DELETE_ALL_ITEMS_IN_STORAGE)(void*, int, char **);
typedef int (*DELETE_ALL_INVALID_ITMES_IN_STORAGE)(void*, int, char **);
typedef int (*UPDATE_BEGIN)(char **);
typedef int (*UPDATE_END)(char **);
+typedef int (*REFRESH_ITEM)(void*, const char *, int, const char*, char**);
int
ms_load_functions(void);
@@ -57,60 +61,68 @@ void
ms_unload_functions(void);
int
-ms_connect_db(void **handle);
+ms_connect_db(void ***handle);
int
-ms_disconnect_db(void *handle);
+ms_disconnect_db(void ***handle);
int
-ms_validate_item(void *handle, char *path);
+ms_validate_item(void **handle, char *path);
int
-ms_register_file(void *handle, const char *path, GAsyncQueue* queue);
+ms_register_file(void **handle, const char *path, GAsyncQueue* queue);
int
-ms_insert_item_batch(void *handle, const char *path);
+ms_insert_item_batch(void **handle, const char *path);
int
-ms_insert_item(void *handle, const char *path);
+ms_insert_item(void **handle, const char *path);
int
-ms_delete_item(void *handle, const char *full_file_path);
+ms_delete_item(void **handle, const char *full_file_path);
int
-ms_move_item(void *handle,
- ms_store_type_t src_store_type,
- ms_store_type_t dest_store_type,
+ms_move_item(void **handle,
+ ms_storage_type_t src_store_type,
+ ms_storage_type_t dest_store_type,
const char *src_file_full_path,
const char *dest_file_full_path);
bool
-ms_delete_all_items(void *handle, ms_store_type_t store_type);
+ms_delete_all_items(void **handle, ms_storage_type_t store_type);
int
-ms_invalidate_all_items(void *handle, ms_store_type_t table_id);
+ms_invalidate_all_items(void **handle, ms_storage_type_t table_id);
bool
-ms_delete_invalid_items(void *handle, ms_store_type_t store_type);
+ms_delete_invalid_items(void **handle, ms_storage_type_t store_type);
+
+int
+ms_refresh_item(void **handle, const char *path);
+
+int
+ms_check_exist(void **handle, const char *path);
/****************************************************************************************************
FOR BULK COMMIT
*****************************************************************************************************/
void
-ms_register_start(void *handle);
+ms_register_start(void **handle);
void
-ms_register_end(void *handle);
+ms_register_end(void **handle);
void
-ms_move_start(void *handle);
+ms_move_start(void **handle);
void
-ms_move_end(void *handle);
+ms_move_end(void **handle);
void
-ms_validate_start(void *handle);
+ms_validate_start(void **handle);
void
-ms_validate_end(void *handle); \ No newline at end of file
+ms_validate_end(void **handle);
+
+#endif /*_MEDIA_SERVER_DB_SVC_H_*/ \ No newline at end of file
diff --git a/common/include/media-server-dbus-type.h b/common/include/media-server-dbus-type.h
new file mode 100755
index 0000000..54c227a
--- /dev/null
+++ b/common/include/media-server-dbus-type.h
@@ -0,0 +1,33 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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 _MEDIA_SERVER_DBUS_TYPES_H_
+#define _MEDIA_SERVER_DBUS_TYPES_H_
+
+#define MS_DBUS_PATH "/com/mediaserver/dbus/notify"
+#define MS_DBUS_INTERFACE "com.mediaserver.dbus.Signal"
+#define MS_DBUS_NAME "ms_db_updated"
+#define MS_DBUS_MATCH_RULE "type='signal',interface='com.mediaserver.dbus.Signal'"
+
+typedef enum {
+ MS_DBUS_DB_UPDATED
+} ms_dbus_noti_type_t;
+
+#endif /*_MEDIA_SERVER_DBUS_TYPES_H_*/ \ No newline at end of file
diff --git a/common/include/media-server-dbus.h b/common/include/media-server-dbus.h
new file mode 100755
index 0000000..241d543
--- /dev/null
+++ b/common/include/media-server-dbus.h
@@ -0,0 +1,30 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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 _MEDIA_SERVER_DBUS_H__
+#define _MEDIA_SERVER_DBUS_H__
+
+#include "media-server-dbus-type.h"
+
+void ms_dbus_init(void);
+
+gboolean ms_dbus_send_noti(ms_dbus_noti_type_t data);
+
+#endif/*_MEDIA_SERVER_DBUS_H__*/ \ No newline at end of file
diff --git a/common/include/media-server-drm.h b/common/include/media-server-drm.h
new file mode 100755
index 0000000..27f3dc6
--- /dev/null
+++ b/common/include/media-server-drm.h
@@ -0,0 +1,54 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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.
+ *
+ */
+
+/**
+ * This file defines api utilities of contents manager engines.
+ *
+ * @file media-server-drm.h
+ * @author Yong Yeon Kim(yy9875.kim@samsung.com)
+ * @version 1.0
+ * @brief This file implements main database operation.
+ */
+#ifndef _MEDIA_SERVER_DRM_H_
+#define _MEDIA_SERVER_DRM_H_
+
+bool
+ms_is_drm_file(const char *path);
+
+int
+ms_get_mime_in_drm_info(const char *path, char *mime);
+
+int
+ms_drm_register(const char* path);
+
+void
+ms_drm_unregister(const char* path);
+
+void
+ms_drm_unregister_all(void);
+
+bool
+ms_drm_insert_ext_memory(void);
+
+bool
+ms_drm_extract_ext_memory(void);
+
+#endif /*_MEDIA_SERVER_DRM_H_*/ \ No newline at end of file
diff --git a/common/include/media-server-error.h b/common/include/media-server-error.h
index b2ec284..f4bf8e7 100755
--- a/common/include/media-server-error.h
+++ b/common/include/media-server-error.h
@@ -62,6 +62,7 @@
#define MS_ERR_DB_UPDATE_RECORD_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x33)) /**< updating record fails */
#define MS_ERR_DB_CONNECT_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x34)) /**< connecting database fails */
#define MS_ERR_DB_DISCONNECT_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x35)) /**< disconnecting database fails */
+#define MS_ERR_DB_EXIST_ITEM_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x36)) /**< item does not exist */
/*drm operation error*/
#define MS_ERR_DRM_GET_TYPE_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x40))
@@ -82,7 +83,7 @@
#define MS_ERR_UNKNOWN_ERROR (MID_CONTENTS_MGR_ERROR - ERROR(0x61)) /**< unknow error*/
#define MS_ERR_VCONF_SET_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x62)) /**< vconf set fail*/
#define MS_ERR_VCONF_GET_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x63)) /**< vconf get fail*/
-#define MS_ERR_NOT_MEDIA_FILE (MID_CONTENTS_MGR_ERROR - ERROR(0x64)) /**< not media file*/
+#define MS_ERR_MIME_GET_FAIL (MID_CONTENTS_MGR_ERROR - ERROR(0x64)) /**< not media file*/
#define MS_ERR_MAX (MID_CONTENTS_MGR_ERROR - ERROR(0xff)) /**< not media file*/
#endif/* _MEDIA_SERVER_ERROR_H_ */
diff --git a/common/include/media-server-external-storage.h b/common/include/media-server-external-storage.h
index 342d0de..1d3994e 100755
--- a/common/include/media-server-external-storage.h
+++ b/common/include/media-server-external-storage.h
@@ -1,3 +1,26 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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 _MEDIA_SERVER_EXTERNAL_STORAGE_H_
+#define _MEDIA_SERVER_EXTERNAL_STORAGE_H_
+
void
ms_make_default_path_mmc(void);
@@ -11,4 +34,6 @@ void
ms_mmc_vconf_cb(void *data);
ms_dir_scan_type_t
-ms_get_mmc_state(void); \ No newline at end of file
+ms_get_mmc_state(void);
+
+#endif /*_MEDIA_SERVER_EXTERNAL_STORAGE_H_*/
diff --git a/common/include/media-server-global.h b/common/include/media-server-global.h
index 07ca548..183df43 100755
--- a/common/include/media-server-global.h
+++ b/common/include/media-server-global.h
@@ -64,27 +64,37 @@
#undef LOG_TAG
#endif
#define LOG_TAG "MEDIA-SERVER"
-#define MS_DBG_START() LOGD("[%d, %s-%d] ========[ START ]========\n" , syscall(__NR_gettid), __func__ , __LINE__);
-#define MS_DBG_END() LOGD("[%d, %s-%d] ========[ END ]========\n" ,syscall(__NR_gettid), __func__ , __LINE__);
#define MS_DBG_FUNC_LINE() LOGD("[%s-%d] debug\n" , __func__ , __LINE__);
#define MS_DBG(fmt, args...) LOGD("[%d, %s-%d] " fmt "\n" , syscall(__NR_gettid), __func__ , __LINE__ , ##args);
+#define MS_DBG_INFO(fmt, args...) do{ if (true) { \
+ LOGE("[%s-%d]" fmt "\n", __func__ , __LINE__, ##args); \
+ }} while(false)
+
+#define MS_DBG_WARN(fmt, args...) do{ if (true) { \
+ LOGW("[%s-%d]" fmt "\n", __func__ , __LINE__, ##args); \
+ }} while(false)
+
+#define MS_DBG_ERR(fmt, args...) do{ if (true) { \
+ LOGE("[%d, %s-%d]" fmt "\n", syscall(__NR_gettid), __func__ , __LINE__, ##args); \
+ }} while(false)
+
#define MALLOC(a) malloc(a)
#define FREE(a) free(a)
-#define MS_PHONE_ROOT_PATH "opt/media"
-#define MS_MMC_ROOT_PATH "opt/storage/sdcard"
+#define MS_ROOT_PATH_INTERNAL "/opt/media"
+#define MS_ROOT_PATH_EXTERNAL "/opt/storage/sdcard"
#define MS_DB_UPDATE_NOTI_PATH "/opt/data/file-manager-service"
-/*This macro is used to check the lastest usb mode*/
-#define MS_USB_MODE_KEY "db/Apps/mediaserver/usbmode"
-enum {
- MS_VCONFKEY_NORMAL_MODE = 0x00,
- MS_VCONFKEY_MASS_STORAGE_MODE = 0x01
-};
-
/*This macro is used to save and check information of inserted memory card*/
-#define MS_MMC_INFO_KEY "db/Apps/mediaserver/mmc_info"
+#define MS_MMC_INFO_KEY "db/private/mediaserver/mmc_info"
+
+
+/*Use for Poweroff sequence*/
+#define POWEROFF_NOTI_NAME "power_off_start" /*poeroff noti from system-server*/
+#define POWEROFF_DIR_PATH "/opt/media/_POWER_OFF" /*This path uses for stopping Inotify thread and Socket thread*/
+#define POWEROFF_DIR_NAME "_POWER_OFF" /*This path uses for stopping Inotify thread and Socket thread*/
+#define POWEROFF 10000 /*This number uses for stopping Scannig thread*/
/**
* @}
diff --git a/common/include/media-server-inotify-internal.h b/common/include/media-server-inotify-internal.h
index b408b96..78061de 100755
--- a/common/include/media-server-inotify-internal.h
+++ b/common/include/media-server-inotify-internal.h
@@ -27,14 +27,21 @@
* @version 1.0
* @brief
*/
+#ifndef _MEDIA_SERVER_INOTIFY_INTERNAL_H_
+#define _MEDIA_SERVER_INOTIFY_INTERNAL_H_
+
#include <sys/inotify.h>
-#include <sqlite3.h>
-#include <drm-service.h>
#define INOTI_EVENT_SIZE (sizeof(struct inotify_event))
#define INOTI_BUF_LEN (1024*(INOTI_EVENT_SIZE+16))
#define INOTI_FOLDER_COUNT_MAX 1024
+typedef struct ms_inoti_dir_data {
+ char *name;
+ int wd;
+ struct ms_inoti_dir_data *next;
+} ms_inoti_dir_data;
+
typedef struct ms_create_file_info {
char *name;
int wd;
@@ -52,3 +59,4 @@ bool _ms_inoti_full_path(int wd, char *name, char *path, int sizeofpath);
bool _ms_inoti_get_full_path(int wd, char *name, char *path, int sizeofpath);
+#endif /*_MEDIA_SERVER_INOTIFY_INTERNAL_H_*/
diff --git a/common/include/media-server-inotify.h b/common/include/media-server-inotify.h
index 845bfcb..34236b6 100755
--- a/common/include/media-server-inotify.h
+++ b/common/include/media-server-inotify.h
@@ -46,7 +46,7 @@ gboolean ms_inoti_thread(gpointer data);
void ms_inoti_add_watch(char *path);
-int ms_inoti_add_watch_with_node(ms_dir_scan_info * const current_node);
+int ms_inoti_add_watch_with_node(ms_dir_scan_info * const current_node, int depth);
void ms_inoti_remove_watch_recursive(char *path);
@@ -61,4 +61,6 @@ int ms_inoti_delete_ignore_file(ms_ignore_file_info * delete_node);
ms_ignore_file_info *ms_inoti_find_ignore_file(const char *path);
void ms_inoti_delete_mmc_ignore_file(void);
+
+void ms_inoti_add_watch_all_directory(ms_storage_type_t storage_type);
#endif/* _MEDIA_SERVER_INOTI_H_ */
diff --git a/common/include/media-server-scan-internal.h b/common/include/media-server-scan-internal.h
index d9b8351..5f34fee 100755
--- a/common/include/media-server-scan-internal.h
+++ b/common/include/media-server-scan-internal.h
@@ -27,12 +27,12 @@
* @version 1.0
* @brief
*/
+#ifndef _MEDIA_SERVER_SCAN_INTERNAL_H_
+#define _MEDIA_SERVER_SCAN_INTERNAL_H_
+
#include "media-server-global.h"
#include "media-server-types.h"
-#ifdef PROGRESS
-struct quickpanel;
-void _ms_dir_scan(void *handle, ms_scan_data_t * scan_data, struct quickpanel *ms_quickpanel);
-#else
-void _ms_dir_scan(void *handle, ms_scan_data_t * scan_data);
-#endif
+void _ms_dir_scan(void **handle, ms_scan_data_t * scan_data);
+
+#endif /*_MEDIA_SERVER_SCAN_INTERNAL_H_*/
diff --git a/common/include/media-server-scan.h b/common/include/media-server-scan.h
index 1cea90b..113b39a 100755
--- a/common/include/media-server-scan.h
+++ b/common/include/media-server-scan.h
@@ -27,5 +27,9 @@
* @version 1.0
* @brief
*/
+#ifndef _MEDIA_SERVER_SCAN_H_
+#define _MEDIA_SERVER_SCAN_H_
gboolean ms_scan_thread(void *data);
+
+#endif /*_MEDIA_SERVER_SCAN_H_*/ \ No newline at end of file
diff --git a/common/include/media-server-socket.h b/common/include/media-server-socket.h
index 934c0bd..de29dc3 100755
--- a/common/include/media-server-socket.h
+++ b/common/include/media-server-socket.h
@@ -27,8 +27,16 @@
* @version 1.0
* @brief
*/
- #include "media-server-global.h"
+#ifndef _MEDIA_SERVER_SOCKET_H_
+#define _MEDIA_SERVER_SOCKET_H_
+
+#include "media-server-global.h"
#include "media-server-types.h"
-gboolean ms_socket_thread(void *data);
+gboolean ms_read_socket(GIOChannel *src,
+ GIOCondition condition,
+ gpointer data);
+
+gboolean ms_prepare_socket(int *sock_fd);
+#endif /*_MEDIA_SERVER_SOCKET_H_*/
diff --git a/common/include/media-server-types.h b/common/include/media-server-types.h
index bafe88f..01f128c 100755
--- a/common/include/media-server-types.h
+++ b/common/include/media-server-types.h
@@ -28,17 +28,19 @@
* @brief
*/
-#include <stdbool.h>
-#include <glib.h>
-
#ifndef _MEDIA_SERVER_TYPES_H_
#define _MEDIA_SERVER_TYPES_H_
+#include <stdbool.h>
+#include <glib.h>
+
#if !defined(__TYPEDEF_INT64__)
#define __TYPEDEF_INT64__
typedef long long int64;
#endif
+#define MS_SAFE_FREE(src) { if(src) {free(src); src = NULL;} }
+
/*System default folder definition*/
#define FAT_FILENAME_LEN_MAX 255 /* not inc null */
#define FAT_FILEPATH_LEN_MAX 4096 /* inc null */
@@ -48,22 +50,13 @@ typedef long long int64;
#define MS_FILE_NAME_LEN_MAX FAT_FILENAME_LEN_MAX /**< File name max length on file system */
#define MS_FILE_PATH_LEN_MAX FAT_FILEPATH_LEN_MAX /**< File path max length (include file name) on file system */
-#define MS_CATEGORY_UNKNOWN 0x00000000 /**< Default */
-#define MS_CATEGORY_ETC 0x00000001 /**< ETC category */
-#define MS_CATEGORY_IMAGE 0x00000002 /**< Image category */
-#define MS_CATEGORY_VIDEO 0x00000004 /**< Video category */
-#define MS_CATEGORY_MUSIC 0x00000008 /**< Music category */
-#define MS_CATEGORY_SOUND 0x00000010 /**< Sound category */
-#define MS_CATEGORY_DRM 0x00000020 /**< DRM category */
-
typedef enum {
- MS_PHONE, /**< Stored only in phone */
- MS_MMC, /**< Stored only in MMC */
-} ms_store_type_t;
+ MS_STORAGE_INTERNAL, /**< Stored only in phone */
+ MS_STORATE_EXTERNAL, /**< Stored only in MMC */
+} ms_storage_type_t;
typedef enum {
- MS_SCAN_NONE,
- MS_SCAN_VALID,
+ MS_SCAN_INVALID,
MS_SCAN_PART,
MS_SCAN_ALL,
} ms_dir_scan_type_t;
@@ -81,17 +74,11 @@ typedef struct ms_dir_scan_info {
} ms_dir_scan_info;
typedef struct {
- ms_store_type_t db_type;
+ char *path;
+ ms_storage_type_t storage_type;
ms_dir_scan_type_t scan_type;
} ms_scan_data_t;
-typedef struct ms_dir_data {
- char *name;
- int wd;
- bool db_updated;
- struct ms_dir_data *next;
-} ms_dir_data;
-
/**
* @}
*/
diff --git a/common/include/media-server-utils.h b/common/include/media-server-utils.h
index b7ee0ef..9b42318 100755
--- a/common/include/media-server-utils.h
+++ b/common/include/media-server-utils.h
@@ -31,7 +31,6 @@
#ifndef _MEDIA_SERVER_UTILS_H__
#define _MEDIA_SERVER_UTILS_H__
-#include <sqlite3.h>
#include "media-server-global.h"
int
@@ -53,10 +52,10 @@ void
ms_end(void);
int
-ms_get_full_path_from_node(ms_dir_scan_info * const node, char *ret_path);
+ms_get_full_path_from_node(ms_dir_scan_info * const node, char *ret_path, int depth);
-ms_store_type_t
-ms_get_store_type_by_full(const char *path);
+ms_storage_type_t
+ms_get_storage_type_by_full(const char *path);
int
ms_strappend(char *res, const int size, const char *pattern,
@@ -78,9 +77,6 @@ ms_config_get_str(const char *key, char *value);
bool
ms_config_set_str(const char *key, const char *value);
-void
-ms_check_db_updating(void);
-
#ifdef FMS_PERF
void
ms_check_start_time(struct timeval *start_time);
@@ -92,18 +88,6 @@ void
ms_check_time_diff(struct timeval *start_time, struct timeval *end_time);
#endif/*FMS_PERF */
-#ifdef PROGRESS
-struct quickpanel;
-
-void
-ms_create_quickpanel(struct quickpanel *ms_quickpanel);
-
-void
-ms_update_progress(struct quickpanel *ms_quickpanel, double progress);
-
-void
-ms_delete_quickpanel(struct quickpanel *ms_quickpanel);
-#endif /*PROGRSS*/
/**
* @}
*/
diff --git a/common/media-server-db-svc.c b/common/media-server-db-svc.c
index c9bec72..4e8516c 100755
--- a/common/media-server-db-svc.c
+++ b/common/media-server-db-svc.c
@@ -31,10 +31,10 @@
#include <dlfcn.h>
#include <aul/aul.h>
-#include <drm-service.h>
#include "media-server-utils.h"
#include "media-server-inotify.h"
+#include "media-server-drm.h"
#include "media-server-db-svc.h"
GMutex * db_mutex;
@@ -51,27 +51,6 @@ GMutex *queue_mutex;
void **func_handle = NULL; /*dlopen handel*/
-CHECK_ITEM f_check;
-CONNECT f_connect;
-DISCONNECT f_disconnect;
-CHECK_ITEM_EXIST f_exist;
-INSERT_ITEM_BEGIN f_insert_begin;
-INSERT_ITEM_END f_insert_end;
-INSERT_ITEM f_insert_batch;
-INSERT_ITEM_IMMEDIATELY f_insert;
-MOVE_ITEM_BEGIN f_move_begin;
-MOVE_ITEM_END f_move_end;
-MOVE_ITEM f_move;
-SET_ALL_STORAGE_ITEMS_VALIDITY f_set_all_validity;
-SET_ITEM_VALIDITY_BEGIN f_set_validity_begin;
-SET_ITEM_VALIDITY_END f_set_validity_end;
-SET_ITEM_VALIDITY f_set_validity;
-DELETE_ITEM f_delete;
-DELETE_ALL_ITEMS_IN_STORAGE f_delete_all;
-DELETE_ALL_INVALID_ITMES_IN_STORAGE f_delete_invalid_items;
-UPDATE_BEGIN f_update_begin;
-UPDATE_END f_update_end;
-
enum func_list {
eCHECK,
eCONNECT,
@@ -93,6 +72,7 @@ enum func_list {
eDELETE_INVALID_ITEMS,
eUPDATE_BEGIN,
eUPDATE_END,
+ eREFRESH_ITEM,
eFUNC_MAX
};
@@ -142,10 +122,9 @@ _ms_delete_reg_list(const char *path)
for(list_index = 0; list_index < len; list_index++) {
data = g_array_index (reg_list, char*, list_index);
- MS_DBG("%s", data);
if(!strcmp(data, path)) {
MS_DBG("Delete complete : %s", data);
- free(data);
+ MS_SAFE_FREE(data);
g_array_remove_index(reg_list, list_index);
break;
}
@@ -155,32 +134,8 @@ _ms_delete_reg_list(const char *path)
}
static int
-_ms_get_mime_in_drm_info(const char *path, char *mime)
-{
- int ret;
- drm_content_info_t contentInfo = { 0 };
-
- if (path == NULL || mime == NULL)
- return MS_ERR_ARG_INVALID;
-
- ret = drm_svc_get_content_info(path, &contentInfo);
- if (ret != DRM_RESULT_SUCCESS) {
- MS_DBG("drm_svc_get_content_info() fails. ");
- return MS_ERR_DRM_GET_INFO_FAIL;
- }
-
- strncpy(mime, contentInfo.contentType, 100);
- MS_DBG("DRM contentType : %s", contentInfo.contentType);
- MS_DBG("DRM mime : %s", mime);
-
- return MS_ERR_NONE;
-}
-
-static int
_ms_get_mime(const char *path, char *mimetype)
{
- MS_DBG_START();
-
int ret = 0;
if (path == NULL)
@@ -188,31 +143,23 @@ _ms_get_mime(const char *path, char *mimetype)
/*get content type and mime type from file. */
/*in case of drm file. */
- if (drm_svc_is_drm_file(path) == DRM_TRUE) {
- DRM_FILE_TYPE drm_type = DRM_FILE_TYPE_NONE;
- drm_type = drm_svc_get_drm_type(path);
- if (drm_type == DRM_FILE_TYPE_NONE) {
- MS_DBG("There is no TYPE");
- return MS_ERR_DRM_GET_TYPE_FAIL;
- } else {
- ret = _ms_get_mime_in_drm_info(path, mimetype);
- if (ret != 0) {
- MS_DBG("Fail to get mime");
- return ret;
- }
+ if (ms_is_drm_file(path)) {
+
+ ms_inoti_add_ignore_file(path);
+
+ ret = ms_get_mime_in_drm_info(path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("Fail to get mime");
+ return MS_ERR_MIME_GET_FAIL;
}
} else {
/*in case of normal files */
if (aul_get_mime_from_file(path, mimetype, 255) < 0) {
- MS_DBG("aul_get_mime_from_file fail");
- return MS_ERR_ARG_INVALID;
+ MS_DBG_ERR("aul_get_mime_from_file fail");
+ return MS_ERR_MIME_GET_FAIL;
}
}
- MS_DBG("mime type : %s", mimetype);
-
- MS_DBG_END();
-
return MS_ERR_NONE;
}
@@ -231,39 +178,12 @@ _ms_check_category(const char *path, const char *mimetype, int index)
char *err_msg = NULL;
ret = ((CHECK_ITEM)func_array[index][eCHECK])(path, mimetype, &err_msg);
- if (ret != 0)
- free(err_msg);
-
- return ret;
-}
-
-static int
-_ms_drm_register(const char* path)
-{
- MS_DBG("THIS IS DRM FILE");
- int res = MS_ERR_NONE;
- DRM_RESULT dres;
-
- ms_inoti_add_ignore_file(path);
- dres = drm_svc_register_file(path);
- if (dres != DRM_RESULT_SUCCESS) {
- MS_DBG("drm_svc_register_file error : %d", res);
- res = MS_ERR_DRM_REGISTER_FAIL;
+ if (ret != 0) {
+ MS_DBG_ERR("error : %s [%s] %s", g_array_index(so_array, char*, index), err_msg, path);
+ MS_SAFE_FREE(err_msg);
}
- return res;
-}
-
-static void
-_ms_drm_unregister(const char* path)
-{
- ms_ignore_file_info *ignore_file;
-
- drm_svc_unregister_file(path, false);
-
- ignore_file = ms_inoti_find_ignore_file(path);
- if (ignore_file != NULL)
- ms_inoti_delete_ignore_file(ignore_file);
+ return ret;
}
static int
@@ -274,7 +194,7 @@ _ms_token_data(char *buf, char **name)
pos = strstr(buf, EXT);
if (pos == NULL) {
- MS_DBG("This is not shared object library.");
+ MS_DBG_ERR("This is not shared object library.");
name = NULL;
return -1;
} else {
@@ -298,7 +218,7 @@ _ms_load_config()
fp = fopen(CONFIG_PATH, "rt");
if (fp == NULL) {
- MS_DBG("fp is NULL");
+ MS_DBG_ERR("fp is NULL");
return MS_ERR_FILE_OPEN_FAIL;
}
while(1) {
@@ -343,7 +263,8 @@ ms_load_functions(void)
"delete_all_items_in_storage",
"delete_all_invalid_items_in_storage",
"update_begin",
- "update_end"
+ "update_end",
+ "refresh_item"
};
/*init array for adding name of so*/
so_array = g_array_new(FALSE, FALSE, sizeof(char*));
@@ -367,7 +288,7 @@ ms_load_functions(void)
MS_DBG("[name of so : %s]", g_array_index(so_array, char*, lib_index));
func_handle[lib_index] = dlopen(g_array_index(so_array, char*, lib_index), RTLD_LAZY);
if (!func_handle[lib_index]) {
- MS_DBG("%s", dlerror());
+ MS_DBG_ERR("%s", dlerror());
return -1;
}
lib_index++;
@@ -388,32 +309,30 @@ ms_load_functions(void)
}
}
- MS_DBG("FUNCTIONS LOAD COMPLETE");
-
return MS_ERR_NONE;
}
void
ms_unload_functions(void)
{
- int lib_index, func_index;
+ int lib_index;
for (lib_index = 0; lib_index < lib_num; lib_index ++)
dlclose(func_handle[lib_index]);
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- for (func_index = 0; func_index < eFUNC_MAX ; func_index++) {
- free(func_array[lib_index][func_index]);
- }
+ if (func_array[lib_index]) {
+ MS_SAFE_FREE(func_array[lib_index]);
+ }
}
- free(func_array);
- free(func_handle);
- g_array_free(so_array, TRUE);
+ MS_SAFE_FREE (func_array);
+ MS_SAFE_FREE (func_handle);
+ if (so_array) g_array_free(so_array, TRUE);
}
int
-ms_connect_db(void **handle)
+ms_connect_db(void ***handle)
{
int lib_index;
int ret;
@@ -422,11 +341,13 @@ ms_connect_db(void **handle)
/*Lock mutex for openning db*/
g_mutex_lock(db_mutex);
+ *handle = malloc (sizeof (void*) * lib_num);
+
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((CONNECT)func_array[lib_index][eCONNECT])(handle, &err_msg); /*dlopen*/
+ ret = ((CONNECT)func_array[lib_index][eCONNECT])(&((*handle)[lib_index]), &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
g_mutex_unlock(db_mutex);
return MS_ERR_DB_CONNECT_FAIL;
@@ -441,117 +362,119 @@ ms_connect_db(void **handle)
}
int
-ms_disconnect_db(void *handle)
+ms_disconnect_db(void ***handle)
{
int lib_index;
int ret;
char * err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((DISCONNECT)func_array[lib_index][eDISCONNECT])(handle, &err_msg); /*dlopen*/
+ ret = ((DISCONNECT)func_array[lib_index][eDISCONNECT])((*handle)[lib_index], &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
return MS_ERR_DB_DISCONNECT_FAIL;
}
}
+ MS_SAFE_FREE(*handle);
+
MS_DBG("Disconnect Media DB");
return MS_ERR_NONE;
}
int
-ms_validate_item(void *handle, char *path)
+ms_validate_item(void **handle, char *path)
{
- MS_DBG_START();
-
int lib_index;
int res = MS_ERR_NONE;
int ret;
char *err_msg = NULL;
char mimetype[255] = {0};
- ms_store_type_t storage_type;
+ ms_storage_type_t storage_type;
- MS_DBG("%s", path);
+ ret = _ms_get_mime(path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("err : _ms_get_mime [%d]", ret);
+ return ret;
+ }
+ storage_type = ms_get_storage_type_by_full(path);
- _ms_get_mime(path, mimetype);
- storage_type = ms_get_store_type_by_full(path);
+ MS_DBG("[%s] %s", mimetype, path);
for (lib_index = 0; lib_index < lib_num; lib_index++) {
if (!_ms_check_category(path, mimetype, lib_index)) {
/*check exist in Media DB, If file is not exist, insert data in DB. */
- ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle, path, storage_type, &err_msg); /*dlopen*/
+ ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle[lib_index], path, storage_type, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("not exist in Music DB. insert data");
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
-
- ret = ms_insert_item_batch(handle, path);
- if (ret != MS_ERR_NONE) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- res = ret;
+ MS_DBG("not exist in %d. insert data", lib_index);
+ MS_SAFE_FREE(err_msg);
+
+ ret = ((INSERT_ITEM)func_array[lib_index][eINSERT_BATCH])(handle[lib_index], path, storage_type, mimetype, &err_msg); /*dlopen*/
+ if (ret != 0) {
+ MS_DBG_ERR("error : %s [%s] %s", g_array_index(so_array, char*, lib_index), err_msg, path);
+ MS_SAFE_FREE(err_msg);
+ res = MS_ERR_DB_INSERT_RECORD_FAIL;
}
} else {
/*if meta data of file exist, change valid field to "1" */
- MS_DBG("Item exist");
-
- ret = ((SET_ITEM_VALIDITY)func_array[lib_index][eSET_VALIDITY])(handle, path, true, mimetype, true, &err_msg); /*dlopen*/
+ ret = ((SET_ITEM_VALIDITY)func_array[lib_index][eSET_VALIDITY])(handle[lib_index], path, true, mimetype, true, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s] %s", g_array_index(so_array, char*, lib_index), err_msg, path);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_UPDATE_RECORD_FAIL;
}
}
}
}
- if (drm_svc_is_drm_file(path) == DRM_TRUE) {
- ret = _ms_drm_register(path);
+ if (ms_is_drm_file(path)) {
+ ret = ms_drm_register(path);
}
- MS_DBG_END();
-
return res;
}
int
-ms_invalidate_all_items(void *handle, ms_store_type_t store_type)
+ms_invalidate_all_items(void **handle, ms_storage_type_t store_type)
{
- MS_DBG_START();
int lib_index;
int res = MS_ERR_NONE;
int ret;
char *err_msg = NULL;
-
+ MS_DBG("");
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((SET_ALL_STORAGE_ITEMS_VALIDITY)func_array[lib_index][eSET_ALL_VALIDITY])(handle, store_type, false, &err_msg); /*dlopen*/
+ ret = ((SET_ALL_STORAGE_ITEMS_VALIDITY)func_array[lib_index][eSET_ALL_VALIDITY])(handle[lib_index], store_type, false, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_UPDATE_RECORD_FAIL;
}
}
-
- MS_DBG_END();
-
+ MS_DBG("");
return res;
}
int
-ms_register_file(void *handle, const char *path, GAsyncQueue* queue)
+ms_register_file(void **handle, const char *path, GAsyncQueue* queue)
{
- MS_DBG_START();
MS_DBG("[%d]register file : %s", syscall(__NR_gettid), path);
int res = MS_ERR_NONE;
int ret;
if (path == NULL) {
- MS_DBG("path == NULL");
return MS_ERR_ARG_INVALID;
}
+ /*check item in DB. If it exist in DB, return directly.*/
+ ret = ms_check_exist(handle, path);
+ if (ret == MS_ERR_NONE) {
+ MS_DBG("Already exist");
+ return MS_ERR_NONE;
+ }
+
g_mutex_lock(queue_mutex);
/*first request for this file*/
if(!_ms_find_reg_list(path)) {
@@ -570,37 +493,41 @@ ms_register_file(void *handle, const char *path, GAsyncQueue* queue)
ret = ms_insert_item(handle, path);
if (ret != MS_ERR_NONE) {
- MS_DBG("ms_media_db_insert error : %d", ret);
int lib_index;
char mimetype[255];
- ms_store_type_t storage_type;
+ ms_storage_type_t storage_type;
- _ms_get_mime(path, mimetype);
- storage_type = ms_get_store_type_by_full(path);
+ ret = _ms_get_mime(path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("err : _ms_get_mime [%d]", ret);
+ res = MS_ERR_MIME_GET_FAIL;
+ goto END;
+ }
+ storage_type = ms_get_storage_type_by_full(path);
+
+ MS_DBG("[%s] %s", mimetype, path);
for (lib_index = 0; lib_index < lib_num; lib_index++) {
/*check item is already inserted*/
if (!_ms_check_category(path, mimetype, lib_index)) {
char *err_msg = NULL;
- ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle, path, storage_type, &err_msg); /*dlopen*/
+ ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle[lib_index], path, storage_type, &err_msg); /*dlopen*/
if (ret == 0) {
- MS_DBG("Media Item exist");
res = MS_ERR_NONE;
} else {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_INSERT_RECORD_FAIL;
}
}
}
}
-
- if (drm_svc_is_drm_file(path) == DRM_TRUE) {
- ret = _ms_drm_register(path);
+END:
+ if (ms_is_drm_file(path)) {
+ ret = ms_drm_register(path);
}
-FREE_RESOURCE:
g_mutex_lock(queue_mutex);
_ms_delete_reg_list(path);
@@ -612,283 +539,332 @@ FREE_RESOURCE:
}
soc_queue = NULL;
g_mutex_unlock(queue_mutex);
- MS_DBG_END();
+
return res;
}
int
-ms_insert_item_batch(void *handle, const char *path)
+ms_insert_item_batch(void **handle, const char *path)
{
- MS_DBG_START();
-
int lib_index;
int res = MS_ERR_NONE;
int ret;
char mimetype[255] = {0};
char *err_msg = NULL;
- ms_store_type_t storage_type;
+ ms_storage_type_t storage_type;
- MS_DBG("%s", path);
+ ret = _ms_get_mime(path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("err : _ms_get_mime [%d]", ret);
+ return ret;
+ }
+ storage_type = ms_get_storage_type_by_full(path);
- _ms_get_mime(path, mimetype);
- storage_type = ms_get_store_type_by_full(path);
+ MS_DBG("[%s] %s", mimetype, path);
for (lib_index = 0; lib_index < lib_num; lib_index++) {
if (!_ms_check_category(path, mimetype, lib_index)) {
- ret = ((INSERT_ITEM)func_array[lib_index][eINSERT_BATCH])(handle, path, storage_type, mimetype, &err_msg); /*dlopen*/
+ ret = ((INSERT_ITEM)func_array[lib_index][eINSERT_BATCH])(handle[lib_index], path, storage_type, mimetype, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_INSERT_RECORD_FAIL;
}
}
}
- if (drm_svc_is_drm_file(path) == DRM_TRUE) {
- ret = _ms_drm_register(path);
+ if (ms_is_drm_file(path)) {
+ ret = ms_drm_register(path);
res = ret;
}
- MS_DBG_END();
return res;
}
int
-ms_insert_item(void *handle, const char *path)
+ms_insert_item(void **handle, const char *path)
{
- MS_DBG_START();
- MS_DBG("%s", path);
-
int lib_index;
int res = MS_ERR_NONE;
int ret;
char mimetype[255] = {0};
char *err_msg = NULL;
- ms_store_type_t storage_type;
+ ms_storage_type_t storage_type;
- _ms_get_mime(path, mimetype);
- storage_type = ms_get_store_type_by_full(path);
+ ret = _ms_get_mime(path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("err : _ms_get_mime [%d]", ret);
+ return ret;
+ }
+ storage_type = ms_get_storage_type_by_full(path);
+
+ MS_DBG("[%s] %s", mimetype, path);
for (lib_index = 0; lib_index < lib_num; lib_index++) {
if (!_ms_check_category(path, mimetype, lib_index)) {
- ret = ((INSERT_ITEM_IMMEDIATELY)func_array[lib_index][eINSERT])(handle, path, storage_type, mimetype, &err_msg); /*dlopen*/
+ ret = ((INSERT_ITEM_IMMEDIATELY)func_array[lib_index][eINSERT])(handle[lib_index], path, storage_type, mimetype, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_INSERT_RECORD_FAIL;
}
}
}
- MS_DBG_END();
return res;
}
int
-ms_delete_item(void *handle, const char *path)
+ms_delete_item(void **handle, const char *path)
{
- MS_DBG_START();
-
int lib_index;
int res = MS_ERR_NONE;
int ret;
char *err_msg = NULL;
- ms_store_type_t storage_type;
+ ms_storage_type_t storage_type;
- storage_type = ms_get_store_type_by_full(path);
+ storage_type = ms_get_storage_type_by_full(path);
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle, path, storage_type, &err_msg); /*dlopen*/
+ ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle[lib_index], path, storage_type, &err_msg); /*dlopen*/
if (ret == 0) {
- ret = ((DELETE_ITEM)func_array[lib_index][eDELETE])(handle, path, storage_type, &err_msg); /*dlopen*/
+ ret = ((DELETE_ITEM)func_array[lib_index][eDELETE])(handle[lib_index], path, storage_type, &err_msg); /*dlopen*/
if (ret !=0 ) {
- MS_DBG("delete fail");
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_DELETE_RECORD_FAIL;
}
} else {
- MS_DBG("Item does not exist");
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_DELETE_RECORD_FAIL;
}
}
- _ms_drm_unregister(path);
-
- MS_DBG_END();
+ ms_drm_unregister(path);
return res;
}
int
-ms_move_item(void *handle,
- ms_store_type_t src_store, ms_store_type_t dst_store,
+ms_move_item(void **handle,
+ ms_storage_type_t src_store, ms_storage_type_t dst_store,
const char *src_path, const char *dst_path)
{
- MS_DBG_START();
int lib_index;
int res = MS_ERR_NONE;
int ret;
char mimetype[255];
char *err_msg = NULL;
- _ms_get_mime(dst_path, mimetype);
+ ret = _ms_get_mime(dst_path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("err : _ms_get_mime [%d]", ret);
+ return ret;
+ }
+ MS_DBG("[%s] %s", mimetype, dst_path);
+
for (lib_index = 0; lib_index < lib_num; lib_index++) {
if (!_ms_check_category(dst_path, mimetype, lib_index)) {
- ret = ((MOVE_ITEM)func_array[lib_index][eMOVE])(handle, src_path, src_store,
+ ret = ((MOVE_ITEM)func_array[lib_index][eMOVE])(handle[lib_index], src_path, src_store,
dst_path, dst_store, mimetype, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
res = MS_ERR_DB_UPDATE_RECORD_FAIL;
}
}
}
- MS_DBG_END();
-
return res;
}
bool
-ms_delete_all_items(void *handle, ms_store_type_t store_type)
+ms_delete_all_items(void **handle, ms_storage_type_t store_type)
{
- MS_DBG_START();
int lib_index;
int ret = 0;
char *err_msg = NULL;
/* To reset media db when differnet mmc is inserted. */
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((DELETE_ALL_ITEMS_IN_STORAGE)func_array[lib_index][eDELETE_ALL])(handle, store_type, &err_msg); /*dlopen*/
+ ret = ((DELETE_ALL_ITEMS_IN_STORAGE)func_array[lib_index][eDELETE_ALL])(handle[lib_index], store_type, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
return false;
}
}
- MS_DBG_END();
+
return true;
}
bool
-ms_delete_invalid_items(void *handle, ms_store_type_t store_type)
+ms_delete_invalid_items(void **handle, ms_storage_type_t store_type)
{
- MS_DBG_START();
int lib_index;
int ret;
char *err_msg = NULL;
+
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((DELETE_ALL_INVALID_ITMES_IN_STORAGE)func_array[lib_index][eDELETE_INVALID_ITEMS])(handle, store_type, &err_msg); /*dlopen*/
+ ret = ((DELETE_ALL_INVALID_ITMES_IN_STORAGE)func_array[lib_index][eDELETE_INVALID_ITEMS])(handle[lib_index], store_type, &err_msg); /*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
return false;
}
}
- MS_DBG_END();
-
return true;
}
+int
+ms_refresh_item(void **handle, const char *path)
+{
+ int lib_index;
+ int res = MS_ERR_NONE;
+ int ret;
+ char mimetype[255];
+ char *err_msg = NULL;
+ ms_storage_type_t storage_type;
+
+ ret = _ms_get_mime(path, mimetype);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("err : _ms_get_mime [%d]", ret);
+ return ret;
+ }
+ MS_DBG("[%s] %s", mimetype, path);
+
+ storage_type = ms_get_storage_type_by_full(path);
+
+ for (lib_index = 0; lib_index < lib_num; lib_index++) {
+ if (!_ms_check_category(path, mimetype, lib_index)) {
+ ret = ((REFRESH_ITEM)func_array[lib_index][eREFRESH_ITEM])(handle[lib_index], path, storage_type, mimetype, &err_msg); /*dlopen*/
+ if (ret != 0) {
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
+ res = MS_ERR_DB_UPDATE_RECORD_FAIL;
+ }
+ }
+ }
+
+ return res;
+}
+
+int
+ms_check_exist(void **handle, const char *path)
+{
+ int lib_index;
+ int ret;
+ char *err_msg = NULL;
+ ms_storage_type_t storage_type;
+
+ storage_type = ms_get_storage_type_by_full(path);
+ for (lib_index = 0; lib_index < lib_num; lib_index++) {
+ ret = ((CHECK_ITEM_EXIST)func_array[lib_index][eEXIST])(handle[lib_index], path, storage_type, &err_msg); /*dlopen*/
+ if (ret != 0) {
+ return MS_ERR_DB_EXIST_ITEM_FAIL;
+ }
+ }
+
+ return MS_ERR_NONE;
+}
+
/****************************************************************************************************
FOR BULK COMMIT
*****************************************************************************************************/
void
-ms_register_start(void *handle)
+ms_register_start(void **handle)
{
int lib_index;
int ret = 0;
char *err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((INSERT_ITEM_BEGIN)func_array[lib_index][eINSERT_BEGIN])(handle, MS_REGISTER_COUNT, &err_msg);/*dlopen*/
+ ret = ((INSERT_ITEM_BEGIN)func_array[lib_index][eINSERT_BEGIN])(handle[lib_index], MS_REGISTER_COUNT, &err_msg);/*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
}
}
}
void
-ms_register_end(void *handle)
+ms_register_end(void **handle)
{
int lib_index;
int ret = 0;
char *err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((INSERT_ITEM_END)func_array[lib_index][eINSERT_END])(handle, &err_msg);/*dlopen*/
+ ret = ((INSERT_ITEM_END)func_array[lib_index][eINSERT_END])(handle[lib_index], &err_msg);/*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
}
}
}
void
-ms_validate_start(void *handle)
+ms_validate_start(void **handle)
{
int lib_index;
int ret = 0;
char *err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((SET_ITEM_VALIDITY_BEGIN)func_array[lib_index][eSET_VALIDITY_BEGIN])(handle, MS_VALID_COUNT, &err_msg);/*dlopen*/
+ ret = ((SET_ITEM_VALIDITY_BEGIN)func_array[lib_index][eSET_VALIDITY_BEGIN])(handle[lib_index], MS_VALID_COUNT, &err_msg);/*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
}
}
}
void
-ms_validate_end(void *handle)
+ms_validate_end(void **handle)
{
int lib_index;
int ret = 0;
char *err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((SET_ITEM_VALIDITY_END)func_array[lib_index][eSET_VALIDITY_END])(handle, &err_msg);/*dlopen*/
+ ret = ((SET_ITEM_VALIDITY_END)func_array[lib_index][eSET_VALIDITY_END])(handle[lib_index], &err_msg);/*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
}
}
}
void
-ms_move_start(void *handle)
+ms_move_start(void **handle)
{
int lib_index;
int ret = 0;
char *err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((MOVE_ITEM_BEGIN)func_array[lib_index][eMOVE_BEGIN])(handle, MS_MOVE_COUNT, &err_msg);/*dlopen*/
+ ret = ((MOVE_ITEM_BEGIN)func_array[lib_index][eMOVE_BEGIN])(handle[lib_index], MS_MOVE_COUNT, &err_msg);/*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
}
}
}
void
-ms_move_end(void *handle)
+ms_move_end(void **handle)
{
int lib_index;
int ret = 0;
char *err_msg = NULL;
for (lib_index = 0; lib_index < lib_num; lib_index++) {
- ret = ((MOVE_ITEM_END)func_array[lib_index][eMOVE_END])(handle, &err_msg);/*dlopen*/
+ ret = ((MOVE_ITEM_END)func_array[lib_index][eMOVE_END])(handle[lib_index], &err_msg);/*dlopen*/
if (ret != 0) {
- MS_DBG("error : %s", g_array_index(so_array, char*, lib_index));
- free(err_msg);
+ MS_DBG_ERR("error : %s [%s]", g_array_index(so_array, char*, lib_index), err_msg);
+ MS_SAFE_FREE(err_msg);
}
}
}
diff --git a/common/media-server-dbus.c b/common/media-server-dbus.c
new file mode 100755
index 0000000..9b50e03
--- /dev/null
+++ b/common/media-server-dbus.c
@@ -0,0 +1,80 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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.
+ *
+ */
+
+#include <glib.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "media-server-global.h"
+#include "media-server-dbus.h"
+
+void ms_dbus_init(void)
+{
+ DBusConnection *bus;
+ DBusError error;
+
+ /* Get a connection to the session bus */
+ dbus_error_init (&error);
+ bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ MS_DBG ("Failed to connect to the D-BUS daemon: %s", error.message);
+ dbus_error_free (&error);
+ return;
+ }
+
+ /* Set up this connection to work in a GLib event loop */
+ dbus_connection_setup_with_g_main (bus, NULL);
+}
+
+gboolean ms_dbus_send_noti(ms_dbus_noti_type_t data)
+{
+ MS_DBG("");
+ DBusMessage *message;
+ DBusConnection *bus;
+ DBusError error;
+ dbus_uint16_t noti_type = data;
+
+ /* Get a connection to the session bus */
+ dbus_error_init (&error);
+ bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ MS_DBG ("Failed to connect to the D-BUS daemon: %s", error.message);
+ dbus_error_free (&error);
+ return false;
+ }
+
+ /* Create a new signal on the "MS_DBUS_INTERFACE" interface,
+ * from the object "MS_DBUS_PATH". */
+ message = dbus_message_new_signal (MS_DBUS_PATH, MS_DBUS_INTERFACE, MS_DBUS_NAME);
+
+ /* Append the notification type to the signal */
+ dbus_message_append_args (message, DBUS_TYPE_UINT16, &noti_type, DBUS_TYPE_INVALID);
+
+ /* Send the signal */
+ dbus_connection_send (bus, message, NULL);
+
+ /* Free the signal now we have finished with it */
+ dbus_message_unref (message);
+
+ /* Return TRUE to tell the event loop we want to be called again */
+ return true;
+} \ No newline at end of file
diff --git a/common/media-server-drm.c b/common/media-server-drm.c
new file mode 100755
index 0000000..68609f8
--- /dev/null
+++ b/common/media-server-drm.c
@@ -0,0 +1,131 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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.
+ *
+ */
+
+/**
+ * This file defines api utilities of contents manager engines.
+ *
+ * @file media-server-drm.c
+ * @author Yong Yeon Kim(yy9875.kim@samsung.com)
+ * @version 1.0
+ * @brief This file implements main database operation.
+ */
+#include <drm_client_types.h>
+#include <drm_client.h>
+
+#include "media-server-global.h"
+#include "media-server-inotify.h"
+#include "media-server-drm.h"
+
+bool
+ms_is_drm_file(const char *path)
+{
+ int ret;
+ drm_bool_type_e is_drm_file = DRM_UNKNOWN;
+
+ ret = drm_is_drm_file(path,&is_drm_file);
+ if(DRM_RETURN_SUCCESS == ret && DRM_TRUE == is_drm_file)
+ return true;
+
+ return false;
+}
+
+int
+ms_get_mime_in_drm_info(const char *path, char *mime)
+{
+ int ret;
+ drm_content_info_s contentInfo;
+
+ if (path == NULL || mime == NULL)
+ return MS_ERR_ARG_INVALID;
+
+ memset(&contentInfo,0x0,sizeof(drm_content_info_s));
+ ret = drm_get_content_info(path, &contentInfo);
+ if (ret != DRM_RETURN_SUCCESS) {
+ MS_DBG_ERR("drm_svc_get_content_info() fails. ");
+ return MS_ERR_DRM_GET_INFO_FAIL;
+ }
+
+ strncpy(mime, contentInfo.mime_type, 100);
+ MS_DBG("DRM contentType : %s", contentInfo.mime_type);
+ MS_DBG("DRM mime : %s", mime);
+
+ return MS_ERR_NONE;
+}
+
+int
+ms_drm_register(const char* path)
+{
+ MS_DBG("THIS IS DRM FILE");
+ int res = MS_ERR_NONE;
+ int ret;
+
+// ms_inoti_add_ignore_file(path);
+ ret = drm_process_request(DRM_REQUEST_TYPE_REGISTER_FILE, (void *)path, NULL);
+ if (ret != DRM_RETURN_SUCCESS) {
+ MS_DBG_ERR("drm_svc_register_file error : %d", ret);
+ res = MS_ERR_DRM_REGISTER_FAIL;
+ }
+
+ return res;
+}
+
+void
+ms_drm_unregister(const char* path)
+{
+ int ret;
+ ms_ignore_file_info *ignore_file;
+
+ ret = drm_process_request(DRM_REQUEST_TYPE_UNREGISTER_FILE, (void *)path, NULL);
+ if (ret != DRM_RETURN_SUCCESS)
+ MS_DBG_ERR("drm_process_request error : %d", ret);
+
+ ignore_file = ms_inoti_find_ignore_file(path);
+ if (ignore_file != NULL)
+ ms_inoti_delete_ignore_file(ignore_file);
+}
+
+void
+ms_drm_unregister_all(void)
+{
+ if (drm_process_request(DRM_REQUEST_TYPE_UNREGISTER_ALL_FILES , NULL, NULL) == DRM_RETURN_SUCCESS)
+ MS_DBG("drm_svc_unregister_all_contents OK");
+}
+
+bool
+ms_drm_insert_ext_memory(void)
+{
+ MS_DBG("");
+ if (drm_process_request(DRM_REQUEST_TYPE_INSERT_EXT_MEMORY, NULL, NULL) != DRM_RETURN_SUCCESS)
+ return false;
+
+ return true;
+}
+
+bool
+ms_drm_extract_ext_memory(void)
+{
+ MS_DBG("");
+ if (drm_process_request(DRM_REQUEST_TYPE_EXTRACT_EXT_MEMORY , NULL, NULL) != DRM_RETURN_SUCCESS)
+ return false;
+
+ return true;
+}
+
diff --git a/common/media-server-external-storage.c b/common/media-server-external-storage.c
index 489cbde..688807f 100755
--- a/common/media-server-external-storage.c
+++ b/common/media-server-external-storage.c
@@ -1,34 +1,53 @@
+/*
+ * Media Server
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Yong Yeon Kim <yy9875.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
+ *
+ * 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.
+ *
+ */
+
#include <vconf.h>
-#include <drm-service.h>
#include "media-server-utils.h"
#include "media-server-inotify.h"
#include "media-server-external-storage.h"
+#include "media-server-drm.h"
#define MMC_INFO_SIZE 256
-#define DIR_NUM 5
int mmc_state = 0;
-extern int current_usb_mode;
extern GAsyncQueue *scan_queue;
+char default_path[][MS_FILE_NAME_LEN_MAX + 1] = {
+ {"/opt/storage/sdcard/Images"},
+ {"/opt/storage/sdcard/Videos"},
+ {"/opt/storage/sdcard/Sounds"},
+ {"/opt/storage/sdcard/Downloads"},
+ {"/opt/storage/sdcard/Camera"}
+};
+
+#define DIR_NUM ((int)(sizeof(default_path)/sizeof(default_path[0])))
+
void
ms_make_default_path_mmc(void)
{
- MS_DBG_START();
-
- int i = 0;
+ int i = 0;
int ret = 0;
DIR *dp = NULL;
-
- char default_path[DIR_NUM][MS_FILE_NAME_LEN_MAX + 1] = {
- {"/opt/storage/sdcard/Images"},
- {"/opt/storage/sdcard/Videos"},
- {"/opt/storage/sdcard/Music"},
- {"/opt/storage/sdcard/Downloads"},
- {"/opt/storage/sdcard/Camera shots"}
- };
-
+
for (i = 0; i < DIR_NUM; ++i) {
dp = opendir(default_path[i]);
if (dp == NULL) {
@@ -42,48 +61,41 @@ ms_make_default_path_mmc(void)
closedir(dp);
}
}
-
- MS_DBG_END();
-}
+}
int
_ms_update_mmc_info(const char *cid)
{
- MS_DBG_START();
- bool res;
+ bool res;
if (cid == NULL) {
- MS_DBG("Parameters are invalid");
+ MS_DBG_ERR("Parameters are invalid");
return MS_ERR_ARG_INVALID;
}
res = ms_config_set_str(MS_MMC_INFO_KEY, cid);
if (!res) {
- MS_DBG("fail to get MS_MMC_INFO_KEY");
+ MS_DBG_ERR("fail to get MS_MMC_INFO_KEY");
return MS_ERR_VCONF_SET_FAIL;
}
- MS_DBG_END();
-
- return MS_ERR_NONE;
+ return MS_ERR_NONE;
}
bool
_ms_check_mmc_info(const char *cid)
{
- MS_DBG_START();
-
- char pre_mmc_info[MMC_INFO_SIZE] = { 0 };
+ char pre_mmc_info[MMC_INFO_SIZE] = { 0 };
bool res = false;
if (cid == NULL) {
- MS_DBG("Parameters are invalid");
+ MS_DBG_ERR("Parameters are invalid");
return false;
}
res = ms_config_get_str(MS_MMC_INFO_KEY, pre_mmc_info);
if (!res) {
- MS_DBG("fail to get MS_MMC_INFO_KEY");
+ MS_DBG_ERR("fail to get MS_MMC_INFO_KEY");
return false;
}
@@ -93,8 +105,7 @@ _ms_check_mmc_info(const char *cid)
if (strcmp(pre_mmc_info, cid) == 0) {
return true;
}
-
- MS_DBG_END();
+
return false;
}
@@ -103,11 +114,9 @@ _get_contents(const char *filename, char *buf)
{
FILE *fp;
- MS_DBG("%s", filename);
-
- fp = fopen(filename, "rt");
+ fp = fopen(filename, "rt");
if (fp == NULL) {
- MS_DBG("fp is NULL");
+ MS_DBG_ERR("fp is NULL. file name : %s", filename);
return MS_ERR_FILE_OPEN_FAIL;
}
fgets(buf, 255, fp);
@@ -121,9 +130,7 @@ _get_contents(const char *filename, char *buf)
int
_ms_get_mmc_info(char *cid)
{
- MS_DBG_START();
-
- int i;
+ int i;
int j;
int len;
int err = -1;
@@ -140,21 +147,18 @@ _ms_get_mmc_info(char *cid)
for (j = 1; j < 3; j++) {
len = snprintf(mmcpath, MS_FILE_PATH_LEN_MAX, "/sys/class/mmc_host/mmc%d/", j);
if (len < 0) {
- MS_DBG("FAIL : snprintf");
+ MS_DBG_ERR("FAIL : snprintf");
return MS_ERR_UNKNOWN_ERROR;
}
else {
mmcpath[len] = '\0';
}
- dp = opendir(mmcpath);
-
+ dp = opendir(mmcpath);
if (dp == NULL) {
- MS_DBG("dp is NULL");
- {
- return MS_ERR_DIR_OPEN_FAIL;
- }
- }
+ MS_DBG_ERR("dp is NULL");
+ return MS_ERR_DIR_OPEN_FAIL;
+ }
while (!readdir_r(dp, &ent, &res)) {
/*end of read dir*/
@@ -178,7 +182,7 @@ _ms_get_mmc_info(char *cid)
/*check serial */
err = ms_strappend(path, sizeof(path), "%s%s/cid", mmcpath, ent.d_name);
if (err < 0) {
- MS_DBG("FAIL : ms_strappend");
+ MS_DBG_ERR("ms_strappend error : %d", err);
continue;
}
@@ -186,8 +190,7 @@ _ms_get_mmc_info(char *cid)
break;
else
getdata = true;
- MS_DBG("MMC serial : %s", cid);
- }
+ }
}
}
closedir(dp);
@@ -197,8 +200,6 @@ _ms_get_mmc_info(char *cid)
}
}
- MS_DBG_END();
-
return MS_ERR_NONE;
}
@@ -213,8 +214,7 @@ ms_get_mmc_state(void)
/*check it's same mmc */
if (_ms_check_mmc_info(cid)) {
- MS_DBG("Detected same MMC! but needs to update the changes...");
- ret = MS_SCAN_PART;
+ ret = MS_SCAN_PART;
}
return ret;
@@ -231,8 +231,8 @@ ms_update_mmc_info(void)
err = _ms_update_mmc_info(cid);
/*Active flush */
- if (malloc_trim(0))
- MS_DBG("SUCCESS malloc_trim");
+ if (!malloc_trim(0))
+ MS_DBG_ERR("malloc_trim is failed");
return err;
}
@@ -243,65 +243,59 @@ ms_mmc_removed_handler(void)
ms_scan_data_t *mmc_scan_data;
mmc_scan_data = malloc(sizeof(ms_scan_data_t));
-
- mmc_scan_data->scan_type = MS_SCAN_VALID;
- mmc_scan_data->db_type = MS_MMC;
+
+ mmc_scan_data->path = strdup(MS_ROOT_PATH_EXTERNAL);
+ mmc_scan_data->scan_type = MS_SCAN_INVALID;
+ mmc_scan_data->storage_type = MS_STORATE_EXTERNAL;
g_async_queue_push(scan_queue, GINT_TO_POINTER(mmc_scan_data));
/*remove added watch descriptors */
- ms_inoti_remove_watch_recursive(MS_MMC_ROOT_PATH);
+ ms_inoti_remove_watch_recursive(MS_ROOT_PATH_EXTERNAL);
ms_inoti_delete_mmc_ignore_file();
- if (drm_svc_extract_ext_memory() == DRM_RESULT_SUCCESS)
- MS_DBG("drm_svc_extract_ext_memory OK");
+ if (!ms_drm_extract_ext_memory())
+ MS_DBG_ERR("ms_drm_extract_ext_memory failed");
}
void
ms_mmc_vconf_cb(void *data)
{
- MS_DBG_START();
-
- int status = 0;
+ int status = 0;
ms_scan_data_t *scan_data;
-
- MS_DBG("Received MMC noti from vconf : %d", status);
-
+
if (!ms_config_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &status)) {
- MS_DBG("........Get VCONFKEY_SYSMAN_MMC_STATUS failed........");
+ MS_DBG_ERR("Get VCONFKEY_SYSMAN_MMC_STATUS failed.");
}
- MS_DBG("ms_config_get_int : VCONFKEY_SYSMAN_MMC_STATUS END = %d",
- status);
+ MS_DBG("VCONFKEY_SYSMAN_MMC_STATUS :%d", status);
mmc_state = status;
- if (current_usb_mode != VCONFKEY_USB_STORAGE_STATUS_OFF)
- return;
-
- if (mmc_state == VCONFKEY_SYSMAN_MMC_REMOVED ||
+ if (mmc_state == VCONFKEY_SYSMAN_MMC_REMOVED ||
mmc_state == VCONFKEY_SYSMAN_MMC_INSERTED_NOT_MOUNTED) {
ms_mmc_removed_handler();
}
else if (mmc_state == VCONFKEY_SYSMAN_MMC_MOUNTED) {
scan_data = malloc(sizeof(ms_scan_data_t));
- if (drm_svc_insert_ext_memory() == DRM_RESULT_SUCCESS)
- MS_DBG("drm_svc_insert_ext_memory OK");
+ if (!ms_drm_insert_ext_memory())
+ MS_DBG_ERR("ms_drm_insert_ext_memory failed");
ms_make_default_path_mmc();
-
+
+ ms_inoti_add_watch_all_directory(MS_STORATE_EXTERNAL);
+
+ scan_data->path = strdup(MS_ROOT_PATH_EXTERNAL);
scan_data->scan_type = ms_get_mmc_state();
- scan_data->db_type = MS_MMC;
+ scan_data->storage_type = MS_STORATE_EXTERNAL;
MS_DBG("ms_get_mmc_state is %d", scan_data->scan_type);
g_async_queue_push(scan_queue, GINT_TO_POINTER(scan_data));
}
- MS_DBG_END();
-
return;
}
diff --git a/common/media-server-inotify-internal.c b/common/media-server-inotify-internal.c
index 3fb94ce..6048634 100755
--- a/common/media-server-inotify-internal.c
+++ b/common/media-server-inotify-internal.c
@@ -32,7 +32,7 @@
int inoti_fd;
ms_create_file_info *latest_create_file;
-extern ms_dir_data *first_inoti_node;
+extern ms_inoti_dir_data *first_inoti_node;
int _ms_inoti_add_create_file_list(int wd, char *name)
{
@@ -68,8 +68,8 @@ int _ms_inoti_delete_create_file_list(ms_create_file_info *node)
latest_create_file = node->previous;
}
- free(node->name);
- free(node);
+ MS_SAFE_FREE(node->name);
+ MS_SAFE_FREE(node);
return MS_ERR_NONE;
}
@@ -93,7 +93,7 @@ ms_create_file_info *_ms_inoti_find_create_file_list(int wd, char *name)
bool _ms_inoti_get_full_path(int wd, char *name, char *path, int sizeofpath)
{
int err;
- ms_dir_data *node = NULL;
+ ms_inoti_dir_data *node = NULL;
if (name == NULL || path == NULL)
return false;
@@ -102,19 +102,17 @@ bool _ms_inoti_get_full_path(int wd, char *name, char *path, int sizeofpath)
node = first_inoti_node;
while (node->next != NULL) {
if (wd == node->wd) {
- MS_DBG("find parent directory: %s", node->name);
break;
}
node = node->next;
}
} else {
- MS_DBG("first_node is NULL");
return false;
}
err = ms_strappend(path, sizeofpath, "%s/%s", node->name, name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strappend error : %d", err);
+ MS_DBG_ERR("ms_strappend error : %d", err);
return false;
}
MS_DBG("full path : %s", path);
diff --git a/common/media-server-inotify.c b/common/media-server-inotify.c
index 5a00039..531d1a8 100755
--- a/common/media-server-inotify.c
+++ b/common/media-server-inotify.c
@@ -27,18 +27,21 @@
* @version 1.0
* @brief
*/
+#include <vconf.h>
+
#include "media-server-utils.h"
#include "media-server-db-svc.h"
#include "media-server-inotify-internal.h"
#include "media-server-inotify.h"
+extern bool power_off;
extern int inoti_fd;
-ms_dir_data *first_inoti_node;
+extern int mmc_state;
+ms_inoti_dir_data *first_inoti_node;
ms_ignore_file_info *latest_ignore_file;
-int _ms_inoti_directory_scan_and_register_file(void *handle, char *dir_path)
+int _ms_inoti_directory_scan_and_register_file(void **handle, char *dir_path)
{
- MS_DBG_START();
struct dirent ent;
struct dirent *res = NULL;
DIR *dp = NULL;
@@ -50,7 +53,7 @@ int _ms_inoti_directory_scan_and_register_file(void *handle, char *dir_path)
dp = opendir(dir_path);
if (dp == NULL) {
- MS_DBG("Fail to open dir");
+ MS_DBG_ERR("Fail to open dir %s", dir_path);
return MS_ERR_DIR_OPEN_FAIL;
}
@@ -65,7 +68,7 @@ int _ms_inoti_directory_scan_and_register_file(void *handle, char *dir_path)
err = ms_strappend(path, sizeof(path), "%s/%s", dir_path, ent.d_name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strappend error : %d", err);
+ MS_DBG_ERR("ms_strappend error : %d", err);
continue;
}
@@ -73,10 +76,9 @@ int _ms_inoti_directory_scan_and_register_file(void *handle, char *dir_path)
if (ent.d_type == DT_DIR) {
_ms_inoti_directory_scan_and_register_file(handle, path);
} else {
-
err = ms_register_file(handle, path, NULL);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_register_file error : %d", err);
+ MS_DBG_ERR("ms_register_file error : %d", err);
continue;
}
}
@@ -84,20 +86,11 @@ int _ms_inoti_directory_scan_and_register_file(void *handle, char *dir_path)
closedir(dp);
- MS_DBG_END();
-
return 0;
}
-int _ms_inoti_scan_renamed_folder(void *handle, char *org_path, char *chg_path)
+int _ms_inoti_scan_renamed_folder(void **handle, char *org_path, char *chg_path)
{
- if (org_path == NULL || chg_path == NULL) {
- MS_DBG("Parameter is wrong");
- return MS_ERR_ARG_INVALID;
- }
-
- MS_DBG_START();
-
int err = -1;
struct dirent ent;
struct dirent *res = NULL;
@@ -105,12 +98,17 @@ int _ms_inoti_scan_renamed_folder(void *handle, char *org_path, char *chg_path)
DIR *dp = NULL;
char path_from[MS_FILE_PATH_LEN_MAX] = { 0 };
char path_to[MS_FILE_PATH_LEN_MAX] = { 0 };
- ms_store_type_t src_storage = 0;
- ms_store_type_t des_storage = 0;
+ ms_storage_type_t src_storage = 0;
+ ms_storage_type_t des_storage = 0;
+
+ if (org_path == NULL || chg_path == NULL) {
+ MS_DBG_ERR("Parameter is wrong");
+ return MS_ERR_ARG_INVALID;
+ }
dp = opendir(chg_path);
if (dp == NULL) {
- MS_DBG("Fail to open dir");
+ MS_DBG_ERR("Fail to open dir %s", chg_path);
return MS_ERR_DIR_OPEN_FAIL;
} else {
MS_DBG("Modify added watch");
@@ -126,13 +124,13 @@ int _ms_inoti_scan_renamed_folder(void *handle, char *org_path, char *chg_path)
err = ms_strappend(path_from, sizeof(path_from), "%s/%s", org_path, ent.d_name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strappend error : %d", err);
+ MS_DBG_ERR("ms_strappend error : %d", err);
continue;
}
err = ms_strappend(path_to, sizeof(path_to), "%s/%s", chg_path, ent.d_name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strappend error : %d", err);
+ MS_DBG_ERR("ms_strappend error : %d", err);
continue;
}
@@ -143,21 +141,21 @@ int _ms_inoti_scan_renamed_folder(void *handle, char *org_path, char *chg_path)
/*in case of file */
if (ent.d_type == DT_REG) {
- src_storage = ms_get_store_type_by_full(path_from);
- des_storage = ms_get_store_type_by_full(path_to);
+ src_storage = ms_get_storage_type_by_full(path_from);
+ des_storage = ms_get_storage_type_by_full(path_to);
if ((src_storage != MS_ERR_INVALID_FILE_PATH)
&& (des_storage != MS_ERR_INVALID_FILE_PATH))
ms_move_item(handle, src_storage, des_storage, path_from, path_to);
else {
- MS_DBG("ms_get_store_type_by_full error");
+ MS_DBG_ERR("src_storage : %s", src_storage);
+ MS_DBG_ERR("des_storage : %s", des_storage);
}
}
}
closedir(dp);
- MS_DBG_END();
return 0;
}
@@ -165,6 +163,10 @@ int ms_inoti_add_ignore_file(const char *path)
{
ms_ignore_file_info *new_node;
+ new_node = ms_inoti_find_ignore_file(path);
+ if (new_node != NULL)
+ return MS_ERR_NONE;
+
new_node = malloc(sizeof(ms_ignore_file_info));
new_node->path = strdup(path);
@@ -185,7 +187,6 @@ int ms_inoti_add_ignore_file(const char *path)
int ms_inoti_delete_ignore_file(ms_ignore_file_info * delete_node)
{
- MS_DBG("");
if (delete_node->previous != NULL)
delete_node->previous->next = delete_node->next;
if (delete_node->next != NULL)
@@ -195,10 +196,9 @@ int ms_inoti_delete_ignore_file(ms_ignore_file_info * delete_node)
latest_ignore_file = delete_node->previous;
}
- free(delete_node->path);
- free(delete_node);
+ MS_SAFE_FREE(delete_node->path);
+ MS_SAFE_FREE(delete_node);
- MS_DBG("");
return MS_ERR_NONE;
}
@@ -221,7 +221,6 @@ ms_ignore_file_info *ms_inoti_find_ignore_file(const char *path)
void ms_inoti_delete_mmc_ignore_file(void)
{
- MS_DBG_START();
ms_ignore_file_info *prv_node = NULL;
ms_ignore_file_info *cur_node = NULL;
ms_ignore_file_info *del_node = NULL;
@@ -229,7 +228,7 @@ void ms_inoti_delete_mmc_ignore_file(void)
if (latest_ignore_file != NULL) {
cur_node = latest_ignore_file;
while (cur_node != NULL) {
- if (strstr(cur_node->path, MS_MMC_ROOT_PATH) != NULL) {
+ if (strstr(cur_node->path, MS_ROOT_PATH_EXTERNAL) != NULL) {
if (prv_node != NULL) {
prv_node->previous = cur_node->previous;
}
@@ -245,17 +244,14 @@ void ms_inoti_delete_mmc_ignore_file(void)
cur_node = cur_node->previous;
if (del_node != NULL) {
- free(del_node->path);
- free(del_node);
- del_node = NULL;
+ MS_SAFE_FREE(del_node->path);
+ MS_SAFE_FREE(del_node);
}
}
}
/*active flush */
malloc_trim(0);
-
- MS_DBG_END();
}
int ms_inoti_init(void)
@@ -263,7 +259,7 @@ int ms_inoti_init(void)
inoti_fd = inotify_init();
if (inoti_fd < 0) {
perror("inotify_init");
- MS_DBG("inotify_init failed");
+ MS_DBG_ERR("inotify_init failed");
return inoti_fd;
}
@@ -272,14 +268,12 @@ int ms_inoti_init(void)
void ms_inoti_add_watch(char *path)
{
- MS_DBG("");
- ms_dir_data *current_dir = NULL;
- ms_dir_data *prv_node = NULL;
- ms_dir_data *last_node = NULL;
+ ms_inoti_dir_data *current_dir = NULL;
+ ms_inoti_dir_data *prv_node = NULL;
+ ms_inoti_dir_data *last_node = NULL;
/*find same folder */
if (first_inoti_node != NULL) {
- MS_DBG("find same folder");
last_node = first_inoti_node;
while (last_node != NULL) {
if (strcmp(path, last_node->name) == 0) {
@@ -291,17 +285,13 @@ void ms_inoti_add_watch(char *path)
}
}
- MS_DBG("start add watch");
-
/*there is no same path. */
- current_dir = malloc(sizeof(ms_dir_data));
+ current_dir = malloc(sizeof(ms_inoti_dir_data));
current_dir->wd = inotify_add_watch(inoti_fd, path,
IN_CLOSE_WRITE | IN_CREATE | IN_DELETE |
IN_MOVED_FROM | IN_MOVED_TO);
if (current_dir->wd > 0) {
- MS_DBG("wd : %d", current_dir->wd);
-
current_dir->name = strdup(path);
current_dir->next = NULL;
@@ -309,32 +299,32 @@ void ms_inoti_add_watch(char *path)
first_inoti_node = current_dir;
} else {
/*if next node of current node is NULL, it is the lastest node. */
- MS_DBG("last_node : %s", prv_node->name);
prv_node->next = current_dir;
}
-
MS_DBG("add watch : %s", path);
} else {
- MS_DBG("wd : %d", current_dir->wd);
- free(current_dir);
+ MS_DBG_ERR("inotify_add_watch failed");
+ MS_SAFE_FREE(current_dir);
}
}
-int ms_inoti_add_watch_with_node(ms_dir_scan_info * const node)
+int ms_inoti_add_watch_with_node(ms_dir_scan_info * const node, int depth)
{
+ int err;
char full_path[MS_FILE_PATH_LEN_MAX] = { 0 };
- ms_dir_data *current_dir = NULL;
- ms_dir_data *prv_node = NULL;
- ms_dir_data *last_node = NULL;
+ ms_inoti_dir_data *current_dir = NULL;
+ ms_inoti_dir_data *prv_node = NULL;
+ ms_inoti_dir_data *last_node = NULL;
- ms_get_full_path_from_node(node, full_path);
+ err = ms_get_full_path_from_node(node, full_path, depth);
+ if (err != MS_ERR_NONE)
+ return MS_ERR_INVALID_DIR_PATH;
/*find same folder */
if (first_inoti_node != NULL) {
last_node = first_inoti_node;
while (last_node != NULL) {
if (strcmp(full_path, last_node->name) == 0) {
- MS_DBG("watch is already added: %s", full_path);
return MS_ERR_NONE;
}
prv_node = last_node;
@@ -343,27 +333,24 @@ int ms_inoti_add_watch_with_node(ms_dir_scan_info * const node)
}
/*there is no same path. */
- current_dir = malloc(sizeof(ms_dir_data));
+ current_dir = malloc(sizeof(ms_inoti_dir_data));
current_dir->wd = inotify_add_watch(inoti_fd, full_path,
IN_CLOSE_WRITE | IN_CREATE | IN_DELETE |
IN_MOVED_FROM | IN_MOVED_TO);
if( current_dir->wd > 0) {
- MS_DBG("wd : %d", current_dir->wd);
current_dir->name = strdup(full_path);
current_dir->next = NULL;
- current_dir->db_updated = false;
if (first_inoti_node == NULL) {
first_inoti_node = current_dir;
} else {
/*if next node of current node is NULL, it is the lastest node. */
- MS_DBG("last_node : %s", prv_node->name);
prv_node->next = current_dir;
}
MS_DBG("add watch : %s", full_path);
} else {
- MS_DBG("wd : %d", current_dir->wd);
- free(current_dir);
+ MS_DBG_ERR("inotify_add_watch failed : %d", current_dir->wd);
+ MS_SAFE_FREE(current_dir);
}
return MS_ERR_NONE;
@@ -371,10 +358,9 @@ int ms_inoti_add_watch_with_node(ms_dir_scan_info * const node)
void ms_inoti_remove_watch_recursive(char *path)
{
- MS_DBG_START();
- ms_dir_data *prv_node = NULL;
- ms_dir_data *cur_node = NULL;
- ms_dir_data *del_node = NULL;
+ ms_inoti_dir_data *prv_node = NULL;
+ ms_inoti_dir_data *cur_node = NULL;
+ ms_inoti_dir_data *del_node = NULL;
if (first_inoti_node != NULL) {
cur_node = first_inoti_node;
@@ -397,23 +383,20 @@ void ms_inoti_remove_watch_recursive(char *path)
cur_node = cur_node->next;
if (del_node != NULL) {
- free(del_node->name);
- free(del_node);
- del_node = NULL;
+ MS_SAFE_FREE(del_node->name);
+ MS_SAFE_FREE(del_node);
}
}
}
/*active flush */
malloc_trim(0);
-
- MS_DBG_END();
}
void ms_inoti_remove_watch(char *path)
{
- ms_dir_data *del_node = NULL;
- ms_dir_data *prv_node = NULL;
+ ms_inoti_dir_data *del_node = NULL;
+ ms_inoti_dir_data *prv_node = NULL;
if (strcmp(first_inoti_node->name, path) == 0) {
del_node = first_inoti_node;
@@ -431,8 +414,8 @@ void ms_inoti_remove_watch(char *path)
prv_node->next = del_node->next;
}
/*free deleted node */
- free(del_node->name);
- free(del_node);
+ MS_SAFE_FREE(del_node->name);
+ MS_SAFE_FREE(del_node);
break;
}
prv_node = del_node;
@@ -448,7 +431,7 @@ void ms_inoti_remove_watch(char *path)
void ms_inoti_modify_watch(char *path_from, char *path_to)
{
bool find = false;
- ms_dir_data *mod_node;
+ ms_inoti_dir_data *mod_node;
if (strcmp(first_inoti_node->name, path_from) == 0) {
mod_node = first_inoti_node;
@@ -459,12 +442,9 @@ void ms_inoti_modify_watch(char *path_from, char *path_to)
while (mod_node != NULL) {
/*find previous directory*/
if (strcmp(path_from, mod_node->name) == 0) {
- MS_DBG("find change node: %s", mod_node->name);
- MS_DBG("new name : %s", path_to);
/*change path of directory*/
/*free previous name of node */
- free(mod_node->name);
- mod_node->name = NULL;
+ MS_SAFE_FREE(mod_node->name);
/*add new name */
mod_node->name = strdup(path_to);
@@ -482,7 +462,6 @@ void ms_inoti_modify_watch(char *path_from, char *path_to)
/*this is new directory*/
if (find == false) {
- MS_DBG("This is new directory");
ms_inoti_add_watch(path_to);
}
}
@@ -500,13 +479,13 @@ gboolean ms_inoti_thread(void *data)
char buffer[INOTI_BUF_LEN] = { 0 };
char path[MS_FILE_PATH_LEN_MAX] = { 0 };
struct inotify_event *event;
- void *handle = NULL;
+ void **handle = NULL;
MS_DBG("START INOTIFY");
err = ms_connect_db(&handle);
if (err != MS_ERR_NONE) {
- MS_DBG(" INOTIFY : sqlite3_open: ret = %d", err);
+ MS_DBG_ERR(" INOTIFY : sqlite3_open: ret = %d", err);
return false;
}
@@ -515,16 +494,23 @@ gboolean ms_inoti_thread(void *data)
length = read(inoti_fd, buffer, sizeof(buffer) - 1);
if (length < 0 || length > sizeof(buffer)) { /*this is error */
- MS_DBG("fail read");
- perror("read");
continue;
}
while (i < length && i < INOTI_BUF_LEN) {
+ /*check poweroff status*/
+ if(power_off) {
+ MS_DBG("power off");
+ goto POWER_OFF;
+ }
+
/*it's possible that ums lets reset phone data... */
event = (struct inotify_event *)&buffer[i];
- if(strcmp(event->name, "_FILEOPERATION_END") == 0) {
+ if (strcmp(event->name, POWEROFF_DIR_NAME) == 0) {
+ MS_DBG("power off");
+ goto POWER_OFF;
+ } else if(strcmp(event->name, "_FILEOPERATION_END") == 0) {
/*file operation is end*/
/* announce db is updated*/
ms_set_db_status(MS_DB_UPDATED);
@@ -532,11 +518,10 @@ gboolean ms_inoti_thread(void *data)
goto NEXT_INOTI_EVENT;
} else if (event->name[0] == '.') {
/*event of hidden folder is ignored */
- MS_DBG("Ignore : First character of event->name includes invalid character");
goto NEXT_INOTI_EVENT;
} else if (event->wd < 1) {
/*this is error */
- MS_DBG("invalid wd : %d", event->wd);
+ MS_DBG_ERR("invalid wd : %d", event->wd);
goto NEXT_INOTI_EVENT;
}
@@ -545,14 +530,14 @@ gboolean ms_inoti_thread(void *data)
/*Add for fixing prevent defect 2011-02-15 */
err = ms_strcopy(name, sizeof(name), "%s", event->name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strcopy error : %d", err);
+ MS_DBG_ERR("ms_strcopy error : %d", err);
goto NEXT_INOTI_EVENT;
}
/*get full path of file or directory */
res = _ms_inoti_get_full_path(event->wd, name, path, sizeof(path));
if (res == false) {
- MS_DBG("_ms_inoti_get_full_path error");
+ MS_DBG_ERR("_ms_inoti_get_full_path error");
goto NEXT_INOTI_EVENT;
}
@@ -568,7 +553,7 @@ gboolean ms_inoti_thread(void *data)
err = ms_strcopy(prev_name, sizeof(prev_name), "%s", event->name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strcopy fail");
+ MS_DBG_ERR("ms_strcopy fail");
goto NEXT_INOTI_EVENT;
}
}
@@ -579,7 +564,7 @@ gboolean ms_inoti_thread(void *data)
res = _ms_inoti_get_full_path(prev_wd, prev_name, full_path_from, sizeof(full_path_from));
if (res == false) {
- MS_DBG("_ms_inoti_get_full_path error");
+ MS_DBG_ERR("_ms_inoti_get_full_path error");
goto NEXT_INOTI_EVENT;
}
/*enable bundle commit*/
@@ -613,7 +598,7 @@ gboolean ms_inoti_thread(void *data)
err = ms_delete_item(handle, path);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_media_db_delete fail error : %d", err);
+ MS_DBG_ERR("ms_media_db_delete fail error : %d", err);
}
}
else if (event->mask & IN_MOVED_TO) {
@@ -621,7 +606,7 @@ gboolean ms_inoti_thread(void *data)
err = ms_register_file(handle, path, NULL);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_register_file error : %d", err);
+ MS_DBG_ERR("ms_register_file error : %d", err);
}
}
else if (event->mask & IN_CREATE) {
@@ -634,43 +619,36 @@ gboolean ms_inoti_thread(void *data)
err = ms_delete_item(handle, path);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_media_db_delete error : %d", err);
+ MS_DBG_ERR("ms_media_db_delete error : %d", err);
}
}
else if (event->mask & IN_CLOSE_WRITE) {
MS_DBG("CLOSE_WRITE");
-
ms_create_file_info *node;
- node = _ms_inoti_find_create_file_list (event->wd, name);
+ node = _ms_inoti_find_create_file_list (event->wd, name);
if (node != NULL || ((prev_mask & IN_ISDIR) & IN_CREATE)) {
-
err = ms_register_file(handle, path, NULL);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_register_file error : %d", err);
+ MS_DBG_ERR("ms_register_file error : %d", err);
}
if (node != NULL)
_ms_inoti_delete_create_file_list(node);
}
else {
- /*in case of replace */
- MS_DBG("This case is replacement or changing meta data.");
ms_ignore_file_info *ignore_file;
ignore_file = ms_inoti_find_ignore_file(path);
if (ignore_file == NULL) {
- err = ms_delete_item(handle, path);
- if (err != MS_ERR_NONE) {
- MS_DBG("ms_media_db_delete error : %d", err);
- }
- /*update = delete + regitster */
- err = ms_register_file(handle, path, NULL);
+ /*in case of replace */
+ MS_DBG("This case is replacement or changing meta data.");
+ err = ms_refresh_item(handle, path);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_register_file error : %d", err);
+ MS_DBG_ERR("ms_refresh_item error : %d", err);
goto NEXT_INOTI_EVENT;
}
} else {
- MS_DBG(" Ignore this file");
+ /*This is ignore case*/
}
}
prev_mask = prev_wd = 0; /*reset */
@@ -678,7 +656,7 @@ gboolean ms_inoti_thread(void *data)
}
} /*end of one event */
else {
- MS_DBG("Event length is zero or over MS_FILE_NAME_LEN_MAX");
+ /*This is ignore case*/
if (event->mask & IN_IGNORED) {
MS_DBG("This case is ignored");
}
@@ -686,24 +664,218 @@ gboolean ms_inoti_thread(void *data)
NEXT_INOTI_EVENT: ;
i += INOTI_EVENT_SIZE + event->len;
}
+
/*Active flush */
- sqlite3_release_memory(-1);
malloc_trim(0);
}
-
+POWER_OFF:
ms_inoti_remove_watch(MS_DB_UPDATE_NOTI_PATH);
- ms_inoti_remove_watch_recursive(MS_PHONE_ROOT_PATH);
- ms_inoti_remove_watch_recursive(MS_MMC_ROOT_PATH);
+ ms_inoti_remove_watch_recursive(MS_ROOT_PATH_INTERNAL);
+ ms_inoti_remove_watch_recursive(MS_ROOT_PATH_EXTERNAL);
close(inoti_fd);
- err = ms_disconnect_db(handle);
- if (err != MS_ERR_NONE) {
- MS_DBG("ms_media_db_close error : %d", err);
- return false;
- }
- MS_DBG("Disconnect MEDIA DB");
+ if (handle) ms_disconnect_db(&handle);
return false;
}
+
+int _ms_get_path_from_current_node(int find_folder,
+ ms_dir_scan_info **current_root,
+ ms_dir_scan_info **real_root, char **path, int *depth)
+{
+ int err = MS_ERR_NONE;
+ char get_path[FAT_FILEPATH_LEN_MAX] = { 0 };
+
+ if (find_folder == 0) {
+ if ((*current_root)->Rbrother != NULL) {
+ *current_root = (*current_root)->Rbrother;
+ } else {
+ while (1) {
+ if ((*current_root)->parent == *real_root
+ || (*current_root)->parent == NULL) {
+ *current_root = NULL;
+ *depth = 0;
+ return MS_ERR_NONE;
+ } else if ((*current_root)->parent->Rbrother == NULL) {
+ *current_root = (*current_root)->parent;
+ (*depth) --;
+ } else {
+ *current_root = (*current_root)->parent->Rbrother;
+ (*depth) --;
+ break;
+ }
+ }
+ }
+ (*depth) --;
+ }
+
+ err = ms_get_full_path_from_node(*current_root, get_path, *depth);
+ if (err != MS_ERR_NONE)
+ return MS_ERR_INVALID_DIR_PATH;
+
+ *path = strdup(get_path);
+
+ return err;
+}
+
+void ms_inoti_add_watch_all_directory(ms_storage_type_t storage_type)
+{
+ int err = 0;
+ int depth = 0;
+ int find_folder = 0;
+ char get_path[MS_FILE_PATH_LEN_MAX] = { 0 };
+ char *path = NULL;
+ DIR *dp = NULL;
+ struct dirent entry;
+ struct dirent *result;
+
+ ms_dir_scan_info *root;
+ ms_dir_scan_info *tmp_root = NULL;
+ ms_dir_scan_info *cur_node = NULL; /*current node*/
+ ms_dir_scan_info *prv_node = NULL; /*previous node*/
+ ms_dir_scan_info *next_node = NULL;
+
+ root = malloc(sizeof(ms_dir_scan_info));
+ if (root == NULL) {
+ MS_DBG_ERR("malloc fail");
+ return;
+ }
+
+ if (storage_type == MS_STORAGE_INTERNAL)
+ root->name = strdup(MS_ROOT_PATH_INTERNAL);
+ else
+ root->name = strdup(MS_ROOT_PATH_EXTERNAL);
+ if (root->name == NULL) {
+ MS_DBG_ERR("strdup fail");
+ free(root);
+ return;
+ }
+
+ root->parent = NULL;
+ root->Rbrother = NULL;
+ root->next = NULL;
+ tmp_root = root;
+ prv_node = root;
+
+ path = malloc(sizeof(char) * MS_FILE_PATH_LEN_MAX);
+
+ err = ms_get_full_path_from_node(tmp_root, path, depth);
+ if (err != MS_ERR_NONE) {
+ return;
+ }
+
+ ms_inoti_add_watch_with_node(root, depth);
+
+ while (1) {
+ /*check poweroff status*/
+ if (power_off) {
+ MS_DBG("Power off");
+ goto FREE_RESOURCES;
+ }
+
+ /*check SD card in out*/
+ if ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (storage_type == MS_STORATE_EXTERNAL))
+ goto FREE_RESOURCES;
+
+ depth ++;
+ dp = opendir(path);
+ if (dp == NULL) {
+ MS_DBG_ERR("%s folder opendir fails", path);
+ goto NEXT_DIR;
+ }
+
+ while (!readdir_r(dp, &entry, &result)) {
+ /*check poweroff status*/
+ if (power_off) {
+ MS_DBG("Power off");
+ goto FREE_RESOURCES;
+ }
+
+ if (result == NULL)
+ break;
+
+ if (entry.d_name[0] == '.')
+ continue;
+
+ /*check SD card in out*/
+ if ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (storage_type == MS_STORATE_EXTERNAL)) {
+ goto FREE_RESOURCES;
+ }
+
+ if (entry.d_type & DT_DIR) {
+ DIR *tmp_dp = NULL;
+ err = ms_strappend(get_path, sizeof(get_path), "%s/%s",path, entry.d_name);
+ if (err != MS_ERR_NONE) {
+ MS_DBG_ERR("ms_strappend error");
+ continue;
+ }
+
+ tmp_dp = opendir(get_path);
+ if (tmp_dp == NULL) {
+ MS_DBG_ERR("%s folder opendir fails", get_path);
+ MS_DBG("error : %d, %s", errno ,strerror(errno));
+ continue;
+ }
+ else
+ closedir(tmp_dp);
+
+ cur_node = malloc(sizeof(ms_dir_scan_info));
+ if (cur_node == NULL) {
+ MS_DBG_ERR("malloc fail");
+
+ goto FREE_RESOURCES;
+ }
+
+ cur_node->name = strdup(entry.d_name);
+ cur_node->Rbrother = NULL;
+ cur_node->next = NULL;
+
+ /*1. 1st folder */
+ if (find_folder == 0) {
+ cur_node->parent = tmp_root;
+ tmp_root = cur_node;
+ } else {
+ cur_node->parent = tmp_root->parent;
+ prv_node->Rbrother = cur_node;
+ }
+ prv_node->next = cur_node;
+
+ /*add watch */
+ ms_inoti_add_watch_with_node(cur_node, depth);
+
+ /*change previous */
+ prv_node = cur_node;
+ find_folder++;
+ }
+ }
+NEXT_DIR:
+ if (dp) closedir(dp);
+ if (path) free(path);
+ dp = NULL;
+ path = NULL;
+
+ err = _ms_get_path_from_current_node(find_folder, &tmp_root, &root, &path, &depth);
+ if (err != MS_ERR_NONE)
+ break;
+
+ if (tmp_root == NULL)
+ break;
+
+ find_folder = 0;
+ }
+
+FREE_RESOURCES:
+ /*free allocated memory */
+ if (path) free(path);
+ if (dp) closedir(dp);
+
+ cur_node = root;
+ while (cur_node != NULL) {
+ next_node = cur_node->next;
+ free(cur_node->name);
+ free(cur_node);
+ cur_node = next_node;
+ }
+} \ No newline at end of file
diff --git a/common/media-server-main.c b/common/media-server-main.c
index 78c3753..14131ff 100755
--- a/common/media-server-main.c
+++ b/common/media-server-main.c
@@ -28,7 +28,8 @@
* @brief
*/
#include <vconf.h>
-#include <drm-service.h>
+#include <heynoti.h>
+#include <media-util-register.h>
#include "media-server-utils.h"
#include "media-server-external-storage.h"
@@ -36,9 +37,13 @@
#include "media-server-inotify.h"
#include "media-server-scan.h"
#include "media-server-socket.h"
+#include "media-server-drm.h"
+#include "media-server-dbus.h"
#define APP_NAME "media-server"
+static int heynoti_id;
+
extern GAsyncQueue *scan_queue;
extern GAsyncQueue* ret_queue;
extern GMutex *db_mutex;
@@ -46,10 +51,11 @@ extern GMutex *list_mutex;
extern GMutex *queue_mutex;
extern GArray *reg_list;
extern int mmc_state;
+extern bool power_off; /*If this is TRUE, poweroff notification received*/
+static GMainLoop *mainloop = NULL;
bool check_process(pid_t current_pid)
{
- MS_DBG_START();
DIR *pdir;
struct dirent pinfo;
struct dirent *result = NULL;
@@ -58,7 +64,7 @@ bool check_process(pid_t current_pid)
pdir = opendir("/proc");
if (pdir == NULL) {
- MS_DBG("err: NO_DIR\n");
+ MS_DBG_ERR("err: NO_DIR\n");
return 0;
}
@@ -81,10 +87,7 @@ bool check_process(pid_t current_pid)
fclose(fp);
if (strstr(buff, APP_NAME)) {
- MS_DBG("pinfo->d_name : %s", pinfo.d_name);
find_pid = atoi(pinfo.d_name);
- MS_DBG(" find_pid : %d", find_pid);
- MS_DBG(" current_pid : %d", current_pid);
if (find_pid == current_pid)
ret = true;
else {
@@ -93,14 +96,12 @@ bool check_process(pid_t current_pid)
}
}
} else {
- MS_DBG("Can't read file [%s]", path);
+ MS_DBG_ERR("Can't read file [%s]", path);
}
}
closedir(pdir);
- MS_DBG_END();
-
return ret;
}
@@ -109,57 +110,72 @@ void init_process()
}
-static bool _db_clear(void)
+static void _power_off_cb(void* data)
+{
+ ms_scan_data_t *scan_data;
+
+ MS_DBG("++++++++++++++++++++++++++++++++++++++");
+ MS_DBG("POWER OFF");
+ MS_DBG("++++++++++++++++++++++++++++++++++++++");
+
+ power_off = true;
+
+ if (scan_queue) {
+ /*notify to scannig thread*/
+ scan_data = malloc(sizeof(ms_scan_data_t));
+ scan_data->path = NULL;
+ scan_data->scan_type = POWEROFF;
+ g_async_queue_push(scan_queue, GINT_TO_POINTER(scan_data));
+
+ /*notify to Inotify thread*/
+ mkdir(POWEROFF_DIR_PATH, 0777);
+ rmdir(POWEROFF_DIR_PATH);
+ }
+
+ if (g_main_loop_is_running(mainloop)) g_main_loop_quit(mainloop);
+}
+
+static bool _db_clear(void** handle)
{
int err;
int db_status;
- int usb_status;
bool need_db_create = false;
- void *handle = NULL;
-
- /*connect to media db, if conneting is failed, db updating is stopped*/
- ms_connect_db(&handle);
/*update just valid type*/
- err = ms_invalidate_all_items(handle, MS_MMC);
+ err = ms_invalidate_all_items(handle, MS_STORATE_EXTERNAL);
if (err != MS_ERR_NONE)
- MS_DBG("ms_change_valid_type fail");
+ MS_DBG_ERR("ms_change_valid_type fail");
ms_config_get_int(VCONFKEY_FILEMANAGER_DB_STATUS, &db_status);
- ms_config_get_int(MS_USB_MODE_KEY, &usb_status);
-
MS_DBG("finish_phone_init_data db = %d", db_status);
- MS_DBG("finish_phone_init_data usb = %d", usb_status);
-
- if (db_status == VCONFKEY_FILEMANAGER_DB_UPDATING
- || usb_status == MS_VCONFKEY_MASS_STORAGE_MODE) {
+ if (db_status == VCONFKEY_FILEMANAGER_DB_UPDATING) {
need_db_create = true;
- err = ms_invalidate_all_items(handle, MS_PHONE);
+ err = ms_invalidate_all_items(handle, MS_STORAGE_INTERNAL);
if (err != MS_ERR_NONE)
- MS_DBG("ms_change_valid_type fail");
+ MS_DBG_ERR("ms_change_valid_type fail");
}
ms_set_db_status(MS_DB_UPDATED);
- /*disconnect form media db*/
- ms_disconnect_db(handle);
-
return need_db_create;
}
int main(int argc, char **argv)
{
- GThread *inoti_tid;
- GThread *scan_tid;
- GThread *scoket_tid;
+ GThread *inoti_tid = NULL;
+ GThread *scan_tid = NULL;
+ GSource *source = NULL;
+ GIOChannel *channel = NULL;
+ GMainContext *context = NULL;
- GMainLoop *mainloop = NULL;
pid_t current_pid = 0;
+ int sockfd = -1;
int err;
bool check_result = false;
bool need_db_create;
+ void **handle = NULL;
ms_scan_data_t *phone_scan_data;
ms_scan_data_t *mmc_scan_data;
@@ -169,57 +185,80 @@ int main(int argc, char **argv)
if (check_result == false)
exit(0);
- ms_load_functions();
-
if (!g_thread_supported()) {
g_thread_init(NULL);
}
- /*Init db mutex variable*/
- if (!db_mutex)
- db_mutex = g_mutex_new();
+ /*Init main loop*/
+ mainloop = g_main_loop_new(NULL, FALSE);
- /*clear previous data of sdcard on media database and check db status for updating*/
- need_db_create = _db_clear();
-
- MS_DBG("MEDIA SERVER START");
+ /*inotify setup */
+ ms_inoti_init();
+
+ /*heynoti for power off*/
+ if ((heynoti_id = heynoti_init()) <0) {
+ MS_DBG("heynoti_init failed");
+ } else {
+ err = heynoti_subscribe(heynoti_id, POWEROFF_NOTI_NAME, _power_off_cb, NULL);
+ if (err < 0)
+ MS_DBG("heynoti_subscribe failed");
+
+ err = heynoti_attach_handler(heynoti_id);
+ if (err < 0)
+ MS_DBG("heynoti_attach_handler failed");
+ }
+
+ /*load functions from plusin(s)*/
+ ms_load_functions();
- if (!scan_queue)
- scan_queue = g_async_queue_new();
- if (!ret_queue)
- ret_queue = g_async_queue_new();
+ /*Init db mutex variable*/
+ if (!db_mutex) db_mutex = g_mutex_new();
/*Init for register file*/
- if (!list_mutex)
- list_mutex = g_mutex_new();
- if (!queue_mutex)
- queue_mutex = g_mutex_new();
- if (!reg_list)
- reg_list = g_array_new(TRUE, TRUE, sizeof(char*));
+ if (!list_mutex) list_mutex = g_mutex_new();
+ if (!queue_mutex) queue_mutex = g_mutex_new();
+ if (!reg_list) reg_list = g_array_new(TRUE, TRUE, sizeof(char*));
- /*inotify setup */
- ms_inoti_init();
+ /*connect to media db, if conneting is failed, db updating is stopped*/
+ ms_connect_db(&handle);
+
+ /*clear previous data of sdcard on media database and check db status for updating*/
+ need_db_create = _db_clear(handle);
+
+ ms_dbus_init();
ms_inoti_add_watch(MS_DB_UPDATE_NOTI_PATH);
+ ms_inoti_add_watch_all_directory(MS_STORAGE_INTERNAL);
+
+ /*These are a communicator for thread*/
+ if (!scan_queue) scan_queue = g_async_queue_new();
+ if (!ret_queue) ret_queue = g_async_queue_new();
+
+ /*prepare socket*/
+ /* Create and bind new UDP socket */
+ if (!ms_prepare_socket(&sockfd)) {
+ MS_DBG_ERR("Failed to create socket\n");
+ } else {
+ context = g_main_loop_get_context(mainloop);
+
+ /* Create new channel to watch udp socket */
+ channel = g_io_channel_unix_new(sockfd);
+ source = g_io_create_watch(channel, G_IO_IN);
+
+ /* Set callback to be called when socket is readable */
+ g_source_set_callback(source, (GSourceFunc)ms_read_socket, handle, NULL);
+ g_source_attach(source, context);
+ }
/*create each threads*/
- inoti_tid = g_thread_create((GThreadFunc) ms_inoti_thread, NULL, FALSE, NULL);
+ inoti_tid = g_thread_create((GThreadFunc) ms_inoti_thread, NULL, TRUE, NULL);
scan_tid = g_thread_create((GThreadFunc) ms_scan_thread, NULL, TRUE, NULL);
- scoket_tid = g_thread_create((GThreadFunc) ms_socket_thread, NULL, TRUE, NULL);
-
- /*Init main loop*/
- mainloop = g_main_loop_new(NULL, FALSE);
/*set vconf callback function*/
err = vconf_notify_key_changed(VCONFKEY_SYSMAN_MMC_STATUS,
(vconf_callback_fn) ms_mmc_vconf_cb, NULL);
if (err == -1)
- MS_DBG("add call back function for event %s fails", VCONFKEY_SYSMAN_MMC_STATUS);
-
- err = vconf_notify_key_changed(VCONFKEY_USB_STORAGE_STATUS,
- (vconf_callback_fn) ms_usb_vconf_cb, NULL);
- if (err == -1)
- MS_DBG("add call back function for event %s fails", VCONFKEY_USB_STORAGE_STATUS);
+ MS_DBG_ERR("add call back function for event %s fails", VCONFKEY_SYSMAN_MMC_STATUS);
phone_scan_data = malloc(sizeof(ms_scan_data_t));
mmc_scan_data = malloc(sizeof(ms_scan_data_t));
@@ -227,37 +266,32 @@ int main(int argc, char **argv)
MS_DBG("*** Begin to check tables of file manager in database ***");
MS_DBG("*********************************************************");
- phone_scan_data->db_type = MS_PHONE;
-
if (need_db_create) {
/*insert records*/
- MS_DBG("Create DB");
+ phone_scan_data->path = strdup(MS_ROOT_PATH_INTERNAL);
+ phone_scan_data->storage_type = MS_STORAGE_INTERNAL;
phone_scan_data->scan_type = MS_SCAN_ALL;
- } else {
- MS_DBG("JUST ADD WATCH");
- phone_scan_data->scan_type = MS_SCAN_NONE;
+ /*push data to fex_dir_scan_cb */
+ g_async_queue_push(scan_queue, GINT_TO_POINTER(phone_scan_data));
}
- /*push data to fex_dir_scan_cb */
- g_async_queue_push(scan_queue, GINT_TO_POINTER(phone_scan_data));
-
if (ms_is_mmc_inserted()) {
mmc_state = VCONFKEY_SYSMAN_MMC_MOUNTED;
- if (drm_svc_insert_ext_memory() == DRM_RESULT_SUCCESS)
- MS_DBG
- ("fex_db_service_init : drm_svc_insert_ext_memory OK");
+ if (!ms_drm_insert_ext_memory())
+ MS_DBG_ERR("ms_drm_insert_ext_memory failed");
ms_make_default_path_mmc();
+ ms_inoti_add_watch_all_directory(MS_STORATE_EXTERNAL);
+ mmc_scan_data->path = strdup(MS_ROOT_PATH_EXTERNAL);
mmc_scan_data->scan_type = ms_get_mmc_state();
- mmc_scan_data->db_type = MS_MMC;
-
- MS_DBG("ms_get_mmc_state is %d", mmc_scan_data->scan_type);
+ mmc_scan_data->storage_type = MS_STORATE_EXTERNAL;
g_async_queue_push(scan_queue, GINT_TO_POINTER(mmc_scan_data));
}
+ /*Active flush */
malloc_trim(0);
MS_DBG("*****************************************");
@@ -266,30 +300,37 @@ int main(int argc, char **argv)
g_main_loop_run(mainloop);
- /*free all associated memory */
- g_main_loop_unref(mainloop);
+ g_thread_join(inoti_tid);
+ g_thread_join(scan_tid);
- ms_unload_functions();
-
- if (scan_queue)
- g_async_queue_unref(scan_queue);
+ /*close an IO channel*/
+ g_io_channel_shutdown(channel, FALSE, NULL);
+ g_io_channel_unref(channel);
- if (ret_queue)
- g_async_queue_unref(ret_queue);
+ heynoti_unsubscribe(heynoti_id, POWEROFF_NOTI_NAME, _power_off_cb);
+ heynoti_close(heynoti_id);
- if(reg_list)
- g_array_free(reg_list, true);
+ if (scan_queue) g_async_queue_unref(scan_queue);
+ if (ret_queue) g_async_queue_unref(ret_queue);
+ if (reg_list) g_array_free(reg_list, true);
/***********
**remove call back functions
************/
vconf_ignore_key_changed(VCONFKEY_SYSMAN_MMC_STATUS,
(vconf_callback_fn) ms_mmc_vconf_cb);
- vconf_ignore_key_changed(VCONFKEY_USB_STORAGE_STATUS,
- (vconf_callback_fn) ms_usb_vconf_cb);
/*Clear db mutex variable*/
- g_mutex_free (db_mutex);
+ if (db_mutex) g_mutex_free (db_mutex);
+
+ /*disconnect form media db*/
+ if (handle) ms_disconnect_db(&handle);
+
+ /*close socket*/
+ close(sockfd);
+
+ /*unload functions*/
+ ms_unload_functions();
exit(0);
}
diff --git a/common/media-server-scan-internal.c b/common/media-server-scan-internal.c
index 33d89fa..5f027c5 100755
--- a/common/media-server-scan-internal.c
+++ b/common/media-server-scan-internal.c
@@ -34,26 +34,22 @@
#include "media-server-inotify.h"
#include "media-server-scan-internal.h"
-#ifdef PROGRESS
-#include <quickpanel.h>
-#endif
-
extern int mmc_state;
-extern int current_usb_mode;
-extern ms_dir_data *first_inoti_node;
+bool power_off;
+
+typedef struct ms_scan_data {
+ char *name;
+ struct ms_scan_data *next;
+} ms_scan_data;
-#ifdef PROGRESS
-#define SIZE_OF_PBARRAY 100
-#endif
+ms_scan_data *first_scan_node;
-int _ms_get_path_from_current_node(int find_folder,
+static int _ms_scan_get_next_path_from_current_node(int find_folder,
ms_dir_scan_info **current_root,
- ms_dir_scan_info **real_root, char **path)
+ ms_dir_scan_info **real_root, char **path, int *depth)
{
- MS_DBG_START();
-
- int err = 0;
- char get_path[FAT_FILEPATH_LEN_MAX + 1] = { 0 };
+ int err = MS_ERR_NONE;
+ char get_path[FAT_FILEPATH_LEN_MAX] = { 0 };
if (find_folder == 0) {
if ((*current_root)->Rbrother != NULL) {
@@ -63,44 +59,85 @@ int _ms_get_path_from_current_node(int find_folder,
if ((*current_root)->parent == *real_root
|| (*current_root)->parent == NULL) {
*current_root = NULL;
- MS_DBG_END();
- return 0;
- } else if ((*current_root)->parent->Rbrother ==
- NULL) {
+ *depth = 0;
+ return MS_ERR_NONE;
+ } else if ((*current_root)->parent->Rbrother == NULL) {
*current_root = (*current_root)->parent;
+ (*depth) --;
} else {
- *current_root =
- (*current_root)->parent->Rbrother;
+ *current_root = (*current_root)->parent->Rbrother;
+ (*depth) --;
break;
}
}
}
+ (*depth) --;
}
- err = ms_get_full_path_from_node(*current_root, get_path);
+ err = ms_get_full_path_from_node(*current_root, get_path, *depth);
+ if (err != MS_ERR_NONE)
+ return MS_ERR_INVALID_DIR_PATH;
*path = strdup(get_path);
- MS_DBG_END();
-
return err;
}
-#ifdef PROGRESS
-void _ms_dir_check(char *start_path, ms_store_type_t db_type, unsigned short *file_count)
-#else
-void _ms_dir_check(char *start_path, ms_store_type_t db_type)
-#endif
+static int _ms_scan_add_node(ms_dir_scan_info * const node, int depth)
{
- MS_DBG_START();
+ int err;
+ char full_path[MS_FILE_PATH_LEN_MAX] = { 0 };
+ ms_scan_data *current_dir = NULL;
+ ms_scan_data *prv_node = NULL;
+ ms_scan_data *last_node = NULL;
+
+ err = ms_get_full_path_from_node(node, full_path, depth);
+ if (err != MS_ERR_NONE)
+ return MS_ERR_INVALID_DIR_PATH;
+
+ last_node = first_scan_node;
+ while (last_node != NULL) {
+ last_node = last_node->next;
+ }
+
+ /*find same folder */
+ if (first_scan_node != NULL) {
+ last_node = first_scan_node;
+ while (last_node != NULL) {
+ if (strcmp(full_path, last_node->name) == 0) {
+ return MS_ERR_NONE;
+ }
+ prv_node = last_node;
+ last_node = last_node->next;
+ }
+ }
+
+ current_dir = malloc(sizeof(ms_scan_data));
+ current_dir->name = strdup(full_path);
+ current_dir->next = NULL;
+
+ if (first_scan_node == NULL) {
+ first_scan_node = current_dir;
+ } else {
+ /*if next node of current node is NULL, it is the lastest node. */
+ prv_node->next = current_dir;
+ }
+ MS_DBG("scan path : %s", full_path);
+
+ return MS_ERR_NONE;
+}
+static void _ms_dir_check(ms_scan_data_t * scan_data)
+{
int err = 0;
+ int depth = 0;
int find_folder = 0;
char get_path[MS_FILE_PATH_LEN_MAX] = { 0 };
- char *path;
+ char *path = NULL;
DIR *dp = NULL;
struct dirent entry;
struct dirent *result;
+ ms_storage_type_t storage_type = scan_data->storage_type;
ms_dir_scan_info *root;
ms_dir_scan_info *tmp_root = NULL;
@@ -110,14 +147,14 @@ void _ms_dir_check(char *start_path, ms_store_type_t db_type)
root = malloc(sizeof(ms_dir_scan_info));
if (root == NULL) {
- MS_DBG("malloc fail");
+ MS_DBG_ERR("malloc fail");
return;
}
- root->name = strdup(start_path);
- if (root->name == NULL) {
- MS_DBG("strdup fail");
- free(root);
+ root->name = strdup(scan_data->path);
+ if (root->name == NULL) {
+ MS_DBG_ERR("strdup fail");
+ MS_SAFE_FREE(root);
return;
}
@@ -127,36 +164,48 @@ void _ms_dir_check(char *start_path, ms_store_type_t db_type)
tmp_root = root;
prv_node = root;
- err = ms_get_full_path_from_node(tmp_root, get_path);
- MS_DBG("full_path : %s", get_path);
+ path = malloc(sizeof(char) * MS_FILE_PATH_LEN_MAX);
- path = strdup(get_path);
- if (path == NULL) {
- MS_DBG("strdup fail");
- free(root);
+ err = ms_get_full_path_from_node(tmp_root, path, depth);
+ if (err != MS_ERR_NONE) {
return;
}
- ms_inoti_add_watch_with_node(root);
+ _ms_scan_add_node(root, depth);
while (1) {
+ /*check poweroff status*/
+ if (power_off) {
+ MS_DBG("Power off");
+ goto FREE_RESOURCES;
+ }
+
+ /*check SD card in out*/
+ if ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (storage_type == MS_STORATE_EXTERNAL))
+ goto FREE_RESOURCES;
+
+ depth ++;
dp = opendir(path);
if (dp == NULL) {
- MS_DBG("%s folder opendir fails", path);
+ MS_DBG_ERR("%s folder opendir fails", path);
goto NEXT_DIR;
}
while (!readdir_r(dp, &entry, &result)) {
+ /*check poweroff status*/
+ if (power_off) {
+ MS_DBG("Power off");
+ goto FREE_RESOURCES;
+ }
+
if (result == NULL)
break;
if (entry.d_name[0] == '.')
continue;
- /*check usb in out*/
- if (current_usb_mode != VCONFKEY_USB_STORAGE_STATUS_OFF
- ||(( mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (db_type == MS_MMC))) {
-
+ /*check SD card in out*/
+ if ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (storage_type == MS_STORATE_EXTERNAL)) {
goto FREE_RESOURCES;
}
@@ -164,21 +213,21 @@ void _ms_dir_check(char *start_path, ms_store_type_t db_type)
DIR *tmp_dp = NULL;
err = ms_strappend(get_path, sizeof(get_path), "%s/%s",path, entry.d_name);
if (err != MS_ERR_NONE) {
- MS_DBG("ms_strappend error");
+ MS_DBG_ERR("ms_strappend error");
continue;
}
tmp_dp = opendir(get_path);
if (tmp_dp == NULL) {
- MS_DBG("%s folder opendir fails", get_path);
+ MS_DBG_ERR("%s folder opendir fails", get_path);
continue;
}
else
closedir(tmp_dp);
-
+
cur_node = malloc(sizeof(ms_dir_scan_info));
if (cur_node == NULL) {
- MS_DBG("malloc fail");
+ MS_DBG_ERR("malloc fail");
goto FREE_RESOURCES;
}
@@ -198,26 +247,20 @@ void _ms_dir_check(char *start_path, ms_store_type_t db_type)
prv_node->next = cur_node;
/*add watch */
- ms_inoti_add_watch_with_node(cur_node);
+ _ms_scan_add_node(cur_node, depth);
/*change previous */
prv_node = cur_node;
find_folder++;
}
-#ifdef PROGRESS
- else if (entry.d_type & DT_REG) {
- (*file_count)++;
- }
-#endif
}
NEXT_DIR:
+ MS_SAFE_FREE(path);
if (dp) closedir(dp);
- if (path) free(path);
dp = NULL;
- path = NULL;
- err = _ms_get_path_from_current_node(find_folder, &tmp_root, &root, &path);
- if (err < 0)
+ err = _ms_scan_get_next_path_from_current_node(find_folder, &tmp_root, &root, &path, &depth);
+ if (err != MS_ERR_NONE)
break;
if (tmp_root == NULL)
@@ -228,174 +271,129 @@ NEXT_DIR:
FREE_RESOURCES:
/*free allocated memory */
- if (path) free(path);
+ MS_SAFE_FREE(path);
if (dp) closedir(dp);
+ dp = NULL;
cur_node = root;
while (cur_node != NULL) {
next_node = cur_node->next;
- free(cur_node->name);
- free(cur_node);
+ MS_SAFE_FREE(cur_node->name);
+ MS_SAFE_FREE(cur_node);
cur_node = next_node;
}
-
- MS_DBG_END();
}
-#ifdef PROGRESS
-void _ms_dir_scan(void *handle, ms_scan_data_t * scan_data, struct quickpanel *ms_quickpanel)
-#else
-void _ms_dir_scan(void *handle, ms_scan_data_t * scan_data)
-#endif
+void _ms_dir_scan(void **handle, ms_scan_data_t * scan_data)
{
- MS_DBG_START();
int err = 0;
char path[MS_FILE_PATH_LEN_MAX] = { 0 };
- ms_dir_data *node;
+ ms_scan_data *node;
DIR *dp = NULL;
-#ifdef PROGRESS
- int i;
- unsigned short file_count = 0;
- unsigned short update_count = 0;
- unsigned short proress_array[SIZE_OF_PBARRAY] = { 0 };
-#endif
-
- if (scan_data->db_type == MS_PHONE)
- err = ms_strcopy(path, sizeof(path), "%s", MS_PHONE_ROOT_PATH);
- else
- err = ms_strcopy(path, sizeof(path), "%s", MS_MMC_ROOT_PATH);
-
- if (err < MS_ERR_NONE) {
- MS_DBG("fail ms_strcopy");
+ ms_storage_type_t storage_type = scan_data->storage_type;
+ ms_dir_scan_type_t scan_type = scan_data->scan_type;
+
+ err = ms_strcopy(path, sizeof(path), "%s", scan_data->path);
+ if (err != MS_ERR_NONE) {
+ MS_DBG_ERR("error : %d", err );
}
-#ifdef PROGRESS
/*Add inotify watch */
- _ms_dir_check(path, scan_data->db_type,&file_count);
-#else
- /*Add inotify watch */
- _ms_dir_check(path, scan_data->db_type);
-#endif
-
-#ifdef PROGRESS
- for (i = 0; i < SIZE_OF_PBARRAY; i++) {
- proress_array[i] = ((i + 1) * file_count) / SIZE_OF_PBARRAY;
- if (proress_array[i] == 0)
- proress_array[i] = 1;
- }
- i = 0;
-#endif
+ if (scan_type != MS_SCAN_INVALID)
+ _ms_dir_check(scan_data);
/*if scan type is not MS_SCAN_NONE, check data in db. */
- if (scan_data->scan_type == MS_SCAN_ALL
- || scan_data->scan_type == MS_SCAN_PART) {
+ if (scan_type == MS_SCAN_ALL || scan_type == MS_SCAN_PART) {
struct dirent entry;
struct dirent *result = NULL;
- node = first_inoti_node;
-#ifdef PROGRESS
- int progress = 0;
- int pre_progress = 0;
-#endif
- if (scan_data->scan_type == MS_SCAN_PART) {
- /*enable bundle commit*/
- ms_validate_start(handle);
- }
+ node = first_scan_node;
while (node != NULL) {
- /*check usb in out */
- if (current_usb_mode != VCONFKEY_USB_STORAGE_STATUS_OFF
- || ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (scan_data->db_type == MS_MMC))) {
+ /*check poweroff status*/
+ if (power_off) {
+ MS_DBG("Power off");
+ goto STOP_SCAN;
+ }
+
+ /*check SD card in out */
+ if ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (storage_type == MS_STORATE_EXTERNAL)) {
MS_DBG("Directory scanning is stopped");
goto STOP_SCAN;
}
- if (node->db_updated != true) {
- dp = opendir(node->name);
- if (dp != NULL) {
- while (!readdir_r(dp, &entry, &result)) {
- if (result == NULL)
- break;
-
- if (entry.d_name[0] == '.')
- continue;
- /*check usb in out */
- if (current_usb_mode != VCONFKEY_USB_STORAGE_STATUS_OFF
- || ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (scan_data->db_type == MS_MMC))) {
- MS_DBG("Directory scanning is stopped");
- goto STOP_SCAN;
+ dp = opendir(node->name);
+ if (dp != NULL) {
+ while (!readdir_r(dp, &entry, &result)) {
+ /*check poweroff status*/
+ if (power_off) {
+ MS_DBG("Power off");
+ goto STOP_SCAN;
+ }
+
+ if (result == NULL)
+ break;
+
+ if (entry.d_name[0] == '.')
+ continue;
+
+ /*check SD card in out */
+ if ((mmc_state != VCONFKEY_SYSMAN_MMC_MOUNTED) && (storage_type == MS_STORATE_EXTERNAL)) {
+ MS_DBG("Directory scanning is stopped");
+ goto STOP_SCAN;
+ }
+
+ if (entry.d_type & DT_REG) {
+ err = ms_strappend(path, sizeof(path), "%s/%s", node->name, entry.d_name);
+ if (err < 0) {
+ MS_DBG_ERR("error : %d", err);
+ continue;
}
- if (entry.d_type & DT_REG) {
- MS_DBG("THIS IS FEX_DIR_SCAN_CB");
-#ifdef PROGRESS
- /*update progress bar */
- update_count++;
- if (ms_quickpanel != NULL) {
- if (proress_array[i] == update_count) {
- while(1) {
- ms_update_progress(ms_quickpanel, ((double)i) / 100);
- i++;
- if (proress_array[i] != update_count)
- break;
- }
- }
- }
-#endif/*PROGRESS*/
- err = ms_strappend(path, sizeof(path), "%s/%s", node->name, entry.d_name);
- if (err < 0) {
- MS_DBG("FAIL : ms_strappend");
- continue;
- }
-
- if (scan_data->scan_type == MS_SCAN_PART)
- err = ms_validate_item(handle,path);
- else
- err = ms_insert_item_batch(handle, path);
-
- if (err < 0) {
- MS_DBG("failed to update db : %d , %d\n", err, scan_data->scan_type);
- continue;
- }
+ if (scan_type == MS_SCAN_PART)
+ err = ms_validate_item(handle,path);
+ else
+ err = ms_insert_item_batch(handle, path);
+
+ if (err < 0) {
+ MS_DBG_ERR("failed to update db : %d , %d\n", err, scan_type);
+ continue;
}
}
- } else {
- MS_DBG("%s folder opendir fails", node->name);
}
- if (dp) closedir(dp);
- dp = NULL;
+ } else {
+ MS_DBG_ERR("%s folder opendir fails", node->name);
+ }
+ if (dp) closedir(dp);
+ dp = NULL;
- if (node == NULL) {
- MS_DBG("");
- MS_DBG("DB updating is done");
- MS_DBG("");
- break;
- }
- node->db_updated = true;
+ if (node == NULL) {
+ MS_DBG_ERR("DB updating is done");
+ break;
}
node = node->next;
} /*db update while */
-
- if (scan_data->scan_type == MS_SCAN_PART) {
- /*disable bundle commit*/
- ms_validate_end(handle);
-
- ms_delete_invalid_items(handle, scan_data->db_type);
- }
- } else {
- node = first_inoti_node;
-
- while (node != NULL) {
- node->db_updated = true;
- node = node->next;
- }
+ } else if ( scan_type == MS_SCAN_INVALID) {
+ /*In this case, update just validation record*/
+ /*update just valid type*/
+ err = ms_invalidate_all_items(handle, storage_type);
+ if (err != MS_ERR_NONE)
+ MS_DBG_ERR("error : %d", err);
}
STOP_SCAN:
if (dp) closedir(dp);
- sync();
+ /*delete all node*/
+ node = first_scan_node;
- MS_DBG_END();
+ while (node != NULL) {
+ if (node->name) free(node->name);
+ MS_SAFE_FREE(node);
+ }
+
+ first_scan_node = NULL;
+
+ sync();
return;
}
diff --git a/common/media-server-scan.c b/common/media-server-scan.c
index 7be42f8..6d41de7 100755
--- a/common/media-server-scan.c
+++ b/common/media-server-scan.c
@@ -35,9 +35,7 @@
#include "media-server-scan-internal.h"
#include "media-server-scan.h"
-#ifdef PROGRESS
-#include <quickpanel.h>
-#endif
+extern bool power_off;
GAsyncQueue *scan_queue;
extern int mmc_state;
@@ -55,46 +53,47 @@ static void _insert_array(GArray *garray, ms_scan_data_t *insert_data)
int i;
MS_DBG("the length of array : %d", len);
- MS_DBG("db_type : %d", insert_data->db_type);
+ MS_DBG("path : %s", insert_data->path);
MS_DBG("scan_type : %d", insert_data->scan_type);
- for (i=0; i < len; i++)
- {
- data = g_array_index(garray, ms_scan_data_t*, i);
-
- if (data->db_type == insert_data->db_type) {
- if(data->scan_type > insert_data->scan_type) {
- g_array_remove_index (garray, i);
- g_array_insert_val(garray, i, insert_data);
- insert_ok = true;
+ if (insert_data->scan_type == POWEROFF) {
+ g_array_prepend_val(garray, insert_data);
+ } else {
+ for (i=0; i < len; i++) {
+ data = g_array_index(garray, ms_scan_data_t*, i);
+
+ if (data->scan_type != POWEROFF) {
+ if (data->storage_type == insert_data->storage_type) {
+ if(data->scan_type > insert_data->scan_type) {
+ g_array_remove_index (garray, i);
+ g_array_insert_val(garray, i, insert_data);
+ insert_ok = true;
+ }
+ }
}
}
- }
- if (insert_ok == false)
- g_array_append_val(garray, insert_data);
+ if (insert_ok == false)
+ g_array_append_val(garray, insert_data);
+ }
}
gboolean ms_scan_thread(void *data)
{
- MS_DBG_START();
-
ms_scan_data_t *scan_data = NULL;
ms_scan_data_t *insert_data;
GArray *garray = NULL;
bool res;
int length;
int err;
- void *handle = NULL;
-
-#ifdef PROGRESS
- struct quickpanel *ms_quickpanel = NULL;
-#endif
+ void **handle = NULL;
+ ms_storage_type_t storage_type;
+ ms_dir_scan_type_t scan_type;
/*create array for processing overlay data*/
garray = g_array_new (FALSE, FALSE, sizeof (ms_scan_data_t *));
if (garray == NULL) {
- MS_DBG("g_array_new error");
+ MS_DBG_ERR("g_array_new error");
return false;
}
@@ -105,6 +104,10 @@ gboolean ms_scan_thread(void *data)
if (garray->len != 0 && length == 0) {
scan_data = g_array_index(garray, ms_scan_data_t*, 0);
g_array_remove_index (garray, 0);
+ if (scan_data->scan_type == POWEROFF) {
+ MS_DBG("power off");
+ goto POWER_OFF;
+ }
} else if (length != 0) {
insert_data = g_async_queue_pop(scan_queue);
_insert_array(garray, insert_data);
@@ -116,108 +119,82 @@ gboolean ms_scan_thread(void *data)
continue;
}
- if (scan_data->scan_type != MS_SCAN_VALID) {
- /*connect to media db, if conneting is failed, db updating is stopped*/
- err = ms_connect_db(&handle);
- if (err != MS_ERR_NONE)
- continue;
-
- /*start db updating */
- if (scan_data->scan_type != MS_SCAN_NONE ) {
- int status;
-
- ms_set_db_status(MS_DB_UPDATING);
- /*check UMS status and change configuration value*/
- ms_config_get_int(MS_USB_MODE_KEY, &status);
- if (status == MS_VCONFKEY_MASS_STORAGE_MODE) {
- ms_config_get_int(VCONFKEY_USB_STORAGE_STATUS, &status);
- if(status == VCONFKEY_USB_STORAGE_STATUS_OFF) {
- ms_config_set_int(MS_USB_MODE_KEY, MS_VCONFKEY_NORMAL_MODE);
- }
- }
-#ifdef PROGRESS
- ms_quickpanel = malloc(sizeof(struct quickpanel));
- ms_create_quickpanel(ms_quickpanel);
-#endif /*PROGRESS*/
- }
-
- if (scan_data->scan_type == MS_SCAN_ALL) {
- res = ms_delete_all_items(handle, scan_data->db_type);
- if (res != true) {
- MS_DBG("ms_delete_all_record fails");
- }
- }
+ storage_type = scan_data->storage_type;
+ scan_type = scan_data->scan_type;
-#ifdef FMS_PERF
- if (scan_data->db_type == MS_MMC) {
- ms_check_start_time(&g_mmc_start_time);
- }
-#endif
- /*call for bundle commit*/
- ms_register_start(handle);
+ /*connect to media db, if conneting is failed, db updating is stopped*/
+ err = ms_connect_db(&handle);
+ if (err != MS_ERR_NONE)
+ continue;
-#ifdef PROGRESS
- /*add inotify watch and insert data into media db */
- _ms_dir_scan(handle, scan_data, ms_quickpanel);
+ /*start db updating */
+ ms_set_db_status(MS_DB_UPDATING);
- if (ms_quickpanel != NULL) {
- ms_delete_quickpanel(ms_quickpanel);
- free(ms_quickpanel);
- ms_quickpanel = NULL;
+ /*Delete all data before full scanning*/
+ if (scan_type == MS_SCAN_ALL) {
+ res = ms_delete_all_items(handle, storage_type);
+ if (res != true) {
+ MS_DBG_ERR("ms_delete_all_record fails");
}
-#else
- /*add inotify watch and insert data into media db */
- _ms_dir_scan(handle, scan_data);
-#endif
- /*call for bundle commit*/
- ms_register_end(handle);
+ }
#ifdef FMS_PERF
- if (scan_data->db_type == MS_MMC) {
- ms_check_end_time(&g_mmc_end_time);
- ms_check_time_diff(&g_mmc_start_time, &g_mmc_end_time);
- }
+ if (storage_type == MS_STORATE_EXTERNAL) {
+ ms_check_start_time(&g_mmc_start_time);
+ }
#endif
+ /*call for bundle commit*/
+ ms_register_start(handle);
+ if (scan_type == MS_SCAN_PART) {
+ /*enable bundle commit*/
+ ms_validate_start(handle);
+ }
- /*set vconf key mmc loading for indicator */
- if (scan_data->scan_type != MS_SCAN_NONE )
- ms_set_db_status(MS_DB_UPDATED);
+ /*add inotify watch and insert data into media db */
+ _ms_dir_scan(handle, scan_data);
- /*disconnect form media db*/
- ms_disconnect_db(handle);
+ if (power_off) {
+ MS_DBG("power off");
+ goto POWER_OFF;
+ }
- /*Active flush */
- sqlite3_release_memory(-1);
+ /*call for bundle commit*/
+ ms_register_end(handle);
+ if (scan_type == MS_SCAN_PART) {
+ /*disable bundle commit*/
+ ms_validate_end(handle);
+ ms_delete_invalid_items(handle, storage_type);
+ }
- if (scan_data->db_type == MS_MMC) {
- ms_update_mmc_info();
- }
- } else {
- /*connect to media db, if conneting is failed, db updating is stopped*/
- err = ms_connect_db(&handle);
- if (err != MS_ERR_NONE)
- continue;
+#ifdef FMS_PERF
+ if (storage_type == MS_STORATE_EXTERNAL) {
+ ms_check_end_time(&g_mmc_end_time);
+ ms_check_time_diff(&g_mmc_start_time, &g_mmc_end_time);
+ }
+#endif
- /*update just valid type*/
- err = ms_invalidate_all_items(handle, scan_data->db_type);
- if (err != MS_ERR_NONE)
- MS_DBG("ms_change_valid_type fail");
+ /*set vconf key mmc loading for indicator */
+ ms_set_db_status(MS_DB_UPDATED);
- ms_set_db_status(MS_DB_UPDATED);
+ /*disconnect form media db*/
+ if (handle) ms_disconnect_db(&handle);
- /*disconnect form media db*/
- ms_disconnect_db(handle);
+ /*Active flush */
+ malloc_trim(0);
- /*Active flush */
- sqlite3_release_memory(-1);
+ if (storage_type == MS_STORATE_EXTERNAL && scan_type == MS_SCAN_ALL) {
+ ms_update_mmc_info();
}
- free(scan_data);
+ MS_SAFE_FREE(scan_data->path);
+ MS_SAFE_FREE(scan_data);
} /*thread while*/
- if(garray) g_array_free (garray, TRUE);
-
- MS_DBG_END();
+POWER_OFF:
+ MS_SAFE_FREE(scan_data->path);
+ MS_SAFE_FREE(scan_data);
+ if (garray) g_array_free (garray, TRUE);
+ if (handle) ms_disconnect_db(&handle);
- return true;
+ return false;
}
diff --git a/common/media-server-socket.c b/common/media-server-socket.c
index 5e041f3..816c6f5 100755
--- a/common/media-server-socket.c
+++ b/common/media-server-socket.c
@@ -40,108 +40,97 @@
GAsyncQueue* ret_queue;
-gboolean ms_socket_thread(void *data)
+gboolean ms_read_socket(GIOChannel *src,
+ GIOCondition condition,
+ gpointer data)
{
- int ret;
- int err;
- int state;
- int sockfd;
- int send_msg = MS_MEDIA_ERR_NONE;
- int client_addr_size;
- void *handle = NULL;
-
- struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
+ unsigned int client_addr_len;
- char recv_buff[MS_FILE_PATH_LEN_MAX];
+ char recv_buff[MS_FILE_PATH_LEN_MAX] = {0};
+ int send_msg = MS_MEDIA_ERR_NONE;
+ int recv_msg_size;
+ int sock = -1;
+ int ret;
+ void **handle = data;
- sockfd = socket(PF_INET, SOCK_DGRAM, 0);
+ memset(recv_buff, 0, sizeof(recv_buff));
- if(sockfd < 0)
- {
- MS_DBG("socket create error");
- perror("socket error : ");
- return MS_ERR_SOCKET_CONN;
+ sock = g_io_channel_unix_get_fd(src);
+ if (sock < 0) {
+ MS_DBG_ERR("sock fd is invalid!");
+ return TRUE;
}
- memset(&server_addr, 0, sizeof(server_addr));
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(MS_REGISTER_PORT);
- server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
-
- state = bind(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr));
- if(state < 0)
- {
- MS_DBG("bind error");
- perror("bind error : ");
- return MS_ERR_SOCKET_BIND;
+ /* Socket is readable */
+ client_addr_len = sizeof(client_addr);
+ if ((recv_msg_size = recvfrom(sock, &recv_buff, sizeof(recv_buff), 0, (struct sockaddr *)&client_addr, &client_addr_len)) < 0) {
+ MS_DBG_ERR("recvfrom failed");
+ return TRUE;
}
-
- err = ms_connect_db(&handle);
- if (err != MS_ERR_NONE) {
- MS_DBG("SOCKET : sqlite3_open: ret = %d", err);
- return false;
+ ret = ms_register_file(handle, recv_buff, ret_queue);
+ if (ret == MS_ERR_NOW_REGISTER_FILE) {
+ ret= GPOINTER_TO_INT(g_async_queue_pop(ret_queue)) - MS_ERR_MAX;
}
- while(1)
- {
- client_addr_size = sizeof(client_addr);
- err = recvfrom(sockfd, recv_buff, sizeof(recv_buff), 0 ,
- (struct sockaddr*)&client_addr, (socklen_t *)&client_addr_size);
- if(err < 0){
- MS_DBG("recvfrom error :%d", errno);
- perror("recvfrom error : ");
- goto NEXT;
- } else {
- MS_DBG("receive: %s\n", recv_buff);
+ if (ret != MS_ERR_NONE) {
+ MS_DBG_ERR("ms_register_file error : %d", ret);
+
+ if(ret == MS_ERR_ARG_INVALID) {
+ send_msg = MS_MEDIA_ERR_INVALID_PARAMETER;
+ } else if (ret == MS_ERR_MIME_GET_FAIL) {
+ send_msg = MS_MEDIA_ERR_INVALID_MEDIA;
+ } else if (ret == MS_ERR_DB_INSERT_RECORD_FAIL) {
+ send_msg = MS_MEDIA_ERR_INSERT_FAIL;
+ } else if (ret == MS_ERR_DRM_REGISTER_FAIL) {
+ send_msg = MS_MEDIA_ERR_DRM_INSERT_FAIL;
}
+ } else {
+ MS_DBG("SOCKET INSERT SECCESS : %s", recv_buff);
+ send_msg = MS_MEDIA_ERR_NONE;
+ }
- ret = ms_register_file(handle, recv_buff, ret_queue);
- if (ret == MS_ERR_NOW_REGISTER_FILE) {
- MS_DBG("WAIT");
- ret= GPOINTER_TO_INT(g_async_queue_pop(ret_queue)) - MS_ERR_MAX;
- MS_DBG("RECEIVE REPLAY");
- }
+ if (sendto(sock, &send_msg, sizeof(send_msg), 0, (struct sockaddr *)&client_addr, sizeof(client_addr)) != sizeof(send_msg)) {
+ MS_DBG_ERR("sendto failed");
+ } else {
+ MS_DBG("Sent %d", send_msg);
+ }
- if (ret != MS_ERR_NONE) {
- MS_DBG("ms_register_file error : %d", ret);
-
- if(ret == MS_ERR_ARG_INVALID) {
- send_msg = MS_MEDIA_ERR_INVALID_PARAMETER;
- } else if (ret == MS_ERR_NOT_MEDIA_FILE) {
- send_msg = MS_MEDIA_ERR_INVALID_MEDIA;
- } else if (ret == MS_ERR_DB_INSERT_RECORD_FAIL) {
- send_msg = MS_MEDIA_ERR_INSERT_FAIL;
- } else if (ret == MS_ERR_DRM_REGISTER_FAIL) {
- send_msg = MS_MEDIA_ERR_DRM_INSERT_FAIL;
- }
- } else {
- MS_DBG("SOCKET INSERT SECCESS");
- send_msg = MS_MEDIA_ERR_NONE;
- }
+ /*Active flush */
+ malloc_trim(0);
- err = sendto(sockfd, &send_msg, sizeof(send_msg), 0,
- (struct sockaddr*)&client_addr, sizeof(client_addr));
- if(err < 0){
- MS_DBG("SOCKET SEND FAIL :%d", errno);
- perror("send error : ");
- } else {
- MS_DBG("SOCKET SEND SUCCESS");
- }
-NEXT:
- memset(recv_buff, 0, MS_FILE_PATH_LEN_MAX);
+ return TRUE;
+}
+
+gboolean ms_prepare_socket(int *sock_fd)
+{
+ int sock;
+ struct sockaddr_in serv_addr;
+ unsigned short serv_port;
+
+ serv_port = MS_REGISTER_PORT;
+
+ /* Creaete a datagram/UDP socket */
+ if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
+ MS_DBG_ERR("socket failed");
+ return FALSE;
}
- close(sockfd);
- MS_DBG("END SOCKET THREAD");
+ memset(&serv_addr, 0, sizeof(serv_addr));
+ serv_addr.sin_family = AF_INET;
+ serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+ serv_addr.sin_port = htons(serv_port);
- err = ms_disconnect_db(handle);
- if (err != MS_ERR_NONE) {
- MS_DBG("ms_media_db_close error : %d", err);
- return false;
+ /* Bind to the local address */
+ if (bind(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
+ MS_DBG_ERR("bind failed");
+ return FALSE;
}
- MS_DBG("Disconnect MEDIA DB");
- return 0;
+ MS_DBG("bind success");
+
+ *sock_fd = sock;
+
+ return TRUE;
}
diff --git a/common/media-server-utils.c b/common/media-server-utils.c
index 12bacbc..76b7db9 100755
--- a/common/media-server-utils.c
+++ b/common/media-server-utils.c
@@ -30,13 +30,11 @@
#include <pmapi.h>
#include <vconf.h>
-#include <drm-service.h>
-#ifdef PROGRESS
-#include <quickpanel.h>
-#endif
#include "media-server-inotify.h"
#include "media-server-utils.h"
+#include "media-server-drm.h"
+#include "media-server-dbus.h"
#ifdef FMS_PERF
#include <sys/time.h>
@@ -45,72 +43,11 @@ struct timeval g_mmc_start_time;
struct timeval g_mmc_end_time;
#endif
-extern GAsyncQueue *scan_queue;
-
-#define CONTENT_TYPE_NUM 4
-#define MUSIC_MIME_NUM 28
-#define SOUND_MIME_NUM 1
-#define MIME_TYPE_LENGTH 255
-#define MIME_LENGTH 50
-#define _3GP_FILE ".3gp"
-#define _MP4_FILE ".mp4"
#define MS_DRM_CONTENT_TYPE_LENGTH 100
int ums_mode = 0;
-int current_usb_mode = 0;
extern int mmc_state;
-typedef struct {
- char content_type[15];
- int category_by_mime;
-} ms_content_table_t;
-
-static const ms_content_table_t content_category[CONTENT_TYPE_NUM] = {
- {"audio", MS_CATEGORY_SOUND},
- {"image", MS_CATEGORY_IMAGE},
- {"video", MS_CATEGORY_VIDEO},
- {"application", MS_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*/
-};
-
-static const char sound_mime_table[SOUND_MIME_NUM][MIME_LENGTH] = {
- "x-smaf",
-};
-
static int
_ms_set_power_mode(ms_db_status_type_t status)
{
@@ -129,7 +66,7 @@ _ms_set_power_mode(ms_db_status_type_t status)
res = MS_ERR_UNKNOWN_ERROR;
break;
default:
- MS_DBG("Unacceptable type : %d", status);
+ MS_DBG_ERR("Unacceptable type : %d", status);
break;
}
@@ -148,11 +85,13 @@ ms_set_db_status(ms_db_status_type_t status)
} else if (status == MS_DB_UPDATED) {
if(ms_config_set_int(VCONFKEY_FILEMANAGER_DB_STATUS, VCONFKEY_FILEMANAGER_DB_UPDATED))
res = MS_ERR_VCONF_SET_FAIL;
+ /*notify to other application about db updated by DBUS*/
+ ms_dbus_send_noti(MS_DBUS_DB_UPDATED);
}
err = _ms_set_power_mode(status);
if (err != MS_ERR_NONE) {
- MS_DBG("_ms_set_power_mode fail");
+ MS_DBG_ERR("_ms_set_power_mode fail");
res = err;
}
@@ -186,156 +125,77 @@ ms_check_time_diff(struct timeval *start_time, struct timeval *end_time)
}
#endif
-void
-ms_usb_vconf_cb(void *data)
-{
- MS_DBG_START();
-
- int status = 0;
-
- MS_DBG("Received usb noti from vconf : %d", status);
-
- if (!ms_config_get_int(VCONFKEY_USB_STORAGE_STATUS, &status)) {
- MS_DBG
- ("........Get VCONFKEY_USB_STORAGE_STATUS failed........");
- }
-
- MS_DBG("ms_config_get_int : VCONFKEY_USB_STORAGE_STATUS END = %d",
- status);
- current_usb_mode = status;
-
- if (current_usb_mode == VCONFKEY_USB_STORAGE_STATUS_OFF) {
- if (ums_mode != VCONFKEY_USB_STORAGE_STATUS_OFF) {
- ms_scan_data_t *int_scan;
-
- int_scan = malloc(sizeof(ms_scan_data_t));
-
- int_scan->db_type = MS_PHONE;
- int_scan->scan_type = MS_SCAN_PART;
-
- /*push data to fex_dir_scan_cb */
- g_async_queue_push(scan_queue, GINT_TO_POINTER(int_scan));
-
- if (ms_is_mmc_inserted()) {
- ms_scan_data_t *ext_scan;
-
- /*prepare to insert drm data and delete previous drm datas */
- if (drm_svc_insert_ext_memory() ==
- DRM_RESULT_SUCCESS)
- MS_DBG("drm_svc_insert_ext_memory OK");
-
- ext_scan = malloc(sizeof(ms_scan_data_t));
- mmc_state = VCONFKEY_SYSMAN_MMC_MOUNTED;
-
- ext_scan->db_type = MS_MMC;
- ext_scan->scan_type = MS_SCAN_PART;
-
- /*push data to fex_dir_scan_cb */
- g_async_queue_push(scan_queue, GINT_TO_POINTER(ext_scan));
- }
- }
- ums_mode = VCONFKEY_USB_STORAGE_STATUS_OFF;
- ms_config_set_int(MS_USB_MODE_KEY, MS_VCONFKEY_NORMAL_MODE);
- }
- else {
- if (ums_mode == VCONFKEY_USB_STORAGE_STATUS_OFF) {
- MS_DBG("VCONFKEY_USB_STORAGE_STATUS : %d", current_usb_mode);
- ms_scan_data_t *int_scan;
-
- ums_mode = current_usb_mode;
-
- int_scan = malloc(sizeof(ms_scan_data_t));
- int_scan->scan_type = MS_SCAN_VALID;
- int_scan->db_type = MS_PHONE;
-
- g_async_queue_push(scan_queue, GINT_TO_POINTER(int_scan));
-
- ms_inoti_remove_watch_recursive(MS_PHONE_ROOT_PATH);
-
- if (ums_mode == VCONFKEY_USB_STORAGE_STATUS_UMS_MMC_ON) {
-
- ms_scan_data_t *ext_scan;
-
- ext_scan = malloc(sizeof(ms_scan_data_t));
- ext_scan->scan_type = MS_SCAN_VALID;
- ext_scan->db_type = MS_MMC;
-
- g_async_queue_push(scan_queue, GINT_TO_POINTER(ext_scan));
-
- ms_inoti_remove_watch_recursive(MS_MMC_ROOT_PATH);
-
- /*notify to drm-server */
- if (drm_svc_extract_ext_memory() == DRM_RESULT_SUCCESS)
- MS_DBG("drm_svc_extract_ext_memory OK");
- }
-
- /*delete all drm contect from drm server */
- if (drm_svc_unregister_all_contents() == DRM_RESULT_SUCCESS)
- MS_DBG("drm_svc_unregister_all_contents OK");
-
- ms_config_set_int(MS_USB_MODE_KEY, MS_VCONFKEY_MASS_STORAGE_MODE);
- }
- }
-
- MS_DBG_END();
- return;
-}
-
bool
ms_is_mmc_inserted(void)
{
int data = -1;
ms_config_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &data);
- MS_DBG("%s is %d ", VCONFKEY_SYSMAN_MMC_STATUS, data);
if (data != VCONFKEY_SYSMAN_MMC_MOUNTED) {
- MS_DBG("SD Card is inserted");
return false;
} else {
- MS_DBG("SD Card is not inserted");
return true;
}
}
+/*CAUTION : Before using this function, Have to allocate static memory of ret_path*/
+/*And the array length does not over MS_FILE_PATH_LEN_MAX*/
+/*for example : char path[MS_FILE_PATH_LEN_MAX] = {0};*/
int
-ms_get_full_path_from_node(ms_dir_scan_info * const node, char *ret_path)
+ms_get_full_path_from_node(ms_dir_scan_info * const node, char *ret_path, int depth)
{
- int err = 0;
+ int i = 0;
+ int path_length = 0;
+ int length = 0;
ms_dir_scan_info *cur_node;
- char path[MS_FILE_PATH_LEN_MAX] = { 0 };
- char tmp_path[MS_FILE_PATH_LEN_MAX] = { 0 };
+ char **path_array;
- cur_node = node;
- MS_DBG("%s", cur_node->name);
+ if (depth < 0) {
+ MS_DBG_ERR("depth < 0");
+ return MS_ERR_INVALID_DIR_PATH;
+ }
- while (1) {
- err = ms_strappend(path, sizeof(path), "/%s%s", cur_node->name, tmp_path);
- if (err < 0) {
- MS_DBG("ms_strappend error : %d", err);
- return err;
- }
+ path_array = malloc(sizeof(char*) * (depth + 1));
- strncpy(tmp_path, path, MS_FILE_PATH_LEN_MAX);
+ cur_node = node;
+ while (1) {
+ path_array[i] = cur_node->name;
if (cur_node->parent == NULL)
break;
cur_node = cur_node->parent;
- memset(path, 0, MS_FILE_PATH_LEN_MAX);
+ i++;
+ }
+
+ for(i = depth ; i >= 0 ; i --) {
+ length = strlen(path_array[i]);
+
+ if (path_length + length > MS_FILE_PATH_LEN_MAX) {
+ MS_DBG_ERR("This is invalid path, %s, %d", node->name, depth);
+ return MS_ERR_INVALID_DIR_PATH;
+ }
+
+ strncpy(ret_path+path_length, path_array[i], length);
+ path_length += length;
+
+ ret_path[path_length] = '/';
+ path_length ++;
}
- strncpy(ret_path, path, MS_FILE_PATH_LEN_MAX);
+ ret_path[-- path_length] = '\0';
- return err;
+ free(path_array);
+
+ return MS_ERR_NONE;
}
-ms_store_type_t
-ms_get_store_type_by_full(const char *path)
+ms_storage_type_t
+ms_get_storage_type_by_full(const char *path)
{
- if (strncmp(path + 1, MS_PHONE_ROOT_PATH, strlen(MS_PHONE_ROOT_PATH)) == 0) {
- return MS_PHONE;
- } else
- if (strncmp(path + 1, MS_MMC_ROOT_PATH, strlen(MS_MMC_ROOT_PATH)) == 0) {
- return MS_MMC;
+ if (strncmp(path, MS_ROOT_PATH_INTERNAL, strlen(MS_ROOT_PATH_INTERNAL)) == 0) {
+ return MS_STORAGE_INTERNAL;
+ } else if (strncmp(path, MS_ROOT_PATH_EXTERNAL, strlen(MS_ROOT_PATH_EXTERNAL)) == 0) {
+ return MS_STORATE_EXTERNAL;
} else
return MS_ERR_INVALID_FILE_PATH;
}
@@ -355,7 +215,6 @@ ms_strappend(char *res, const int size, const char *pattern,
len = snprintf(res, real_size, pattern, str1, str2);
if (len < 0) {
- MS_DBG("MS_ERR_ARG_INVALID");
return MS_ERR_ARG_INVALID;
}
@@ -378,7 +237,6 @@ ms_strcopy(char *res, const int size, const char *pattern, const char *str1)
len = snprintf(res, real_size, pattern, str1);
if (len < 0) {
- MS_DBG("MS_ERR_ARG_INVALID");
return MS_ERR_ARG_INVALID;
}
@@ -393,7 +251,7 @@ ms_config_get_int(const char *key, int *value)
int err;
if (!key || !value) {
- MS_DBG("Arguments key or value is NULL");
+ MS_DBG_ERR("Arguments key or value is NULL");
return false;
}
@@ -403,7 +261,7 @@ ms_config_get_int(const char *key, int *value)
else if (err == -1)
return false;
else
- MS_DBG("Unexpected error code: %d", err);
+ MS_DBG_ERR("Unexpected error code: %d", err);
return false;
}
@@ -414,7 +272,7 @@ ms_config_set_int(const char *key, int value)
int err;
if (!key) {
- MS_DBG("Arguments key is NULL");
+ MS_DBG_ERR("Arguments key is NULL");
return false;
}
@@ -424,7 +282,7 @@ ms_config_set_int(const char *key, int value)
else if (err == -1)
return false;
else
- MS_DBG("Unexpected error code: %d", err);
+ MS_DBG_ERR("Unexpected error code: %d", err);
return false;
}
@@ -434,7 +292,7 @@ ms_config_get_str(const char *key, char *value)
{
char *res;
if (!key || !value) {
- MS_DBG("Arguments key or value is NULL");
+ MS_DBG_ERR("Arguments key or value is NULL");
return false;
}
@@ -453,7 +311,7 @@ ms_config_set_str(const char *key, const char *value)
int err;
if (!key || !value) {
- MS_DBG("Arguments key or value is NULL");
+ MS_DBG_ERR("Arguments key or value is NULL");
return false;
}
@@ -461,82 +319,8 @@ ms_config_set_str(const char *key, const char *value)
if (err == 0)
return true;
else
- MS_DBG("fail to vconf_set_str %d", err);
+ MS_DBG_ERR("fail to vconf_set_str %d", err);
return false;
}
-void
-ms_check_db_updating(void)
-{
- int vconf_value = 0;
-
- /*wait if phone init is not finished. */
- while (1) {
- ms_config_get_int(VCONFKEY_FILEMANAGER_DB_STATUS, &vconf_value);
-
- if (vconf_value != VCONFKEY_FILEMANAGER_DB_UPDATED) {
- MS_DBG("iNoti waits till init_phone finishes...");
- sleep(2);
- } else {
- return;
- }
- }
-}
-
-#ifdef PROGRESS
-void
-ms_create_quickpanel(struct quickpanel *ms_quickpanel)
-{
- MS_DBG_START();
- int type_id;
- int ret;
-
- struct quickpanel_type *qp_type;
-
- ret = quickpanel_get_type_id(NULL,
- "/opt/apps/com.samsung.myfile/res/icons/default/small/com.samsung.myfile.png",
- 0);
- MS_DBG("return value of quickpanel_get_type_id : %d", ret);
-
- ms_quickpanel->type = ret;
- ms_quickpanel->priv_id = getpid();
- ms_quickpanel->group_id = 0;
- ms_quickpanel->title = "Media scanning";
- ms_quickpanel->content = NULL;
- ms_quickpanel->progress = 0;
- ms_quickpanel->args = NULL;
- ms_quickpanel->args_group = NULL;
- ms_quickpanel->evt = QP_E_ONGOING;
-
- ret = quickpanel_insert(ms_quickpanel);
- MS_DBG("return value of quickpanel_insert : %d", ret);
-
- MS_DBG_END();
-}
-
-void
-ms_update_progress(struct quickpanel *ms_quickpanel, double progress)
-{
- MS_DBG_START();
-
- MS_DBG("%lf", progress)
- quickpanel_update_progress(ms_quickpanel->type,
- ms_quickpanel->priv_id, progress);
-
- MS_DBG_END();
-}
-
-void
-ms_delete_quickpanel(struct quickpanel *ms_quickpanel)
-{
- MS_DBG_START();
- int ret = 0;
-
- ret = quickpanel_delete(ms_quickpanel->type, ms_quickpanel->priv_id);
- MS_DBG("return value of quickpanel_delete : %d", ret);
-
- MS_DBG_END();
-}
-#endif /*PROGRESS*/
-
diff --git a/configure.ac b/configure.ac
index 6a33169..79a1553 100755
--- a/configure.ac
+++ b/configure.ac
@@ -64,7 +64,7 @@ PKG_CHECK_MODULES(DLOG, dlog)
AC_SUBST(DLOG_CFLAGS)
AC_SUBST(DLOG_LIBS)
-PKG_CHECK_MODULES(DRM_SERVICE, drm-service)
+PKG_CHECK_MODULES(DRM_SERVICE, drm-client)
AC_SUBST(DRM_SERVICE_CFLAGS)
AC_SUBST(DRM_SERVICE_LIBS)
@@ -80,6 +80,14 @@ PKG_CHECK_MODULES(LIBPMCONTROL, pmapi)
AC_SUBST(LIBPMCONTROL_CFLAGS)
AC_SUBST(LIBPMCONTROL_LIBS)
+PKG_CHECK_MODULES(HEYNOTI, heynoti)
+AC_SUBST(HEYNOTI_CFLAGS)
+AC_SUBST(HEYNOTI_LIBS)
+
+PKG_CHECK_MODULES(DBUS, dbus-glib-1)
+AC_SUBST(DBUS_CFLAGS)
+AC_SUBST(DBUS_LIBS)
+
# quickpanel library
#PKG_CHECK_MODULES(LIBQUICKPANEL, quickpanel)
#AC_SUBST(LIBQUICKPANEL_CFLAGS)
diff --git a/debian/changelog b/debian/changelog
index 42153a5..9e1b38e 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,55 +1,3574 @@
+media-server (0.1.77) unstable; urgency=low
+
+ * delete some codes related to UMS mode
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.77
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 30 May 2012 17:25:39 +0900
+
+media-server (0.1.76) unstable; urgency=low
+
+ * change vconf key value
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.76
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 30 May 2012 11:53:25 +0900
+
+media-server (0.1.75) unstable; urgency=low
+
+ * change vconf key value
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.75
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 24 May 2012 11:07:00 +0900
+
+media-server (0.1.74) unstable; urgency=low
+
+ * change default path
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.74
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 23 May 2012 17:27:46 +0900
+
+media-server (0.1.73) unstable; urgency=low
+
+ * change DRM APIs
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.73
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 18 May 2012 12:48:04 +0900
+
+media-server (0.1.72) unstable; urgency=low
+
+ * code clean up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.72
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 09 May 2012 18:38:08 +0900
+
+media-server (0.1.71) unstable; urgency=low
+
+ * code clean up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.71
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 09 May 2012 17:02:17 +0900
+
+media-server (0.1.70) unstable; urgency=low
+
+ * code clean up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.70
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 20 Apr 2012 11:56:53 +0900
+
+media-server (0.1.69) unstable; urgency=low
+
+ * version up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.69
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 16 Apr 2012 16:39:18 +0900
+
+media-server (0.1.68) unstable; urgency=low
+
+ * rollback and code clean up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.68
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 16 Apr 2012 14:18:37 +0900
+
+media-server (0.1.67) unstable; urgency=low
+
+ * change position of function call of g_idle_add
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.67
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 13 Apr 2012 11:09:34 +0900
+
media-server (0.1.66) unstable; urgency=low
- * update latest code
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.66
+ * drm apis move to main loop
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.66
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 13 Apr 2012 14:17:13 +0900
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 12 Apr 2012 16:45:58 +0900
media-server (0.1.65) unstable; urgency=low
- * add Testcase of libmedia-utils
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.65
+ * arrange log messages
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.65
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 27 Mar 2012 14:05:03 +0900
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 09 Apr 2012 16:51:44 +0900
media-server (0.1.64) unstable; urgency=low
- * update media-server.spec
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.64
+ * delete unnecessary code
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.64
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 09 Apr 2012 15:51:21 +0900
+
+media-server (0.1.63) unstable; urgency=low
+
+ * update media-server.spec for obs
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.63
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 23 Mar 2012 17:06:38 +0900
+
+media-server (0.1.63) unstable; urgency=low
+
+ * update media-server.spec for obs
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.63
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 09 Mar 2012 15:29:38 +0900
+
+media-server (0.1.62) unstable; urgency=low
+
+ * add function and log message for debugging
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.62
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 07 Mar 2012 21:24:01 +0900
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 23 Mar 2012 17:42:58 +0900
+media-server (0.1.61) unstable; urgency=low
+
+ * modify condition for while looping in ms_inoti_add_watch_with_node
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.61
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 05 Mar 2012 14:28:51 +0900
+
+media-server (0.1.60) unstable; urgency=low
+
+ * delete dependency in debin/control and delete some including headers
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.60
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 16 Feb 2012 10:44:21 +0900
+
+media-server (0.1.59) unstable; urgency=low
+
+ * modify TC and delete thumbnail requesting routine
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.59
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 15 Feb 2012 15:15:05 +0900
+
+media-server (0.1.58) unstable; urgency=low
+
+ * delete feature of libmedia-service
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.58
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 13 Feb 2012 17:44:59 +0900
+
+media-server (0.1.57) unstable; urgency=low
+
+ * remove libmedia-service dependency
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.57
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 13 Feb 2012 15:16:02 +0900
+
+media-server (0.1.56) unstable; urgency=low
+
+ * add new libmedia-service APIs
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.56
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 30 Jan 2012 14:31:58 +0900
+
+media-server (0.1.55) unstable; urgency=low
+
+ * code refactoring
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.55
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 27 Jan 2012 16:49:49 +0900
media-server (0.1.54) unstable; urgency=low
- * merge for 1.0 release
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.54
+ * apply new libmedia-service : add db handler in each function and thread
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.54
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 20 Mar 2012 09:53:27 +0900
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 18 Jan 2012 12:35:17 +0900
media-server (0.1.53) unstable; urgency=low
- * fix build error
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.53
+ * apply new policy of default directories
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.53
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 18 Feb 2012 17:22:51 +0900
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 17 Jan 2012 10:29:37 +0900
media-server (0.1.52) unstable; urgency=low
- * for beta release
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.52
+ * add log for debug
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.52
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 10 Feb 2012 15:01:20 +0900
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 17 Jan 2012 09:58:49 +0900
media-server (0.1.51) unstable; urgency=low
+ * add log for debug
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.51
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 16 Jan 2012 20:58:58 +0900
+
+media-server (0.1.50) unstable; urgency=low
+
+ * change error type
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.50
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 12 Dec 2011 20:44:55 +0900
+
+media-server (0.1.49) unstable; urgency=low
+
+ * change name of dependency module from libmedia-info to libmedia-service
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.49
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 06 Dec 2011 13:09:51 +0900
+
+media-server (0.1.48) unstable; urgency=low
+
+ * change name of macro for preventing conflict
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.48
+
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 05 Dec 2011 17:27:08 +0900
+
+media-server (0.1.47) unstable; urgency=low
+
+ * change boiler plate
+ * add header file into including header list
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.47
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 02 Dec 2011 11:34:53 +0900
+
+media-server (0.1.46) unstable; urgency=low
+
+ * add dependency for development package
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.46
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 01 Dec 2011 18:12:03 +0900
+
+media-server (0.1.45) unstable; urgency=low
+
+ * fix build break from using this library and change name of dlog tag
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.45
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 01 Dec 2011 15:16:29 +0900
+
+media-server (0.1.44) unstable; urgency=low
+
+ * add new api(media_file_register) and change name of library
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.44
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 01 Dec 2011 10:47:38 +0900
+
+media-server (0.1.43) unstable; urgency=low
+
+ * apply bundle commit for register_file
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.43
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 24 Nov 2011 13:19:39 +0900
+
+media-server (0.1.42) unstable; urgency=low
+
+ * change sequence of booting
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.42
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 12 Nov 2011 10:56:10 +0900
+
+media-server (0.1.41) unstable; urgency=low
+
+ * change sequence of booting
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.41
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 10 Nov 2011 15:42:40 +0900
+
+media-server (0.1.40) unstable; urgency=low
+
+ * apply to changing of libmedia-info : using uuid
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.40
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 31 Oct 2011 12:50:41 +0900
+
+media-server (0.1.39) unstable; urgency=low
+
+ * disable feature of hibernation
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.39
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 24 Oct 2011 10:57:25 +0900
+
+media-server (0.1.38) unstable; urgency=low
+
+ * change position of some functions
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.38
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 20 Oct 2011 15:44:10 +0900
+
+media-server (0.1.37) unstable; urgency=low
+
+ * change way to IPC
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.37
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 19 Oct 2011 11:13:45 +0900
+
+media-server (0.1.36) unstable; urgency=low
+
+ * fix bug(CQ H0100135152) : if non-media content is registered, media-server did not reply for request
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.36
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 14 Oct 2011 20:22:56 +0900
+
+media-server (0.1.35) unstable; urgency=low
+
+ * version up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.35
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 11 Oct 2011 19:06:17 +0900
+
+media-server (0.1.34) unstable; urgency=low
+
+ * version up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.34
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 04 Oct 2011 15:25:44 +0900
+
+media-server (0.1.33) unstable; urgency=low
+
+ * change way to compare mmc card information
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.33
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 21 Sep 2011 13:08:12 +0900
+
+media-server (0.1.32) unstable; urgency=low
+
+ * change position of initializing mutex
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.32
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 17 Sep 2011 14:21:45 +0900
+
+media-server (0.1.31) unstable; urgency=low
+
+ * add mutex in db open function and fix bug for music player(related with drm files)
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.31
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 16 Sep 2011 18:14:44 +0900
+
+media-server (0.1.30) unstable; urgency=low
+
+ * apply change of audio-svc(bundle commit)
+ * remove creating schema of media db
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.30
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 16 Sep 2011 11:48:23 +0900
+
+media-server (0.1.29) unstable; urgency=low
+
+ * remove creating schema of media db
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.29
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 08 Sep 2011 17:52:48 +0900
+
+media-server (0.1.28) unstable; urgency=low
+
+ * check return value of some functions
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.28
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 07 Sep 2011 11:58:51 +0900
+
+media-server (0.1.27) unstable; urgency=low
+
+ * add music mime type
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.27
+
+ -- Yong Yoen Kim <yy9875.kim@samsung.com> Tue, 06 Sep 2011 11:36:11 +0900
+
+media-server (0.1.26) unstable; urgency=low
+
+ * change schema of musci db
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.26
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 05 Sep 2011 10:54:48 +0900
+
+media-server (0.1.25) unstable; urgency=low
+
+ * Change postinst of media-server
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.25
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 02 Sep 2011 13:36:26 +0900
+
+media-server (0.1.24) unstable; urgency=low
+
+ * Change the logic of calling minfo_set_db_valid api
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.24
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 29 Aug 2011 17:30:19 +0900
+
+media-server (0.1.23) unstable; urgency=low
+
+ * fix bug : when user connect to usb for mass storage mode. music list do not have to display in music play.
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.23
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 26 Aug 2011 15:16:32 +0900
+
+media-server (0.1.22) unstable; urgency=low
+
+ * fix prevent defect
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.22
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 22 Aug 2011 10:22:00 +0900
+
+media-server (0.1.21) unstable; urgency=low
+
+ * prepare for removing mmc vconf
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.21
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 18 Aug 2011 18:22:49 +0900
+
+media-server (0.1.20) unstable; urgency=low
+
+ * change db inserting data in media-server postinst
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.20
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 18 Aug 2011 13:33:53 +0900
+
+media-server (0.1.19) unstable; urgency=low
+
+ * change mmc root path
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.19
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 17 Aug 2011 14:45:20 +0900
+
+media-server (0.1.18) unstable; urgency=low
+
+ * change vconf value changing time for syncronizing between data in db and vconf status
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.18
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 10 Aug 2011 17:00:14 +0900
+
+media-server (0.1.17) unstable; urgency=low
+
+ * restore mmc root path
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.17
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 10 Aug 2011 10:49:45 +0900
+
+media-server (0.1.16) unstable; urgency=low
+
+ * remove g_async_queue_pop() in ms_scan_thread()
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.16
+
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 09 Aug 2011 17:20:33 +0900
+
+media-server (0.1.15) unstable; urgency=low
+
+ * fix mmc updating bug when reboot
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.15
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 04 Aug 2011 11:54:17 +0900
+
+media-server (0.1.14) unstable; urgency=low
+
+ * remove log command
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.14
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 03 Aug 2011 10:26:17 +0900
+
+media-server (0.1.13) unstable; urgency=low
+
+ * code clean up and add sqlite3_shared_cache_enable() in main function
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.13
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 28 Jul 2011 11:05:54 +0900
+
+media-server (0.1.12) unstable; urgency=low
+
+ * fix mmc updating bug if the directory exist but can not read
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.12
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 20 Jul 2011 11:16:03 +0900
+
+media-server (0.1.11) unstable; urgency=low
+
+ * fix mmc updating bug and code clean up
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.11
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 16 Jul 2011 15:32:10 +0900
+
+media-server (0.1.10) unstable; urgency=low
+
+ * add db update routine when file is updated or overwrited
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.10
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 12 Jul 2011 16:32:21 +0900
+
+media-server (0.1.9) unstable; urgency=low
+
+ * add some sql command in postinst file
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.9
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 06 Jul 2011 19:34:06 +0900
+
+media-server (0.1.8) unstable; urgency=low
+
+ * fix prevent defects
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.8
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 05 Jul 2011 12:00:38 +0900
+
+media-server (0.1.7) unstable; urgency=low
+
+ * add progress bar in quickpanel
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.7
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 29 Jun 2011 12:00:16 +0900
+
+media-server (0.1.6) unstable; urgency=low
+
+ * add mmc data updating time check function and fix db update bug
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.6
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 24 Jun 2011 14:39:26 +0900
+
+media-server (0.1.5) unstable; urgency=low
+
+ * fix categorize error
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.5
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 22 Jun 2011 08:51:10 +0900
+
+media-server (0.1.4) unstable; urgency=low
+
+ * fix install error
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.4
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 20 Jun 2011 11:46:37 +0900
+
+media-server (0.1.3) unstable; urgency=low
+
+ * change db insert data in media-servser postinst file
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.3
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 20 Jun 2011 10:02:07 +0900
+
+media-server (0.1.2) unstable; urgency=low
+
+ * add drm API for deleting all contents from drm server
+ * Clean up repository
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.2
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 13 Jun 2011 14:55:24 +0900
+
+media-server (0.1.1) unstable; urgency=low
+
+ * Fix build break
+ * Clean up repository
+ * Git: slp/pkgs/m/media-server
+ * Tag: media-server_0.1.1
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 10 Jun 2011 10:20:39 +0900
+
+media-server (0.1.0) unstable; urgency=low
+
+ * change package name
+ * Git: 165.213.180.234:slp/pkgs/m/media-server
+ * Tag: media-server_0.1.0
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 24 May 2011 17:19:22 +0900
+
+file-manager-service (0.77.70) unstable; urgency=low
+
+ * fix bug : mmc update
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.70
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 23 May 2011 17:46:54 +0900
+
+file-manager-service (0.77.69) unstable; urgency=low
+
+ * add setting default value of vconf in file-manager-service.postinst.in
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.69
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 19 May 2011 11:00:24 +0900
+
+file-manager-service (0.77.68) unstable; urgency=low
+
+ * code clean up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.68
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 18 May 2011 21:06:46 +0900
+
+file-manager-service (0.77.67) unstable; urgency=low
+
+ * add dircetory scanning thread, fix bug, apply libmedia-info, code clean up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.67
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 18 May 2011 21:05:21 +0900
+
+file-manager-service (0.77.66) unstable; urgency=low
+
+ * change position of initilizing GAsyncQueue and add checking path in directory scan function
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.66
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 04 May 2011 13:13:08 +0900
+
+file-manager-service (0.77.65) unstable; urgency=low
+
+ * change position of initilizing GAsyncQueue and add checking path in directory scan function
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.65
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 03 May 2011 14:37:47 +0900
+
+file-manager-service (0.77.64) unstable; urgency=low
+
+ * change name of default file in file-manager-service postinst file
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.64
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 02 May 2011 10:55:44 +0900
+
+file-manager-service (0.77.63) unstable; urgency=low
+
+ * fix install error
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.63
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 26 Apr 2011 17:29:08 +0900
+
+file-manager-service (0.77.62) unstable; urgency=low
+
+ * modify process check
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.62
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 26 Apr 2011 14:31:07 +0900
+
+file-manager-service (0.77.61) unstable; urgency=low
+
+ * modify process check
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.61
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 25 Apr 2011 17:34:26 +0900
+
+file-manager-service (0.77.60) unstable; urgency=low
+
+ * add runnig process check function and created file linked list
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.60
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 25 Apr 2011 12:01:00 +0900
+
+file-manager-service (0.77.59) unstable; urgency=low
+
+ * modify postinst file for music db
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.59
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 21 Apr 2011 15:44:46 +0900
+
+file-manager-service (0.77.58) unstable; urgency=low
+
+ * modify postinst file
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.58
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 21 Apr 2011 13:43:20 +0900
+
+file-manager-service (0.77.57) unstable; urgency=low
+
+ * change music db schema
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.57
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 21 Apr 2011 10:03:19 +0900
+
+file-manager-service (0.77.56) unstable; urgency=low
+
+ * fix bug
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.56
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 20 Apr 2011 20:13:41 +0900
+
+file-manager-service (0.77.55) unstable; urgency=low
+
+ * fix mmc updating fail when first booting time after binary download
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.55
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 20 Apr 2011 17:11:38 +0900
+
+file-manager-service (0.77.54) unstable; urgency=low
+
+ * combine db updating vconf
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.54
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 20 Apr 2011 09:28:21 +0900
+
+file-manager-service (0.77.53) unstable; urgency=low
+
+ * change way to check ums_mode (using global variable)
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.53
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 11 Apr 2011 21:20:00 +0900
+
+file-manager-service (0.77.52) unstable; urgency=low
+
+ * add closedir() and fix bug(mmc db update fail)
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.52
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 11 Apr 2011 16:51:59 +0900
+
+file-manager-service (0.77.51) unstable; urgency=low
+
+ * code clean up and add sync() after creating db
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.51
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 07 Apr 2011 17:05:42 +0900
+
+file-manager-service (0.77.50) unstable; urgency=low
+
+ * code clean up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.50
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 06 Apr 2011 19:07:04 +0900
+
+file-manager-service (0.77.49) unstable; urgency=low
+
+ * change music db schema and code clean up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.49
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 05 Apr 2011 11:58:48 +0900
+
+file-manager-service (0.77.48) unstable; urgency=low
+
+ * code clean up and add _fex_inoti_add_watch_with_node() in fex_dir_scan()
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.48
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 01 Apr 2011 20:42:57 +0900
+
+file-manager-service (0.77.47) unstable; urgency=low
+
+ * fix db update bug after rebooting when db is updating
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.47
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 30 Mar 2011 10:21:25 +0900
+
+file-manager-service (0.77.46) unstable; urgency=low
+
+ * code clean up and chane fex_usb_in_out_cb:wq
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.46
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 29 Mar 2011 15:03:14 +0900
+
+file-manager-service (0.77.45) unstable; urgency=low
+
+ * fix bug : when directory is moved, some files are missing
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.45
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 28 Mar 2011 15:52:42 +0900
+
+file-manager-service (0.77.44) unstable; urgency=low
+
+ * change way to scan all directory without recursive call
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.44
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 25 Mar 2011 14:45:49 +0900
+
+file-manager-service (0.77.43) unstable; urgency=low
+
+ * change way to check category of file
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.43
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 22 Mar 2011 16:42:54 +0900
+
+file-manager-service (0.77.42) unstable; urgency=low
+
+ * apply to change of music db schema
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.42
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 21 Mar 2011 10:05:33 +0900
+
+file-manager-service (0.77.41) unstable; urgency=low
+
+ * change schema of music db
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.41
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 16 Mar 2011 15:01:32 +0900
+
+file-manager-service (0.77.40) unstable; urgency=low
+
+ * fix rename bug and remove fixed size array
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.40
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 16 Mar 2011 20:00:00 +0900
+
+file-manager-service (0.77.39) unstable; urgency=low
+
+ * g_last_event_name from global variable in inotify and delete dbus publish
+ fucntion
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.39
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 15 Mar 2011 20:00:00 +0900
+
+file-manager-service (0.77.38) unstable; urgency=low
+
+ * rollback ums removal cb and code clean up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.38
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 14 Mar 2011 20:00:00 +0900
+
+file-manager-service (0.77.37) unstable; urgency=low
+
+ * remove heynoti and modify db updateing routine after usb cabel is ejected
+ and remove global variable sqlite_db.
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.37
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 9 Mar 2011 20:00:00 +0900
+
+file-manager-service (0.77.36) unstable; urgency=low
+
+ * remove unusing code for music-svc
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.36
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 8 Mar 2011 20:00:00 +0900
+
+file-manager-service (0.77.35) unstable; urgency=low
+
+ * modify postinst
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.35
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 28 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.34) unstable; urgency=low
+
+ * fix bug(when remove usb cable, all data is deleted in music and media
+ browser db)
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.34
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 28 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.33) unstable; urgency=low
+
+ * code clean up and delete file-manager-service db
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.33
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 28 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.32) unstable; urgency=low
+
+ * code clean up and change music db schema in postinst file
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.32
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 26 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.31) unstable; urgency=low
+
+ * fix prevent defects
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.31
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 24 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.30) unstable; urgency=low
+
+ * roll back
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.30
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 23 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.27) unstable; urgency=low
+
+ * fix CQ bug (H0100121330)
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.27
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 22 Feb 2011 20:00:00 +0900
+
+file-manager-service (0.77.26) unstable; urgency=low
+
+ * code clean and change schema of music db
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.26
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 22 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.25) unstable; urgency=low
+
+ * code clean and change schema of music db
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.25
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 21 Feb 2011 19:00:00 +0900
+
+file-manager-service (0.77.24) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.24
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 19 Feb 2011 19:00:00 +0900
+
+file-manager-service (0.77.23) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.23
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 18 Feb 2011 19:00:00 +0900
+
+file-manager-service (0.77.22) unstable; urgency=low
+
+ * fix bug when folder is copied
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.22
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 16 Feb 2011 19:00:00 +0900
+
+file-manager-service (0.77.21) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.21
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 16 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.20) unstable; urgency=low
+
+ * change music DB schema
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.20
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 14 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.19) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.19
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 11 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.18) unstable; urgency=low
+
+ * fix bug when mmc is ejected
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.18
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 10 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.17) unstable; urgency=low
+
+ * fix bug when mmc is ejected
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.17
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 10 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.16) unstable; urgency=low
+
+ * change music db schema in postinst
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.16
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Feb 2011 14:00:00 +0900
+
+file-manager-service (0.77.15) unstable; urgency=low
+
+ * fix build error
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.15
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Feb 2011 09:00:00 +0900
+
+file-manager-service (0.77.14) unstable; urgency=low
+
+ * change music db schema in postinst
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.14
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Feb 2011 09:00:00 +0900
+
+file-manager-service (0.77.13) unstable; urgency=low
+
+ * change postinst for default files
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.13
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 24 Jan 2011 09:00:00 +0900
+
+file-manager-service (0.77.12) unstable; urgency=low
+
+ * change postinst for default files
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.12
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 24 Jan 2011 09:00:00 +0900
+
+file-manager-service (0.77.11) unstable; urgency=low
+
+ * change postinst for default files
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.11
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 24 Jan 2011 09:00:00 +0900
+
+file-manager-service (0.77.10) unstable; urgency=low
+
+ * change position of add watch for fixing CQ H0100118804 and change Music DB schema
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.10
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 21 Jan 2011 09:00:00 +0900
+
+file-manager-service (0.77.9) unstable; urgency=low
+
+ * fix prevent defect, modify using faulty dbus fuction, delete DB Trigger in
+ postinst
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.9
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 19 Jan 2011 14:00:00 +0900
+
+file-manager-service (0.77.8) unstable; urgency=low
+
+ * version up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.8
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 18 Jan 2011 19:40:00 +0900
+
+file-manager-service (0.77.7) unstable; urgency=low
+
+ * set vconf in fex_db_service_init()
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.7
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 18 Jan 2011 10:40:00 +0900
+
+file-manager-service (0.77.6) unstable; urgency=low
+
+ * Apply media-svc API changing
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.6
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 17 Jan 2011 17:40:00 +0900
+
+file-manager-service (0.77.5) unstable; urgency=low
+
+ * music DB table schema is changed and fix db update after disconnecting
+ Mass storage
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.5
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 14 Jan 2011 14:40:00 +0900
+
+file-manager-service (0.77.4) unstable; urgency=low
+
+ * fix build error by changing API of media-svc
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.4
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 10 Jan 2011 14:40:00 +0900
+
+file-manager-service (0.77.3) unstable; urgency=low
+
+ * fix CQ bug H0100115930 & fix memory leak of g_main_lopp
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.3
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 6 Jan 2011 14:40:00 +0900
+
+file-manager-service (0.77.2) unstable; urgency=low
+
+ * fix memory leak
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.2
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 5 Jan 2011 20:40:00 +0900
+
+file-manager-service (0.77.1) unstable; urgency=low
+
+ * modify db schema in media-browser postinst
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.77.1
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 4 Jan 2011 11:40:00 +0900
+
+file-manager-service (0.76.26) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.26
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 30 Dec 2010 11:40:00 +0900
+
+file-manager-service (0.76.25) unstable; urgency=low
+
+ * change category order and delet record fuction
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.25
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 29 Dec 2010 14:40:00 +0900
+
+file-manager-service (0.76.24) unstable; urgency=low
+
+ * modify postinst and add DB creation routine
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.24
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 29 Dec 2010 11:20:00 +0900
+
+file-manager-service (0.76.23) unstable; urgency=low
+
+ * add dbus publish call after register file
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.23
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 27 Dec 2010 11:20:00 +0900
+
+file-manager-service (0.76.22) unstable; urgency=low
+
+ * apply as-needed option
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.22
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 24 Dec 2010 14:20:00 +0900
+
+file-manager-service (0.76.21) unstable; urgency=low
+
+ * version up
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.21
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 22 Dec 2010 19:20:00 +0900
+
+file-manager-service (0.76.20) unstable; urgency=low
+
+ * modify db exist check routine
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.20
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 20 Dec 2010 14:20:00 +0900
+
+file-manager-service (0.76.19) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.19
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 20 Dec 2010 10:00:00 +0900
+
+file-manager-service (0.76.18) unstable; urgency=low
+
+ * fix inotify bug
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.18
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 16 Dec 2010 10:00:00 +0900
+
+file-manager-service (0.76.17) unstable; urgency=low
+
+ * fix install error in SBOX2
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.17
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 15 Dec 2010 17:00:00 +0900
+
+file-manager-service (0.76.16) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.16
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 15 Dec 2010 17:00:00 +0900
+
+file-manager-service (0.76.15) unstable; urgency=low
+
+ * fix inotify bug and modify meida-svc APIs
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.15
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 13 Dec 2010 21:00:00 +0900
+
+file-manager-service (0.76.14) unstable; urgency=low
+
+ * code clean and fix mmc reset bug
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.14
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 13 Dec 2010 14:00:00 +0900
+
+file-manager-service (0.76.13) unstable; urgency=low
+
+ * add deleting media-browser DB routine
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.13
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 10 Dec 2010 11:00:00 +0900
+
+file-manager-service (0.76.12) unstable; urgency=low
+
+ * delete media-svc APIs
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.12
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 9 Dec 2010 15:00:00 +0900
+
+file-manager-service (0.76.11) unstable; urgency=low
+
+ * add media-svc APIs
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.11
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 8 Dec 2010 16:10:00 +0900
+
+file-manager-service (0.76.10) unstable; urgency=low
+
+ * fix crash
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.10
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Dec 2010 21:10:00 +0900
+
+file-manager-service (0.76.9) unstable; urgency=low
+
+ * fix infinite loop in inoti_cb
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.9
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Dec 2010 16:10:00 +0900
+
+file-manager-service (0.76.8) unstable; urgency=low
+
+ * fix infinite loop in inoti_cb
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.8
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Dec 2010 15:50:00 +0900
+
+file-manager-service (0.76.7) unstable; urgency=low
+
+ * fix infinite loop in inoti_cb
+ * Git: 165.213.180.234:slp/pkgs/f/file-manager-service
+ * Tag: file-manager-service_0.76.7
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Dec 2010 11:50:00 +0900
+
+file-manager-service (0.76.6) unstable; urgency=low
+
+ * fix infinite loop in inoti_cb
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.76.6
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 7 Dec 2010 11:50:00 +0900
+
+file-manager-service (0.76.5) unstable; urgency=low
+
+ * change prefix and add SQL query
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.76.5
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Sat, 4 Dec 2010 11:50:00 +0900
+
+file-manager-service (0.76.4) unstable; urgency=low
+
+ * change prefix and add DBUS noti for changing directory
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.76.4
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 3 Dec 2010 16:10:00 +0900
+
+file-manager-service (0.76.3) unstable; urgency=low
+
+ * fix bug, media file delete bug
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.76.3
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 2 Dec 2010 12:10:00 +0900
+
+file-manager-service (0.76.2) unstable; urgency=low
+
+ * remove unused codes
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.76.2
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 1 Dec 2010 16:10:00 +0900
+
+file-manager-service (0.76.1) unstable; urgency=low
+
+ * modify postinst
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.76.1
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 11 Dec 2010 10:10:00 +0900
+
+file-manager-service (0.75.30) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.30
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 30 Nov 2010 17:50:00 +0900
+
+file-manager-service (0.75.29) unstable; urgency=low
+
+ * add inotify exception path
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.29
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 26 Nov 2010 15:50:00 +0900
+
+file-manager-service (0.75.28) unstable; urgency=low
+
+ * fix changing mmc bug
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.28
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 25 Nov 2010 10:50:00 +0900
+
+file-manager-service (0.75.27) unstable; urgency=low
+
+ * remove log
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.27
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 24 Nov 2010 20:50:00 +0900
+
+file-manager-service (0.75.26) unstable; urgency=low
+
+ * fix bug _fex_db_set_valid_unchanged_items in mmc updating
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.26
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 24 Nov 2010 13:30:00 +0900
+
+file-manager-service (0.75.25) unstable; urgency=low
+
+ * fix crash
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.25
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 23 Nov 2010 21:30:00 +0900
+
+file-manager-service (0.75.24) unstable; urgency=low
+
+ * version up
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.24
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 23 Nov 2010 19:30:00 +0900
+
+file-manager-service (0.75.23) unstable; urgency=low
+
+ * add fex_finalize and fex_initalize and modify rejeted mmc check routine
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.23
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 23 Nov 2010 19:30:00 +0900
+
+file-manager-service (0.75.22) unstable; urgency=low
+
+ * apply new music service and media-svc schema
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.22
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 23 Nov 2010 15:30:00 +0900
+
+file-manager-service (0.75.21) unstable; urgency=low
+
+ * modify mmc information update routine
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.21
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 18 Nov 2010 20:30:00 +0900
+
+file-manager-service (0.75.20) unstable; urgency=low
+
+ * chagne postinsta and except unused files from make package.
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.20
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 18 Nov 2010 10:30:00 +0900
+
+file-manager-service (0.75.19) unstable; urgency=low
+
+ * chagne postinsta and except unused files from make package.
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.19
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 17 Nov 2010 13:30:00 +0900
+
+file-manager-service (0.75.18) unstable; urgency=low
+
+ * chagne postinst
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.18
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 16 Nov 2010 16:50:00 +0900
+
+file-manager-service (0.75.17) unstable; urgency=low
+
+ * chagne postinst
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.17
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 15 Nov 2010 16:50:00 +0900
+
+file-manager-service (0.75.16) unstable; urgency=low
+
+ * db insert record in postinst
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.16
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 12 Nov 2010 18:50:00 +0900
+
+file-manager-service (0.75.15) unstable; urgency=low
+
+ * fix install error
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.15
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 12 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.14) unstable; urgency=low
+
+ * fix install error
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.14
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 12 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.13) unstable; urgency=low
+
+ * add db creating routine and fix crash
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.13
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 12 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.12) unstable; urgency=low
+
+ * fix install error
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.12
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 11 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.11) unstable; urgency=low
+
+ * fix install error
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.11
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 11 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.10) unstable; urgency=low
+
+ * version up
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.10
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 11 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.9) unstable; urgency=low
+
+ * add db create script in file-manager-service postinst file
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.9
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 11 Nov 2010 13:50:00 +0900
+
+file-manager-service (0.75.8) unstable; urgency=low
+
+ * fix fex_register_file_mtp drm bug
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.8
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 9 Nov 2010 15:40:00 +0900
+
+file-manager-service (0.75.7) unstable; urgency=low
+
+ * add debugging log
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.7
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 8 Nov 2010 20:17:00 +0900
+
+file-manager-service (0.75.6) unstable; urgency=low
+
+ * fix browser install error defect
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.6
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 8 Nov 2010 19:20:00 +0900
+
+file-manager-service (0.75.5) unstable; urgency=low
+
+ * fix string bug
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.5
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 8 Nov 2010 16:25:00 +0900
+
+file-manager-service (0.75.4) unstable; urgency=low
+
+ * remove unused log messages
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.4
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 8 Nov 2010 10:10:00 +0900
+
+file-manager-service (0.75.3) unstable; urgency=low
+
+ * fix flaw
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.3
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 3 Nov 2010 11:50:00 +0900
+
+file-manager-service (0.75.2) unstable; urgency=low
+
+ * code clean in __fexplorer_db_service_generate_filter_string
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.2
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 3 Nov 2010 09:50:00 +0900
+
+file-manager-service (0.75.1) unstable; urgency=low
+
+ * fix AUTO binary bug
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.1
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 2 Nov 2010 14:40:00 +0900
+
+file-manager-service (0.75.0) unstable; urgency=low
+
+ * update changelog
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.75.0
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 2 Nov 2010 10:40:00 +0900
+
+file-manager-service (0.74.40) unstable; urgency=low
+
+ * version up and remove libfms-util
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.40
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 28 Oct 2010 16:20:00 +0900
+
+file-manager-service (0.74.39) unstable; urgency=low
+
+ * remove md5 files
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.39
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 28 Oct 2010 14:20:00 +0900
+
+file-manager-service (0.74.38) unstable; urgency=low
+
+ * remove flaw and change media-svc
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.38
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 27 Oct 2010 16:50:00 +0900
+
+file-manager-service (0.74.37) unstable; urgency=low
+
+ * fix snprintf in __fexplorer_db_service_generate_filter_string
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.37
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 26 Oct 2010 19:40:00 +0900
+
+file-manager-service (0.74.36) unstable; urgency=low
+
+ * fix fex_register_file duplicate transaction, change mmc mount point so,
+ change opendir path in _update_mmc_info function
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.36
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 26 Oct 2010 14:20:00 +0900
+
+file-manager-service (0.74.35) unstable; urgency=low
+
+ * update change log
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.35
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 25 Oct 2010 12:50:00 +0900
+
+file-manager-service (0.74.34) unstable; urgency=low
+
+ * remove phone dir init function
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.34
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 22 Oct 2010 09:00:00 +0900
+
+file-manager-service (0.74.33) unstable; urgency=low
+
+ * remove old mp-svc API
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.33
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 21 Oct 2010 19:30:00 +0900
+
+file-manager-service (0.74.32) unstable; urgency=low
+
+ * fix thubmnail problem and remove unused codes
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.32
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 21 Oct 2010 14:50:00 +0900
+
+file-manager-service (0.74.31) unstable; urgency=low
+
+ * update doxygen information
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.31
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 21 Oct 2010 14:10:00 +0900
+
+file-manager-service (0.74.30) unstable; urgency=low
+
+ * modify inotify
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.30
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 21 Oct 2010 01:50:00 +0900
+
+file-manager-service (0.74.29) unstable; urgency=low
+
+ * remove sprintf flaws
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.29
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 20 Oct 2010 20:50:00 +0900
+
+file-manager-service (0.74.28) unstable; urgency=low
+
+ * remove fms-contact and remove sprintf flaws
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.28
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 20 Oct 2010 18:05:00 +0900
+
+file-manager-service (0.74.27) unstable; urgency=low
+
+ * update media browser service by Hyunjun Ko
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.27
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 20 Oct 2010 16:30:00 +0900
+
+file-manager-service (0.74.26) unstable; urgency=low
+
+ * fix sprintf to snprintf in file-system.c
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.26
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 20 Oct 2010 11:30:00 +0900
+
+file-manager-service (0.74.25) unstable; urgency=low
+
+ * fix RS bug when inserting MMC
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.25
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 19 Oct 2010 15:00:00 +0900
+
+file-manager-service (0.74.24) unstable; urgency=low
+
+ * add temp_download dir remove routine in phone
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.24
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 18 Oct 2010 16:40:00 +0900
+
+file-manager-service (0.74.23) unstable; urgency=low
+
+ * apply changed APIs of MMFW
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.23
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 18 Oct 2010 15:00:00 +0900
+
+
+file-manager-service (0.74.22) unstable; urgency=low
+
+ * add S60fmsvc path for normal booting
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.22
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 15 Oct 2010 19:30:00 +0900
+
+file-manager-service (0.74.21) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.21
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 14 Oct 2010 18:30:00 +0900
+
+file-manager-service (0.74.20) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.20
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 14 Oct 2010 18:30:00 +0900
+
+file-manager-service (0.74.19) unstable; urgency=low
+
+ * modify inoti move and rename flow for exact sync
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.19
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 14 Oct 2010 18:05:00 +0900
+
+file-manager-service (0.74.18) unstable; urgency=low
+
+ * fix build break
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.18
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 14 Oct 2010 14:50:00 +0900
+
+file-manager-service (0.74.17) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.17
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 13 Oct 2010 19:30:00 +0900
+
+file-manager-service (0.74.16) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.16
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Tue, 13 Oct 2010 17:30:00 +0900
+
+file-manager-service (0.74.15) unstable; urgency=low
+
+ * update change log
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.15
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 13 Oct 2010 15:30:00 +0900
+
+file-manager-service (0.74.14) unstable; urgency=low
+
+ * add fms_register_file
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.14
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 12 Oct 2010 11:30:00 +0900
+
+file-manager-service (0.74.13) unstable; urgency=low
+
+ * rollback because of fms-util build break
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.13
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 11 Oct 2010 19:45:00 +0900
+
+file-manager-service (0.74.12) unstable; urgency=low
+
+ * repackage for new libmusic-service
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.12
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 11 Oct 2010 19:30:00 +0900
+
+file-manager-service (0.74.11) unstable; urgency=low
+
+ * add fms_register_file in fms-util
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.11
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 11 Oct 2010 17:25:00 +0900
+
+file-manager-service (0.74.10) unstable; urgency=low
+
+ * remove function in hibernation_leave_callback
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.10
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 11 Oct 2010 10:40:00 +0900
+
+file-manager-service (0.74.9) unstable; urgency=low
+
+ * add pya, pyv mime type and fix some bugs
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.9
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 08 Oct 2010 21:40:00 +0900
+
+file-manager-service (0.74.8) unstable; urgency=low
+
+ * add inoti thread close code
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.8
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Fri, 08 Oct 2010 20:40:00 +0900
+
+file-manager-service (0.74.7) unstable; urgency=low
+
+ * modify mmc callback routine
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.7
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 07 Oct 2010 21:30:00 +0900
+
+file-manager-service (0.74.6) unstable; urgency=low
+
+ * add pya pyv file category
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.6
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 07 Oct 2010 17:50:00 +0900
+
+file-manager-service (0.74.5) unstable; urgency=low
+
+ * add fms-util-debug.h file
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.5
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 07 Oct 2010 15:50:00 +0900
+
+file-manager-service (0.74.4) unstable; urgency=low
+
+ * change inotify fd name to avoid confusion
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.4
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 07 Oct 2010 12:50:00 +0900
+
+file-manager-service (0.74.3) unstable; urgency=low
+
+ * add error code for crash log
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.3
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 07 Oct 2010 11:20:00 +0900
+
+file-manager-service (0.74.2) unstable; urgency=low
+
+ * modify Program guide name
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.2
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 06 Oct 2010 20:20:00 +0900
+
+file-manager-service (0.74.1) unstable; urgency=low
+
+ * add Program guide to header
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.1
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 06 Oct 2010 17:20:00 +0900
+
+file-manager-service (0.74.0) unstable; urgency=low
+
+ * add TC for fms-util
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.74.0
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 05 Oct 2010 15:50:00 +0900
+
+file-manager-service (0.73.23) unstable; urgency=low
+
+ * add doxygen
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.23
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 05 Oct 2010 10:50:00 +0900
+
+file-manager-service (0.73.22) unstable; urgency=low
+
+ * add fex_make_default_path api
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.22
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 04 Oct 2010 19:00:00 +0900
+
+file-manager-service (0.73.21) unstable; urgency=low
+
+ * Modify email address
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.21
+
+ -- Sangjin Han <sjhan.han@samsung.com> Sat, 02 Oct 2010 17:25:53 +0900
+
+file-manager-service (0.73.20) unstable; urgency=low
+
+ * Add ext_sync for minfo_xxx
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.20
+
+ -- Sangjin Han <sjhan.han@samsung.com> Fri, 01 Oct 2010 18:30:01 +0900
+
+file-manager-service (0.73.19) unstable; urgency=low
+
+ * modify file-manager-service.pc.in for new build system
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.19
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 30 Sep 2010 15:45:00 +0900
+
+
+file-manager-service (0.73.18) unstable; urgency=low
+
+ * add invalid character check routine in inoti
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.18
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 29 Sep 2010 14:45:00 +0900
+
+file-manager-service (0.73.17) unstable; urgency=low
+
+ * modify S60fmsvc path for new build system
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.17
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 28 Sep 2010 11:25:00 +0900
+
+file-manager-service (0.73.16) unstable; urgency=low
+
+ * add fms_get_default_path API
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.16
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 27 Sep 2010 17:25:00 +0900
+
+file-manager-service (0.73.15) unstable; urgency=low
+
+ * re-upload
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.15
+
+ -- Tang Feng <feng.tang@samsung.com> Tue, 21 Sep 2010 18:12:12 +0800
+
+file-manager-service (0.73.14) unstable; urgency=low
+
+ * add uploader
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.14
+
+ -- Tang Feng <feng.tang@samsung.com> Tue, 21 Sep 2010 17:56:22 +0800
+
+file-manager-service (0.73.13) unstable; urgency=low
+
+ * support playing amr voice file from myfile
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.13
+
+ -- Yang Jian Jun <jerry.young@samsung.com> Tue, 21 Sep 2010 17:40:00 +0800
+
+file-manager-service (0.73.12) unstable; urgency=low
+
+ * reupload
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.12
+
+ -- Tang Feng <feng.tang@samsung.com> Sat, 11 Sep 2010 14:15:01 +0900
+
+file-manager-service (0.73.11) unstable; urgency=low
+
+ * reupload
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.11
+
+ -- Byungwook Jang <bw.jang@samsung.com> Sat, 11 Sep 2010 13:15:01 +0900
+
+file-manager-service (0.73.10) unstable; urgency=low
+
+ * remove doxygen
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.10
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 07 Sep 2010 18:25:00 +0900
+
+file-manager-service (0.73.9) unstable; urgency=low
+
+ * add build option in rules
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.9
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 07 Sep 2010 18:25:00 +0900
+
+file-manager-service (0.73.8) unstable; urgency=low
+
+ * remove DCIM folders
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.8
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 07 Sep 2010 09:30:00 +0900
+
+file-manager-service (0.73.7) unstable; urgency=low
+
+ * add exception handler if returned record is NULL in _fex_iNoti_cb() and
+ change open() to access() in __fexplorer_get_dir_record()
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.7
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 31 Aug 2010 16:30:00 +0900
+
+file-manager-service (0.73.6) unstable; urgency=low
+
+ * repackage for i386
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.6
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 30 Aug 2010 09:30:00 +0900
+
+file-manager-service (0.73.5) unstable; urgency=low
+
+ * modify changelog
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.5
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 26 Aug 2010 18:30:00 +0900
+
+file-manager-service (0.73.4) unstable; urgency=low
+
+ * add fex_db_service_simple_get_item_list_by_keyword API for myfile search
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.4
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 26 Aug 2010 18:20:00 +0900
+
+file-manager-service (0.73.3) unstable; urgency=low
+
+ * add code for disconnecting music db
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.3
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 25 Aug 2010 17:50:02 +0900
+
+file-manager-service (0.73.2) unstable; urgency=low
+
+ * add code for disconnecting music db
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.2
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 23 Aug 2010 09:50:02 +0900
+
+
+file-manager-service (0.73.1) unstable; urgency=low
+
+ * arrange source code lines
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.1
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Thu, 19 Aug 2010 09:50:02 +0900
+
+file-manager-service (0.73.0) unstable; urgency=low
+
+ * code clean about internal function
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.73.0
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 17 Aug 2010 19:50:02 +0900
+
+file-manager-service (0.72.0-35) unstable; urgency=low
+
+ * chage thumb dir
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-35
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 12 Aug 2010 19:15:02 +0900
+
+file-manager-service (0.72.0-34) unstable; urgency=low
+
+ * repackage for avoiding build break
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-34
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 12 Aug 2010 18:55:02 +0900
+
+file-manager-service (0.72.0-33) unstable; urgency=low
+
+ * remove printf
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-33
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Sat, 07 Aug 2010 12:30:02 +0900
+
+file-manager-service (0.72.0-32) unstable; urgency=low
+
+ * fix inotify bug and change sprintf to snprintf in inoti_cb
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-32
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 05 Aug 2010 15:10:02 +0900
+
+file-manager-service (0.72.0-31) unstable; urgency=low
+
+ * remove make thumb dir function and modify default folder mkdir option
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-31
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 04 Aug 2010 17:00:02 +0900
+
+file-manager-service (0.72.0-30) unstable; urgency=low
+
+ * add chown and chmod for thumb path
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-30
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 03 Aug 2010 13:50:02 +0900
+
+file-manager-service (0.72.0-29) unstable; urgency=low
+
+ * reupload for media browser service
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-29
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 29 Jul 2010 15:00:02 +0900
+
+file-manager-service (0.72.0-28) unstable; urgency=low
+
+ * fix bug of CQ:H0100097313, fix fclose crash
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-28
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Tue, 27 Jul 2010 15:00:02 +0900
+
+file-manager-service (0.72.0-27) unstable; urgency=low
+
+ * fix crashlog bugs, remove doxygen comment, modify debian control file
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-27
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Fri, 23 Jul 2010 09:30:02 +0900
+
+file-manager-service (0.72.0-26) unstable; urgency=low
+
+ * fix move bug CQ:HO100103724
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-26
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 22 Jul 2010 20:30:02 +0900
+
+file-manager-service (0.72.0-25) unstable; urgency=low
+
+ * code clean
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-25
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Mon, 19 Jul 2010 20:10:02 +0900
+
+file-manager-service (0.72.0-24) unstable; urgency=low
+
+ * modify changelog for new tag
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-24
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 14 Jul 2010 17:30:02 +0900
+
+
+file-manager-service (0.72.0-23) unstable; urgency=low
+
+ * modify git repo address in changelog file
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-23
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 14 Jul 2010 18:30:02 +0900
+
+file-manager-service (0.72.0-22) unstable; urgency=low
+
+ * modify __fex_inoti_modify_watch() for Crash Logger
+ * Git: 165.213.180.234:/git/slp/pkgs/file-manager-service
+ * Tag: file-manager-service_0.72.0-22
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 14 Jul 2010 18:30:02 +0900
+
+file-manager-service (0.72.0-21) unstable; urgency=low
+
+ * modify doxygen comment of fex_finalize() API in
+ Fexplorer-engine-uniform-mgr.h
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-21
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 12 Jul 2010 18:30:02 +0900
+
+file-manager-service (0.72.0-20) unstable; urgency=low
+
+ * add protection copy flow in fex_copy_file
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-20
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 9 Jul 2010 10:10:02 +0900
+
+file-manager-service (0.72.0-19) unstable; urgency=low
+
+ * add smartsearch request flow
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-19
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 8 Jul 2010 10:00:02 +0900
+
+file-manager-service (0.72.0-18) unstable; urgency=low
+
+ * add "?" flow in check invalid name
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-18
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Wed, 7 Jul 2010 11:00:02 +0900
+
+file-manager-service (0.72.0-17) unstable; urgency=low
+
+ * modify control file
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-17
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 5 Jul 2010 20:30:02 +0900
+
+file-manager-service (0.72.0-16) unstable; urgency=low
+
+ * modify maintainers
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-16
+
+ -- Yong Yeon Kim <yy9875.kim@samsung.com> Mon, 5 Jul 2010 20:30:02 +0900
+
+file-manager-service (0.72.0-15) unstable; urgency=low
+
+ * remove "?" character because of encoding problem.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-15
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 1 Jul 2010 16:30:02 +0900
+
+file-manager-service (0.72.0-14) unstable; urgency=low
+
+ * add "?" character in invalid folder name.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-14
+
+ -- Ju Wan Kim <juwan.kim@samsung.com> Thu, 1 Jul 2010 16:10:02 +0900
+
+file-manager-service (0.72.0-13) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-13
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 26 Jun 2010 16:35:02 +0900
+
+file-manager-service (0.72.0-12) unstable; urgency=low
+
+ * export media default paths
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-12
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 25 Jun 2010 16:50:42 +0900
+
+file-manager-service (0.72.0-11) unstable; urgency=low
+
+ * fix build break
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-11
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 25 Jun 2010 16:14:12 +0900
+
+file-manager-service (0.72.0-10) unstable; urgency=low
+
+ * add new APIs for API-TF
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-10
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 25 Jun 2010 11:02:42 +0900
+
+file-manager-service (0.72.0-9) unstable; urgency=low
+
+ * repackaging because of dlog
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-9
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 23 Jun 2010 20:29:09 +0900
+
+file-manager-service (0.72.0-8) unstable; urgency=low
+
+ * modified headers for doxygen
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-8
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 21 Jun 2010 12:27:04 +0900
+
+file-manager-service (0.72.0-7) unstable; urgency=low
+
+ * bugfix - cannot play when copying/moving sound files
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-7
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 21 Jun 2010 10:46:37 +0900
+
+file-manager-service (0.72.0-6) unstable; urgency=low
+
+ * add descriptions for deprecated functions
+ * add dlog tag
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-6
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 19 Jun 2010 11:59:16 +0900
+
+file-manager-service (0.72.0-5) unstable; urgency=low
+
+ * bugfix fex_move_file_to_fexplorer
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-5
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 17 Jun 2010 13:30:34 +0900
+
+file-manager-service (0.72.0-4) unstable; urgency=low
+
+ * refine codes for hiding
+ * remove ifdefs, modify ums codes
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-4
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 15 Jun 2010 21:59:53 +0900
+
+file-manager-service (0.72.0-3) unstable; urgency=low
+
+ * fix build breaks
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-3
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 15 Jun 2010 13:06:24 +0900
+
+file-manager-service (0.72.0-2) unstable; urgency=low
+
+ * enable mmc partial update when booting
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-2
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 15 Jun 2010 12:39:49 +0900
+
+file-manager-service (0.72.0-1) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-1
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 14 Jun 2010 15:34:53 +0900
+
+file-manager-service (0.72.0-0) unstable; urgency=low
+
+ * enable MMC partial update
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.72.0-0
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 12 Jun 2010 09:57:39 +0900
+
+file-manager-service (0.71.0-10) unstable; urgency=low
+
+ * bugfix in mb,mp set valid function usage
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-10
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 11 Jun 2010 11:02:51 +0900
+
+file-manager-service (0.71.0-9) unstable; urgency=low
+
+ * remove ? check routine
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-9
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 10 Jun 2010 09:44:05 +0900
+
+file-manager-service (0.71.0-8) unstable; urgency=low
+
+ * bugfix blackscreen when mmc removed
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-8
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 09 Jun 2010 21:57:58 +0900
+
+file-manager-service (0.71.0-7) unstable; urgency=low
+
+ * remove deprecated functions in fms-thumb.c
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-7
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 08 Jun 2010 17:19:07 +0900
+
+file-manager-service (0.71.0-6) unstable; urgency=low
+
+ * append pid
+ * remove warnings in fms-thumb
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-6
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 07 Jun 2010 20:32:52 +0900
+
+file-manager-service (0.71.0-5) unstable; urgency=low
+
+ * bugfix - delete/move
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-5
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 07 Jun 2010 17:16:50 +0900
+
+file-manager-service (0.71.0-4) unstable; urgency=low
+
+ * bugfix - dblock problems
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-4
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 07 Jun 2010 14:24:10 +0900
+
+file-manager-service (0.71.0-3) unstable; urgency=low
+
+ * fix & adopt changes in mb-svc
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-3
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 04 Jun 2010 14:26:44 +0900
+
+file-manager-service (0.71.0-2) unstable; urgency=low
+
+ * fix install error in fms-contact
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-2
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 04 Jun 2010 10:02:53 +0900
+
+file-manager-service (0.71.0-1) unstable; urgency=low
+
+ * enable dlog
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-1
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 04 Jun 2010 00:41:56 +0900
+
+file-manager-service (0.71.0-0) unstable; urgency=low
+
+ * bugfix for crash log
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.71.0-0
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 03 Jun 2010 22:58:45 +0900
+
+file-manager-service (0.70.0-14) unstable; urgency=low
+
+ * bugfixs
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-14
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 03 Jun 2010 21:19:43 +0900
+
+file-manager-service (0.70.0-13) unstable; urgency=low
+
+ * remove all deprecated APIs
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-13
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 03 Jun 2010 16:09:00 +0900
+
+file-manager-service (0.70.0-12) unstable; urgency=low
+
+ * remove chmods/chowns
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-12
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 03 Jun 2010 14:26:40 +0900
+
+file-manager-service (0.70.0-11) unstable; urgency=low
+
+ * modify error-code for mtp
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-11
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 03 Jun 2010 14:07:42 +0900
+
+file-manager-service (0.70.0-10) unstable; urgency=low
+
+ * update test codes
+ * set faster mmc indexing timer
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-10
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 02 Jun 2010 12:34:12 +0900
+
+file-manager-service (0.70.0-9) unstable; urgency=low
+
+ * remove utilcore.h
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-9
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 29 May 2010 09:48:06 +0900
+
+file-manager-service (0.70.0-8) unstable; urgency=low
+
+ * remove utilcore in pc
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-8
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 29 May 2010 09:34:35 +0900
+
+file-manager-service (0.70.0-7) unstable; urgency=low
+
+ * reupload for build-fail
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-7
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 26 May 2010 21:58:56 +0900
+
+file-manager-service (0.70.0-6) unstable; urgency=low
+
+ * bug fix when using "opendir" function occured by "file-system kernal panic" after wake-up from power-manager
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-6
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 26 May 2010 21:02:58 +0900
+
+file-manager-service (0.70.0-5) unstable; urgency=low
+
+ * mb-svc API changes
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-5
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 25 May 2010 13:57:37 +0900
+
+file-manager-service (0.70.0-4) unstable; urgency=low
+
+ * add exception on _is_table_exist
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-4
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 24 May 2010 11:16:41 +0900
+
+file-manager-service (0.70.0-3) unstable; urgency=low
+
+ * bugfix for opendir
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-3
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 22 May 2010 16:13:13 +0900
+
+file-manager-service (0.70.0-2) unstable; urgency=low
+
+ * bugfix for mmc out
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-2
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 20 May 2010 10:21:30 +0900
+
+file-manager-service (0.70.0-1) unstable; urgency=low
+
+ * remove unused APIs
+ * append retry routine for inotify
+ * append trigger init for search
+ * append mmc identify routines
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-1
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 19 May 2010 22:28:29 +0900
+
+file-manager-service (0.70.0-0) unstable; urgency=low
+
+ * enable iNotify
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.70.0-0
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 17 May 2010 20:12:45 +0900
+
+file-manager-service (0.68.0-53) unstable; urgency=low
+
+ * dababase and it`s thumbnail removal
+ * matched with music-service modified API
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-53
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 17 May 2010 15:49:41 +0900
+
+file-manager-service (0.68.0-52) unstable; urgency=low
+
+ * filemanager.poinst.int update
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-52
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 14 May 2010 10:53:12 +0900
+
+file-manager-service (0.68.0-51) unstable; urgency=low
+
+ * postinst.in update
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-51
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 14 May 2010 10:35:07 +0900
+
+file-manager-service (0.68.0-50) unstable; urgency=low
+
+ * bugfix of builderror for libs
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-50
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 14 May 2010 10:14:04 +0900
+
+file-manager-service (0.68.0-49) unstable; urgency=low
+
+ * Inotify implementation
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-49
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 13 May 2010 20:09:28 +0900
+
+file-manager-service (0.68.0-48) unstable; urgency=low
+
+ * Remove unused/dangerous API
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-48
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 13 May 2010 18:05:13 +0900
+
+file-manager-service (0.68.0-47) unstable; urgency=low
+
+ * repackaging
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 12 May 2010 16:58:59 +0900
+
+file-manager-service (0.68.0-46) unstable; urgency=low
+
+ * reupload for tag vertification fail
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-46
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 12 May 2010 12:45:46 +0900
+
+file-manager-service (0.68.0-45) unstable; urgency=low
+
+ * reupload
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 11 May 2010 15:58:15 +0900
+
+file-manager-service (0.68.0-44) unstable; urgency=low
+
+ * API matched with mp_svc_copy/update/move_item functions
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-44
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 11 May 2010 15:36:03 +0900
+
+file-manager-service (0.68.0-43) unstable; urgency=low
+
+ * repacking by mis-uploading
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-43
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 10 May 2010 20:22:03 +0900
+
+file-manager-service (0.68.0-42) unstable; urgency=low
+
+ * mistyping fixed
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-42
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 10 May 2010 20:16:51 +0900
+
+file-manager-service (0.68.0-41) unstable; urgency=low
+
+ * file size show over 2gb problem fixed
+ * file size sort with directory problem fixed
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-41
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 10 May 2010 13:18:36 +0900
+
+file-manager-service (0.68.0-40) unstable; urgency=low
+
+ * bugfix in mmc indexing
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-40
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 30 Apr 2010 14:24:01 +0900
+
+file-manager-service (0.68.0-39) unstable; urgency=low
+
+ * bugfix in _get_dir_size
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-39
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 30 Apr 2010 11:13:56 +0900
+
+file-manager-service (0.68.0-38) unstable; urgency=low
+
+ * is_duplicate bugfix
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-38
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 29 Apr 2010 14:37:04 +0900
+
+file-manager-service (0.68.0-37) unstable; urgency=low
+
+ * just reupload
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-37
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 28 Apr 2010 13:54:14 +0900
+
+file-manager-service (0.68.0-36) unstable; urgency=low
+
+ * change idler -> timer
+ * remove postin
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-36
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 28 Apr 2010 10:56:47 +0900
+
+file-manager-service (0.68.0-35) unstable; urgency=low
+
+ * modify postin
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-35
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 27 Apr 2010 12:50:39 +0900
+
+file-manager-service (0.68.0-34) unstable; urgency=low
+
+ * add additional postin
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-34
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 27 Apr 2010 11:14:11 +0900
+
+file-manager-service (0.68.0-33) unstable; urgency=low
+
+ * reblock postin
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-33
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 27 Apr 2010 10:46:40 +0900
+
+file-manager-service (0.68.0-32) unstable; urgency=low
+
+ * export mmc-noti api
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-32
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 27 Apr 2010 10:41:41 +0900
+
+file-manager-service (0.68.0-31) unstable; urgency=low
+
+ * postinst remodification
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-31
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 26 Apr 2010 22:23:57 +0900
+
+file-manager-service (0.68.0-30) unstable; urgency=low
+
+ * postinst.in renaming
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-30
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 26 Apr 2010 22:18:20 +0900
+
+file-manager-service (0.68.0-29) unstable; urgency=low
+
+ * bug fix : fex_thumb_generate_pathname
+ * enable idler_add
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-29
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 26 Apr 2010 21:13:28 +0900
+
+file-manager-service (0.68.0-28) unstable; urgency=low
+
+ * bug fix : _fexplorer_copy_actual_file
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-28
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 26 Apr 2010 14:30:10 +0900
+
+file-manager-service (0.68.0-27) unstable; urgency=low
+
+ * enable i386
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-27
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 24 Apr 2010 19:42:05 +0900
+
+file-manager-service (0.68.0-26) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-26
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 23 Apr 2010 22:14:10 +0900
+
+file-manager-service (0.68.0-25) unstable; urgency=low
+
+ * bug fix : fexplorer_db_service_simple_get_sub_item_list function bug when it has invalid item
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-25
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 23 Apr 2010 21:43:34 +0900
+
+file-manager-service (0.68.0-24) unstable; urgency=low
+
+ * fix available_memory bug
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-24
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 22 Apr 2010 14:27:08 +0900
+
+file-manager-service (0.68.0-23) unstable; urgency=low
+
+ * delete problem fixed
+ * create problem fixed
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-23
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 21 Apr 2010 23:13:31 +0900
+
+file-manager-service (0.68.0-22) unstable; urgency=low
+
+ * reupload for misupload
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-22
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 21 Apr 2010 14:27:06 +0900
+
+file-manager-service (0.68.0-21) unstable; urgency=low
+
+ * reupload for misupload
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-19
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 21 Apr 2010 14:26:06 +0900
+
+file-manager-service (0.68.0-20) unstable; urgency=low
+
+ * reupload for permission error
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-20
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 21 Apr 2010 14:18:33 +0900
+
+file-manager-service (0.68.0-19) unstable; urgency=low
+
+ * reupload for misupload
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-19
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 21 Apr 2010 13:48:27 +0900
+
+file-manager-service (0.68.0-18) unstable; urgency=low
+
+ * Update mp error code
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-18
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 20 Apr 2010 20:25:17 +0900
+
+file-manager-service (0.68.0-17) unstable; urgency=low
+
+ * Package ownership & permission policy applied
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-17
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 20 Apr 2010 14:56:39 +0900
+
+file-manager-service (0.68.0-16) unstable; urgency=low
+
+ * re-re-upload
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-16
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 15 Apr 2010 20:04:24 +0900
+
+file-manager-service (0.68.0-15) unstable; urgency=low
+
+ * reupload for miss upload 0.68.0.14
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-15
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 15 Apr 2010 19:47:39 +0900
+
+file-manager-service (0.68.0-14) unstable; urgency=low
+
+ * add mmc checking logic foreach file-process
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-14
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 15 Apr 2010 12:53:59 +0900
+
+file-manager-service (0.68.0-13) unstable; urgency=low
+
+ * add new API fexplorer_get_image_face
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-13
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Wed, 14 Apr 2010 20:02:33 +0900
+
+file-manager-service (0.68.0-12) unstable; urgency=low
+
+ * reupload for email-violation
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-12
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 12 Apr 2010 22:00:20 +0900
+
+file-manager-service (0.68.0-11) unstable; urgency=low
+
+ * support additional category
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-11
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 12 Apr 2010 21:52:07 +0900
+
+file-manager-service (0.68.0-10) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-10
+
+ -- hochul shin <dsp.shin@samsung.com> Sun, 11 Apr 2010 10:19:49 +0900
+
+file-manager-service (0.68.0-9) unstable; urgency=low
+
+ * repackaging
+
+ -- hochul shin <dsp.shin@samsung.com> Sun, 11 Apr 2010 10:17:26 +0900
+
+file-manager-service (0.68.0-8) unstable; urgency=low
+
+ * append chmod 755
+
+ -- hochul shin <dsp.shin@samsung.com> Sun, 11 Apr 2010 10:04:59 +0900
+
+file-manager-service (0.68.0-7) unstable; urgency=low
+
+ * add boot script
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-7
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Sat, 10 Apr 2010 17:33:36 +0900
+
+file-manager-service (0.68.0-6) unstable; urgency=low
+
+ * re-upload previous version
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-5
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 08 Apr 2010 16:04:54 +0900
+
+file-manager-service (0.68.0-5) unstable; urgency=low
+
+ * Remove unused defines
+ * Add support for .3g2 the Video file
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-5
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 08 Apr 2010 14:11:17 +0900
+
+file-manager-service (0.68.0-4) unstable; urgency=low
+
+ * hibernate support
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-4
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 05 Apr 2010 20:42:06 +0900
+
+file-manager-service (0.68.0-3) unstable; urgency=low
+
+ * retry
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service-0_0.68.0-3
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Mon, 05 Apr 2010 08:59:34 +0900
+
+file-manager-service (0.68.0-2) unstable; urgency=low
+
+ * Auto-rename feature bug fix
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service-0_0.68.0-2
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 02 Apr 2010 13:31:24 +0900
+
+file-manager-service (0.68.0-1) unstable; urgency=low
+
+ * just add tag for build-vertification
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/file-manager-service-0
+ * Tag: file-manager-service_0.68.0-1
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 02 Apr 2010 10:59:10 +0900
+
+file-manager-service (0.68) unstable; urgency=low
+
+ * just repackaged to dupload
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 01 Apr 2010 13:39:45 +0900
+
+file-manager-service (0.67) unstable; urgency=low
+
+ * Applying header with DRM-service
+ * DRM-metadata for audio supporting
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 01 Apr 2010 10:42:26 +0900
+
+file-manager-service (0.66) unstable; urgency=low
+
+ * bugfix : list by type mis-ordering
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 31 Mar 2010 16:23:17 +0900
+
+file-manager-service (0.65) unstable; urgency=low
+
+ * append auto-rename functionality
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 31 Mar 2010 09:56:09 +0900
+
+file-manager-service (0.64) unstable; urgency=low
+
+ * exclude __BOTH_FMS_CONTACT_FMSVC_USED__ definition
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 30 Mar 2010 18:46:38 +0900
+
+file-manager-service (0.63) unstable; urgency=low
+
+ * remove #ifdefs and #ifndefs for SDK
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 30 Mar 2010 16:26:18 +0900
+
+file-manager-service (0.62) unstable; urgency=low
+
+ * enable BT visibility functions for mmc items
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 30 Mar 2010 15:08:18 +0900
+
+file-manager-service (0.61) unstable; urgency=low
+
+ * enable protection functions for mmc items
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 30 Mar 2010 13:49:52 +0900
+
+file-manager-service (0.60) unstable; urgency=low
+
+ * repackaging due to the toolchain upgrade.
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 29 Mar 2010 19:53:38 +0900
+
+file-manager-service (0.59) unstable; urgency=low
+
+ * add fSource for myfileUI progress bar.
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 29 Mar 2010 10:26:58 +0900
+
+file-manager-service (0.58) unstable; urgency=low
+
+ * packaging in order to reflect mmfileinfo's modification
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 27 Mar 2010 15:59:22 +0900
+
+file-manager-service (0.57) unstable; urgency=low
+
+ * reupload to sync with media-browser-service
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Fri, 26 Mar 2010 16:05:29 +0900
+
+file-manager-service (0.56) unstable; urgency=low
+
+ * enable PM controls
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 26 Mar 2010 11:53:02 +0900
+
+file-manager-service (0.55) unstable; urgency=low
+
+ * remark temporarily PM apis.
+ * it should be modified soon.
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 26 Mar 2010 10:13:57 +0900
+
+file-manager-service (0.53) unstable; urgency=low
+
+ * rollback boot-script install code
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 25 Mar 2010 17:41:17 +0900
+
+file-manager-service (0.52) unstable; urgency=low
+
+ * /etc/rc.d script added
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 25 Mar 2010 16:45:57 +0900
+
+file-manager-service (0.51) unstable; urgency=low
+
+ * reupload by uploading mistake
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 25 Mar 2010 15:31:17 +0900
+
+file-manager-service (0.50) unstable; urgency=low
+
+ * Importing all database - file-manager, music and media-browser
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Thu, 25 Mar 2010 15:20:14 +0900
+
+file-manager-service (0.49) unstable; urgency=low
+
+ * ignore noti about parent_dir_path when deleting
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 24 Mar 2010 21:34:03 +0900
+
+file-manager-service (0.48) unstable; urgency=low
+
+ * changing the timing of MMC_IN_OPERATION
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 24 Mar 2010 12:10:44 +0900
+
+file-manager-service (0.47) unstable; urgency=low
+
+ * add database file and thumbnail files
+ * db is syncronized with media-data(0.1.1-38) !!
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 22 Mar 2010 18:40:30 +0900
+
+file-manager-service (0.46) unstable; urgency=low
+
+ * repackaging
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 18 Mar 2010 10:36:34 +0900
+
+file-manager-service (0.45) unstable; urgency=low
+
+ * enable locking dirs
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 17 Mar 2010 16:34:52 +0900
+
+file-manager-service (0.44) unstable; urgency=low
+
+ * increase MAX PATH LENGTH to 4KB.
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 15 Mar 2010 21:19:21 +0900
+
+file-manager-service (0.43) unstable; urgency=low
+
+ * enable wav support for music player
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 13 Mar 2010 15:52:59 +0900
+
+file-manager-service (0.42) unstable; urgency=low
+
+ * packaging
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 13 Mar 2010 10:58:35 +0900
+
+file-manager-service (0.41) unstable; urgency=low
+
+ * reset mmc db whenever mmc inserted
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 12 Mar 2010 14:46:18 +0900
+
+file-manager-service (0.40) unstable; urgency=low
+
+ * modify redefined enums in fms-contact module
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 11 Mar 2010 11:43:26 +0900
+
+file-manager-service (0.39) unstable; urgency=low
+
+ * remove dbus-noti routines temporarily.
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 10 Mar 2010 20:17:44 +0900
+
+file-manager-service (0.38) unstable; urgency=low
+
+ * avoid redefinition violation when using both fms-contact and fm-svc at same time
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 09 Mar 2010 11:19:16 +0900
+
+file-manager-service (0.37) unstable; urgency=low
+
+ * repackaging
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 02 Mar 2010 21:20:19 +0900
+
+file-manager-service (0.36) unstable; urgency=low
+
+ * remove dependency with UI-flash
+
+ -- Seong-hyeon Kim <shyeon.kim@samsung.com> Tue, 02 Mar 2010 21:14:42 +0900
+
+file-manager-service (0.35) unstable; urgency=low
+
+ * add default lock files
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 02 Mar 2010 19:32:00 +0900
+
+file-manager-service (0.34) unstable; urgency=low
+
+ * Comment out flashlite and flash thumbnail related code.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Mon, 01 Mar 2010 09:21:22 +0800
+
+file-manager-service (0.33) unstable; urgency=low
+
+ * Add _fms_{register,unregister}_file_usage functions in fms-contact lib.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 25 Feb 2010 19:05:02 +0800
+
+file-manager-service (0.32-12) unstable; urgency=low
+
+ * _fm_svc_ext_sync_rename_file: call mb_svc_move_item_direct instead of
+ mb_svc_update_path.
+ * enable dbg pkgs. (By dsp.shin)
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 25 Feb 2010 15:29:48 +0800
+
+file-manager-service (0.32-11) unstable; urgency=low
+
+ * Sync media browser's DB in move,copy,rename operation.
+ * Add EXPORT_API to fms-contact lib.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Wed, 24 Feb 2010 11:07:44 +0800
+
+file-manager-service (0.32-10) unstable; urgency=low
+
+ * append is_using_file_usage function
+
+ -- hochul shin <dsp.shin@samsung.com> Tue, 23 Feb 2010 13:44:25 +0900
+
+file-manager-service (0.32-9) unstable; urgency=low
+
+ * append ALARMTONE as a usage type
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 22 Feb 2010 23:12:32 +0900
+
+file-manager-service (0.32-8) unstable; urgency=low
+
+ * append get_index_from_path
+
+ -- hochul shin <dsp.shin@samsung.com> Mon, 22 Feb 2010 23:01:41 +0900
+
+file-manager-service (0.32-7) unstable; urgency=low
+
+ * Refine build script for install .filemanager.db.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Mon, 22 Feb 2010 13:09:25 +0800
+
+file-manager-service (0.32-6) unstable; urgency=low
+
+ * append fexplorer_get_file_count_by_ext
+
+ -- hochul shin <dsp.shin@samsung.com> Fri, 19 Feb 2010 16:30:29 +0900
+
+file-manager-service (0.32-5) unstable; urgency=low
+
+ * let install filemanager.db
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 18 Feb 2010 11:32:39 +0900
+
+file-manager-service (0.32-2) unstable; urgency=low
+
+ * autogen.sh: copy instead of link.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 11 Feb 2010 17:43:46 +0800
+
+file-manager-service (0.32-1) unstable; urgency=low
+
+ * Re-run autogen.sh.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 11 Feb 2010 17:07:57 +0800
+
+file-manager-service (0.32) unstable; urgency=low
+
+ * Add funcation call to delete media-browser-service's DB record.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Wed, 10 Feb 2010 13:29:11 +0800
+
+file-manager-service (0.31-1) unstable; urgency=low
+
+ * Remove *-dev dependencies of dbg package.
+ * Fix bug of init dirs of phone.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Tue, 09 Feb 2010 16:57:35 +0800
+
+file-manager-service (0.30) unstable; urgency=low
+
+ * Change thumb dir to /opt/data/.thumb.
+ * Re-implement cp function.
+ * Init Phone/MMC default dirs.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Mon, 08 Feb 2010 16:19:35 +0800
+
+file-manager-service (0.29) unstable; urgency=low
+
+ * Add SVG category iterator support.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Fri, 05 Feb 2010 19:07:01 +0800
+
+file-manager-service (0.28) unstable; urgency=low
+
+ * Add fms-contact library for contact-engine.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Fri, 05 Feb 2010 17:31:20 +0800
+
+file-manager-service (0.27-1) unstable; urgency=low
+
+ * src_thumb_path use array instead of pointer.
+ * print_record: lld as for int64_t.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 04 Feb 2010 11:20:27 +0800
+
+file-manager-service (0.26) unstable; urgency=low
+
+ * Rewrite thumbnail path operations.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Wed, 03 Feb 2010 22:31:36 +0800
+
+file-manager-service (0.25) unstable; urgency=low
+
+ * Apply unified thumb path and naming; Add invalidate mp, mb DB.
+ Add missing dbus signal.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Tue, 02 Feb 2010 15:31:44 +0800
+
+file-manager-service (0.24) unstable; urgency=low
+
+ * packaging
+
+ -- hochul shin <dsp.shin@samsung.com> Thu, 28 Jan 2010 19:58:48 +0900
+
+file-manager-service (0.23) unstable; urgency=low
+
+ * debian/control: Add libslp-pm-dev to dev package.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 28 Jan 2010 16:47:11 +0800
+
+file-manager-service (0.22) unstable; urgency=low
+
+ * Add back.kim to uploaders list for re-packaging.
+
+ -- Haejeong Kim <backto.kim@samsung.com> Thu, 28 Jan 2010 13:29:11 +0800
+
+file-manager-service (0.21) unstable; urgency=low
+
+ * packaging again
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 27 Jan 2010 15:21:20 +0900
+
+file-manager-service (0.20) unstable; urgency=low
+
+ * packaging
+
+ -- hochul shin <dsp.shin@samsung.com> Wed, 27 Jan 2010 13:29:28 +0900
+
+file-manager-service (0.19) unstable; urgency=low
+
+ * file-manager-service.pc.in: remove SLP.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Wed, 27 Jan 2010 11:52:11 +0800
+
+file-manager-service (0.18) unstable; urgency=low
+
+ * "SLP" prefix name removal.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Wed, 27 Jan 2010 11:34:51 +0800
+
+file-manager-service (0.17) unstable; urgency=low
+
+ * packaging, modifying control file
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 23 Jan 2010 15:38:26 +0900
+
+file-manager-service (0.16) unstable; urgency=low
+
+ * packaging
+
+ -- hochul shin <dsp.shin@samsung.com> Sat, 23 Jan 2010 15:29:19 +0900
+
+file-manager-service (0.15) unstable; urgency=low
+
+ * Refine UMS support and MMC support.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Sat, 23 Jan 2010 11:10:04 +0800
+
+file-manager-service (0.14) unstable; urgency=low
+
+ * add ums support by mr. qiu
+
+ -- HoChul Shin <dsp.shin@samsung.com> Thu, 21 Jan 2010 19:48:18 +0900
+
+file-manager-service (0.13) unstable; urgency=low
+
+ * enable any
+
+ -- HoChul Shin <dsp.shin@samsung.com> Wed, 20 Jan 2010 21:04:47 +0900
+
+file-manager-service (0.12) unstable; urgency=low
+
+ * Add drm-service support.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 21 Jan 2010 13:57:36 +0800
+
+file-manager-service (0.11) unstable; urgency=low
+
+ * Change phone root dir.
+ * Enable flash thumbnail support.
+ * Fix DB path name error of rename api.
+ * Fix error code error of move file to fexplorer.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Tue, 19 Jan 2010 18:19:18 +0800
+
+file-manager-service (0.10) unstable; urgency=low
+
+ * only support armel Tang Feng <feng.tang@samsung.com> Sat, 16 Jan 2010 19:48:38 +0900
+
+ -- MyoungJune Park <mj2004.park@samsung.com> Sat, 16 Jan 2010 19:48:38 +0900
+
+file-manager-service (0.9) unstable; urgency=low
+
+ * uploading
+
+ -- MyoungJune Park <mj2004.park@samsung.com> Sat, 16 Jan 2010 19:12:38 +0900
+
+file-manager-service (0.8) unstable; urgency=low
+
+ * Disable flush thumbnail extraction temp for the demo.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Sat, 16 Jan 2010 16:39:07 +0900
+
+file-manager-service (0.7) unstable; urgency=low
+
+ * Add flash thumbnail support.
+ * Add UMS removal callback.
+ * Add some thumbnail manager code.
+ * Modify some phone status keys.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 14 Jan 2010 21:29:56 +0800
+ -- Liu RuiChao <ruichao.liu@samsung.com> Thu, 14 Jan 2010 21:29:56 +0800
+
+file-manager-service (0.6) unstable; urgency=low
+
+ * Integrate notification mechanism. Fix phone status.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Fri, 08 Jan 2010 14:15:07 +0900
+
+file-manager-service (0.5) unstable; urgency=low
+
+ * Set setting keys, change db file name, add postinst.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Thu, 07 Jan 2010 21:07:49 +0800
+
+file-manager-service (0.4) unstable; urgency=low
+
+ * Add MMC support.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Mon, 04 Jan 2010 21:07:33 +0800
+
+file-manager-service (0.3) unstable; urgency=low
+
+ * Replace gconf, phonestatus with SLP-setting.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Mon, 28 Dec 2009 18:43:58 +0800
+
+file-manager-service (0.2) unstable; urgency=low
+
+ * Add media-browser-service and music-service support.
+ * Change filemanager-* to file-manager-*.
+
+ -- Qiu LongBin <longbin.qiu@samsung.com> Tue, 15 Dec 2009 21:36:12 +0800
+
+file-manager-service (0.1) unstable; urgency=low
+
* Initial debinization edition.
- * Git : pkgs/m/media-server
- * Tag : media-server_0.1.51
- -- Yong Yeon Kim <yy9875.kim@samsung.com> Wed, 07 Dec 2011 12:33:12 +0800
+ -- Qiu LongBin <longbin.qiu@samsung.com> Wed, 09 Dec 2009 02:33:12 +0800
diff --git a/debian/control b/debian/control
index 64f8e1d..df28ba2 100755
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 5), autotools-dev,
libglib2.0-dev,
libslp-setting-dev,
dlog-dev,
- drm-service-dev,
+ drm-client-dev,
libaul-1-dev,
libslp-pm-dev
Standards-Version: 0.1.0
diff --git a/debian/media-server.postinst.in b/debian/media-server.postinst.in
index 78f538c..afbff93 100755
--- a/debian/media-server.postinst.in
+++ b/debian/media-server.postinst.in
@@ -2,10 +2,8 @@
####################################################################
-
vconftool set -t int db/filemanager/dbupdate "1"
vconftool set -t int memory/filemanager/Mmc "0" -i
-vconftool set -t int db/Apps/mediaserver/usbmode "0"
-vconftool set -t string db/Apps/mediaserver/mmc_info ""
+vconftool set -t string db/private/mediaserver/mmc_info ""
diff --git a/debian/rules b/debian/rules
index 7272284..c8caff9 100755
--- a/debian/rules
+++ b/debian/rules
@@ -36,7 +36,7 @@ configure: configure.ac
config.status: configure
dh_testdir
# Add here commands to configure the package.
- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --prefix=$(PREFIX)
+ CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./configure --prefix=$(PREFIX) --disable-static
build: build-stamp
diff --git a/lib/include/.media-util-register.h.swp b/lib/include/.media-util-register.h.swp
deleted file mode 100644
index c6c9aaf..0000000
--- a/lib/include/.media-util-register.h.swp
+++ /dev/null
Binary files differ
diff --git a/lib/include/media-util-err.h b/lib/include/media-util-err.h
index f658582..241742f 100755
--- a/lib/include/media-util-err.h
+++ b/lib/include/media-util-err.h
@@ -34,7 +34,7 @@
#define MS_ERROR(X) (X & MS_ERROR_MASKL16)
#define MS_MEDIA_ERR_NONE 0
-#define MS_MEDIA_ERR_OCCURRED (MS_MEDIA_ERR_NONE - MS_ERROR(0x01))
+#define MS_MEDIA_ERR_OCCURRED (MS_MEDIA_ERR_NONE - MS_ERROR(0x01))
#define MS_MEDIA_ERR_INVALID_PARAMETER (MS_MEDIA_ERR_NONE - MS_ERROR(0x01)) /**< invalid parameter(s) */
#define MS_MEDIA_ERR_INVALID_PATH (MS_MEDIA_ERR_NONE - MS_ERROR(0x02)) /**< Invalid file path */
@@ -48,6 +48,9 @@
#define MS_MEDIA_ERR_INSERT_FAIL (MS_MEDIA_ERR_NONE - MS_ERROR(0x09))/**< DB insert fail */
#define MS_MEDIA_ERR_DRM_INSERT_FAIL (MS_MEDIA_ERR_NONE - MS_ERROR(0x0a))/**< DRM file insert fail */
+#define MS_MEDIA_ERR_DBUS_ADD_FILTER (MS_MEDIA_ERR_NONE - MS_ERROR(0x0b))
+#define MS_MEDIA_ERR_DBUS_GET (MS_MEDIA_ERR_NONE - MS_ERROR(0x0c))
+
#define MS_MEDIA_ERR_UNKNOWN (MS_MEDIA_ERR_NONE - MS_ERROR(0x10)) /**<Unknown error*/
#endif /*_MEDIA_UTIL_ERR_H_*/
diff --git a/lib/include/media-util-internal.h b/lib/include/media-util-internal.h
index 690a367..f1922dd 100755
--- a/lib/include/media-util-internal.h
+++ b/lib/include/media-util-internal.h
@@ -31,6 +31,8 @@
#ifndef _MEDIA_UTIL_GLOBAL_H_
#define _MEDIA_UTIL_GLOBAL_H_
+#define MS_SAFE_FREE(src) { if(src) {free(src); src = NULL;} }
+
#define MS_MEDIA_TIMEOUT_SEC 10 /*timeout of waiting reponse for IPC*/
#define MS_MEDIA_UPDATE_NOTI_PATH "/opt/data/file-manager-service/_FILEOPERATION_END"
@@ -40,4 +42,9 @@
#define MS_MEDIA_PHONE_ROOT_PATH "/opt/media"
#define MS_MEDIA_MMC_ROOT_PATH "/opt/storage/sdcard"
+#define MS_MEDIA_DBUS_PATH "/com/mediaserver/dbus/notify"
+#define MS_MEDIA_DBUS_INTERFACE "com.mediaserver.dbus.Signal"
+#define MS_MEDIA_DBUS_NAME "ms_db_updated"
+#define MS_MEDIA_DBUS_MATCH_RULE "type='signal',interface='com.mediaserver.dbus.Signal'"
+
#endif /*_MEDIA_UTIL_GLOBAL_H_*/
diff --git a/lib/include/media-util-noti.h b/lib/include/media-util-noti.h
index 27535d8..3ebb97b 100755
--- a/lib/include/media-util-noti.h
+++ b/lib/include/media-util-noti.h
@@ -75,6 +75,45 @@ extern "C" {
int ms_noti_update_complete(void);
/**
+* @fn int ms_noti_db_update_complete(void);
+* @brief This function announce media database is updated to other applications.<br>
+* @return This function returns 0 on success, and -1 on failure.
+* @param[in] none
+* @remark This function is recommandation for other application being aware of database updating.<br>
+* @par example
+* @code
+
+#include <stdio.h>
+#include <glib.h>
+#include <media-util-noti.h>
+
+void callback()
+{
+ printf("listen dbus from media-server\n");
+}
+
+int
+main (int argc, char **argv)
+{
+ GMainLoop *loop;
+
+ loop = g_main_loop_new (NULL, FALSE);
+
+ media_db_update_subscribe(callback);
+
+ g_main_loop_run (loop);
+
+ return 0;
+}
+
+*/
+
+typedef void (*db_update_cb)(void);
+
+int media_db_update_subscribe(db_update_cb user_cb);
+
+
+/**
* @}
*/
diff --git a/lib/media-util-noti.c b/lib/media-util-noti.c
index d647aa9..cdda750 100755
--- a/lib/media-util-noti.c
+++ b/lib/media-util-noti.c
@@ -32,12 +32,39 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
+#include <glib.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus.h>
+#include <dbus/dbus-glib-lowlevel.h>
#include "media-util-dbg.h"
#include "media-util-err.h"
#include "media-util-internal.h"
#include "media-util-noti.h"
+static DBusHandlerResult
+__message_filter (DBusConnection *connection, DBusMessage *message, void *user_data)
+{
+ db_update_cb user_cb = user_data;
+
+ /* A Ping signal on the com.burtonini.dbus.Signal interface */
+ if (dbus_message_is_signal (message, MS_MEDIA_DBUS_INTERFACE, MS_MEDIA_DBUS_NAME)) {
+ DBusError error;
+ dbus_uint16_t noti_type;
+
+ dbus_error_init (&error);
+ if (dbus_message_get_args (message, &error, DBUS_TYPE_UINT16, &noti_type, DBUS_TYPE_INVALID)) {
+ MSAPI_DBG("noti type: %d\n", noti_type);
+ user_cb();
+ } else {
+ MSAPI_DBG("messgae received, but error getting message: %s\n", error.message);
+ dbus_error_free (&error);
+ }
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
int ms_noti_update_complete(void)
{
int ret;
@@ -52,3 +79,29 @@
return err;
}
+int media_db_update_subscribe(db_update_cb user_cb)
+{
+ DBusConnection *bus;
+ DBusError error;
+
+ dbus_g_thread_init();
+
+ dbus_error_init (&error);
+
+ bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ MSAPI_DBG ("Failed to connect to the D-BUS daemon: %s", error.message);
+ dbus_error_free (&error);
+ return MS_MEDIA_ERR_DBUS_GET;
+ }
+
+ dbus_connection_setup_with_g_main (bus, NULL);
+
+ /* listening to messages from all objects as no path is specified */
+ dbus_bus_add_match (bus, MS_MEDIA_DBUS_MATCH_RULE, &error);
+ if( !dbus_connection_add_filter (bus, __message_filter, user_cb, NULL))
+ return MS_MEDIA_ERR_DBUS_ADD_FILTER;
+
+ return MS_MEDIA_ERR_NONE;
+}
+
diff --git a/lib/media-util-register.c b/lib/media-util-register.c
index 7f0a24d..1d3a946 100755
--- a/lib/media-util-register.c
+++ b/lib/media-util-register.c
@@ -182,7 +182,7 @@ int media_list_free(media_list list)
for(i = 0; i < len; i++) {
data = g_array_index(list, char*, i);
- free(data);
+ MS_SAFE_FREE(data);
}
g_array_free(list, TRUE);
diff --git a/packaging/media-server.spec b/packaging/media-server.spec
index f15e26f..e7cdff1 100644
--- a/packaging/media-server.spec
+++ b/packaging/media-server.spec
@@ -1,19 +1,21 @@
#sbs-git:slp/pkgs/m/media-server media-server 0.1.60 e216f565fe5687a6f387f2b3ee2097b926225517
Name: media-server
Summary: File manager service server.
-Version: 0.1.66
+Version: 0.1.88
Release: 1
-Group: Services
-License: Apache-2.0
+Group: utils
+License: Samsung
Source0: %{name}-%{version}.tar.gz
Requires(post): /usr/bin/vconftool
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(vconf)
BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(drm-service)
+BuildRequires: pkgconfig(drm-client)
BuildRequires: pkgconfig(aul)
BuildRequires: pkgconfig(pmapi)
+BuildRequires: pkgconfig(heynoti)
+BuildRequires: pkgconfig(dbus-glib-1)
%description
Description: File manager service server
@@ -54,16 +56,16 @@ rm -rf %{buildroot}
vconftool set -t int db/filemanager/dbupdate "1"
vconftool set -t int memory/filemanager/Mmc "0" -i
-vconftool set -t int db/Apps/mediaserver/usbmode "0"
-vconftool set -t string db/Apps/mediaserver/mmc_info ""
+vconftool set -t string db/private/mediaserver/mmc_info ""
%files
%defattr(-,root,root,-)
%{_bindir}/media-server
%attr(755,-,-) %{_sysconfdir}/rc.d/init.d/mediasvr
-/etc/rc.d/rc3.d/S48mediasvr
-/etc/rc.d/rc5.d/S48mediasvr
+/etc/rc.d/rc3.d/S99mediasvr
+/etc/rc.d/rc5.d/S99mediasvr
+/usr/local/bin/reset_mediadb.sh
%files -n libmedia-utils
%defattr(-,root,root,-)
@@ -76,4 +78,21 @@ vconftool set -t string db/Apps/mediaserver/mmc_info ""
%{_libdir}/pkgconfig/libmedia-utils.pc
%{_includedir}/media-utils/*.h
+%changelog
+* Mon Aug 06 2012 Yong Yeon Kim <yy9875.kim@samsnug.com> - 0.1.86
+- add notification subscribe function for application
+- fix bug : once validity checking time, call insert_item_batch two times.
+- add MS_SAFE_FREE Macro, modify check value after using snprintf by secure coding guide
+- change macro name MS_PHONE_ROOT_PATH, MS_MMC_ROOT_PATH
+- make reference directory list by each thread
+
+* Tue Jul 03 2012 Yong Yeon Kim <yy9875.kim@samsnug.com> - 0.1.80
+- manage db handle by plug-in
+
+* Wed Jun 27 2012 Yong Yeon Kim <yy9875.kim@samsnug.com> - 0.1.79
+- If item exists in media db, return directly
+
+* Tue Jun 26 2012 Yong Yeon Kim <yy9875.kim@samsnug.com> - 0.1.78
+- change modified file updating routine (delete & insert -> refresh)
+- modify return error type of media_file_register
diff --git a/reset_mediadb.sh b/reset_mediadb.sh
new file mode 100755
index 0000000..1061599
--- /dev/null
+++ b/reset_mediadb.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]
+then
+ echo 'Usage : reset_mediadb.sh [phone|sd|all]'
+ exit
+fi
+
+if [ $1 = "phone" ]
+then
+ vconftool set -f -t int db/filemanager/dbupdate "0"
+ killall media-server
+fi
+
+if [ $1 = "sd" ]
+then
+ vconftool set -f -t string db/private/mediaserver/mmc_info ""
+ killall media-server
+fi
+
+if [ $1 = "all" ]
+then
+ vconftool set -f -t int db/filemanager/dbupdate "0"
+ vconftool set -f -t string db/private/mediaserver/mmc_info ""
+ killall media-server
+fi
+
+