IQHDMIClient.h revision 07bbf1e89c031a5d41a7561433e832d396c311a5
107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani/* 207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* Copyright (c) 2013 The Linux Foundation. All rights reserved. 307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* 407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* Redistribution and use in source and binary forms, with or without 507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* modification, are permitted provided that the following conditions are 607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* met: 707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* * Redistributions of source code must retain the above copyright 807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* notice, this list of conditions and the following disclaimer. 907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* * Redistributions in binary form must reproduce the above 1007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* copyright notice, this list of conditions and the following 1107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* disclaimer in the documentation and/or other materials provided 1207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* with the distribution. 1307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* * Neither the name of The Linux Foundation. nor the names of its 1407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* contributors may be used to endorse or promote products derived 1507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* from this software without specific prior written permission. 1607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* 1707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 1807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 2007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 2107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 2407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 2607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 2707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani*/ 2907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 3007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#ifndef HWC_AD_H 3107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#define HWC_AD_H 3207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 3307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <overlayUtils.h> 3407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#include <hwc_utils.h> 3507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 3607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malanistruct hwc_context_t; 3707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 3807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaninamespace qhwc { 3907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 4007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniclass AssertiveDisplay { 4107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malanipublic: 4207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani AssertiveDisplay(hwc_context_t *ctx); 4307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani void markDoable(hwc_context_t *ctx, const hwc_display_contents_1_t* list); 4407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani bool prepare(hwc_context_t *ctx, const hwc_rect_t& crop, 4507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani const overlay::utils::Whf& whf, 4607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani const private_handle_t *hnd); 4707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani bool draw(hwc_context_t *ctx, int fd, uint32_t offset); 4807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani //Resets a few members on each draw round 4907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani void reset() { mDoable = false; 5007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani mDest = overlay::utils::OV_INVALID; 5107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani } 5207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani bool isDoable() const { return mDoable; } 5307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani int getDstFd() const; 5407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani uint32_t getDstOffset() const; 5507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 5607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malaniprivate: 5707bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani bool mDoable; 5807bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani bool mTurnedOff; 5907bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani //State of feature existence on certain devices and configs. 6007bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani bool mFeatureEnabled; 6107bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani overlay::utils::eDest mDest; 6207bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani void turnOffAD(); 6307bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani}; 6407bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani 6507bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani} 6607bbf1e89c031a5d41a7561433e832d396c311a5Prashant Malani#endif 67