summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstenkinevgeniy <stenkinevgeniy@gmail.com>2018-05-07 18:00:13 +0000
committerstenkinevgeniy <stenkinevgeniy@gmail.com>2018-05-08 15:32:53 +0000
commit35dbc1e39fa7d355edbebe0071145aac45cc1075 (patch)
tree7aaf568d1d941adc7de2ce4a57775c1f8294cc98
parent35941d9065819c4d2cfe6465e0385575bc85511f (diff)
downloadandroid_hardware_samsung-35dbc1e39fa7d355edbebe0071145aac45cc1075.tar.gz
android_hardware_samsung-35dbc1e39fa7d355edbebe0071145aac45cc1075.tar.bz2
android_hardware_samsung-35dbc1e39fa7d355edbebe0071145aac45cc1075.zip
Audio: remove unsupported hotword/soundtrigger stuff.
Change-Id: Ie21f94e80a18f5a5805a3ee00e12e83fa2fc3f1a
-rw-r--r--audio/audio_hw.c143
-rw-r--r--audio/audio_hw.h15
2 files changed, 20 insertions, 138 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 5ae48b7..01bec82 100644
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -2,6 +2,7 @@
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2017 Christopher N. Hesse <raymanfx@gmail.com>
* Copyright (C) 2017 Andreas Schneider <asn@cryptomilk.org>
+ * Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -186,26 +187,6 @@ static struct pcm_device_profile pcm_device_capture_sco = {
.devices = AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET,
};
-#ifdef SOUND_CAPTURE_HOTWORD_DEVICE
-static struct pcm_device_profile pcm_device_hotword_streaming = {
- .config = {
- .channels = 1,
- .rate = 16000,
- .period_size = CAPTURE_PERIOD_SIZE,
- .period_count = CAPTURE_PERIOD_COUNT,
- .format = PCM_FORMAT_S16_LE,
- .start_threshold = CAPTURE_START_THRESHOLD,
- .stop_threshold = 0,
- .silence_threshold = 0,
- .avail_min = 0,
- },
- .card = SOUND_CARD,
- .id = SOUND_CAPTURE_HOTWORD_DEVICE,
- .type = PCM_HOTWORD_STREAMING,
- .devices = AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BACK_MIC
-};
-#endif
-
static struct pcm_device_profile * const pcm_devices[] = {
&pcm_device_playback,
&pcm_device_capture,
@@ -215,9 +196,6 @@ static struct pcm_device_profile * const pcm_devices[] = {
#ifdef SOUND_CAPTURE_LOOPBACK_AEC_DEVICE
&pcm_device_capture_loopback_aec,
#endif
-#ifdef SOUND_CAPTURE_HOTWORD_DEVICE
- &pcm_device_hotword_streaming,
-#endif
NULL,
};
@@ -227,7 +205,6 @@ static const char * const use_case_table[AUDIO_USECASE_MAX] = {
[USECASE_AUDIO_PLAYBACK_OFFLOAD] = "compress-offload-playback",
[USECASE_AUDIO_PLAYBACK_DEEP_BUFFER] = "playback deep-buffer",
[USECASE_AUDIO_CAPTURE] = "capture",
- [USECASE_AUDIO_CAPTURE_HOTWORD] = "capture-hotword",
[USECASE_VOICE_CALL] = "voice-call",
};
@@ -1035,9 +1012,6 @@ static int select_devices(struct audio_device *adev,
ALOGV("%s: usecase(%d)", __func__, uc_id);
- if (uc_id == USECASE_AUDIO_CAPTURE_HOTWORD)
- return 0;
-
usecase = get_usecase_from_type(adev, PCM_CAPTURE|VOICE_CALL);
if (usecase != NULL) {
active_input = (struct stream_in *)usecase->stream;
@@ -2292,32 +2266,15 @@ static int start_input_stream(struct stream_in *in)
pcm_device->pcm_profile->config.channels,pcm_device->pcm_profile->config.rate,
pcm_device->pcm_profile->config.format, pcm_device->pcm_profile->config.period_size);
- if (pcm_profile->type == PCM_HOTWORD_STREAMING) {
- if (!adev->sound_trigger_open_for_streaming) {
- ALOGE("%s: No handle to sound trigger HAL", __func__);
- ret = -EIO;
- goto error_open;
- }
- pcm_device->pcm = NULL;
- pcm_device->sound_trigger_handle = adev->sound_trigger_open_for_streaming();
- if (pcm_device->sound_trigger_handle <= 0) {
- ALOGE("%s: Failed to open DSP for streaming", __func__);
- ret = -EIO;
- goto error_open;
- }
- ALOGV("Opened DSP successfully");
- } else {
- pcm_device->sound_trigger_handle = 0;
- pcm_device->pcm = pcm_open(pcm_device->pcm_profile->card, pcm_device->pcm_profile->id,
+ pcm_device->pcm = pcm_open(pcm_device->pcm_profile->card, pcm_device->pcm_profile->id,
PCM_IN | PCM_MONOTONIC, &pcm_device->pcm_profile->config);
- if (pcm_device->pcm && !pcm_is_ready(pcm_device->pcm)) {
- ALOGE("%s: %s", __func__, pcm_get_error(pcm_device->pcm));
- pcm_close(pcm_device->pcm);
- pcm_device->pcm = NULL;
- ret = -EIO;
- goto error_open;
- }
+ if (pcm_device->pcm && !pcm_is_ready(pcm_device->pcm)) {
+ ALOGE("%s: %s", __func__, pcm_get_error(pcm_device->pcm));
+ pcm_close(pcm_device->pcm);
+ pcm_device->pcm = NULL;
+ ret = -EIO;
+ goto error_open;
}
skip_pcm_handling:
@@ -2414,14 +2371,9 @@ static int out_close_pcm_devices(struct stream_out *out)
{
struct pcm_device *pcm_device;
struct listnode *node;
- struct audio_device *adev = out->dev;
list_for_each(node, &out->pcm_dev_list) {
pcm_device = node_to_item(node, struct pcm_device, stream_list_node);
- if (pcm_device->sound_trigger_handle > 0) {
- adev->sound_trigger_close_for_streaming(pcm_device->sound_trigger_handle);
- pcm_device->sound_trigger_handle = 0;
- }
if (pcm_device->pcm) {
pcm_close(pcm_device->pcm);
pcm_device->pcm = NULL;
@@ -3453,7 +3405,6 @@ static int in_close_pcm_devices(struct stream_in *in)
{
struct pcm_device *pcm_device;
struct listnode *node;
- struct audio_device *adev = in->dev;
list_for_each(node, &in->pcm_dev_list) {
pcm_device = node_to_item(node, struct pcm_device, stream_list_node);
@@ -3461,9 +3412,6 @@ static int in_close_pcm_devices(struct stream_in *in)
if (pcm_device->pcm)
pcm_close(pcm_device->pcm);
pcm_device->pcm = NULL;
- if (pcm_device->sound_trigger_handle > 0)
- adev->sound_trigger_close_for_streaming(pcm_device->sound_trigger_handle);
- pcm_device->sound_trigger_handle = 0;
}
}
return 0;
@@ -3637,21 +3585,6 @@ static int in_set_gain(struct audio_stream_in *stream, float gain)
return 0;
}
-static ssize_t read_bytes_from_dsp(struct stream_in *in, void* buffer,
- size_t bytes)
-{
- struct pcm_device *pcm_device;
- struct audio_device *adev = in->dev;
-
- pcm_device = node_to_item(list_head(&in->pcm_dev_list),
- struct pcm_device, stream_list_node);
-
- if (pcm_device->sound_trigger_handle > 0)
- return adev->sound_trigger_read_samples(pcm_device->sound_trigger_handle, buffer, bytes);
- else
- return 0;
-}
-
static ssize_t in_read(struct audio_stream_in *stream, void *buffer,
size_t bytes)
{
@@ -3703,21 +3636,15 @@ static ssize_t in_read(struct audio_stream_in *stream, void *buffer,
false_alarm:
if (!list_empty(&in->pcm_dev_list)) {
- if (in->usecase == USECASE_AUDIO_CAPTURE_HOTWORD) {
- bytes = read_bytes_from_dsp(in, buffer, bytes);
- if (bytes > 0)
- read_and_process_successful = true;
- } else {
- /*
- * Read PCM and:
- * - resample if needed
- * - process if pre-processors are attached
- * - discard unwanted channels
- */
- frames = read_and_process_frames(in, buffer, frames_rq);
- if (frames >= 0)
- read_and_process_successful = true;
- }
+ /*
+ * Read PCM and:
+ * - resample if needed
+ * - process if pre-processors are attached
+ * - discard unwanted channels
+ */
+ frames = read_and_process_frames(in, buffer, frames_rq);
+ if (frames >= 0)
+ read_and_process_successful = true;
}
/*
@@ -4336,8 +4263,7 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
audio_channel_count_from_in_mask(config->channel_mask)) != 0)
return -EINVAL;
- usecase_type_t usecase_type = source == AUDIO_SOURCE_HOTWORD ?
- PCM_HOTWORD_STREAMING : flags & AUDIO_INPUT_FLAG_FAST ?
+ usecase_type_t usecase_type = flags & AUDIO_INPUT_FLAG_FAST ?
PCM_CAPTURE_LOW_LATENCY : PCM_CAPTURE;
pcm_profile = get_pcm_device(usecase_type, devices);
if (pcm_profile == NULL && usecase_type == PCM_CAPTURE_LOW_LATENCY) {
@@ -4388,11 +4314,7 @@ static int adev_open_input_stream(struct audio_hw_device *dev,
in->config = pcm_profile->config;
/* Update config params with the requested sample rate and channels */
- if (source == AUDIO_SOURCE_HOTWORD) {
- in->usecase = USECASE_AUDIO_CAPTURE_HOTWORD;
- } else {
- in->usecase = USECASE_AUDIO_CAPTURE;
- }
+ in->usecase = USECASE_AUDIO_CAPTURE;
in->usecase_type = usecase_type;
pthread_mutex_init(&in->lock, (const pthread_mutexattr_t *) NULL);
@@ -4582,33 +4504,6 @@ static int adev_open(const hw_module_t *module, const char *name,
}
}
- if (access(SOUND_TRIGGER_HAL_LIBRARY_PATH, R_OK) == 0) {
- adev->sound_trigger_lib = dlopen(SOUND_TRIGGER_HAL_LIBRARY_PATH, RTLD_NOW);
- if (adev->sound_trigger_lib == NULL) {
- ALOGE("%s: DLOPEN failed for %s", __func__, SOUND_TRIGGER_HAL_LIBRARY_PATH);
- } else {
- ALOGV("%s: DLOPEN successful for %s", __func__, SOUND_TRIGGER_HAL_LIBRARY_PATH);
- adev->sound_trigger_open_for_streaming =
- (int (*)(void))dlsym(adev->sound_trigger_lib,
- "sound_trigger_open_for_streaming");
- adev->sound_trigger_read_samples =
- (size_t (*)(int, void *, size_t))dlsym(adev->sound_trigger_lib,
- "sound_trigger_read_samples");
- adev->sound_trigger_close_for_streaming =
- (int (*)(int))dlsym(adev->sound_trigger_lib,
- "sound_trigger_close_for_streaming");
- if (!adev->sound_trigger_open_for_streaming ||
- !adev->sound_trigger_read_samples ||
- !adev->sound_trigger_close_for_streaming) {
-
- ALOGE("%s: Error grabbing functions in %s", __func__, SOUND_TRIGGER_HAL_LIBRARY_PATH);
- adev->sound_trigger_open_for_streaming = 0;
- adev->sound_trigger_read_samples = 0;
- adev->sound_trigger_close_for_streaming = 0;
- }
- }
- }
-
adev->voice.session = voice_session_init(adev);
if (adev->voice.session == NULL) {
ALOGE("%s: Failed to initialize voice session data", __func__);
diff --git a/audio/audio_hw.h b/audio/audio_hw.h
index fd1228a..1c74d65 100644
--- a/audio/audio_hw.h
+++ b/audio/audio_hw.h
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2013 The Android Open Source Project
* Copyright (C) 2017 Christopher N. Hesse <raymanfx@gmail.com>
+ * Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -48,12 +49,6 @@ struct effect_info_s {
};
#endif
-#ifdef __LP64__
-#define SOUND_TRIGGER_HAL_LIBRARY_PATH "/system/lib64/hw/sound_trigger.primary.flounder.so"
-#else
-#define SOUND_TRIGGER_HAL_LIBRARY_PATH "/system/lib/hw/sound_trigger.primary.flounder.so"
-#endif
-
/* Sound devices specific to the platform
* The DEVICE_OUT_* and DEVICE_IN_* should be mapped to these sound
* devices to enable corresponding mixer paths
@@ -190,7 +185,6 @@ typedef enum {
/* Capture usecases */
USECASE_AUDIO_CAPTURE,
- USECASE_AUDIO_CAPTURE_HOTWORD,
USECASE_VOICE_CALL,
AUDIO_USECASE_MAX
@@ -225,7 +219,6 @@ typedef enum {
PCM_PLAYBACK = 0x1,
PCM_CAPTURE = 0x2,
VOICE_CALL = 0x4,
- PCM_HOTWORD_STREAMING = 0x8,
PCM_CAPTURE_LOW_LATENCY = 0x10,
} usecase_type_t;
@@ -252,7 +245,6 @@ struct pcm_device {
struct resampler_itfe* resampler;
int16_t* res_buffer;
size_t res_byte_count;
- int sound_trigger_handle;
};
struct stream_out {
@@ -423,11 +415,6 @@ struct audio_device {
volatile int32_t echo_reference_generation;
#endif
- void* sound_trigger_lib;
- int (*sound_trigger_open_for_streaming)();
- size_t (*sound_trigger_read_samples)(int, void*, size_t);
- int (*sound_trigger_close_for_streaming)(int);
-
pthread_mutex_t lock_inputs; /* see note below on mutex acquisition order */
amplifier_device_t *amp;
};