summaryrefslogtreecommitdiff
path: root/common/display/include/HwDisplayConnector.h (plain)
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
23class HwDisplayCrtc;
24
25class HwDisplayConnector {
26public:
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
55protected:
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