1b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang/* 2cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// Copyright (c) 2014 Intel Corporation 3cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// 4cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// Licensed under the Apache License, Version 2.0 (the "License"); 5cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// you may not use this file except in compliance with the License. 6cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// You may obtain a copy of the License at 7cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// 8cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// http://www.apache.org/licenses/LICENSE-2.0 9cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// 10cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// Unless required by applicable law or agreed to in writing, software 11cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// distributed under the License is distributed on an "AS IS" BASIS, 12cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// See the License for the specific language governing permissions and 14cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika// limitations under the License. 15cd727f537d5085eec7f1b8f9c1d33922d4de75d4Prodyut Hazarika*/ 16b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang#ifndef DUMMY_DEVICE_H 17b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang#define DUMMY_DEVICE_H 18b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 19b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang#include <IDisplayDevice.h> 20b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 21b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangnamespace android { 22b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangnamespace intel { 23b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 24b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangclass Hwcomposer; 25b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangclass SoftVsyncObserver; 26b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 27b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangclass DummyDevice : public IDisplayDevice { 28b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangpublic: 293540d325335005c6761c3557679201ae29f7c1d0Michael Lentine DummyDevice(uint32_t disp, Hwcomposer& hwc); 30b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual ~DummyDevice(); 31b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 32b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangpublic: 33b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool prePrepare(hwc_display_contents_1_t *display); 34b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool prepare(hwc_display_contents_1_t *display); 35b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool commit(hwc_display_contents_1_t *display, 36b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang IDisplayContext *context); 37b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 38b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool vsyncControl(bool enabled); 39b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool blank(bool blank); 40b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool getDisplaySize(int *width, int *height); 41b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool getDisplayConfigs(uint32_t *configs, 42b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang size_t *numConfigs); 43b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool getDisplayAttributes(uint32_t config, 44b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang const uint32_t *attributes, 45b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang int32_t *values); 46b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool compositionComplete(); 47452fbc109a9c585737bcac18f19aff40574c3d79Jim Bish 48452fbc109a9c585737bcac18f19aff40574c3d79Jim Bish virtual bool setPowerMode(int mode); 49452fbc109a9c585737bcac18f19aff40574c3d79Jim Bish virtual int getActiveConfig(); 50452fbc109a9c585737bcac18f19aff40574c3d79Jim Bish virtual bool setActiveConfig(int index); 51452fbc109a9c585737bcac18f19aff40574c3d79Jim Bish 52b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool initialize(); 53b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual void deinitialize(); 54b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual bool isConnected() const; 55b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual const char* getName() const; 56b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual int getType() const; 57b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual void onVsync(int64_t timestamp); 58b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang virtual void dump(Dump& d); 59b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 60b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhangprotected: 61b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang bool mInitialized; 62b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang bool mConnected; 63b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang bool mBlank; 643540d325335005c6761c3557679201ae29f7c1d0Michael Lentine uint32_t mDisp; 65b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang Hwcomposer& mHwc; 66b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang SoftVsyncObserver *mVsyncObserver; 67b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 68b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang const char *mName; 69b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang}; 70b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 71b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang} 72b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang} 73b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang 74b55fbe96ff6c2b98374d2137c8e91c0ca357fdb2Lei Zhang#endif /* DUMMY_DEVICE_H */ 75