summaryrefslogtreecommitdiff
path: root/common/display/include/HwDisplayConnector.h (plain)
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
23class HwDisplayCrtc;
24
25namespace meson {
26 class DisplayAdapterLocal;
27};
28
29class HwDisplayConnector {
30public:
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
56protected:
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