summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/AudioFlinger.h
diff options
context:
space:
mode:
authorPhil Burk <philburk@google.com>2015-02-11 13:40:50 -0800
committerPhil Burk <philburk@google.com>2015-03-24 13:24:18 -0700
commit062e67a26e0553dd142be622821f493df541f0c6 (patch)
tree125d28264adfc5b7bd993bb343569eea63bfb95d /services/audioflinger/AudioFlinger.h
parent21b51b61ee52e6aa74d98b138d3dd4f0e17b1441 (diff)
downloadframeworks_av-062e67a26e0553dd142be622821f493df541f0c6.zip
frameworks_av-062e67a26e0553dd142be622821f493df541f0c6.tar.gz
frameworks_av-062e67a26e0553dd142be622821f493df541f0c6.tar.bz2
AudioFlinger: call SPDIF wrapper from AudioFlinger
Create an interface layer between the AudioFlinger and the HAL that manages the wrapping and format conversion. Removed unnecessary includes. Handle rate conversion in getRenderPosition(). Try to open HAL with encoded format before wrapping with SPDIF. Bug: 17566660 Change-Id: I00ad888ca15ff0f85b85efb8167c7f5ea761a244 Signed-off-by: Phil Burk <philburk@google.com>
Diffstat (limited to 'services/audioflinger/AudioFlinger.h')
-rw-r--r--services/audioflinger/AudioFlinger.h54
1 files changed, 5 insertions, 49 deletions
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 7b76185..c7d9161 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -56,6 +56,9 @@
#include <media/nbaio/NBAIO.h>
#include "AudioWatchdog.h"
#include "AudioMixer.h"
+#include "AudioStreamOut.h"
+#include "SpdifStreamOut.h"
+#include "AudioHwDevice.h"
#include <powermanager/IPowerManager.h>
@@ -311,7 +314,6 @@ public:
wp<RefBase> cookie);
private:
- class AudioHwDevice; // fwd declaration for findSuitableHwDev_l
audio_mode_t getMode() const { return mMode; }
@@ -449,7 +451,7 @@ private:
class EffectModule;
class EffectHandle;
class EffectChain;
- struct AudioStreamOut;
+
struct AudioStreamIn;
struct stream_type_t {
@@ -586,57 +588,11 @@ private:
// Return true if the effect was found in mOrphanEffectChains, false otherwise.
bool updateOrphanEffectChains(const sp<EffectModule>& effect);
- class AudioHwDevice {
- public:
- enum Flags {
- AHWD_CAN_SET_MASTER_VOLUME = 0x1,
- AHWD_CAN_SET_MASTER_MUTE = 0x2,
- };
-
- AudioHwDevice(audio_module_handle_t handle,
- const char *moduleName,
- audio_hw_device_t *hwDevice,
- Flags flags)
- : mHandle(handle), mModuleName(strdup(moduleName))
- , mHwDevice(hwDevice)
- , mFlags(flags) { }
- /*virtual*/ ~AudioHwDevice() { free((void *)mModuleName); }
-
- bool canSetMasterVolume() const {
- return (0 != (mFlags & AHWD_CAN_SET_MASTER_VOLUME));
- }
-
- bool canSetMasterMute() const {
- return (0 != (mFlags & AHWD_CAN_SET_MASTER_MUTE));
- }
-
- audio_module_handle_t handle() const { return mHandle; }
- const char *moduleName() const { return mModuleName; }
- audio_hw_device_t *hwDevice() const { return mHwDevice; }
- uint32_t version() const { return mHwDevice->common.version; }
- private:
- const audio_module_handle_t mHandle;
- const char * const mModuleName;
- audio_hw_device_t * const mHwDevice;
- const Flags mFlags;
- };
-
- // AudioStreamOut and AudioStreamIn are immutable, so their fields are const.
+ // AudioStreamIn is immutable, so their fields are const.
// For emphasis, we could also make all pointers to them be "const *",
// but that would clutter the code unnecessarily.
- struct AudioStreamOut {
- AudioHwDevice* const audioHwDev;
- audio_stream_out_t* const stream;
- const audio_output_flags_t flags;
-
- audio_hw_device_t* hwDev() const { return audioHwDev->hwDevice(); }
-
- AudioStreamOut(AudioHwDevice *dev, audio_stream_out_t *out, audio_output_flags_t flags) :
- audioHwDev(dev), stream(out), flags(flags) {}
- };
-
struct AudioStreamIn {
AudioHwDevice* const audioHwDev;
audio_stream_in_t* const stream;