Add parameter for checking mmc status 01/73601/1
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 9 Jun 2016 01:28:37 +0000 (10:28 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 9 Jun 2016 01:28:37 +0000 (10:28 +0900)
Change-Id: I9699f0d6dd1b38611a758f0f47362aeb8341bb8b
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
packaging/media-server.spec
src/common/include/media-common-system.h
src/common/media-common-system.c
src/server/media-server-device-block.c

index cf09640..c01cabb 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       media-server
 Summary:    A server for media content management
-Version:    0.2.87
+Version:    0.2.88
 Release:    0
 Group:      Multimedia/Service
 License:    Apache-2.0
index c7d657c..ce4e222 100755 (executable)
@@ -40,6 +40,7 @@ typedef struct ms_block_info_s{
        char *mount_path;
        int state;
        int block_type;
+       int flags;
        char *mount_uuid;
 } ms_block_info_s;
 
index b9de041..abad1ad 100755 (executable)
@@ -118,6 +118,10 @@ static void __ms_block_changed(GDBusConnection* connection,
        block_info->state = g_variant_get_int32(tmp);
        MS_DBG_ERR("state : %d", block_info->state);
 
+       tmp = g_variant_get_child_value(parameters, 11);
+       block_info->flags = g_variant_get_int32(tmp);
+       MS_DBG_ERR("flags : %d", block_info->flags);
+
        ((block_changed_cb)usr_cb)(block_info, usr_data);
        MS_SAFE_FREE(block_info->mount_path);
        MS_SAFE_FREE(block_info->mount_uuid);
@@ -289,6 +293,7 @@ static int __ms_gdbus_method_sync(const char *dest, const char *path, const char
                        data->mount_path = strdup(val_str[6]);
                        data->state = val_int[2];
                        data->mount_uuid = strdup(val_str[5]);
+                       data->flags = val_int[3];
 
                        if (*dev_list == NULL) {
                                MS_DBG_ERR("DEV LIST IS NULL");
index 909f668..67033ec 100755 (executable)
@@ -346,7 +346,7 @@ int ms_mmc_remove_handler(const char *mount_path)
        return MS_MEDIA_ERR_NONE;
 }
 
-void _ms_mmc_changed_event(const char *mount_path, ms_stg_status_e mount_status)
+void _ms_mmc_changed_event(const char *mount_path, ms_stg_status_e mount_status, int flags)
 {
        /* If scanner is not working, media server executes media scanner and sends request. */
        /* If scanner is working, it detects changing status of SD card. */
@@ -354,7 +354,9 @@ void _ms_mmc_changed_event(const char *mount_path, ms_stg_status_e mount_status)
                ms_mmc_insert_handler(mount_path);
        } else if (mount_status == MS_STG_REMOVED) {
                /*remove added watch descriptors */
-               ms_present_mmc_status(MS_SDCARD_REMOVED);
+               /* flags - 1: unmounted unsafely */
+               if (flags == 1)
+                       ms_present_mmc_status(MS_SDCARD_REMOVED);
                ms_mmc_remove_handler(mount_path);
        }
 
@@ -391,7 +393,7 @@ void ms_device_block_changed_cb(ms_block_info_s *block_info, void *user_data)
                _ms_usb_changed_event(block_info->mount_path, block_info->mount_uuid, block_info->state);
        } else {
                MS_DBG_ERR("GET THE MMC EVENT");
-               _ms_mmc_changed_event(block_info->mount_path, block_info->state);
+               _ms_mmc_changed_event(block_info->mount_path, block_info->state, block_info->flags);
        }
 }