From ac4e052ad806bcb0608d77fd03a55466f1287f5f Mon Sep 17 00:00:00 2001 From: chengyj1985 Date: Thu, 23 Dec 2021 10:15:48 +0800 Subject: [PATCH] Add storage update event when usb mount/unmount Change-Id: Ib6a88e41804840b4e5cf3d13f6e897c9465c5ec4 --- lib/include/media-util-noti.h | 1 + lib/media-util-noti.c | 4 ++++ src/server/media-server-device-block.c | 15 +++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/lib/include/media-util-noti.h b/lib/include/media-util-noti.h index 6bc630f..28bdd93 100755 --- a/lib/include/media-util-noti.h +++ b/lib/include/media-util-noti.h @@ -37,6 +37,7 @@ extern "C" { typedef enum { MS_MEDIA_ITEM_FILE = 0, MS_MEDIA_ITEM_DIRECTORY = 1, + MS_MEDIA_ITEM_STORAGE = 2, } media_item_type_e; typedef enum { diff --git a/lib/media-util-noti.c b/lib/media-util-noti.c index afcf734..486a8c8 100755 --- a/lib/media-util-noti.c +++ b/lib/media-util-noti.c @@ -83,6 +83,10 @@ int media_db_update_send(int pid, /* mandatory */ message = g_variant_new("(iiiss)", item, pid, update_type, path, uuid); else message = g_variant_new("(iiis)", item, pid, update_type, path); +#ifdef _USE_TVPD_MODE + } else if (item == MS_MEDIA_ITEM_STORAGE) { + message = g_variant_new("(iiissis)", item, pid, update_type, path, uuid, media_type, mime_type); +#endif } else { MSAPI_DBG("this request is wrong"); } diff --git a/src/server/media-server-device-block.c b/src/server/media-server-device-block.c index b7cc7ac..49f907c 100644 --- a/src/server/media-server-device-block.c +++ b/src/server/media-server-device-block.c @@ -29,6 +29,11 @@ #include "media-server-scanner.h" #include "media-server-db-manage.h" #include "media-server-device-block.h" +#ifdef _USE_TVPD_MODE +#include +#define PROD_CUSTOM_MIME_ADDED "1" +#define PROD_CUSTOM_MIME_REMOVED "0" +#endif int ms_storage_insert_handler(const char *mount_path, const char *mount_uuid) { @@ -175,9 +180,16 @@ static void __ms_usb_add_event(const char *mount_path) ms_set_storage_validity(handle, storage_id, 1, uid); if (ms_set_storage_scan_status(handle, storage_id, MEDIA_SCAN_PREPARE, uid) != MS_MEDIA_ERR_NONE) MS_DBG_ERR("ms_set_storage_scan_status failed"); + +#ifdef _USE_TVPD_MODE + media_db_update_send(getpid(), MS_MEDIA_ITEM_STORAGE, MS_MEDIA_ITEM_UPDATE, mount_path, storage_id, MS_MEDIA_UNKNOWN, PROD_CUSTOM_MIME_ADDED); +#endif } else { /* there is no information of this storage in Media DB */ ret = ms_insert_storage(handle, storage_id, mount_path, uid); +#ifdef _USE_TVPD_MODE + media_db_update_send(getpid(), MS_MEDIA_ITEM_STORAGE, MS_MEDIA_ITEM_INSERT, mount_path, storage_id, MS_MEDIA_UNKNOWN, PROD_CUSTOM_MIME_ADDED); +#endif } } else { MS_DBG_ERR("STORAGE ID IS NUILL"); @@ -239,6 +251,9 @@ static void __ms_usb_remove_event(const char *mount_path) /*So try to remove it.*/ ms_send_storage_otg_scan_request(mount_path, device_id, MS_SCAN_INVALID, uid); } +#ifdef _USE_TVPD_MODE + media_db_update_send(getpid(), MS_MEDIA_ITEM_STORAGE, MS_MEDIA_ITEM_UPDATE, mount_path, device_id, MS_MEDIA_UNKNOWN, PROD_CUSTOM_MIME_REMOVED); +#endif } ms_disconnect_db(handle); -- 2.7.4