/* // Copyright (c) 2014 Intel Corporation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. */ #ifndef IDISPLAY_DEVICE_H #define IDISPLAY_DEVICE_H #include <Dump.h> #include <IDisplayContext.h> #include <DisplayPlane.h> namespace android { namespace intel { // display config class DisplayConfig { public: DisplayConfig(int rr, int w, int h, int dpix, int dpiy) : mRefreshRate(rr), mWidth(w), mHeight(h), mDpiX(dpix), mDpiY(dpiy) {} public: int getRefreshRate() const { return mRefreshRate; } int getWidth() const { return mWidth; } int getHeight() const { return mHeight; } int getDpiX() const { return mDpiX; } int getDpiY() const { return mDpiY; } private: int mRefreshRate; int mWidth; int mHeight; int mDpiX; int mDpiY; }; // display device interface class IDisplayDevice { public: // display device type enum { DEVICE_PRIMARY = HWC_DISPLAY_PRIMARY, DEVICE_EXTERNAL = HWC_DISPLAY_EXTERNAL, DEVICE_VIRTUAL = HWC_DISPLAY_VIRTUAL, DEVICE_COUNT, }; enum { DEVICE_DISCONNECTED = 0, DEVICE_CONNECTED, }; enum { DEVICE_DISPLAY_OFF = 0, DEVICE_DISPLAY_ON, DEVICE_DISPLAY_STANDBY, }; public: IDisplayDevice() {} virtual ~IDisplayDevice() {} public: virtual bool prePrepare(hwc_display_contents_1_t *display) = 0; virtual bool prepare(hwc_display_contents_1_t *display) = 0; virtual bool commit(hwc_display_contents_1_t *display, IDisplayContext *context) = 0; virtual bool vsyncControl(bool enabled) = 0; virtual bool blank(bool blank) = 0; virtual bool getDisplaySize(int *width, int *height) = 0; virtual bool getDisplayConfigs(uint32_t *configs, size_t *numConfigs) = 0; virtual bool getDisplayAttributes(uint32_t config, const uint32_t *attributes, int32_t *values) = 0; virtual bool compositionComplete() = 0; virtual bool setPowerMode(int mode) = 0; virtual int getActiveConfig() = 0; virtual bool setActiveConfig(int index) = 0; virtual bool initialize() = 0; virtual void deinitialize() = 0; virtual bool isConnected() const = 0; virtual const char* getName() const = 0; virtual int getType() const = 0; virtual void onVsync(int64_t timestamp) = 0; virtual void dump(Dump& d) = 0; virtual uint32_t getFpsDivider() = 0; }; } } #endif /* IDISPLAY_DEVICE_H */