volume_listener: Fix MBDRC volume difference issue for combo use case

-change in MBDRC level based on volume is not getting applied on combo device
 usecase (speaker is one of the device) due to speaker only check.

-Modify logic to recompute and apply MBDRC level if one of the device in combo
 device is speaker

Change-Id: I18726af9d30c966fd04666305529a46cebee18c7
diff --git a/post_proc/volume_listener.c b/post_proc/volume_listener.c
index c4894ca..b8aa893 100644
--- a/post_proc/volume_listener.c
+++ b/post_proc/volume_listener.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -462,7 +462,7 @@
 
         // After changing the state and if device is speaker
         // recalculate gain dep cal level
-        if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
+        if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
                 check_and_set_gain_dep_cal();
         }
 
@@ -489,7 +489,7 @@
 
         // After changing the state and if device is speaker
         // recalculate gain dep cal level
-        if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
+        if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
             check_and_set_gain_dep_cal();
         }
 
@@ -520,8 +520,8 @@
                    __func__, context->dev_id, new_device);
 
             // check if old or new device is speaker
-            if ((context->dev_id ==  AUDIO_DEVICE_OUT_SPEAKER) ||
-                (new_device == AUDIO_DEVICE_OUT_SPEAKER)) {
+            if ((context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) ||
+                (new_device & AUDIO_DEVICE_OUT_SPEAKER)) {
                 recompute_gain_dep_cal_Level = true;
             }
 
@@ -546,7 +546,7 @@
                 goto exit;
             }
 
-            if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
+            if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
                 recompute_gain_dep_cal_Level = true;
             }
 
@@ -771,7 +771,7 @@
             ALOGV("--- Found something to remove ---");
             list_remove(node);
             PRINT_STREAM_TYPE(context->stream_type);
-            if (context->dev_id == AUDIO_DEVICE_OUT_SPEAKER) {
+            if (context->dev_id & AUDIO_DEVICE_OUT_SPEAKER) {
                 recompute_flag = true;
             }
             list_remove(&context->effect_list_node);