summaryrefslogtreecommitdiffstats
path: root/tinyalsa_audio
diff options
context:
space:
mode:
Diffstat (limited to 'tinyalsa_audio')
-rw-r--r--tinyalsa_audio/audio_ril_interface.c25
-rw-r--r--tinyalsa_audio/audio_ril_interface.h9
-rw-r--r--tinyalsa_audio/mixer.c2
3 files changed, 22 insertions, 14 deletions
diff --git a/tinyalsa_audio/audio_ril_interface.c b/tinyalsa_audio/audio_ril_interface.c
index 2fc14c5..2f88d14 100644
--- a/tinyalsa_audio/audio_ril_interface.c
+++ b/tinyalsa_audio/audio_ril_interface.c
@@ -44,6 +44,7 @@ int (*_ril_set_call_volume)(void *, enum ril_sound_type, int);
int (*_ril_set_call_audio_path)(void *, enum ril_audio_path);
int (*_ril_set_call_clock_sync)(void *, enum ril_clock_state);
int (*_ril_set_call_twomic)(void *, enum ril_twomic_device, enum ril_twomic_enable);
+int (*_ril_set_mic_mute)(void *, enum ril_mic_mute);
int (*_ril_register_unsolicited_handler)(void *, int, void *);
int (*_ril_get_wb_amr)(void *, void *);
@@ -71,16 +72,6 @@ static int audio_ril_interface_connect_if_required(struct tinyalsa_audio_ril_int
return 0;
}
-int audio_ril_interface_set_mic_mute(struct tinyalsa_audio_ril_interface *ril_interface, bool state)
-{
- /*
- * If you look at the Replicant libaudio-ril-interface
- * this function is just stubbed out there. So let's not
- * bother with it
- */
- return 0;
-
-}
int audio_ril_interface_set_voice_volume(struct tinyalsa_audio_ril_interface *ril_interface,
audio_devices_t device, float volume)
@@ -212,6 +203,15 @@ error:
return -1;
}
+int audio_ril_interface_set_mic_mute(struct tinyalsa_audio_ril_interface *ril_interface, enum ril_mic_mute state)
+{
+ if (audio_ril_interface_connect_if_required(ril_interface))
+ return 0;
+
+ return _ril_set_mic_mute(ril_interface->interface, state);
+}
+
+
int audio_ril_interface_set_twomic(struct tinyalsa_audio_ril_interface *ril_interface, enum ril_twomic_enable twomic)
{
int rc;
@@ -322,7 +322,7 @@ int audio_ril_interface_open(struct audio_hw_device *dev, audio_devices_t device
_ril_set_call_audio_path = dlsym(dl_handle, "SetCallAudioPath");
_ril_set_call_clock_sync = dlsym(dl_handle, "SetCallClockSync");
_ril_set_call_twomic = dlsym(dl_handle, "SetTwoMicControl");
-
+ _ril_set_mic_mute = dlsym(dl_handle, "SetMute");
_ril_register_unsolicited_handler = dlsym(dl_handle,
"RegisterUnsolicitedHandler");
/* since this function is not supported in all RILs, don't require it */
@@ -330,7 +330,8 @@ int audio_ril_interface_open(struct audio_hw_device *dev, audio_devices_t device
if (!_ril_open_client || !_ril_close_client || !_ril_connect ||
!_ril_is_connected || !_ril_disconnect || !_ril_set_call_volume ||
- !_ril_set_call_audio_path || !_ril_set_call_clock_sync ||
+ !_ril_set_call_audio_path || !_ril_set_mic_mute ||
+ !_ril_set_call_clock_sync ||
!_ril_register_unsolicited_handler || !_ril_set_call_twomic) {
ALOGE("Cannot get symbols from '%s'", RIL_CLIENT_LIBPATH);
dlclose(dl_handle);
diff --git a/tinyalsa_audio/audio_ril_interface.h b/tinyalsa_audio/audio_ril_interface.h
index 59eb967..66d806f 100644
--- a/tinyalsa_audio/audio_ril_interface.h
+++ b/tinyalsa_audio/audio_ril_interface.h
@@ -82,7 +82,14 @@ enum ril_twomic_enable {
TWO_MIC_SOLUTION_ON
};
-int audio_ril_interface_set_mic_mute(struct tinyalsa_audio_ril_interface *ril_interface, bool state);
+
+enum ril_mic_mute {
+ MIC_UNMUTE,
+ MIC_MUTE
+};
+
+
+int audio_ril_interface_set_mic_mute(struct tinyalsa_audio_ril_interface *ril_interface, enum ril_mic_mute);
int audio_ril_interface_set_voice_volume(struct tinyalsa_audio_ril_interface *ril_interface, audio_devices_t device, float volume);
int audio_ril_interface_set_route(struct tinyalsa_audio_ril_interface *ril_interface, audio_devices_t device);
int audio_ril_interface_set_twomic(struct tinyalsa_audio_ril_interface *ril_interface, enum ril_twomic_enable);
diff --git a/tinyalsa_audio/mixer.c b/tinyalsa_audio/mixer.c
index a125e31..cda890e 100644
--- a/tinyalsa_audio/mixer.c
+++ b/tinyalsa_audio/mixer.c
@@ -276,7 +276,7 @@ void tinyalsa_mixer_config_start(void *data, const XML_Char *elem,
config_data->io_props.channel_mask = AUDIO_CHANNEL_OUT_STEREO;
break;
case 4:
- config_data->io_props.channel_mask = AUDIO_CHANNEL_OUT_SURROUND;
+ config_data->io_props.channel_mask = AUDIO_CHANNEL_OUT_QUAD_SIDE;
break;
case 6:
config_data->io_props.channel_mask = AUDIO_CHANNEL_OUT_5POINT1;