diff options
author | David Wagner <david.wagner@intel.com> | 2014-04-23 11:47:02 +0200 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-04-23 14:42:21 +0200 |
commit | cc029e59f7d22f383dfc5b700689db66a941a356 (patch) | |
tree | 8bfcd7c509305df83b332fb6f1ffcc1aa62bed7a | |
parent | 600898287d579c41b77af309f0ab75dbe40c559b (diff) | |
download | hardware_libhardware_legacy-cc029e59f7d22f383dfc5b700689db66a941a356.zip hardware_libhardware_legacy-cc029e59f7d22f383dfc5b700689db66a941a356.tar.gz hardware_libhardware_legacy-cc029e59f7d22f383dfc5b700689db66a941a356.tar.bz2 |
Audio: add an openOutputStreamWithFlags API
The existing openOutputStream API did not allow passing stream flags even
though its audio hardware interface's open_output_stream counterpart does take
a "flags" argument. This means that, when the audio hw_module is implemented
using libhardware_legacy, the output flag was lost.
This commit adds an API in libhardware_legacy's audio module, allowing to pass
the flag, and updates the default wrapper in order to call this new API instead
of the old version that missed the flag.
Change-Id: I20c102d32b489f87fabbd7d02aa0b28fae13948b
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
-rw-r--r-- | audio/AudioHardwareInterface.cpp | 11 | ||||
-rw-r--r-- | audio/audio_hw_hal.cpp | 3 | ||||
-rw-r--r-- | include/hardware_legacy/AudioHardwareInterface.h | 7 |
3 files changed, 20 insertions, 1 deletions
diff --git a/audio/AudioHardwareInterface.cpp b/audio/AudioHardwareInterface.cpp index 60cce27..dbf6f33 100644 --- a/audio/AudioHardwareInterface.cpp +++ b/audio/AudioHardwareInterface.cpp @@ -148,6 +148,17 @@ status_t AudioHardwareBase::dumpState(int fd, const Vector<String16>& args) return NO_ERROR; } +// default implementation calls its "without flags" counterpart +AudioStreamOut* AudioHardwareInterface::openOutputStreamWithFlags(uint32_t devices, + audio_output_flags_t flags, + int *format, + uint32_t *channels, + uint32_t *sampleRate, + status_t *status) +{ + return openOutputStream(devices, format, channels, sampleRate, status); +} + // ---------------------------------------------------------------------------- }; // namespace android diff --git a/audio/audio_hw_hal.cpp b/audio/audio_hw_hal.cpp index 07d735d..9b1f1a3 100644 --- a/audio/audio_hw_hal.cpp +++ b/audio/audio_hw_hal.cpp @@ -501,7 +501,8 @@ static int adev_open_output_stream(struct audio_hw_device *dev, devices = convert_audio_device(devices, HAL_API_REV_2_0, HAL_API_REV_1_0); - out->legacy_out = ladev->hwif->openOutputStream(devices, (int *) &config->format, + out->legacy_out = ladev->hwif->openOutputStreamWithFlags(devices, flags, + (int *) &config->format, &config->channel_mask, &config->sample_rate, &status); if (!out->legacy_out) { diff --git a/include/hardware_legacy/AudioHardwareInterface.h b/include/hardware_legacy/AudioHardwareInterface.h index b466000..f5b38ea 100644 --- a/include/hardware_legacy/AudioHardwareInterface.h +++ b/include/hardware_legacy/AudioHardwareInterface.h @@ -250,6 +250,13 @@ public: uint32_t *channels=0, uint32_t *sampleRate=0, status_t *status=0) = 0; + virtual AudioStreamOut* openOutputStreamWithFlags( + uint32_t devices, + audio_output_flags_t flags=(audio_output_flags_t)0, + int *format=0, + uint32_t *channels=0, + uint32_t *sampleRate=0, + status_t *status=0); virtual void closeOutputStream(AudioStreamOut* out) = 0; /** This method creates and opens the audio hardware input stream */ |