vr_composer_client.cpp revision 69f8fb7e5c8cb3ec4cb77ee3354231c5e6703026
151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara/* 251a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * Copyright 2016 The Android Open Source Project 351a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * 451a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * Licensed under the Apache License, Version 2.0 (the "License"); 551a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * you may not use this file except in compliance with the License. 651a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * You may obtain a copy of the License at 751a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * 851a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * http://www.apache.org/licenses/LICENSE-2.0 951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * 1051a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * Unless required by applicable law or agreed to in writing, software 1151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * distributed under the License is distributed on an "AS IS" BASIS, 1251a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1351a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * See the License for the specific language governing permissions and 1451a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara * limitations under the License. 1551a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara */ 1651a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 1795a99a1d3cdbd19343d0d27271098c9c01a63e78Daniel Nicoara#include <android/frameworks/vr/composer/1.0/IVrComposerClient.h> 1851a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara#include <hardware/gralloc.h> 1951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara#include <hardware/gralloc1.h> 2051a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara#include <log/log.h> 2151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 224251e92b6dacb5653aa9528d88484085ee333e3bDaniel Nicoara#include "impl/vr_hwc.h" 234251e92b6dacb5653aa9528d88484085ee333e3bDaniel Nicoara#include "impl/vr_composer_client.h" 2451a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 2551a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoaranamespace android { 2651a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoaranamespace dvr { 27a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoaranamespace { 2851a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 2951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoarausing android::hardware::graphics::common::V1_0::PixelFormat; 3095a99a1d3cdbd19343d0d27271098c9c01a63e78Daniel Nicoarausing android::frameworks::vr::composer::V1_0::IVrComposerClient; 3151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 32a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoaraclass ComposerClientImpl : public ComposerClient { 33a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara public: 34a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara ComposerClientImpl(android::dvr::VrHwc& hal); 35a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara virtual ~ComposerClientImpl(); 36a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 37a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara private: 3869f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu class VrCommandEngine : public ComposerCommandEngine { 39a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara public: 4069f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu VrCommandEngine(ComposerClientImpl& client); 4169f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu ~VrCommandEngine() override; 42a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 4369f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu bool executeCommand(IComposerClient::Command command, 4469f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu uint16_t length) override; 45a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 46a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara private: 4769f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu bool executeSetLayerInfo(uint16_t length); 4869f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu bool executeSetClientTargetMetadata(uint16_t length); 4969f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu bool executeSetLayerBufferMetadata(uint16_t length); 50a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 51a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara IVrComposerClient::BufferMetadata readBufferMetadata(); 52a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 53a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara ComposerClientImpl& mVrClient; 54a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara android::dvr::VrHwc& mVrHal; 55a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 5669f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu VrCommandEngine(const VrCommandEngine&) = delete; 5769f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu void operator=(const VrCommandEngine&) = delete; 58a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara }; 59a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 6069f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu std::unique_ptr<ComposerCommandEngine> createCommandEngine() override; 61a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 62a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara dvr::VrHwc& mVrHal; 63a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 64a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara ComposerClientImpl(const ComposerClientImpl&) = delete; 65a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara void operator=(const ComposerClientImpl&) = delete; 66a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara}; 67a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 68a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraComposerClientImpl::ComposerClientImpl(android::dvr::VrHwc& hal) 6951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara : ComposerClient(hal), mVrHal(hal) {} 7051a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 71a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraComposerClientImpl::~ComposerClientImpl() {} 7251a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 7369f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wustd::unique_ptr<ComposerCommandEngine> 7469f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I WuComposerClientImpl::createCommandEngine() { 7569f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu return std::unique_ptr<VrCommandEngine>(new VrCommandEngine(*this)); 7651a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara} 7751a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 7869f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I WuComposerClientImpl::VrCommandEngine::VrCommandEngine(ComposerClientImpl& client) 7969f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu : ComposerCommandEngine(&client.mHal, client.mResources.get()), mVrClient(client), 8069f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu mVrHal(client.mVrHal) {} 8151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 8269f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I WuComposerClientImpl::VrCommandEngine::~VrCommandEngine() {} 8351a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 8469f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wubool ComposerClientImpl::VrCommandEngine::executeCommand( 8551a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara IComposerClient::Command command, uint16_t length) { 8651a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara IVrComposerClient::VrCommand vrCommand = 8751a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara static_cast<IVrComposerClient::VrCommand>(command); 8851a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara switch (vrCommand) { 8951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara case IVrComposerClient::VrCommand::SET_LAYER_INFO: 9069f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu return executeSetLayerInfo(length); 911f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara case IVrComposerClient::VrCommand::SET_CLIENT_TARGET_METADATA: 9269f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu return executeSetClientTargetMetadata(length); 931f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara case IVrComposerClient::VrCommand::SET_LAYER_BUFFER_METADATA: 9469f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu return executeSetLayerBufferMetadata(length); 9551a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara default: 9669f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu return ComposerCommandEngine::executeCommand(command, length); 9751a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara } 9851a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara} 9951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 10069f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wubool ComposerClientImpl::VrCommandEngine::executeSetLayerInfo(uint16_t length) { 10151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara if (length != 2) { 10251a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara return false; 10351a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara } 10451a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 10569f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu auto err = mVrHal.setLayerInfo(mCurrentDisplay, mCurrentLayer, read(), read()); 10651a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara if (err != Error::NONE) { 10751a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara mWriter.setError(getCommandLoc(), err); 10851a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara } 10951a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 11051a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara return true; 11151a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara} 11251a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara 11369f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wubool ComposerClientImpl::VrCommandEngine::executeSetClientTargetMetadata( 1141f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara uint16_t length) { 1151f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara if (length != 7) 1161f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara return false; 1171f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 11869f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu auto err = mVrHal.setClientTargetMetadata(mCurrentDisplay, readBufferMetadata()); 1191f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara if (err != Error::NONE) 1201f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara mWriter.setError(getCommandLoc(), err); 1211f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 1221f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara return true; 1231f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara} 1241f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 12569f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wubool ComposerClientImpl::VrCommandEngine::executeSetLayerBufferMetadata( 1261f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara uint16_t length) { 1271f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara if (length != 7) 1281f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara return false; 1291f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 13069f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I Wu auto err = mVrHal.setLayerBufferMetadata(mCurrentDisplay, mCurrentLayer, 1311f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara readBufferMetadata()); 1321f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara if (err != Error::NONE) 1331f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara mWriter.setError(getCommandLoc(), err); 1341f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 1351f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara return true; 1361f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara} 1371f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 1381f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel NicoaraIVrComposerClient::BufferMetadata 13969f8fb7e5c8cb3ec4cb77ee3354231c5e6703026Chia-I WuComposerClientImpl::VrCommandEngine::readBufferMetadata() { 1401f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara IVrComposerClient::BufferMetadata metadata = { 1411f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara .width = read(), 1421f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara .height = read(), 1431f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara .stride = read(), 1441f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara .layerCount = read(), 1451f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara .format = static_cast<PixelFormat>(readSigned()), 1461f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara .usage = read64(), 1471f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara }; 1481f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara return metadata; 1491f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara} 1501f42e3a02c4f9a1ba1916a2f0e47082bedb73e41Daniel Nicoara 151a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} // namespace 152a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 153a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraVrComposerClient::VrComposerClient(dvr::VrHwc& hal) 154a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara : client_(new ComposerClientImpl(hal)) { 155a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara client_->initialize(); 156a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 157a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 158a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraVrComposerClient::~VrComposerClient() {} 159a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 160a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoaravoid VrComposerClient::onHotplug(Display display, 161a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara IComposerCallback::Connection connected) { 162a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara client_->onHotplug(display, connected); 163a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 164a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 1658fc9822f3b20f6547c3398c55e8b70c4f3940db9Daniel Nicoaravoid VrComposerClient::onRefresh(Display display) { 1668fc9822f3b20f6547c3398c55e8b70c4f3940db9Daniel Nicoara client_->onRefresh(display); 1678fc9822f3b20f6547c3398c55e8b70c4f3940db9Daniel Nicoara} 1688fc9822f3b20f6547c3398c55e8b70c4f3940db9Daniel Nicoara 169a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::registerCallback( 170a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara const sp<IComposerCallback>& callback) { 171a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->registerCallback(callback); 172a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 173a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 174a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<uint32_t> VrComposerClient::getMaxVirtualDisplayCount() { 175a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getMaxVirtualDisplayCount(); 176a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 177a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 178a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::createVirtualDisplay(uint32_t width, 179a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara uint32_t height, PixelFormat formatHint, uint32_t outputBufferSlotCount, 180a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara createVirtualDisplay_cb hidl_cb) { 181a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->createVirtualDisplay( 182a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara width, height, formatHint, outputBufferSlotCount, hidl_cb); 183a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 184a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 185a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::destroyVirtualDisplay(Display display) { 186a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->destroyVirtualDisplay(display); 187a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 188a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 189a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::createLayer(Display display, 190a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara uint32_t bufferSlotCount, createLayer_cb hidl_cb) { 191a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->createLayer(display, bufferSlotCount, hidl_cb); 192a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 193a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 194a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::destroyLayer(Display display, Layer layer) { 195a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->destroyLayer(display, layer); 196a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 197a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 198a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getActiveConfig(Display display, 199a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara getActiveConfig_cb hidl_cb) { 200a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getActiveConfig(display, hidl_cb); 201a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 202a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 203a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::getClientTargetSupport(Display display, 204a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara uint32_t width, uint32_t height, PixelFormat format, Dataspace dataspace) { 205a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getClientTargetSupport(display, width, height, format, 206a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara dataspace); 207a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 208a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 209a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getColorModes(Display display, 210a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara getColorModes_cb hidl_cb) { 211a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getColorModes(display, hidl_cb); 212a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 213a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 214a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getDisplayAttribute(Display display, 215a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara Config config, Attribute attribute, getDisplayAttribute_cb hidl_cb) { 216a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getDisplayAttribute(display, config, attribute, hidl_cb); 217a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 218a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 219a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getDisplayConfigs(Display display, 220a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara getDisplayConfigs_cb hidl_cb) { 221a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getDisplayConfigs(display, hidl_cb); 222a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 223a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 224a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getDisplayName(Display display, 225a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara getDisplayName_cb hidl_cb) { 226a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getDisplayName(display, hidl_cb); 227a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 228a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 229a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getDisplayType(Display display, 230a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara getDisplayType_cb hidl_cb) { 231a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getDisplayType(display, hidl_cb); 232a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 233a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 234a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getDozeSupport( 235a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara Display display, getDozeSupport_cb hidl_cb) { 236a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getDozeSupport(display, hidl_cb); 237a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 238a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 239a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getHdrCapabilities( 240a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara Display display, getHdrCapabilities_cb hidl_cb) { 241a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getHdrCapabilities(display, hidl_cb); 242a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 243a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 244a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::setActiveConfig(Display display, 245a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara Config config) { 246a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->setActiveConfig(display, config); 247a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 248a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 249a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::setColorMode(Display display, ColorMode mode) { 250a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->setColorMode(display, mode); 251a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 252a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 253a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::setPowerMode(Display display, PowerMode mode) { 254a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->setPowerMode(display, mode); 255a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 256a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 257a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::setVsyncEnabled(Display display, 258a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara Vsync enabled) { 259a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->setVsyncEnabled(display, enabled); 260a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 261a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 262a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::setClientTargetSlotCount( 263a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara Display display, uint32_t clientTargetSlotCount) { 264a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->setClientTargetSlotCount(display, clientTargetSlotCount); 265a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 266a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 267a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<Error> VrComposerClient::setInputCommandQueue( 268a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara const hardware::MQDescriptorSync<uint32_t>& descriptor) { 269a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->setInputCommandQueue(descriptor); 270a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 271a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 272a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::getOutputCommandQueue( 273a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara getOutputCommandQueue_cb hidl_cb) { 274a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->getOutputCommandQueue(hidl_cb); 275a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 276a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 277a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel NicoaraReturn<void> VrComposerClient::executeCommands(uint32_t inLength, 278a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara const hidl_vec<hidl_handle>& inHandles, executeCommands_cb hidl_cb) { 279a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara return client_->executeCommands(inLength, inHandles, hidl_cb); 280a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara} 281a50abc2fbbc1ab4ac00aa5d3b41d77b24048f81bDaniel Nicoara 28251a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara} // namespace dvr 28351a0a56385f4176447d8168f9395341b3e7574a0Daniel Nicoara} // namespace android 284