blob: 42c4bffc3c7c0411ba759408ab2e0215c104aa41
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 | namespace meson { |
26 | class DisplayAdapterLocal; |
27 | }; |
28 | |
29 | class HwDisplayConnector { |
30 | public: |
31 | HwDisplayConnector(int32_t drvFd, uint32_t id); |
32 | virtual ~HwDisplayConnector(); |
33 | |
34 | virtual int32_t setCrtc(HwDisplayCrtc * crtc); |
35 | |
36 | virtual int32_t loadProperities() = 0; |
37 | virtual int32_t update() = 0; |
38 | |
39 | virtual int32_t getModes(std::map<uint32_t, drm_mode_info_t> & modes); |
40 | |
41 | virtual const char * getName() = 0; |
42 | virtual drm_connector_type_t getType() = 0; |
43 | virtual bool isRemovable() = 0; |
44 | virtual bool isSecure() = 0; |
45 | virtual bool isConnected() = 0; |
46 | |
47 | virtual void getHdrCapabilities(drm_hdr_capabilities * caps) = 0; |
48 | virtual int32_t getIdentificationData(std::vector<uint8_t>& idOut); |
49 | |
50 | virtual void dump(String8 & dumpstr) = 0; |
51 | |
52 | virtual int32_t setMode(drm_mode_info_t & mode __unused) { return 0;}; |
53 | virtual uint32_t getId() { return mId;}; |
54 | friend meson::DisplayAdapterLocal; |
55 | |
56 | protected: |
57 | virtual void loadPhysicalSize(); |
58 | virtual int32_t addDisplayMode(std::string& mode); |
59 | |
60 | int32_t mDrvFd; |
61 | uint32_t mId; |
62 | |
63 | uint32_t mPhyWidth; |
64 | uint32_t mPhyHeight; |
65 | |
66 | HwDisplayCrtc * mCrtc; |
67 | std::map<uint32_t, drm_mode_info_t> mDisplayModes; |
68 | }; |
69 | |
70 | #endif/*HW_DISPLAY_CONNECTOR_H*/ |
71 |