diff options
author | codeworkx <daniel.hillenbrand@codeworkx.de> | 2017-10-22 21:28:30 +0200 |
---|---|---|
committer | dd3boh <dade.garberi@gmail.com> | 2017-11-09 14:22:28 +0100 |
commit | aab3833328ba1032eef7cd2438c99917a04049c2 (patch) | |
tree | db5e65c5922375aafa5c09fac729a1934325ad49 /libshims/camera_shim.cpp | |
parent | 2c81dc6625091c251c2902fe2e014c19df0e098f (diff) |
msm8996-common: libshims: properly shim DisplayEventReceiver for ZEUSIS Algo
Change-Id: I33b3eff27c730d10c636fd0014137d03810aeba0
Diffstat (limited to 'libshims/camera_shim.cpp')
-rw-r--r-- | libshims/camera_shim.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/libshims/camera_shim.cpp b/libshims/camera_shim.cpp index ec8b580..68e8ccc 100644 --- a/libshims/camera_shim.cpp +++ b/libshims/camera_shim.cpp @@ -16,8 +16,18 @@ #include <string> +#include <utils/Errors.h> + #include <ui/GraphicBuffer.h> +#include "gui/DisplayEventReceiver.h" +#include <gui/IDisplayEventConnection.h> +#include <gui/ISurfaceComposer.h> + +#include <private/gui/ComposerService.h> + +#include <private/gui/BitTube.h> + extern "C" void _ZN7android13GraphicBufferC1EjjijjjP13native_handleb( const native_handle_t* handle, android::GraphicBuffer::HandleWrapMethod method, @@ -43,8 +53,18 @@ extern "C" void _ZN7android13GraphicBufferC1EjjijjP13native_handleb( inFormat, static_cast<uint32_t>(1), static_cast<uint64_t>(inUsage), inStride); } -extern "C" void _ZN7android20DisplayEventReceiverC1ENS_16ISurfaceComposer11VsyncSourceE(); +namespace android { -extern "C" void _ZN7android20DisplayEventReceiverC1Ev() { - _ZN7android20DisplayEventReceiverC1ENS_16ISurfaceComposer11VsyncSourceE(); +DisplayEventReceiver::DisplayEventReceiver() { + status_t err; + sp<ISurfaceComposer> sf(ComposerService::getComposerService()); + if (sf != NULL) { + mEventConnection = sf->createDisplayEventConnection(ISurfaceComposer::eVsyncSourceApp); + if (mEventConnection != NULL) { + mDataChannel = std::make_unique<gui::BitTube>(); + err = mEventConnection->stealReceiveChannel(mDataChannel.get()); + } + } } + +}; // namespace android |