1befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed/* 247c130ffbafe12d6ddf6e8df4ffdd9916318c379Raj kamal* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. 3befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* 4befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* Redistribution and use in source and binary forms, with or without 5befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* modification, are permitted provided that the following conditions are 6befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* met: 7befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* * Redistributions of source code must retain the above copyright 8befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* notice, this list of conditions and the following disclaimer. 9befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* * Redistributions in binary form must reproduce the above 10befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* copyright notice, this list of conditions and the following 11befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* disclaimer in the documentation and/or other materials provided 12befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* with the distribution. 135070c694011ddc30673ec68a9d1d74dc713c49f2Duy Truong* * Neither the name of The Linux Foundation nor the names of its 14befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* contributors may be used to endorse or promote products derived 15befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* from this software without specific prior written permission. 16befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* 17befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 18befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 20befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 21befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 24befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 26befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed*/ 29befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 30befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed#ifndef OVERLAY_CTRLDATA_H 31befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed#define OVERLAY_CTRLDATA_H 32befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 33befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed#include "overlayUtils.h" 34befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed#include "overlayMdp.h" 35befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed#include "gralloc_priv.h" // INTERLACE_MASK 36befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 37befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmednamespace ovutils = overlay::utils; 38befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 39befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmednamespace overlay { 40befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 41befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed/* 42befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* Sequence to use: 43ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed* init 44befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* start 45befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* setXXX 46befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* close 47befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed* */ 48befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedclass Ctrl : utils::NoCopy { 49befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedpublic: 50befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 51befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* ctor */ 52b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah explicit Ctrl(const int& dpy); 53befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* dtor close */ 54befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed ~Ctrl(); 55befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 56befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* set source using whf, orient and wait flag */ 57327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah void setSource(const utils::PipeArgs& args); 58befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* set crop info and pass it down to mdp */ 59327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah void setCrop(const utils::Dim& d); 6008cbd816733f17c957411ae915f2543afea70b67Sushil Chauhan /* set color for mdp pipe */ 6108cbd816733f17c957411ae915f2543afea70b67Sushil Chauhan void setColor(const uint32_t color); 62ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed /* set orientation */ 63327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah void setTransform(const utils::eTransform& p); 64ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed /* set mdp position using dim */ 65327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah void setPosition(const utils::Dim& dim); 665d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah /* set mdp visual params using metadata */ 675d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah bool setVisualParams(const MetaData_t &metadata); 68befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* mdp set overlay/commit changes */ 69befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed bool commit(); 70befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 71befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* ctrl id */ 72ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed int getPipeId() const; 73befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* ctrl fd */ 74befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed int getFd() const; 75327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah /* retrieve crop data */ 76befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed utils::Dim getCrop() const; 77327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah utils::Dim getPosition() const; 78327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah /* Set downscale */ 79327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah void setDownscale(int dscale_factor); 80327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah /* Update the src format based on rotator's dest */ 81327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah void updateSrcFormat(const uint32_t& rotDstFormat); 82348ca172f707a14925ba1652e9bcb3d4c2a695f4Saurabh Shah /* return pipe priority */ 83348ca172f707a14925ba1652e9bcb3d4c2a695f4Saurabh Shah uint8_t getPriority() const; 84a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah /* dump the state of the object */ 85a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah void dump() const; 86a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah /* Return the dump in the specified buffer */ 87a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah void getDump(char *buf, size_t len); 88a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah 891029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah static bool validateAndSet(Ctrl* ctrlArray[], const int& count, 901029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah const int& fbFd); 91befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedprivate: 92befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed // mdp ctrl struct(info e.g.) 93b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah MdpCtrl *mMdp; 94befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed}; 95befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 96befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 97befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedclass Data : utils::NoCopy { 98befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedpublic: 99befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* init, reset */ 100b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah explicit Data(const int& dpy); 101befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* calls close */ 102befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed ~Data(); 103ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed /* set overlay pipe id in the mdp struct */ 104ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed void setPipeId(int id); 105befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* get overlay id in the mdp struct */ 106ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed int getPipeId() const; 107befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* queue buffer to the overlay */ 108ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmed bool queueBuffer(int fd, uint32_t offset); 109befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed /* sump the state of the obj */ 110befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed void dump() const; 111a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah /* Return the dump in the specified buffer */ 112a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah void getDump(char *buf, size_t len); 113a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah 114ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmedprivate: 115befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed // mdp data struct 116b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah MdpData *mMdp; 117befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed}; 118befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 119befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed//-------------Inlines------------------------------- 120befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 121b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shahinline Ctrl::Ctrl(const int& dpy) : mMdp(new MdpCtrl(dpy)) { 122befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 123befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 124befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedinline Ctrl::~Ctrl() { 125b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah delete mMdp; 126befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 127befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 128327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::setSource(const utils::PipeArgs& args) 129327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah{ 130b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->setSource(args); 131327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah} 132327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah 133327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::setPosition(const utils::Dim& dim) 134327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah{ 135b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->setPosition(dim); 136327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah} 137327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah 138327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::setTransform(const utils::eTransform& orient) 139327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah{ 140b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->setTransform(orient); 141327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah} 142327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah 143327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::setCrop(const utils::Dim& d) 144327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah{ 145b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->setCrop(d); 146327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah} 147327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah 14808cbd816733f17c957411ae915f2543afea70b67Sushil Chauhaninline void Ctrl::setColor(const uint32_t color) 14908cbd816733f17c957411ae915f2543afea70b67Sushil Chauhan{ 150b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->setColor(color); 15108cbd816733f17c957411ae915f2543afea70b67Sushil Chauhan} 15208cbd816733f17c957411ae915f2543afea70b67Sushil Chauhan 1535d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shahinline bool Ctrl::setVisualParams(const MetaData_t &metadata) 1545d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah{ 155b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah if (!mMdp->setVisualParams(metadata)) { 1565d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah ALOGE("Ctrl setVisualParams failed in MDP setVisualParams"); 1575d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah return false; 1585d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah } 1595d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah return true; 1605d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah} 1615d50448ce691782fde0c26ec8247b3d5d6b2de82Saurabh Shah 162327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::dump() const { 163327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah ALOGE("== Dump Ctrl start =="); 164b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->dump(); 165327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah ALOGE("== Dump Ctrl end =="); 166327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah} 167327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah 168327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline bool Ctrl::commit() { 169b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah if(!mMdp->set()) { 170327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shah ALOGE("Ctrl commit failed set overlay"); 171befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed return false; 172befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed } 173befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed return true; 174befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 175befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 176ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmedinline int Ctrl::getPipeId() const { 177b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah return mMdp->getPipeId(); 178befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 179befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 180befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedinline int Ctrl::getFd() const { 181b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah return mMdp->getFd(); 182befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 183befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 184327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::updateSrcFormat(const uint32_t& rotDstFmt) { 185b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->updateSrcFormat(rotDstFmt); 186befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 187befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 1881029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shahinline bool Ctrl::validateAndSet(Ctrl* ctrlArray[], const int& count, 1891029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah const int& fbFd) { 1901029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah MdpCtrl* mdpCtrlArray[count]; 1911029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah memset(&mdpCtrlArray, 0, sizeof(mdpCtrlArray)); 1921029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah 1931029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah for(int i = 0; i < count; i++) { 1941029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah mdpCtrlArray[i] = ctrlArray[i]->mMdp; 1951029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah } 1961029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah 1971029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah bool ret = MdpCtrl::validateAndSet(mdpCtrlArray, count, fbFd); 1981029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah return ret; 1991029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah} 2001029ad2b12d5f30e77b2c2f85da891f2d1842424Saurabh Shah 201befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedinline utils::Dim Ctrl::getCrop() const { 202b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah return mMdp->getSrcRectDim(); 203befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 204befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 205327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline utils::Dim Ctrl::getPosition() const { 206b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah return mMdp->getDstRectDim(); 2078b2d50f3c665329517352269a687bdf562b2cc6dRamkumar Radhakrishnan} 2088b2d50f3c665329517352269a687bdf562b2cc6dRamkumar Radhakrishnan 209327b2ba85538669304a50d0fb6cc2f6aab7aaf3bSaurabh Shahinline void Ctrl::setDownscale(int dscale_factor) { 210b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->setDownscale(dscale_factor); 2118b2d50f3c665329517352269a687bdf562b2cc6dRamkumar Radhakrishnan} 2128b2d50f3c665329517352269a687bdf562b2cc6dRamkumar Radhakrishnan 213348ca172f707a14925ba1652e9bcb3d4c2a695f4Saurabh Shahinline uint8_t Ctrl::getPriority() const { 214348ca172f707a14925ba1652e9bcb3d4c2a695f4Saurabh Shah return mMdp->getPriority(); 215348ca172f707a14925ba1652e9bcb3d4c2a695f4Saurabh Shah} 216348ca172f707a14925ba1652e9bcb3d4c2a695f4Saurabh Shah 217a22f5873a9974b00f352370e077db9788ad67699Saurabh Shahinline void Ctrl::getDump(char *buf, size_t len) { 218b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->getDump(buf, len); 219a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah} 220a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah 221b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shahinline Data::Data(const int& dpy) : mMdp(new MdpData(dpy)) { 222befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 223befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 224b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shahinline Data::~Data() { 225b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah delete mMdp; 226befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 227befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 228b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shahinline void Data::setPipeId(int id) { mMdp->setPipeId(id); } 229b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah 230b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shahinline int Data::getPipeId() const { return mMdp->getPipeId(); } 231befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 232ee7fc0347e52276d43413e91f31d72d6db99dcfbNaseer Ahmedinline bool Data::queueBuffer(int fd, uint32_t offset) { 233b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah return mMdp->play(fd, offset); 234befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 235befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 236befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmedinline void Data::dump() const { 237befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed ALOGE("== Dump Data MDP start =="); 238b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->dump(); 239befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed ALOGE("== Dump Data MDP end =="); 240befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} 241befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 242a22f5873a9974b00f352370e077db9788ad67699Saurabh Shahinline void Data::getDump(char *buf, size_t len) { 243b4144169bc4681fe47647bc127be3da2e59e9623Saurabh Shah mMdp->getDump(buf, len); 244a22f5873a9974b00f352370e077db9788ad67699Saurabh Shah} 245befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 246befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed} // overlay 247befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed 248befc466069680cb8a65b1f22ad44723d949128c8Naseer Ahmed#endif 249