device-manager: use container dedicated device-map json 10/265710/2 accepted/tizen/unified/20211101.140211 submit/tizen/20211029.025659 submit/tizen/20211101.022013
authorSeungbae Shin <seungbae.shin@samsung.com>
Wed, 27 Oct 2021 10:48:01 +0000 (19:48 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Thu, 28 Oct 2021 13:05:21 +0000 (22:05 +0900)
[Version] 13.0.80
[Issue Type] Container

Change-Id: If81c7aed340369e451980142d7c677ff22053f98

packaging/pulseaudio-modules-tizen.spec
src/device-manager.c

index dc69171..8520637 100644 (file)
@@ -1,6 +1,6 @@
 Name:             pulseaudio-modules-tizen
 Summary:          Pulseaudio modules for Tizen
-Version:          13.0.79
+Version:          13.0.80
 Release:          0
 Group:            Multimedia/Audio
 License:          LGPL-2.1+
index a57fc46..7cb46c9 100644 (file)
@@ -56,6 +56,7 @@
 #define SHARED_DEVICE_MANAGER "tizen-device-manager"
 
 #define DEVICE_MAP_FILE                     PA_DEFAULT_CONFIG_DIR"/device-map.json"
+#define DEVICE_MAP_FILE_CONTAINER           PA_DEFAULT_CONFIG_DIR"/device-map-container.json"
 #define DEVICE_STR_MAX                      40
 #define DEVICE_DIRECTION_MAX                3
 #define DEVICE_MODULE_STRING_MAX            256
@@ -2439,17 +2440,22 @@ fail:
     return NULL;
 }
 
+static const char * get_device_map_json()
+{
+    return (access("/run/systemd/container", F_OK) == 0) ? DEVICE_MAP_FILE_CONTAINER : DEVICE_MAP_FILE;
+}
+
 static struct device_file_map *parse_device_file_map() {
     struct device_file_map *file_map = NULL;
     json_object *o, *device_files_o;
     json_object *playback_devices_o = NULL, *capture_devices_o = NULL;
+    const char *device_map_file = get_device_map_json();
 
     pa_log_info("\nParse device files");
 
-    o = json_object_from_file(DEVICE_MAP_FILE);
-
+    o = json_object_from_file(device_map_file);
     if (o == NULL) {
-        pa_log_error("Read device-map file failed");
+        pa_log_error("Read %s file failed", device_map_file);
         return NULL;
     }
 
@@ -2522,12 +2528,12 @@ static pa_idxset* parse_device_type_infos() {
     int device_type_num = 0;
     int device_type_idx = 0;
     device_type_info *type_info = NULL;
-    //pa_hashmap *type_infos = NULL;
     pa_idxset *type_infos = NULL;
+    const char *device_map_file = get_device_map_json();
 
-    o = json_object_from_file(DEVICE_MAP_FILE);
+    o = json_object_from_file(device_map_file);
     if (o == NULL) {
-        pa_log_error("Read device-map file failed");
+        pa_log_error("Read %s file failed", device_map_file);
         return NULL;
     }