diff options
author | yucliu <yucliu@google.com> | 2020-09-28 16:23:44 -0700 |
---|---|---|
committer | Yuchen Liu <yucliu@google.com> | 2020-10-02 19:09:52 +0000 |
commit | 04167a70d1659ffb11e0f482e85185baf37984f6 (patch) | |
tree | b43994dd54e9ef304bee066c30018922da46b17b /audio_proxy | |
parent | cdb2fdcf8f6fca7829a7e1fe25eb3176bf5f20bb (diff) | |
download | atv-04167a70d1659ffb11e0f482e85185baf37984f6.tar.gz |
[AudioProxy] Client version 5.1
Upgrade client version to 5.1:
1. Bump AUDIO_PROXY_MINOR_VERSION, 0 -> 1.
2. Call IStreamEventListener::onEvent(CLOSE) when audioserver closes
IStreamOut.
3. Remove 5.0 impl.
Bug: 167605686
Test: Manual
Change-Id: I5fb63ea865114615aa1e8c741df66e037f4861bd
Diffstat (limited to 'audio_proxy')
-rw-r--r-- | audio_proxy/Android.bp | 14 | ||||
-rw-r--r-- | audio_proxy/AudioProxy.cpp | 2 | ||||
-rw-r--r-- | audio_proxy/AudioProxyManager.h | 4 | ||||
-rw-r--r-- | audio_proxy/StreamOutImpl.cpp | 11 | ||||
-rw-r--r-- | audio_proxy/StreamOutImpl.h | 13 |
5 files changed, 35 insertions, 9 deletions
diff --git a/audio_proxy/Android.bp b/audio_proxy/Android.bp index 79797b4..08739e8 100644 --- a/audio_proxy/Android.bp +++ b/audio_proxy/Android.bp @@ -14,15 +14,20 @@ cc_library { "liblog", "libutils", - // HAL version 5.0 + // Audio HAL version 5.0 "android.hardware.audio@5.0", "android.hardware.audio.common@5.0", "android.hardware.audio.common@5.0-util", + + // HAL version 5.0 "device.google.atv.audio_proxy@5.0", + + // HAL version 5.1 + "device.google.atv.audio_proxy@5.1", ], static_libs: [ - "libaudio_proxy_client@5.0", + "libaudio_proxy_client@5.1", ], } @@ -55,7 +60,7 @@ cc_defaults { } cc_library_static { - name: "libaudio_proxy_client@5.0", + name: "libaudio_proxy_client@5.1", defaults: [ "libaudio_proxy_client_default" ], @@ -64,12 +69,13 @@ cc_library_static { "android.hardware.audio.common@5.0", "android.hardware.audio.common@5.0-util", "device.google.atv.audio_proxy@5.0", + "device.google.atv.audio_proxy@5.1", ], cflags: [ "-DMAJOR_VERSION=5", "-DMINOR_VERSION=0", - "-DAUDIO_PROXY_MINOR_VERSION=0", + "-DAUDIO_PROXY_MINOR_VERSION=1", "-include common/all-versions/VersionMacro.h", "-include common/AudioProxyVersionMacro.h", ], diff --git a/audio_proxy/AudioProxy.cpp b/audio_proxy/AudioProxy.cpp index a215299..2cd7aab 100644 --- a/audio_proxy/AudioProxy.cpp +++ b/audio_proxy/AudioProxy.cpp @@ -34,7 +34,7 @@ class AudioProxyImpl { }; AudioProxyImpl::AudioProxyImpl() { - mManager = audio_proxy::V5_0::createAudioProxyManager(); + mManager = audio_proxy::V5_1::createAudioProxyManager(); ALOGE_IF(!mManager, "Failed to create audio proxy manager"); } diff --git a/audio_proxy/AudioProxyManager.h b/audio_proxy/AudioProxyManager.h index d23f5dd..46bb2e2 100644 --- a/audio_proxy/AudioProxyManager.h +++ b/audio_proxy/AudioProxyManager.h @@ -27,7 +27,7 @@ class AudioProxyManager { virtual bool registerDevice(audio_proxy_device_t* device) = 0; }; -namespace V5_0 { +namespace V5_1 { std::unique_ptr<AudioProxyManager> createAudioProxyManager(); -} // namespace V5_0 +} // namespace V5_1 } // namespace audio_proxy diff --git a/audio_proxy/StreamOutImpl.cpp b/audio_proxy/StreamOutImpl.cpp index 5b80ec6..1f4f29d 100644 --- a/audio_proxy/StreamOutImpl.cpp +++ b/audio_proxy/StreamOutImpl.cpp @@ -179,6 +179,12 @@ StreamOutImpl::~StreamOutImpl() { mEventFlag.reset(); } +Return<void> StreamOutImpl::setEventListener( + const sp<IStreamEventListener>& listener) { + mEventListener = listener; + return Void(); +} + Return<uint64_t> StreamOutImpl::getFrameSize() { audio_format_t format = static_cast<audio_format_t>(mStream->getFormat()); @@ -295,6 +301,11 @@ Result StreamOutImpl::closeImpl() { if (mEventFlag) { mEventFlag->wake(static_cast<uint32_t>(MessageQueueFlagBits::NOT_EMPTY)); } + + if (mEventListener) { + mEventListener->onClose(); + } + return Result::OK; } diff --git a/audio_proxy/StreamOutImpl.h b/audio_proxy/StreamOutImpl.h index 9a82922..c57a7c4 100644 --- a/audio_proxy/StreamOutImpl.h +++ b/audio_proxy/StreamOutImpl.h @@ -15,7 +15,7 @@ #pragma once // clang-format off -#include PATH(android/hardware/audio/FILE_VERSION/IStreamOut.h) +#include PATH(device/google/atv/audio_proxy/AUDIO_PROXY_FILE_VERSION/IAudioProxyStreamOut.h) // clang-format on #include <fmq/EventFlag.h> @@ -37,11 +37,16 @@ using ::android::hardware::Void; using namespace ::android::hardware::audio::common::CPP_VERSION; using namespace ::android::hardware::audio::CPP_VERSION; +using ::device::google::atv::audio_proxy::AUDIO_PROXY_CPP_VERSION:: + IAudioProxyStreamOut; +using ::device::google::atv::audio_proxy::AUDIO_PROXY_CPP_VERSION:: + IStreamEventListener; + namespace audio_proxy { namespace AUDIO_PROXY_CPP_VERSION { class AudioProxyStreamOut; -class StreamOutImpl : public IStreamOut { +class StreamOutImpl : public IAudioProxyStreamOut { public: using CommandMQ = MessageQueue<WriteCommand, kSynchronizedReadWrite>; using DataMQ = MessageQueue<uint8_t, kSynchronizedReadWrite>; @@ -50,6 +55,9 @@ class StreamOutImpl : public IStreamOut { explicit StreamOutImpl(std::unique_ptr<AudioProxyStreamOut> stream); ~StreamOutImpl() override; + // IAudioProxyStreamOut implementations: + Return<void> setEventListener(const sp<IStreamEventListener>& listener); + // Methods from ::android::hardware::audio::CPP_VERSION::IStream follow. Return<uint64_t> getFrameSize() override; Return<uint64_t> getFrameCount() override; @@ -115,6 +123,7 @@ class StreamOutImpl : public IStreamOut { Result closeImpl(); std::unique_ptr<AudioProxyStreamOut> mStream; + sp<IStreamEventListener> mEventListener; std::unique_ptr<CommandMQ> mCommandMQ; std::unique_ptr<DataMQ> mDataMQ; |