diff options
author | Mingming Yin <mingming@codeaurora.org> | 2012-12-03 13:32:11 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@review.cyanogenmod.com> | 2012-12-23 22:40:50 -0800 |
commit | 7bbb31f670965d0e29ef0ff398a367522cdb4507 (patch) | |
tree | f28e837387403e53ae3f81af0ad8ba1030f580d3 /include/hardware_legacy | |
parent | 3c16e23e9d4b552c197d37e111e657f6baf3653a (diff) | |
download | hardware_libhardware_legacy-7bbb31f670965d0e29ef0ff398a367522cdb4507.zip hardware_libhardware_legacy-7bbb31f670965d0e29ef0ff398a367522cdb4507.tar.gz hardware_libhardware_legacy-7bbb31f670965d0e29ef0ff398a367522cdb4507.tar.bz2 |
audio: Add support for QCOM audio devices, formats, and channels
- Add QCOM supported devices, fomats, and input/output
channels in AudioPolicyManagerBase
- Add QCOM supported devices in AudioSystemLegacy.h
Change-Id: I5e2977a630c2bf9211af62d97ae024c5c57075f9
libhardware_legacy: Add support for DirectTrack
- Add support for DirectOutput in libhardware_legacy
- Add new APIs to AudioStreamOut base class
- Add audio output flags to openOutputStream
Change-Id: I301b3b9b2c2ad08dba75f616008d692e825af96f
audio: add missing QCOM audio devices, formats, and channels
- Add support for FM I/O devices and communication device for VOIP
- Add support for mp2 audio format
- Add support for 6.1 audio channels
Change-Id: I7b3042902c658dc8e5dfa34719fb80d18f3ff4e7
libhardware_legacy: Support LPA Playback
Add support to enable Playback in LPA mode
When Alarm is playing on headset+spkr, if LPA
playback is selected STARTEGY_MEDIA gets selected
and switches device from Combo device to Headset.
- Fix the issue by selecting Combo device only
even incase of LPA when stream ALARM/NOTIFICATION
is active.
Change-Id: Ifde78a744a17ce613eac92b4c3bcf875167aaeb6
Add ifdefs for QCOM enhanced features
Change-Id: I87ce3503ed85458c775d0c8c7fa649d8194e28e3
Diffstat (limited to 'include/hardware_legacy')
-rw-r--r-- | include/hardware_legacy/AudioHardwareInterface.h | 12 | ||||
-rw-r--r-- | include/hardware_legacy/AudioPolicyManagerBase.h | 16 | ||||
-rw-r--r-- | include/hardware_legacy/AudioSystemLegacy.h | 22 |
3 files changed, 49 insertions, 1 deletions
diff --git a/include/hardware_legacy/AudioHardwareInterface.h b/include/hardware_legacy/AudioHardwareInterface.h index 4bd56d4..82fc633 100644 --- a/include/hardware_legacy/AudioHardwareInterface.h +++ b/include/hardware_legacy/AudioHardwareInterface.h @@ -116,6 +116,18 @@ public: */ #ifndef ICS_AUDIO_BLOB virtual status_t getNextWriteTimestamp(int64_t *timestamp); +#ifdef QCOM_HARDWARE + virtual status_t start() {return INVALID_OPERATION;} + virtual status_t pause() {return INVALID_OPERATION;} + virtual status_t flush() {return INVALID_OPERATION;} + virtual status_t stop() {return INVALID_OPERATION;} + virtual int setObserver(void *observer) {return INVALID_OPERATION;} + virtual status_t getBufferInfo(buf_info **buf) {return INVALID_OPERATION;} + virtual status_t isBufferAvailable(int *isAvail) { + *isAvail = true; + return NO_ERROR; + } +#endif #endif }; diff --git a/include/hardware_legacy/AudioPolicyManagerBase.h b/include/hardware_legacy/AudioPolicyManagerBase.h index 451fe8a..47ee3c3 100644 --- a/include/hardware_legacy/AudioPolicyManagerBase.h +++ b/include/hardware_legacy/AudioPolicyManagerBase.h @@ -339,7 +339,11 @@ protected: // change the route of the specified output. Returns the number of ms we have slept to // allow new routing to take effect in certain cases. +#ifdef QCOM_HARDWARE + virtual uint32_t setOutputDevice(audio_io_handle_t output, +#else uint32_t setOutputDevice(audio_io_handle_t output, +#endif audio_devices_t device, bool force = false, int delayMs = 0); @@ -360,7 +364,11 @@ protected: virtual float computeVolume(int stream, int index, audio_io_handle_t output, audio_devices_t device); // check that volume change is permitted, compute and send new volume to audio hardware +#ifdef QCOM_HARDWARE + virtual status_t checkAndSetVolume(int stream, int index, audio_io_handle_t output, audio_devices_t device, int delayMs = 0, bool force = false); +#else status_t checkAndSetVolume(int stream, int index, audio_io_handle_t output, audio_devices_t device, int delayMs = 0, bool force = false); +#endif // apply all stream volumes to the specified output and device void applyStreamVolumes(audio_io_handle_t output, audio_devices_t device, int delayMs = 0, bool force = false); @@ -373,7 +381,11 @@ protected: audio_devices_t device = (audio_devices_t)0); // Mute or unmute the stream on the specified output +#ifdef QCOM_HARDWARE + virtual void setStreamMute(int stream, +#else void setStreamMute(int stream, +#endif bool on, audio_io_handle_t output, int delayMs = 0, @@ -476,7 +488,11 @@ protected: uint32_t samplingRate, uint32_t format, uint32_t channelMask); +#ifdef QCOM_HARDWARE + virtual IOProfile *getProfileForDirectOutput(audio_devices_t device, +#else IOProfile *getProfileForDirectOutput(audio_devices_t device, +#endif uint32_t samplingRate, uint32_t format, uint32_t channelMask, diff --git a/include/hardware_legacy/AudioSystemLegacy.h b/include/hardware_legacy/AudioSystemLegacy.h index 6296b8b..1b854c6 100644 --- a/include/hardware_legacy/AudioSystemLegacy.h +++ b/include/hardware_legacy/AudioSystemLegacy.h @@ -243,12 +243,23 @@ public: DEVICE_OUT_AUX_DIGITAL = 0x400, DEVICE_OUT_ANLG_DOCK_HEADSET = 0x800, DEVICE_OUT_DGTL_DOCK_HEADSET = 0x1000, +#ifdef QCOM_HARDWARE + DEVICE_OUT_ANC_HEADSET = 0x2000, + DEVICE_OUT_ANC_HEADPHONE = 0x4000, + DEVICE_OUT_PROXY = 0x8000, + DEVICE_OUT_DEFAULT = DEVICE_OUT_SPEAKER, +#else DEVICE_OUT_DEFAULT = 0x8000, +#endif DEVICE_OUT_ALL = (DEVICE_OUT_EARPIECE | DEVICE_OUT_SPEAKER | DEVICE_OUT_WIRED_HEADSET | DEVICE_OUT_WIRED_HEADPHONE | DEVICE_OUT_BLUETOOTH_SCO | DEVICE_OUT_BLUETOOTH_SCO_HEADSET | DEVICE_OUT_BLUETOOTH_SCO_CARKIT | DEVICE_OUT_BLUETOOTH_A2DP | DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES | DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER | DEVICE_OUT_AUX_DIGITAL | DEVICE_OUT_ANLG_DOCK_HEADSET | DEVICE_OUT_DGTL_DOCK_HEADSET | +#ifdef QCOM_HARDWARE + DEVICE_OUT_ANC_HEADSET | DEVICE_OUT_ANC_HEADPHONE | + DEVICE_OUT_PROXY | +#endif DEVICE_OUT_DEFAULT), DEVICE_OUT_ALL_A2DP = (DEVICE_OUT_BLUETOOTH_A2DP | DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES | DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER), @@ -262,11 +273,20 @@ public: DEVICE_IN_AUX_DIGITAL = 0x200000, DEVICE_IN_VOICE_CALL = 0x400000, DEVICE_IN_BACK_MIC = 0x800000, +#ifdef QCOM_HARDWARE + DEVICE_IN_ANC_HEADSET = 0x10000000, + DEVICE_IN_PROXY = 0x20000000, + DEVICE_IN_ANLG_DOCK_HEADSET = 0x40000000, +#endif DEVICE_IN_DEFAULT = 0x80000000, DEVICE_IN_ALL = (DEVICE_IN_COMMUNICATION | DEVICE_IN_AMBIENT | DEVICE_IN_BUILTIN_MIC | DEVICE_IN_BLUETOOTH_SCO_HEADSET | DEVICE_IN_WIRED_HEADSET | DEVICE_IN_AUX_DIGITAL | - DEVICE_IN_VOICE_CALL | DEVICE_IN_BACK_MIC | DEVICE_IN_DEFAULT) + DEVICE_IN_VOICE_CALL | DEVICE_IN_BACK_MIC | +#ifdef QCOM_HARDWARE + DEVICE_IN_ANC_HEADSET | DEVICE_IN_PROXY | DEVICE_IN_ANLG_DOCK_HEADSET | +#endif + DEVICE_IN_DEFAULT) }; // request to open a direct output with getOutput() (by opposition to sharing an output with other AudioTracks) |