device-manager : get use_internal_codec for both device correctly 89/55289/1
authorMok Jeongho <jho.mok@samsung.com>
Wed, 23 Dec 2015 01:40:54 +0000 (10:40 +0900)
committerMok Jeongho <jho.mok@samsung.com>
Wed, 23 Dec 2015 01:40:54 +0000 (10:40 +0900)
[Version] 5.0.26
[Profile] Common
[Issue Type] Fix Bug

Change-Id: Ie4efb1ce85c545c4c29f69b62baa989a5b3685b4

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

index bb293cc..ace6df4 100644 (file)
@@ -1,6 +1,6 @@
 Name:             pulseaudio-modules-tizen
 Summary:          Pulseaudio modules for Tizen
-Version:          5.0.25
+Version:          5.0.26
 Release:          0
 Group:            Multimedia/Audio
 License:          LGPL-2.1+
index 6f8df21..9ed5ed9 100644 (file)
@@ -3183,15 +3183,10 @@ static int handle_device_status_changed(pa_device_manager *dm, const char *devic
     if (pa_streq(device_type, DEVICE_TYPE_AUDIO_JACK)) {
         if (detected_status == EARJACK_DISCONNECTED) {
             handle_device_disconnected(dm, device_type, device_profile, identifier);
-#if 0 /* disable this code temporarily, it will be fixed soon */
         } else if (detected_status == EARJACK_TYPE_SPK_ONLY) {
             handle_device_connected(dm, device_type, device_profile, name, identifier, DEVICE_DETECTED_AUDIO_JACK_OUT_DIREC);
         } else if (detected_status == EARJACK_TYPE_SPK_WITH_MIC) {
             handle_device_connected(dm, device_type, device_profile, name, identifier, DEVICE_DETECTED_AUDIO_JACK_BOTH_DIREC);
-#else
-        } else if (detected_status == EARJACK_TYPE_SPK_ONLY || detected_status == EARJACK_TYPE_SPK_WITH_MIC) {
-            handle_device_connected(dm, device_type, device_profile, name, identifier, DEVICE_DETECTED_AUDIO_JACK_OUT_DIREC);
-#endif
         } else {
             pa_log_warn("Got invalid audio-jack detected value");
             return -1;
@@ -4142,6 +4137,11 @@ pa_bool_t pa_device_manager_is_device_use_internal_codec(dm_device *device_item,
     } else if (direction == DM_DEVICE_DIRECTION_OUT) {
         if ((sink = pa_device_manager_get_sink(device_item, role)))
             use_internal_codec = sink->use_internal_codec;
+    } else if (direction == DM_DEVICE_DIRECTION_BOTH) {
+        if ((sink = pa_device_manager_get_sink(device_item, role)) && (source = pa_device_manager_get_source(device_item, role)))
+            use_internal_codec = sink->use_internal_codec & source->use_internal_codec;
+    } else {
+        pa_log_warn("invalid direction");
     }
 
     return use_internal_codec;