audio: Updates to comply with standard libhardware_legacy audio hal

Revert back to original libhardware_legacy audio hal headers from AOSP.
This makes corresponding code changes to disable features to match
audio hal implementation with standard libhardware_legacy audio hal.

Change-Id: Ibf1e50d3fffc8280ba417a26172c0f04206474e3
diff --git a/alsa_sound/AudioHardwareALSA.cpp b/alsa_sound/AudioHardwareALSA.cpp
index 97ff206..d108d22 100644
--- a/alsa_sound/AudioHardwareALSA.cpp
+++ b/alsa_sound/AudioHardwareALSA.cpp
@@ -25,8 +25,9 @@
 #include <dlfcn.h>
 #include <math.h>
 
-#define LOG_TAG "audio.primary.msm8960"
+#define LOG_TAG "AudioHardwareALSA"
 //#define LOG_NDEBUG 0
+#define LOG_NDDEBUG 0
 #include <utils/Log.h>
 #include <utils/String8.h>
 #include <sys/prctl.h>
@@ -38,9 +39,17 @@
 #include <hardware_legacy/power.h>
 
 #include "AudioHardwareALSA.h"
+#ifdef QCOM_USBAUDIO_ENABLED
 #include "AudioUsbALSA.h"
+#endif
 
 extern "C" {
+#ifdef QCOM_CSDCLIENT_ENABLED
+#include "csd_client.h"
+#endif
+#ifdef QCOM_ACDB_ENABLED
+#include "acdb-loader.h"
+#endif
 }
 
 extern "C"
@@ -84,12 +93,20 @@
             mVolteCallActive = 0;
             mIsFmActive = 0;
             mDevSettingsFlag = 0;
+#ifdef QCOM_USBAUDIO_ENABLED
             mAudioUsbALSA = new AudioUsbALSA();
+            musbPlaybackState = 0;
+            musbRecordingState = 0;
+#endif
             mDevSettingsFlag |= TTY_OFF;
             mBluetoothVGS = false;
             mFusion3Platform = false;
-            musbPlaybackState = 0;
-            musbRecordingState = 0;
+
+#ifdef QCOM_ACDB_ENABLED
+            if ((acdb_loader_init_ACDB()) < 0) {
+                ALOGE("Failed to initialize ACDB");
+            }
+#endif
 
             if((fp = fopen("/proc/asound/cards","r")) == NULL) {
                 ALOGE("Cannot open /proc/asound/cards file to get sound card info");
@@ -156,7 +173,12 @@
         it->useCase[0] = 0;
         mDeviceList.erase(it);
     }
+#ifdef QCOM_ACDB_ENABLED
+    acdb_loader_deallocate_ACDB();
+#endif
+#ifdef QCOM_USBAUDIO_ENABLED
     delete mAudioUsbALSA;
+#endif
 }
 
 status_t AudioHardwareALSA::initCheck()
@@ -191,9 +213,9 @@
         if(newMode == AudioSystem::MODE_IN_COMMUNICATION) {
             mALSADevice->setVoipVolume(vol);
         } else if (newMode == AudioSystem::MODE_IN_CALL){
-               if (mCSCallActive == AudioSystem::CS_ACTIVE)
+               if (mCSCallActive == CS_ACTIVE)
                    mALSADevice->setVoiceVolume(vol);
-               if (mVolteCallActive == AudioSystem::IMS_ACTIVE)
+               if (mVolteCallActive == IMS_ACTIVE)
                    mALSADevice->setVoLTEVolume(vol);
         }
     }
@@ -201,7 +223,7 @@
     return NO_ERROR;
 }
 
-#ifdef FM_ENABLED
+#ifdef QCOM_FM_ENABLED
 status_t  AudioHardwareALSA::setFmVolume(float value)
 {
     status_t status = NO_ERROR;
@@ -240,7 +262,7 @@
     }
 
     if (mode == AudioSystem::MODE_IN_CALL) {
-        mCallState = AudioSystem::CS_ACTIVE;
+        mCallState = CS_ACTIVE;
     }else if (mode == AudioSystem::MODE_NORMAL) {
         mCallState = 0;
     }
@@ -298,16 +320,20 @@
         doRouting(0);
     }
 
