Audio: Bear family(8916) audio HAL bringup changes
- Added new files for platform specific code Separate platform specific code from generic audio HAL code. Platform specific code is: - platform initialization - pcm device selection - pcm stream configuration - sound device selection - acdb ID selection Modified makefiles for 8916 support Change-Id: Idf53d19c355feb26ce9f35f9e5dd0734b542eae6
This commit is contained in:
parent
2d477702a8
commit
8b919ac27a
|
@ -1,4 +1,4 @@
|
|||
ifneq ($(filter mpq8092 msm8960 msm8226 msm8x26 msm8610 msm8974 msm8x74 apq8084,$(TARGET_BOARD_PLATFORM)),)
|
||||
ifneq ($(filter mpq8092 msm8960 msm8226 msm8x26 msm8610 msm8974 msm8x74 apq8084 msm8916,$(TARGET_BOARD_PLATFORM)),)
|
||||
|
||||
MY_LOCAL_PATH := $(call my-dir)
|
||||
|
||||
|
|
|
@ -23,6 +23,12 @@ ifneq ($(filter apq8084,$(TARGET_BOARD_PLATFORM)),)
|
|||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(filter msm8916,$(TARGET_BOARD_PLATFORM)),)
|
||||
AUDIO_PLATFORM = msm8916
|
||||
MULTIPLE_HW_VARIANTS_ENABLED := true
|
||||
LOCAL_CFLAGS := -DPLATFORM_MSM8916
|
||||
endif
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
audio_hw.c \
|
||||
voice.c \
|
||||
|
|
|
@ -0,0 +1,198 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2014, 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
|
||||
* met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
* * Neither the name of The Linux Foundation nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#define LOG_TAG "hardware_info"
|
||||
/*#define LOG_NDEBUG 0*/
|
||||
#define LOG_NDDEBUG 0
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <dlfcn.h>
|
||||
#include <cutils/log.h>
|
||||
#include <cutils/str_parms.h>
|
||||
#include "audio_hw.h"
|
||||
#include "platform.h"
|
||||
#include "platform_api.h"
|
||||
|
||||
|
||||
struct hardware_info {
|
||||
char name[HW_INFO_ARRAY_MAX_SIZE];
|
||||
char type[HW_INFO_ARRAY_MAX_SIZE];
|
||||
/* variables for handling target variants */
|
||||
uint32_t num_snd_devices;
|
||||
char dev_extn[HW_INFO_ARRAY_MAX_SIZE];
|
||||
snd_device_t *snd_devices;
|
||||
};
|
||||
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
|
||||
|
||||
static const snd_device_t taiko_fluid_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
};
|
||||
|
||||
static const snd_device_t taiko_CDP_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
SND_DEVICE_IN_QUAD_MIC,
|
||||
};
|
||||
|
||||
static const snd_device_t taiko_apq8084_CDP_variant_devices[] = {
|
||||
SND_DEVICE_IN_HANDSET_MIC,
|
||||
};
|
||||
|
||||
static const snd_device_t taiko_liquid_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
SND_DEVICE_IN_SPEAKER_MIC,
|
||||
SND_DEVICE_IN_HEADSET_MIC,
|
||||
SND_DEVICE_IN_VOICE_DMIC,
|
||||
SND_DEVICE_IN_VOICE_SPEAKER_DMIC,
|
||||
SND_DEVICE_IN_VOICE_REC_DMIC_STEREO,
|
||||
SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE,
|
||||
SND_DEVICE_IN_QUAD_MIC,
|
||||
SND_DEVICE_IN_HANDSET_STEREO_DMIC,
|
||||
SND_DEVICE_IN_SPEAKER_STEREO_DMIC,
|
||||
};
|
||||
|
||||
static const snd_device_t taiko_DB_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
SND_DEVICE_IN_SPEAKER_MIC,
|
||||
SND_DEVICE_IN_HEADSET_MIC,
|
||||
SND_DEVICE_IN_QUAD_MIC,
|
||||
};
|
||||
|
||||
static const snd_device_t tapan_lite_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES,
|
||||
};
|
||||
|
||||
static const snd_device_t tapan_skuf_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
/*SND_DEVICE_OUT_SPEAKER_AND_ANC_FB_HEADSET,*/
|
||||
};
|
||||
|
||||
static const snd_device_t tapan_lite_skuf_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES,
|
||||
};
|
||||
|
||||
static const snd_device_t helicon_skuab_variant_devices[] = {
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
};
|
||||
|
||||
static void update_hardware_info_8916(struct hardware_info *hw_info, const char *snd_card_name)
|
||||
{
|
||||
if (!strcmp(snd_card_name, "msm8916-snd-card")) {
|
||||
strlcpy(hw_info->type, "", sizeof(hw_info->type));
|
||||
strlcpy(hw_info->name, "msm8916", sizeof(hw_info->name));
|
||||
hw_info->snd_devices = NULL;
|
||||
hw_info->num_snd_devices = 0;
|
||||
strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
|
||||
} else if (!strcmp(snd_card_name, "msm8916-skuab-snd-card")) {
|
||||
strlcpy(hw_info->type, "skuab", sizeof(hw_info->type));
|
||||
strlcpy(hw_info->name, "msm8916", sizeof(hw_info->name));
|
||||
hw_info->snd_devices = (snd_device_t *)helicon_skuab_variant_devices;
|
||||
hw_info->num_snd_devices = ARRAY_SIZE(helicon_skuab_variant_devices);
|
||||
strlcpy(hw_info->dev_extn, "-skuab", sizeof(hw_info->dev_extn));
|
||||
} else if (!strcmp(snd_card_name, "msm8916-skuaa-snd-card")) {
|
||||
strlcpy(hw_info->type, " skuaa", sizeof(hw_info->type));
|
||||
strlcpy(hw_info->name, "msm8916", sizeof(hw_info->name));
|
||||
hw_info->snd_devices = NULL;
|
||||
hw_info->num_snd_devices = 0;
|
||||
strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
|
||||
} else {
|
||||
ALOGW("%s: Not an 8916 device", __func__);
|
||||
}
|
||||
}
|
||||
|
||||
void *hw_info_init(const char *snd_card_name)
|
||||
{
|
||||
struct hardware_info *hw_info;
|
||||
|
||||
hw_info = malloc(sizeof(struct hardware_info));
|
||||
|
||||
if(strstr(snd_card_name, "msm8916")) {
|
||||
ALOGV("8916 - variant soundcard");
|
||||
update_hardware_info_8916(hw_info, snd_card_name);
|
||||
} else {
|
||||
ALOGE("%s: Unsupported target %s:",__func__, snd_card_name);
|
||||
free(hw_info);
|
||||
hw_info = NULL;
|
||||
}
|
||||
|
||||
return hw_info;
|
||||
}
|
||||
|
||||
void hw_info_deinit(void *hw_info)
|
||||
{
|
||||
struct hardware_info *my_data = (struct hardware_info*) hw_info;
|
||||
|
||||
if(!my_data)
|
||||
free(my_data);
|
||||
}
|
||||
|
||||
void hw_info_append_hw_type(void *hw_info, snd_device_t snd_device,
|
||||
char *device_name)
|
||||
{
|
||||
struct hardware_info *my_data = (struct hardware_info*) hw_info;
|
||||
uint32_t i = 0;
|
||||
|
||||
snd_device_t *snd_devices =
|
||||
(snd_device_t *) my_data->snd_devices;
|
||||
|
||||
if(snd_devices != NULL) {
|
||||
for (i = 0; i < my_data->num_snd_devices; i++) {
|
||||
if (snd_device == (snd_device_t)snd_devices[i]) {
|
||||
ALOGV("extract dev_extn device %d, extn = %s",
|
||||
(snd_device_t)snd_devices[i], my_data->dev_extn);
|
||||
CHECK(strlcat(device_name, my_data->dev_extn,
|
||||
DEVICE_NAME_MAX_SIZE) < DEVICE_NAME_MAX_SIZE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
ALOGD("%s : device_name = %s", __func__,device_name);
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,224 @@
|
|||
/*
|
||||
* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
|
||||
* Not a Contribution.
|
||||
*
|
||||
* Copyright (C) 2013 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef QCOM_AUDIO_PLATFORM_H
|
||||
#define QCOM_AUDIO_PLATFORM_H
|
||||
|
||||
enum {
|
||||
FLUENCE_NONE,
|
||||
FLUENCE_DUAL_MIC = 0x1,
|
||||
FLUENCE_QUAD_MIC = 0x2,
|
||||
};
|
||||
|
||||
/*
|
||||
* Below are the devices for which is back end is same, SLIMBUS_0_RX.
|
||||
* All these devices are handled by the internal HW codec. We can
|
||||
* enable any one of these devices at any time
|
||||
*/
|
||||
#define AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND \
|
||||
(AUDIO_DEVICE_OUT_EARPIECE | AUDIO_DEVICE_OUT_SPEAKER | \
|
||||
AUDIO_DEVICE_OUT_WIRED_HEADSET | AUDIO_DEVICE_OUT_WIRED_HEADPHONE)
|
||||
|
||||
/* Sound devices specific to the platform
|
||||
* The DEVICE_OUT_* and DEVICE_IN_* should be mapped to these sound
|
||||
* devices to enable corresponding mixer paths
|
||||
*/
|
||||
enum {
|
||||
SND_DEVICE_NONE = 0,
|
||||
|
||||
/* Playback devices */
|
||||
SND_DEVICE_MIN,
|
||||
SND_DEVICE_OUT_BEGIN = SND_DEVICE_MIN,
|
||||
SND_DEVICE_OUT_HANDSET = SND_DEVICE_OUT_BEGIN,
|
||||
SND_DEVICE_OUT_SPEAKER,
|
||||
SND_DEVICE_OUT_SPEAKER_REVERSE,
|
||||
SND_DEVICE_OUT_HEADPHONES,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_HANDSET,
|
||||
SND_DEVICE_OUT_VOICE_SPEAKER,
|
||||
SND_DEVICE_OUT_VOICE_HEADPHONES,
|
||||
SND_DEVICE_OUT_HDMI,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_HDMI,
|
||||
SND_DEVICE_OUT_BT_SCO,
|
||||
SND_DEVICE_OUT_BT_SCO_WB,
|
||||
SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES,
|
||||
SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET,
|
||||
SND_DEVICE_OUT_AFE_PROXY,
|
||||
SND_DEVICE_OUT_USB_HEADSET,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_USB_HEADSET,
|
||||
SND_DEVICE_OUT_TRANSMISSION_FM,
|
||||
SND_DEVICE_OUT_ANC_HEADSET,
|
||||
SND_DEVICE_OUT_ANC_FB_HEADSET,
|
||||
SND_DEVICE_OUT_VOICE_ANC_HEADSET,
|
||||
SND_DEVICE_OUT_VOICE_ANC_FB_HEADSET,
|
||||
SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET,
|
||||
SND_DEVICE_OUT_ANC_HANDSET,
|
||||
SND_DEVICE_OUT_SPEAKER_PROTECTED,
|
||||
SND_DEVICE_OUT_END,
|
||||
|
||||
/*
|
||||
* Note: IN_BEGIN should be same as OUT_END because total number of devices
|
||||
* SND_DEVICES_MAX should not exceed MAX_RX + MAX_TX devices.
|
||||
*/
|
||||
/* Capture devices */
|
||||
SND_DEVICE_IN_BEGIN = SND_DEVICE_OUT_END,
|
||||
SND_DEVICE_IN_HANDSET_MIC = SND_DEVICE_IN_BEGIN,
|
||||
SND_DEVICE_IN_HANDSET_MIC_AEC,
|
||||
SND_DEVICE_IN_HANDSET_MIC_NS,
|
||||
SND_DEVICE_IN_HANDSET_MIC_AEC_NS,
|
||||
SND_DEVICE_IN_HANDSET_DMIC,
|
||||
SND_DEVICE_IN_HANDSET_DMIC_AEC,
|
||||
SND_DEVICE_IN_HANDSET_DMIC_NS,
|
||||
SND_DEVICE_IN_HANDSET_DMIC_AEC_NS,
|
||||
SND_DEVICE_IN_SPEAKER_MIC,
|
||||
SND_DEVICE_IN_SPEAKER_MIC_AEC,
|
||||
SND_DEVICE_IN_SPEAKER_MIC_NS,
|
||||
SND_DEVICE_IN_SPEAKER_MIC_AEC_NS,
|
||||
SND_DEVICE_IN_SPEAKER_DMIC,
|
||||
SND_DEVICE_IN_SPEAKER_DMIC_AEC,
|
||||
SND_DEVICE_IN_SPEAKER_DMIC_NS,
|
||||
SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS,
|
||||
SND_DEVICE_IN_HEADSET_MIC,
|
||||
SND_DEVICE_IN_HEADSET_MIC_FLUENCE,
|
||||
SND_DEVICE_IN_VOICE_SPEAKER_MIC,
|
||||
SND_DEVICE_IN_VOICE_HEADSET_MIC,
|
||||
SND_DEVICE_IN_HDMI_MIC,
|
||||
SND_DEVICE_IN_BT_SCO_MIC,
|
||||
SND_DEVICE_IN_BT_SCO_MIC_WB,
|
||||
SND_DEVICE_IN_CAMCORDER_MIC,
|
||||
SND_DEVICE_IN_VOICE_DMIC,
|
||||
SND_DEVICE_IN_VOICE_SPEAKER_DMIC,
|
||||
SND_DEVICE_IN_VOICE_SPEAKER_QMIC,
|
||||
SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC,
|
||||
SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC,
|
||||
SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC,
|
||||
SND_DEVICE_IN_VOICE_REC_MIC,
|
||||
SND_DEVICE_IN_VOICE_REC_MIC_NS,
|
||||
SND_DEVICE_IN_VOICE_REC_DMIC_STEREO,
|
||||
SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE,
|
||||
SND_DEVICE_IN_USB_HEADSET_MIC,
|
||||
SND_DEVICE_IN_CAPTURE_FM,
|
||||
SND_DEVICE_IN_AANC_HANDSET_MIC,
|
||||
SND_DEVICE_IN_QUAD_MIC,
|
||||
SND_DEVICE_IN_HANDSET_STEREO_DMIC,
|
||||
SND_DEVICE_IN_SPEAKER_STEREO_DMIC,
|
||||
SND_DEVICE_IN_CAPTURE_VI_FEEDBACK,
|
||||
SND_DEVICE_IN_END,
|
||||
|
||||
SND_DEVICE_MAX = SND_DEVICE_IN_END,
|
||||
|
||||
};
|
||||
|
||||
#define DEFAULT_OUTPUT_SAMPLING_RATE 48000
|
||||
|
||||
#define ALL_SESSION_VSID 0xFFFFFFFF
|
||||
#define DEFAULT_MUTE_RAMP_DURATION 500
|
||||
#define DEFAULT_VOLUME_RAMP_DURATION_MS 20
|
||||
#define MIXER_PATH_MAX_LENGTH 100
|
||||
|
||||
#define MAX_VOL_INDEX 5
|
||||
#define MIN_VOL_INDEX 0
|
||||
#define percent_to_index(val, min, max) \
|
||||
((val) * ((max) - (min)) * 0.01 + (min) + .5)
|
||||
|
||||
/*
|
||||
* tinyAlsa library interprets period size as number of frames
|
||||
* one frame = channel_count * sizeof (pcm sample)
|
||||
* so if format = 16-bit PCM and channels = Stereo, frame size = 2 ch * 2 = 4 bytes
|
||||
* DEEP_BUFFER_OUTPUT_PERIOD_SIZE = 1024 means 1024 * 4 = 4096 bytes
|
||||
* We should take care of returning proper size when AudioFlinger queries for
|
||||
* the buffer size of an input/output stream
|
||||
*/
|
||||
#define DEEP_BUFFER_OUTPUT_PERIOD_SIZE 960
|
||||
#define DEEP_BUFFER_OUTPUT_PERIOD_COUNT 4
|
||||
#define LOW_LATENCY_OUTPUT_PERIOD_SIZE 240
|
||||
#define LOW_LATENCY_OUTPUT_PERIOD_COUNT 2
|
||||
|
||||
#define HDMI_MULTI_PERIOD_SIZE 336
|
||||
#define HDMI_MULTI_PERIOD_COUNT 8
|
||||
#define HDMI_MULTI_DEFAULT_CHANNEL_COUNT 6
|
||||
#define HDMI_MULTI_PERIOD_BYTES (HDMI_MULTI_PERIOD_SIZE * HDMI_MULTI_DEFAULT_CHANNEL_COUNT * 2)
|
||||
|
||||
#define AUDIO_CAPTURE_PERIOD_DURATION_MSEC 20
|
||||
#define AUDIO_CAPTURE_PERIOD_COUNT 2
|
||||
|
||||
#define DEVICE_NAME_MAX_SIZE 128
|
||||
#define HW_INFO_ARRAY_MAX_SIZE 32
|
||||
|
||||
#define DEEP_BUFFER_PCM_DEVICE 0
|
||||
#define AUDIO_RECORD_PCM_DEVICE 0
|
||||
#define MULTIMEDIA2_PCM_DEVICE 1
|
||||
#define FM_PLAYBACK_PCM_DEVICE 5
|
||||
#define FM_CAPTURE_PCM_DEVICE 6
|
||||
#define HFP_PCM_RX 5
|
||||
#define HFP_SCO_RX 23
|
||||
#define HFP_ASM_RX_TX 24
|
||||
|
||||
#define INCALL_MUSIC_UPLINK_PCM_DEVICE 1
|
||||
#define INCALL_MUSIC_UPLINK2_PCM_DEVICE 16
|
||||
#define SPKR_PROT_CALIB_RX_PCM_DEVICE 5
|
||||
#define SPKR_PROT_CALIB_TX_PCM_DEVICE 22
|
||||
#define PLAYBACK_OFFLOAD_DEVICE 9
|
||||
#define COMPRESS_VOIP_CALL_PCM_DEVICE 3
|
||||
|
||||
|
||||
#define LOWLATENCY_PCM_DEVICE 12
|
||||
#define EC_REF_RX "I2S_RX"
|
||||
#define COMPRESS_CAPTURE_DEVICE 19
|
||||
|
||||
#define VOICE_CALL_PCM_DEVICE 2
|
||||
#define VOICE2_CALL_PCM_DEVICE 13
|
||||
#define VOLTE_CALL_PCM_DEVICE 15
|
||||
#define QCHAT_CALL_PCM_DEVICE 14
|
||||
|
||||
#define LIB_CSD_CLIENT "libcsd-client.so"
|
||||
/* CSD-CLIENT related functions */
|
||||
typedef int (*init_t)();
|
||||
typedef int (*deinit_t)();
|
||||
typedef int (*disable_device_t)();
|
||||
typedef int (*enable_device_t)(int, int, uint32_t);
|
||||
typedef int (*volume_t)(uint32_t, int);
|
||||
typedef int (*mic_mute_t)(uint32_t, int);
|
||||
typedef int (*slow_talk_t)(uint32_t, uint8_t);
|
||||
typedef int (*start_voice_t)(uint32_t);
|
||||
typedef int (*stop_voice_t)(uint32_t);
|
||||
typedef int (*start_playback_t)(uint32_t);
|
||||
typedef int (*stop_playback_t)(uint32_t);
|
||||
typedef int (*start_record_t)(uint32_t, int);
|
||||
typedef int (*stop_record_t)(uint32_t);
|
||||
/* CSD Client structure */
|
||||
struct csd_data {
|
||||
void *csd_client;
|
||||
init_t init;
|
||||
deinit_t deinit;
|
||||
disable_device_t disable_device;
|
||||
enable_device_t enable_device;
|
||||
volume_t volume;
|
||||
mic_mute_t mic_mute;
|
||||
slow_talk_t slow_talk;
|
||||
start_voice_t start_voice;
|
||||
stop_voice_t stop_voice;
|
||||
start_playback_t start_playback;
|
||||
stop_playback_t stop_playback;
|
||||
start_record_t start_record;
|
||||
stop_record_t stop_record;
|
||||
};
|
||||
|
||||
#endif // QCOM_AUDIO_PLATFORM_H
|
|
@ -24,6 +24,8 @@ endif
|
|||
ifeq ($(call is-board-platform,mpq8092),true)
|
||||
include $(AENC_AAC_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform,msm8916),true)
|
||||
include $(AENC_AAC_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
endif
|
||||
|
|
|
@ -24,6 +24,8 @@ endif
|
|||
ifeq ($(call is-board-platform,mpq8092),true)
|
||||
include $(AENC_AMR_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform,msm8916),true)
|
||||
include $(AENC_AMR_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
endif
|
||||
|
|
|
@ -24,6 +24,8 @@ endif
|
|||
ifeq ($(call is-board-platform,mpq8092),true)
|
||||
include $(AENC_EVRC_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
ifeq ($(call is-board-platform,msm8916),true)
|
||||
include $(AENC_EVRC_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
endif
|
||||
|
|
|
@ -24,5 +24,8 @@ endif
|
|||
ifeq ($(call is-board-platform,mpq8092),true)
|
||||
include $(AENC_QCELP13_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
ifeq ($(call is-board-platform,msm8916),true)
|
||||
include $(AENC_QCELP13_PATH)/qdsp6/Android.mk
|
||||
endif
|
||||
|
||||
endif
|
||||
|
|
Loading…
Reference in New Issue