diff options
author | Eric Laurent <elaurent@google.com> | 2014-08-06 19:40:04 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-06 17:19:40 +0000 |
commit | 0a0e5f02037f396237461a9840b2fc7271812bdc (patch) | |
tree | e7e029f1a04fde3a58657c4131f439c90ae3a5e5 /services/audioflinger | |
parent | 7f3f2fa386b8dd917022663bcb01f10ea67061be (diff) | |
parent | 93c3d41bdb15e39dac0faea9c5b60f1637cd477c (diff) | |
download | frameworks_av-0a0e5f02037f396237461a9840b2fc7271812bdc.zip frameworks_av-0a0e5f02037f396237461a9840b2fc7271812bdc.tar.gz frameworks_av-0a0e5f02037f396237461a9840b2fc7271812bdc.tar.bz2 |
Merge "AudioSystem: add API to query audio HW sync source" into lmp-dev
Diffstat (limited to 'services/audioflinger')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 19 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.h | 3 |
2 files changed, 22 insertions, 0 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index b8cc33a..1f77b2f 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1579,6 +1579,25 @@ status_t AudioFlinger::setLowRamDevice(bool isLowRamDevice) return NO_ERROR; } +audio_hw_sync_t AudioFlinger::getAudioHwSyncForSession(audio_session_t sessionId) +{ + Mutex::Autolock _l(mLock); + for (size_t i = 0; i < mPlaybackThreads.size(); i++) { + sp<PlaybackThread> thread = mPlaybackThreads.valueAt(i); + if ((thread->hasAudioSession(sessionId) & ThreadBase::TRACK_SESSION) != 0) { + // A session can only be on one thread, so exit after first match + String8 reply = thread->getParameters(String8(AUDIO_PARAMETER_STREAM_HW_AV_SYNC)); + AudioParameter param = AudioParameter(reply); + int value; + if (param.getInt(String8(AUDIO_PARAMETER_STREAM_HW_AV_SYNC), value) == NO_ERROR) { + return value; + } + break; + } + } + return AUDIO_HW_SYNC_INVALID; +} + // ---------------------------------------------------------------------------- diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 31c5a1a..4e9d49b 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -248,6 +248,9 @@ public: /* Set audio port configuration */ virtual status_t setAudioPortConfig(const struct audio_port_config *config); + /* Get the HW synchronization source used for an audio session */ + virtual audio_hw_sync_t getAudioHwSyncForSession(audio_session_t sessionId); + virtual status_t onTransact( uint32_t code, const Parcel& data, |