+#ifdef QCOM_CSDCLIENT_ENABLED
     if (mFusion3Platform) {
         key = String8(INCALLMUSIC_KEY);
         if (param.get(key, value) == NO_ERROR) {
             if (value == "true") {
                 ALOGV("Enabling Incall Music setting in the setparameter\n");
+                csd_client_start_playback();
             } else {
                 ALOGV("Disabling Incall Music setting in the setparameter\n");
+                csd_client_stop_playback();
             }
         }
     }
+#endif
 
     key = String8(ANC_KEY);
     if (param.get(key, value) == NO_ERROR) {
@@ -376,7 +402,7 @@
         param.remove(key);
     }
 
-#ifdef FM_ENABLED
+#ifdef QCOM_FM_ENABLED
     key = String8(AudioParameter::keyHandleFm);
     if (param.getInt(key, device) == NO_ERROR) {
         // Ignore if device is 0
@@ -437,7 +463,7 @@
         param.add(key, value);
     }
 
-#ifdef FM_ENABLED
+#ifdef QCOM_FM_ENABLED
     key = String8("Fm-radio");
     if ( param.get(key,value) == NO_ERROR ) {
         if ( mIsFmActive ) {
@@ -456,6 +482,7 @@
     return param.toString();
 }
 
+#ifdef QCOM_USBAUDIO_ENABLED
 void AudioHardwareALSA::closeUSBPlayback()
 {
     ALOGV("closeUSBPlayback, musbPlaybackState: %d", musbPlaybackState);
@@ -500,6 +527,7 @@
         mAudioUsbALSA->startRecording();
     }
 }
