audio: Create a structure for voice to group values
authorAndreas Schneider <asn@cryptomilk.org>
Thu, 2 Feb 2017 17:29:12 +0000 (18:29 +0100)
committerChristopher N. Hesse <raymanfx@gmail.com>
Fri, 10 Feb 2017 20:29:56 +0000 (20:29 +0000)
Change-Id: I184d39460aa8a9a3ee5efc5fe3aa63e99a2e9d12

audio/audio_hw.c
audio/audio_hw.h

index 3d80f7b614bf3cc2233fa1dd3f07105c8cd6ddfe..59cc0f4c597273738e36926b9537c9580fbe69f5 100644 (file)
@@ -871,7 +871,7 @@ static int select_devices(struct audio_device *adev,
          * be switched to new device when select_devices() is called for voice call
          * usecase.
          */
-        if (adev->in_call) {
+        if (adev->voice.in_call) {
             vc_usecase = get_usecase_from_id(adev, USECASE_VOICE_CALL);
             if (usecase == NULL) {
                 ALOGE("%s: Could not find the voice call usecase", __func__);
@@ -2403,7 +2403,7 @@ static int stop_voice_call(struct audio_device *adev)
     struct audio_usecase *uc_info;
 
     ALOGV("%s: enter", __func__);
-    adev->in_call = false;
+    adev->voice.in_call = false;
 
     /* TODO: implement voice call stop */
 
@@ -2456,9 +2456,9 @@ static int start_voice_call(struct audio_device *adev)
     /* TODO: implement voice call start */
 
     /* set cached volume */
-    set_voice_volume_l(adev, adev->voice_volume);
+    set_voice_volume_l(adev, adev->voice.volume);
 
-    adev->in_call = true;
+    adev->voice.in_call = true;
 exit:
     ALOGV("%s: exit", __func__);
     return ret;
@@ -2693,16 +2693,17 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs)
                 }
             }
 
-            if ((adev->mode == AUDIO_MODE_IN_CALL) && !adev->in_call &&
+            if ((adev->mode == AUDIO_MODE_IN_CALL) && !adev->voice.in_call &&
                     (out == adev->primary_output)) {
                 start_voice_call(adev);
-            } else if ((adev->mode == AUDIO_MODE_IN_CALL) && adev->in_call &&
+            } else if ((adev->mode == AUDIO_MODE_IN_CALL) &&
+                       adev->voice.in_call &&
                        (out == adev->primary_output)) {
                 select_devices(adev, USECASE_VOICE_CALL);
             }
         }
 
-        if ((adev->mode == AUDIO_MODE_NORMAL) && adev->in_call &&
+        if ((adev->mode == AUDIO_MODE_NORMAL) && adev->voice.in_call &&
                 (out == adev->primary_output)) {
             stop_voice_call(adev);
         }
@@ -3867,9 +3868,9 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
          * But it is currently not supported.
          */
         if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0)
-            adev->bluetooth_nrec = true;
+            adev->voice.bluetooth_nrec = true;
         else
-            adev->bluetooth_nrec = false;
+            adev->voice.bluetooth_nrec = false;
     }
 
 #if SWAP_SPEAKER_ON_SCREEN_ROTATION
@@ -3939,8 +3940,8 @@ static int adev_set_voice_volume(struct audio_hw_device *dev, float volume)
     struct audio_device *adev = (struct audio_device *)dev;
     pthread_mutex_lock(&adev->lock);
     /* cache volume */
-    adev->voice_volume = volume;
-    ret = set_voice_volume_l(adev, adev->voice_volume);
+    adev->voice.volume = volume;
+    ret = set_voice_volume_l(adev, adev->voice.volume);
     pthread_mutex_unlock(&adev->lock);
     return ret;
 }
@@ -4251,9 +4252,11 @@ static int adev_open(const hw_module_t *module, const char *name,
     adev->mode = AUDIO_MODE_NORMAL;
     adev->active_input = NULL;
     adev->primary_output = NULL;
-    adev->voice_volume = 1.0f;
-    adev->bluetooth_nrec = true;
-    adev->in_call = false;
+
+    adev->voice.volume = 1.0f;
+    adev->voice.bluetooth_nrec = true;
+    adev->voice.in_call = false;
+
     /* adev->cur_hdmi_channels = 0;  by calloc() */
     adev->snd_dev_ref_cnt = calloc(SND_DEVICE_MAX, sizeof(int));
     if (adev->snd_dev_ref_cnt == NULL) {
index da5cd86164c690141a27f1d074de35bfd8c658b3..ab50ef74e5784ee5644777af7b4c8c5f3c5187a6 100644 (file)
@@ -369,6 +369,11 @@ struct audio_usecase {
     struct listnode         mixer_list;
 };
 
+struct voice_data {
+    bool  in_call;
+    float volume;
+    bool  bluetooth_nrec;
+};
 
 struct audio_device {
     struct audio_hw_device  device;
@@ -377,10 +382,10 @@ struct audio_device {
     audio_mode_t            mode;
     struct stream_in*       active_input;
     struct stream_out*      primary_output;
-    bool                    in_call;
-    float                   voice_volume;
     bool                    mic_mute;
-    bool                    bluetooth_nrec;
+
+    struct voice_data       voice;
+
     int*                    snd_dev_ref_cnt;
     struct listnode         usecase_list;
     bool                    speaker_lr_swap;