diff options
author | Glenn Kasten <gkasten@google.com> | 2012-09-24 11:27:18 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-09-25 17:13:18 -0700 |
commit | cc0f1cfb69ce8b8985fc2c0984847a06a13ad22d (patch) | |
tree | f3522fd1ad371d1e592c8c8cfd8d0ce1d98f80c2 /services/audioflinger | |
parent | d9aa7b4db46bea5966401f9fcfbecb3269ec55c7 (diff) | |
download | frameworks_av-cc0f1cfb69ce8b8985fc2c0984847a06a13ad22d.zip frameworks_av-cc0f1cfb69ce8b8985fc2c0984847a06a13ad22d.tar.gz frameworks_av-cc0f1cfb69ce8b8985fc2c0984847a06a13ad22d.tar.bz2 |
Implement android.media.AudioManager.getProperty()
Bug: 6635041
Change-Id: I3386a4a6c226bc4eceaf65556119e4fb15f73224
Diffstat (limited to 'services/audioflinger')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 18 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.h | 7 |
2 files changed, 24 insertions, 1 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index dd491f5..599a9e2 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -6903,6 +6903,24 @@ audio_module_handle_t AudioFlinger::loadHwModule_l(const char *name) } +// ---------------------------------------------------------------------------- + +int32_t AudioFlinger::getPrimaryOutputSamplingRate() +{ + Mutex::Autolock _l(mLock); + PlaybackThread *thread = primaryPlaybackThread_l(); + return thread != NULL ? thread->sampleRate() : 0; +} + +int32_t AudioFlinger::getPrimaryOutputFrameCount() +{ + Mutex::Autolock _l(mLock); + PlaybackThread *thread = primaryPlaybackThread_l(); + return thread != NULL ? thread->frameCountHAL() : 0; +} + +// ---------------------------------------------------------------------------- + audio_io_handle_t AudioFlinger::openOutput(audio_module_handle_t module, audio_devices_t *pDevices, uint32_t *pSamplingRate, diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 8a020fa..45cee0b 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -207,6 +207,9 @@ public: virtual audio_module_handle_t loadHwModule(const char *name); + virtual int32_t getPrimaryOutputSamplingRate(); + virtual int32_t getPrimaryOutputFrameCount(); + virtual status_t onTransact( uint32_t code, const Parcel& data, @@ -555,8 +558,10 @@ private: audio_channel_mask_t channelMask() const { return mChannelMask; } audio_format_t format() const { return mFormat; } // Called by AudioFlinger::frameCount(audio_io_handle_t output) and effects, - // and returns the normal mix buffer's frame count. No API for HAL frame count. + // and returns the normal mix buffer's frame count. size_t frameCount() const { return mNormalFrameCount; } + // Return's the HAL's frame count i.e. fast mixer buffer size. + size_t frameCountHAL() const { return mFrameCount; } // Should be "virtual status_t requestExitAndWait()" and override same // method in Thread, but Thread::requestExitAndWait() is not yet virtual. |