+#endif
 
 void AudioHardwareALSA::doRouting(int device)
 {
@@ -507,15 +535,14 @@
     int newMode = mode();
     bool isRouted = false;
 
-    if ((device == AudioSystem::DEVICE_IN_VOICE_CALL) ||
-        (device == AudioSystem::DEVICE_IN_COMMUNICATION) ) {
-
-#if 0
-        ||
-        (device == AudioSystem::DEVICE_IN_FM_RX) ||
-        (device == AudioSystem::DEVICE_OUT_DIRECTOUTPUT) ||
-        (device == AudioSystem::DEVICE_IN_FM_RX_A2DP)) {
+    if ((device == AudioSystem::DEVICE_IN_VOICE_CALL)
+#ifdef QCOM_FM_ENABLED
+        || (device == AudioSystem::DEVICE_IN_FM_RX)
+        || (device == AudioSystem::DEVICE_OUT_DIRECTOUTPUT)
+        || (device == AudioSystem::DEVICE_IN_FM_RX_A2DP)
 #endif
+        || (device == AudioSystem::DEVICE_IN_COMMUNICATION)
+        ) {
         ALOGV("Ignoring routing for FM/INCALL/VOIP recording");
         return;
     }
@@ -529,7 +556,7 @@
     isRouted |= routeVoiceCall(device, newMode);
 
     if(!isRouted) {
-#if 0
+#ifdef QCOM_USBAUDIO_ENABLED
         if(!(device & AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET) &&
             !(device & AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET) &&
             !(device & AudioSystem::DEVICE_IN_ANLG_DOCK_HEADSET) &&
@@ -619,6 +646,7 @@
                return MODE_AMR_WB;
          break;
 
+#ifdef QCOM_QCHAT_ENABLED
     case AudioSystem::EVRC:
                return MODE_IS127;
          break;
@@ -629,6 +657,7 @@
     case AudioSystem::EVRCWB:
                return MODE_4GV_WB;
          break;
+#endif
 
     default:
                return MODE_PCM;
@@ -778,7 +807,7 @@
       ALSAHandleList::iterator it = mDeviceList.end();
       it--;
       ALOGD("useCase %s", it->useCase);
-#if 0
+#ifdef QCOM_USBAUDIO_ENABLED
       if((devices & AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET)||
          (devices & AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET)){
           ALOGE("Routing to proxy for normal playback in openOutputStream");
@@ -810,6 +839,7 @@
     delete out;
 }
 
+#ifdef QCOM_TUNNEL_LPA_ENABLED
 AudioStreamOut *
 AudioHardwareALSA::openOutputSession(uint32_t devices,
                                      int *format,
@@ -861,7 +891,7 @@
     ALSAHandleList::iterator it = mDeviceList.end();
     it--;
     ALOGD("useCase %s", it->useCase);
-# if 0
+#ifdef QCOM_USBAUDIO_ENABLED
     if((devices & AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET)||
        (devices & AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET)){
         ALOGE("Routing to proxy for LPA in openOutputSession");
@@ -902,6 +932,7 @@
 {
     delete out;
 }
+#endif
 
 AudioStreamIn *
 AudioHardwareALSA::openInputStream(uint32_t devices,
@@ -933,7 +964,7 @@
             it != mDeviceList.end(); ++it) {
                 if((!strcmp(it->useCase, SND_USE_CASE_VERB_IP_VOICECALL)) ||
                    (!strcmp(it->useCase, SND_USE_CASE_MOD_PLAY_VOIP))) {
-                    ALOGD("openInput:  it->rxHandle %d it->handle %d",it->rxHandle,it->handle);
+                    ALOGD("openInput:  it->rxHandle %p it->handle %p",it->rxHandle,it->handle);
                     voipstream_active = true;
                     break;
                 }
@@ -979,7 +1010,7 @@
            it = mDeviceList.end();
            it--;
            ALOGE("mCurrDevice: %d", mCurDevice);
-#if 0
+#ifdef QCOM_USBAUDIO_ENABLED
            if((mCurDevice == AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET)||
               (mCurDevice == AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET)){
               ALOGE("Routing everything from proxy for voipcall");
@@ -1028,12 +1059,12 @@
             if((0 == strncmp(itDev->useCase, SND_USE_CASE_VERB_HIFI_REC, MAX_UC_LEN))
               ||(0 == strncmp(itDev->useCase, SND_USE_CASE_MOD_CAPTURE_MUSIC, MAX_UC_LEN))
               ||(0 == strncmp(itDev->useCase, SND_USE_CASE_MOD_CAPTURE_FM, MAX_UC_LEN))
-#if 0
+#ifdef QCOM_FM_ENABLED
               ||(0 == strncmp(itDev->useCase, SND_USE_CASE_VERB_FM_REC, MAX_UC_LEN))
 #endif
               )
             {
-#if 0  
+#ifdef QCOM_FM_ENABLED
                 if(!(devices == AudioSystem::DEVICE_IN_FM_RX_A2DP)){
                     ALOGD("Input stream already exists, new stream not permitted: useCase:%s, devices:0x%x, module:%p",
                         itDev->useCase, itDev->devices, itDev->module);
@@ -1041,7 +1072,7 @@
                 }
 #endif
             }
-#if 0
+#ifdef QCOM_FM_ENABLED
         else if ((0 == strncmp(itDev->useCase, SND_USE_CASE_VERB_FM_A2DP_REC, MAX_UC_LEN))
                 ||(0 == strncmp(itDev->useCase, SND_USE_CASE_MOD_CAPTURE_A2DP_FM, MAX_UC_LEN)))
              {
@@ -1093,7 +1124,7 @@
                                 sizeof(alsa_handle.useCase));
                     }
                 }
-#if 0
+#ifdef QCOM_FM_ENABLED
             } else if((devices == AudioSystem::DEVICE_IN_FM_RX)) {
                 strlcpy(alsa_handle.useCase, SND_USE_CASE_MOD_CAPTURE_FM, sizeof(alsa_handle.useCase));
             } else if(devices == AudioSystem::DEVICE_IN_FM_RX_A2DP) {
@@ -1127,7 +1158,7 @@
                                sizeof(alsa_handle.useCase));
                     }
                 }
-#if 0
+#ifdef QCOM_FM_ENABLED
             } else if(devices == AudioSystem::DEVICE_IN_FM_RX) {
                 strlcpy(alsa_handle.useCase, SND_USE_CASE_VERB_FM_REC, sizeof(alsa_handle.useCase));
             } else if (devices == AudioSystem::DEVICE_IN_FM_RX_A2DP) {
@@ -1144,9 +1175,9 @@
         //update channel info before do routing
         if(channels) {
             it->channels = AudioSystem::popCount((*channels) &
-                      (AudioSystem::CHANNEL_IN_STEREO 
-                       | AudioSystem::CHANNEL_IN_MONO 
-#ifdef SSR_ENABLED
+                      (AudioSystem::CHANNEL_IN_STEREO
+                       | AudioSystem::CHANNEL_IN_MONO
+#ifdef QCOM_SSR_ENABLED
                        | AudioSystem::CHANNEL_IN_5POINT1
 #endif
                        ));
@@ -1154,7 +1185,7 @@
         }
         if (devices == AudioSystem::DEVICE_IN_VOICE_CALL){
            /* Add current devices info to devices to do route */
-#if 0
+#ifdef QCOM_USBAUDIO_ENABLED
             if(mCurDevice == AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET ||
                mCurDevice == AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET){
                 ALOGD("Routing everything from proxy for VOIP call");
@@ -1166,7 +1197,7 @@
             }
             mALSADevice->route(&(*it), route_devices, mode());
         } else {
-#if 0
+#ifdef QCOM_USBAUDIO_ENABLED
             if(devices & AudioSystem::DEVICE_IN_ANLG_DOCK_HEADSET ||
                devices & AudioSystem::DEVICE_IN_PROXY) {
                 devices |= AudioSystem::DEVICE_IN_PROXY;
@@ -1180,7 +1211,7 @@
         }
 
         if(!strcmp(it->useCase, SND_USE_CASE_VERB_HIFI_REC) ||
-#if 0
+#ifdef QCOM_FM_ENABLED
            !strcmp(it->useCase, SND_USE_CASE_VERB_FM_REC) ||
            !strcmp(it->useCase, SND_USE_CASE_VERB_FM_A2DP_REC) ||
 #endif
@@ -1194,7 +1225,7 @@
         if(sampleRate) {
             it->sampleRate = *sampleRate;
         }
-#ifdef SSR_ENABLED
+#ifdef QCOM_SSR_ENABLED
         if (6 == it->channels) {
             if (!strncmp(it->useCase, SND_USE_CASE_VERB_HIFI_REC, strlen(SND_USE_CASE_VERB_HIFI_REC))
                 || !strncmp(it->useCase, SND_USE_CASE_MOD_CAPTURE_MUSIC, strlen(SND_USE_CASE_MOD_CAPTURE_MUSIC))) {
@@ -1238,9 +1269,9 @@
               mMicMute = state;
               ALOGD("setMicMute: mMicMute %d", mMicMute);
               if(mALSADevice) {
-                 if(mCSCallActive == AudioSystem::CS_ACTIVE)
+                 if(mCSCallActive == CS_ACTIVE)
                     mALSADevice->setMicMute(state);
-                 if(mVolteCallActive == AudioSystem::IMS_ACTIVE)
+                 if(mVolteCallActive == IMS_ACTIVE)
                     mALSADevice->setVoLTEMicMute(state);
               }
         }
@@ -1270,9 +1301,12 @@
     if (format != AudioSystem::PCM_16_BIT
         && format != AudioSystem::AMR_NB
         && format != AudioSystem::AMR_WB
+#ifdef QCOM_QCHAT_ENABLED
         && format != AudioSystem::EVRC
         && format != AudioSystem::EVRCB
-        && format != AudioSystem::EVRCWB) {
+        && format != AudioSystem::EVRCWB
+#endif
+        ) {
          ALOGW("getInputBufferSize bad format: %d", format);
          return 0;
     }
@@ -1286,7 +1320,7 @@
     return bufferSize;
 }
 
-#ifdef FM_ENABLED
+#ifdef QCOM_FM_ENABLED
 void AudioHardwareALSA::handleFm(int device)
 {
 int newMode = mode();
@@ -1375,6 +1409,7 @@
             break;
         }
     }
+#ifdef QCOM_USBAUDIO_ENABLED
    if(musbPlaybackState & USBPLAYBACKBIT_VOICECALL) {
           ALOGE("Voice call ended on USB");
           musbPlaybackState &= ~USBPLAYBACKBIT_VOICECALL;
@@ -1382,6 +1417,7 @@
           closeUsbRecordingIfNothingActive();
           closeUsbPlaybackIfNothingActive();
    }
+#endif
 }
 void AudioHardwareALSA::enableVoiceCall(char* verb, char* modifier, int mode, int device)
 {
@@ -1412,7 +1448,7 @@
     mDeviceList.push_back(alsa_handle);
     ALSAHandleList::iterator it = mDeviceList.end();
     it--;
-#if 0
+#ifdef QCOM_USBAUDIO_ENABLED
     if((device & AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET)||
        (device & AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET)){
         device |= AudioSystem::DEVICE_OUT_PROXY;
@@ -1426,6 +1462,7 @@
         snd_use_case_set(mUcMgr, "_enamod", modifier);
     }
     mALSADevice->startVoiceCall(&(*it));
+#ifdef QCOM_USBAUDIO_ENABLED
     if((device & AudioSystem::DEVICE_OUT_ANLG_DOCK_HEADSET)||
        (device & AudioSystem::DEVICE_OUT_DGTL_DOCK_HEADSET)){
        startUsbRecordingIfNotStarted();
@@ -1433,6 +1470,7 @@
        musbPlaybackState |= USBPLAYBACKBIT_VOICECALL;
        musbRecordingState |= USBRECBIT_VOICECALL;
     }
+#endif
 }
 
 bool AudioHardwareALSA::routeVoiceCall(int device, int newMode)
@@ -1440,23 +1478,23 @@
 int csCallState = mCallState&0xF;
  bool isRouted = false;
  switch (csCallState) {
-    case AudioSystem::CS_INACTIVE:
-        if (mCSCallActive != AudioSystem::CS_INACTIVE) {
+    case CS_INACTIVE:
+        if (mCSCallActive != CS_INACTIVE) {
             ALOGD("doRouting: Disabling voice call");
             disableVoiceCall((char *)SND_USE_CASE_VERB_VOICECALL,
                 (char *)SND_USE_CASE_MOD_PLAY_VOICE, newMode, device);
             isRouted = true;
-            mCSCallActive = AudioSystem::CS_INACTIVE;
+            mCSCallActive = CS_INACTIVE;
         }
     break;
-    case AudioSystem::CS_ACTIVE:
-        if (mCSCallActive == AudioSystem::CS_INACTIVE) {
+    case CS_ACTIVE:
+        if (mCSCallActive == CS_INACTIVE) {
             ALOGD("doRouting: Enabling CS voice call ");
             enableVoiceCall((char *)SND_USE_CASE_VERB_VOICECALL,
                 (char *)SND_USE_CASE_MOD_PLAY_VOICE, newMode, device);
             isRouted = true;
-            mCSCallActive = AudioSystem::CS_ACTIVE;
-        } else if (mCSCallActive == AudioSystem::CS_HOLD) {
+            mCSCallActive = CS_ACTIVE;
+        } else if (mCSCallActive == CS_HOLD) {
              ALOGD("doRouting: Resume voice call from hold state");
              ALSAHandleList::iterator vt_it;
              for(vt_it = mDeviceList.begin();
@@ -1466,7 +1504,7 @@
                      (!strncmp(vt_it->useCase, SND_USE_CASE_MOD_PLAY_VOICE,
                      strlen(SND_USE_CASE_MOD_PLAY_VOICE)))) {
                      alsa_handle_t *handle = (alsa_handle_t *)(&(*vt_it));
-                     mCSCallActive = AudioSystem::CS_ACTIVE;
+                     mCSCallActive = CS_ACTIVE;
                      if(ioctl((int)handle->handle->fd,SNDRV_PCM_IOCTL_PAUSE,0)<0)
                                    ALOGE("VoLTE resume failed");
                      break;
@@ -1474,8 +1512,8 @@
              }
         }
     break;
-    case AudioSystem::CS_HOLD:
-        if (mCSCallActive == AudioSystem::CS_ACTIVE) {
+    case CS_HOLD:
+        if (mCSCallActive == CS_ACTIVE) {
             ALOGD("doRouting: Voice call going to Hold");
              ALSAHandleList::iterator vt_it;
              for(vt_it = mDeviceList.begin();
@@ -1484,7 +1522,7 @@
                      strlen(SND_USE_CASE_VERB_VOICECALL))) ||
                      (!strncmp(vt_it->useCase, SND_USE_CASE_MOD_PLAY_VOICE,
                          strlen(SND_USE_CASE_MOD_PLAY_VOICE)))) {
-                         mCSCallActive = AudioSystem::CS_HOLD;
+                         mCSCallActive = CS_HOLD;
                          alsa_handle_t *handle = (alsa_handle_t *)(&(*vt_it));
                          if(ioctl((int)handle->handle->fd,SNDRV_PCM_IOCTL_PAUSE,1)<0)
                                    ALOGE("Voice pause failed");
@@ -1501,23 +1539,23 @@
 int volteCallState = mCallState&0xF0;
 bool isRouted = false;
 switch (volteCallState) {
-    case AudioSystem::IMS_INACTIVE:
-        if (mVolteCallActive != AudioSystem::IMS_INACTIVE) {
+    case IMS_INACTIVE:
+        if (mVolteCallActive != IMS_INACTIVE) {
             ALOGD("doRouting: Disabling IMS call");
             disableVoiceCall((char *)SND_USE_CASE_VERB_VOLTE,
                 (char *)SND_USE_CASE_MOD_PLAY_VOLTE, newMode, device);
             isRouted = true;
-            mVolteCallActive = AudioSystem::IMS_INACTIVE;
+            mVolteCallActive = IMS_INACTIVE;
         }
     break;
-    case AudioSystem::IMS_ACTIVE:
-        if (mVolteCallActive == AudioSystem::IMS_INACTIVE) {
+    case IMS_ACTIVE:
+        if (mVolteCallActive == IMS_INACTIVE) {
             ALOGD("doRouting: Enabling IMS voice call ");
             enableVoiceCall((char *)SND_USE_CASE_VERB_VOLTE,
                 (char *)SND_USE_CASE_MOD_PLAY_VOLTE, newMode, device);
             isRouted = true;
-            mVolteCallActive = AudioSystem::IMS_ACTIVE;
-        } else if (mVolteCallActive == AudioSystem::IMS_HOLD) {
+            mVolteCallActive = IMS_ACTIVE;
+        } else if (mVolteCallActive == IMS_HOLD) {
              ALOGD("doRouting: Resume IMS call from hold state");
              ALSAHandleList::iterator vt_it;
              for(vt_it = mDeviceList.begin();
@@ -1527,7 +1565,7 @@
                      (!strncmp(vt_it->useCase, SND_USE_CASE_MOD_PLAY_VOLTE,
                      strlen(SND_USE_CASE_MOD_PLAY_VOLTE)))) {
                      alsa_handle_t *handle = (alsa_handle_t *)(&(*vt_it));
-                     mVolteCallActive = AudioSystem::IMS_ACTIVE;
+                     mVolteCallActive = IMS_ACTIVE;
                      if(ioctl((int)handle->handle->fd,SNDRV_PCM_IOCTL_PAUSE,0)<0)
                                    ALOGE("VoLTE resume failed");
                      break;
@@ -1535,8 +1573,8 @@
              }
         }
     break;
-    case AudioSystem::IMS_HOLD:
-        if (mVolteCallActive == AudioSystem::IMS_ACTIVE) {
+    case IMS_HOLD:
+        if (mVolteCallActive == IMS_ACTIVE) {
              ALOGD("doRouting: IMS ACTIVE going to HOLD");
              ALSAHandleList::iterator vt_it;
              for(vt_it = mDeviceList.begin();
@@ -1545,7 +1583,7 @@
                      strlen(SND_USE_CASE_VERB_VOLTE))) ||
                      (!strncmp(vt_it->useCase, SND_USE_CASE_MOD_PLAY_VOLTE,
                          strlen(SND_USE_CASE_MOD_PLAY_VOLTE)))) {
-                          mVolteCallActive = AudioSystem::IMS_HOLD;
+                          mVolteCallActive = IMS_HOLD;
                          alsa_handle_t *handle = (alsa_handle_t *)(&(*vt_it));
                          if(ioctl((int)handle->handle->fd,SNDRV_PCM_IOCTL_PAUSE,1)<0)
                                    ALOGE("VoLTE Pause failed");