Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5792d4b1 authored by Apoorv Raghuvanshi's avatar Apoorv Raghuvanshi
Browse files

hal: Support for usb audio features

Added support for usb audio feature and
related proxy device support

Change-Id: Ia64e9eff20fbbada6f08795686cdbc0ba462bafb
parent 42576848
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -34,6 +34,11 @@ ifneq ($(strip $(AUDIO_FEATURE_DISABLED_FM)),true)
    LOCAL_SRC_FILES += audio_extn/fm.c
endif

ifneq ($(strip $(AUDIO_FEATURE_DISABLED_USBAUDIO)),true)
    LOCAL_CFLAGS += -DUSB_HEADSET_ENABLED
    LOCAL_SRC_FILES += audio_extn/usb.c
endif

LOCAL_SHARED_LIBRARIES := \
	liblog \
	libcutils \
+6 −4
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ bool audio_extn_get_anc_enabled(void)

bool audio_extn_should_use_handset_anc(int in_channels)
{
    char prop_aanc[128] = "false";
    char prop_aanc[PROPERTY_VALUE_MAX] = "false";

    property_get("persist.aanc.enable", prop_aanc, "0");
    if (!strncmp("true", prop_aanc, 4)) {
@@ -76,7 +76,7 @@ bool audio_extn_should_use_handset_anc(int in_channels)

bool audio_extn_should_use_fb_anc(void)
{
  char prop_anc[128] = "feedforward";
  char prop_anc[PROPERTY_VALUE_MAX] = "feedforward";

  property_get("persist.headset.anc.type", prop_anc, "0");
  if (!strncmp("feedback", prop_anc, sizeof("feedback"))) {
@@ -171,7 +171,9 @@ char* audio_extn_get_afe_proxy_parameters(struct str_parms *query,
    ret = str_parms_get_str(query, AUDIO_PARAMETER_CAN_OPEN_PROXY, value,
                            sizeof(value));
    if (ret >= 0) {
        /* Todo: check if proxy is free by maintaining a state flag*/
        if (audio_extn_usb_is_proxy_inuse())
            val = 0;
        else
            val = 1;
        str_parms_add_int(reply, AUDIO_PARAMETER_CAN_OPEN_PROXY, val);
        str = str_parms_to_str(reply);
+20 −0
Original line number Diff line number Diff line
@@ -44,4 +44,24 @@ bool audio_extn_should_use_handset_anc(int in_channels);
int32_t audio_extn_set_afe_proxy_channel_mixer(struct audio_device *adev);
#endif

#ifndef USB_HEADSET_ENABLED
#define audio_extn_usb_init(adev)                        (0)
#define audio_extn_usb_deinit()                          (0)
#define audio_extn_usb_start_playback(adev)              (0)
#define audio_extn_usb_stop_playback()                   (0)
#define audio_extn_usb_start_capture(adev)               (0)
#define audio_extn_usb_stop_capture()                    (0)
#define audio_extn_usb_set_proxy_sound_card(sndcard_idx) (0)
#define audio_extn_usb_is_proxy_inuse()                  (0)
#else
void audio_extn_usb_init(void *adev);
void audio_extn_usb_deinit();
void audio_extn_usb_start_playback(void *adev);
void audio_extn_usb_stop_playback();
void audio_extn_usb_start_capture(void *adev);
void audio_extn_usb_stop_capture();
void audio_extn_usb_set_proxy_sound_card(uint32_t sndcard_idx);
bool audio_extn_usb_is_proxy_inuse();
#endif

#endif /* AUDIO_EXTN_H */

hal/audio_extn/usb.c

0 → 100644
+673 −0

File added.

Preview size limit exceeded, changes collapsed.

+19 −0

File changed.

Preview size limit exceeded, changes collapsed.

Loading