blob: acb121de122b4a21e8e7955257fd833b82e31a68
1 | /* Copyright (c) 2017 Amlogic, Inc. All rights reserved. |
2 | * |
3 | * This source code is subject to the terms and conditions defined in the |
4 | * file 'LICENSE' which is part of this source code package. |
5 | * |
6 | * Description: |
7 | */ |
8 | #ifndef HW_DISPLAY_CONNECTOR_H |
9 | #define HW_DISPLAY_CONNECTOR_H |
10 | |
11 | #include <string> |
12 | #include <vector> |
13 | |
14 | #include <utils/String8.h> |
15 | #include <utils/Errors.h> |
16 | #include <sys/types.h> |
17 | |
18 | #include <DrmTypes.h> |
19 | #include <BasicTypes.h> |
20 | |
21 | #define DEFAULT_DISPLAY_DPI 160 |
22 | |
23 | class HwDisplayCrtc; |
24 | |
25 | class HwDisplayConnector { |
26 | public: |
27 | HwDisplayConnector(int32_t drvFd, uint32_t id); |
28 | virtual ~HwDisplayConnector(); |
29 | |
30 | virtual int32_t setCrtc(HwDisplayCrtc * crtc); |
31 | |
32 | virtual int32_t loadProperities() = 0; |
33 | virtual int32_t update() = 0; |
34 | |
35 | virtual int32_t getModes(std::map<uint32_t, drm_mode_info_t> & modes); |
36 | |
37 | virtual const char * getName() = 0; |
38 | virtual drm_connector_type_t getType() = 0; |
39 | virtual bool isRemovable() = 0; |
40 | virtual bool isSecure() = 0; |
41 | virtual bool isConnected() = 0; |
42 | |
43 | virtual void getHdrCapabilities(drm_hdr_capabilities * caps) = 0; |
44 | virtual int32_t getIdentificationData(std::vector<uint8_t>& idOut); |
45 | |
46 | virtual void dump(String8 & dumpstr) = 0; |
47 | |
48 | virtual int32_t setMode(drm_mode_info_t & mode __unused) { return 0;}; |
49 | virtual uint32_t getId() { return mId;}; |
50 | |
51 | protected: |
52 | virtual void loadPhysicalSize(); |
53 | virtual int32_t addDisplayMode(std::string& mode); |
54 | |
55 | protected: |
56 | int32_t mDrvFd; |
57 | uint32_t mId; |
58 | |
59 | uint32_t mPhyWidth; |
60 | uint32_t mPhyHeight; |
61 | |
62 | HwDisplayCrtc * mCrtc; |
63 | std::map<uint32_t, drm_mode_info_t> mDisplayModes; |
64 | }; |
65 | |
66 | #endif/*HW_DISPLAY_CONNECTOR_H*/ |
67 |