drm_hwcomposer: Move CreateModeBlob to DrmMode class
CreateModeBlob doesn't architecturally belongs to DrmDisplayCompositor.
+ align DrmMode internal types with libdrm types to avoid compilation errors.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/drm/DrmMode.h b/drm/DrmMode.h
index 313a8ea..0974b5a 100644
--- a/drm/DrmMode.h
+++ b/drm/DrmMode.h
@@ -22,32 +22,35 @@
#include <string>
+#include "DrmUnique.h"
+
namespace android {
+class DrmDevice;
+
class DrmMode {
public:
DrmMode() = default;
DrmMode(drmModeModeInfoPtr m);
bool operator==(const drmModeModeInfo &m) const;
- void ToDrmModeModeInfo(drm_mode_modeinfo *m) const;
uint32_t id() const;
void set_id(uint32_t id);
uint32_t clock() const;
- uint32_t h_display() const;
- uint32_t h_sync_start() const;
- uint32_t h_sync_end() const;
- uint32_t h_total() const;
- uint32_t h_skew() const;
+ uint16_t h_display() const;
+ uint16_t h_sync_start() const;
+ uint16_t h_sync_end() const;
+ uint16_t h_total() const;
+ uint16_t h_skew() const;
- uint32_t v_display() const;
- uint32_t v_sync_start() const;
- uint32_t v_sync_end() const;
- uint32_t v_total() const;
- uint32_t v_scan() const;
+ uint16_t v_display() const;
+ uint16_t v_sync_start() const;
+ uint16_t v_sync_end() const;
+ uint16_t v_total() const;
+ uint16_t v_scan() const;
float v_refresh() const;
uint32_t flags() const;
@@ -55,23 +58,25 @@
std::string name() const;
+ auto CreateModeBlob(const DrmDevice &drm) -> DrmModeUserPropertyBlobUnique;
+
private:
uint32_t id_ = 0;
uint32_t clock_ = 0;
- uint32_t h_display_ = 0;
- uint32_t h_sync_start_ = 0;
- uint32_t h_sync_end_ = 0;
- uint32_t h_total_ = 0;
- uint32_t h_skew_ = 0;
+ uint16_t h_display_ = 0;
+ uint16_t h_sync_start_ = 0;
+ uint16_t h_sync_end_ = 0;
+ uint16_t h_total_ = 0;
+ uint16_t h_skew_ = 0;
- uint32_t v_display_ = 0;
- uint32_t v_sync_start_ = 0;
- uint32_t v_sync_end_ = 0;
- uint32_t v_total_ = 0;
- uint32_t v_scan_ = 0;
- uint32_t v_refresh_ = 0;
+ uint16_t v_display_ = 0;
+ uint16_t v_sync_start_ = 0;
+ uint16_t v_sync_end_ = 0;
+ uint16_t v_total_ = 0;
+ uint16_t v_scan_ = 0;
+ uint16_t v_refresh_ = 0;
uint32_t flags_ = 0;
uint32_t type_ = 0;