From d9a1ffe56d0beb9cdd048d0e83f7d0177b31411a Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Wed, 7 Oct 2020 08:58:35 +0300 Subject: Bulk format of all files --- kms++/inc/kms++/atomicreq.h | 8 +- kms++/inc/kms++/blob.h | 3 +- kms++/inc/kms++/card.h | 6 +- kms++/inc/kms++/connector.h | 8 +- kms++/inc/kms++/crtc.h | 11 +- kms++/inc/kms++/decls.h | 2 +- kms++/inc/kms++/dmabufframebuffer.h | 5 +- kms++/inc/kms++/drmobject.h | 6 +- kms++/inc/kms++/drmpropobject.h | 4 +- kms++/inc/kms++/dumbframebuffer.h | 5 +- kms++/inc/kms++/encoder.h | 5 +- kms++/inc/kms++/extframebuffer.h | 5 +- kms++/inc/kms++/framebuffer.h | 15 +- kms++/inc/kms++/mode_cvt.h | 1 - kms++/inc/kms++/modedb.h | 2 +- kms++/inc/kms++/omap/omapcard.h | 2 +- kms++/inc/kms++/omap/omapframebuffer.h | 5 +- kms++/inc/kms++/pagefliphandler.h | 9 +- kms++/inc/kms++/pipeline.h | 2 +- kms++/inc/kms++/pixelformats.h | 16 +- kms++/inc/kms++/plane.h | 8 +- kms++/inc/kms++/property.h | 8 +- kms++/inc/kms++/videomode.h | 13 +- kms++/src/atomicreq.cpp | 57 ++-- kms++/src/blob.cpp | 3 +- kms++/src/card.cpp | 55 ++-- kms++/src/connector.cpp | 19 +- kms++/src/crtc.cpp | 24 +- kms++/src/dmabufframebuffer.cpp | 13 +- kms++/src/drmobject.cpp | 8 +- kms++/src/drmpropobject.cpp | 6 +- kms++/src/dumbframebuffer.cpp | 31 +- kms++/src/encoder.cpp | 15 +- kms++/src/extframebuffer.cpp | 6 +- kms++/src/framebuffer.cpp | 6 +- kms++/src/helpers.cpp | 6 +- kms++/src/helpers.h | 2 +- kms++/src/mode_cvt.cpp | 50 ++-- kms++/src/modedb.cpp | 3 +- kms++/src/modedb_cea.cpp | 511 ++++++++++++++++++--------------- kms++/src/modedb_dmt.cpp | 19 +- kms++/src/omap/omapcard.cpp | 3 +- kms++/src/omap/omapframebuffer.cpp | 33 ++- kms++/src/pixelformats.cpp | 292 ++++++++++++++++--- kms++/src/plane.cpp | 13 +- kms++/src/property.cpp | 6 +- kms++/src/videomode.cpp | 5 +- 47 files changed, 808 insertions(+), 527 deletions(-) (limited to 'kms++') diff --git a/kms++/inc/kms++/atomicreq.h b/kms++/inc/kms++/atomicreq.h index a678b54..780cc8f 100644 --- a/kms++/inc/kms++/atomicreq.h +++ b/kms++/inc/kms++/atomicreq.h @@ -20,9 +20,9 @@ public: AtomicReq& operator=(const AtomicReq& other) = delete; void add(uint32_t ob_id, uint32_t prop_id, uint64_t value); - void add(DrmPropObject *ob, Property *prop, uint64_t value); - void add(DrmPropObject *ob, const std::string& prop, uint64_t value); - void add(DrmPropObject *ob, const std::map& values); + void add(DrmPropObject* ob, Property* prop, uint64_t value); + void add(DrmPropObject* ob, const std::string& prop, uint64_t value); + void add(DrmPropObject* ob, const std::map& values); void add_display(Connector* conn, Crtc* crtc, Blob* videomode, Plane* primary, Framebuffer* fb); @@ -36,4 +36,4 @@ private: _drmModeAtomicReq* m_req; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/blob.h b/kms++/inc/kms++/blob.h index 31e915c..011613d 100644 --- a/kms++/inc/kms++/blob.h +++ b/kms++/inc/kms++/blob.h @@ -5,7 +5,6 @@ namespace kms { - class Blob : public DrmObject { public: @@ -19,4 +18,4 @@ private: bool m_created; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/card.h b/kms++/inc/kms++/card.h index f60b184..bf6f9bf 100644 --- a/kms++/inc/kms++/card.h +++ b/kms++/inc/kms++/card.h @@ -11,8 +11,7 @@ namespace kms { -struct CardVersion -{ +struct CardVersion { int major; int minor; int patchlevel; @@ -24,6 +23,7 @@ struct CardVersion class Card { friend class Framebuffer; + public: static std::unique_ptr open_named_card(const std::string& name); @@ -95,4 +95,4 @@ private: CardVersion m_version; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/connector.h b/kms++/inc/kms++/connector.h index 323d37d..f45a487 100644 --- a/kms++/inc/kms++/connector.h +++ b/kms++/inc/kms++/connector.h @@ -7,11 +7,9 @@ namespace kms { - struct ConnectorPriv; -enum class ConnectorStatus -{ +enum class ConnectorStatus { Unknown, Connected, Disconnected, @@ -20,6 +18,7 @@ enum class ConnectorStatus class Connector : public DrmPropObject { friend class Card; + public: void refresh(); @@ -44,6 +43,7 @@ public: const std::string& subpixel_str() const; std::vector get_modes() const; std::vector get_encoders() const; + private: Connector(Card& card, uint32_t id, uint32_t idx); ~Connector() override; @@ -59,4 +59,4 @@ private: Crtc* m_saved_crtc; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/crtc.h b/kms++/inc/kms++/crtc.h index 990fc20..1ba8a07 100644 --- a/kms++/inc/kms++/crtc.h +++ b/kms++/inc/kms++/crtc.h @@ -6,13 +6,13 @@ namespace kms { - struct CrtcPriv; class Crtc : public DrmPropObject { friend class Card; friend class Connector; + public: void refresh(); @@ -21,7 +21,7 @@ public: int set_mode(Connector* conn, const Videomode& mode); int set_mode(Connector* conn, Framebuffer& fb, const Videomode& mode); - int set_plane(Plane *plane, Framebuffer &fb, + int set_plane(Plane* plane, Framebuffer& fb, int32_t dst_x, int32_t dst_y, uint32_t dst_w, uint32_t dst_h, float src_x, float src_y, float src_w, float src_h); int disable_mode(); @@ -30,7 +30,7 @@ public: Plane* get_primary_plane(); - int page_flip(Framebuffer& fb, void *data); + int page_flip(Framebuffer& fb, void* data); uint32_t buffer_id() const; uint32_t x() const; @@ -40,15 +40,16 @@ public: int mode_valid() const; Videomode mode() const; int gamma_size() const; + private: Crtc(Card& card, uint32_t id, uint32_t idx); ~Crtc() override; void setup() override; - void restore_mode(Connector *conn); + void restore_mode(Connector* conn); CrtcPriv* m_priv; std::vector m_possible_planes; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/decls.h b/kms++/inc/kms++/decls.h index 438dad5..a4b5631 100644 --- a/kms++/inc/kms++/decls.h +++ b/kms++/inc/kms++/decls.h @@ -18,4 +18,4 @@ class PageFlipHandlerBase; class Plane; class Property; struct Videomode; -} +} // namespace kms diff --git a/kms++/inc/kms++/dmabufframebuffer.h b/kms++/inc/kms++/dmabufframebuffer.h index 328dd2b..6643a81 100644 --- a/kms++/inc/kms++/dmabufframebuffer.h +++ b/kms++/inc/kms++/dmabufframebuffer.h @@ -8,7 +8,6 @@ namespace kms { - class DmabufFramebuffer : public Framebuffer { public: @@ -42,7 +41,7 @@ private: uint32_t stride; uint32_t offset; uint64_t modifier; - uint8_t *map; + uint8_t* map; }; unsigned m_num_planes; @@ -53,4 +52,4 @@ private: uint32_t m_sync_flags = 0; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/drmobject.h b/kms++/inc/kms++/drmobject.h index a939aa7..e15ed4c 100644 --- a/kms++/inc/kms++/drmobject.h +++ b/kms++/inc/kms++/drmobject.h @@ -6,10 +6,10 @@ namespace kms { - class DrmObject { friend class Card; + public: DrmObject(const DrmObject& other) = delete; DrmObject& operator=(const DrmObject& other) = delete; @@ -26,7 +26,7 @@ protected: virtual ~DrmObject(); - virtual void setup() { } + virtual void setup() {} virtual void set_id(uint32_t id); @@ -37,4 +37,4 @@ private: uint32_t m_object_type; uint32_t m_idx; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/drmpropobject.h b/kms++/inc/kms++/drmpropobject.h index 48e0265..dc3a806 100644 --- a/kms++/inc/kms++/drmpropobject.h +++ b/kms++/inc/kms++/drmpropobject.h @@ -8,10 +8,10 @@ namespace kms { - class DrmPropObject : public DrmObject { friend class Card; + public: void refresh_props(); @@ -38,4 +38,4 @@ protected: private: std::map m_prop_values; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/dumbframebuffer.h b/kms++/inc/kms++/dumbframebuffer.h index 15ea982..af5fe42 100644 --- a/kms++/inc/kms++/dumbframebuffer.h +++ b/kms++/inc/kms++/dumbframebuffer.h @@ -7,7 +7,6 @@ namespace kms { - class DumbFramebuffer : public Framebuffer { public: @@ -35,7 +34,7 @@ private: uint32_t size; uint32_t stride; uint32_t offset; - uint8_t *map; + uint8_t* map; }; unsigned m_num_planes; @@ -43,4 +42,4 @@ private: PixelFormat m_format; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/encoder.h b/kms++/inc/kms++/encoder.h index 72c0213..9476d80 100644 --- a/kms++/inc/kms++/encoder.h +++ b/kms++/inc/kms++/encoder.h @@ -5,12 +5,12 @@ namespace kms { - struct EncoderPriv; class Encoder : public DrmPropObject { friend class Card; + public: void refresh(); @@ -18,10 +18,11 @@ public: std::vector get_possible_crtcs() const; const std::string& get_encoder_type() const; + private: Encoder(Card& card, uint32_t id, uint32_t idx); ~Encoder() override; EncoderPriv* m_priv; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/extframebuffer.h b/kms++/inc/kms++/extframebuffer.h index 3fb74ca..00dc9bf 100644 --- a/kms++/inc/kms++/extframebuffer.h +++ b/kms++/inc/kms++/extframebuffer.h @@ -8,7 +8,6 @@ namespace kms { - class ExtFramebuffer : public Framebuffer { public: @@ -34,7 +33,7 @@ private: uint32_t stride; uint32_t offset; uint64_t modifier; - uint8_t *map; + uint8_t* map; }; unsigned m_num_planes; @@ -43,4 +42,4 @@ private: PixelFormat m_format; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/framebuffer.h b/kms++/inc/kms++/framebuffer.h index bcfd1f0..6f77b98 100644 --- a/kms++/inc/kms++/framebuffer.h +++ b/kms++/inc/kms++/framebuffer.h @@ -5,16 +5,16 @@ namespace kms { -enum class CpuAccess -{ +enum class CpuAccess { Read, Write, ReadWrite, }; -class IFramebuffer { +class IFramebuffer +{ public: - virtual ~IFramebuffer() { } + virtual ~IFramebuffer() {} virtual uint32_t width() const = 0; virtual uint32_t height() const = 0; @@ -28,8 +28,8 @@ public: virtual uint8_t* map(unsigned plane) { throw std::runtime_error("not implemented"); } virtual int prime_fd(unsigned plane) { throw std::runtime_error("not implemented"); } - virtual void begin_cpu_access(CpuAccess access) { } - virtual void end_cpu_access() { } + virtual void begin_cpu_access(CpuAccess access) {} + virtual void end_cpu_access() {} }; class Framebuffer : public DrmObject, public IFramebuffer @@ -42,6 +42,7 @@ public: uint32_t height() const override { return m_height; } void flush(); + protected: Framebuffer(Card& card, uint32_t width, uint32_t height); @@ -50,4 +51,4 @@ private: uint32_t m_height; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/mode_cvt.h b/kms++/inc/kms++/mode_cvt.h index 8902e4a..3fa8a07 100644 --- a/kms++/inc/kms++/mode_cvt.h +++ b/kms++/inc/kms++/mode_cvt.h @@ -4,7 +4,6 @@ namespace kms { - Videomode videomode_from_cvt(uint32_t hact, uint32_t vact, uint32_t refresh, bool ilace, bool reduced_v2, bool video_optimized); } diff --git a/kms++/inc/kms++/modedb.h b/kms++/inc/kms++/modedb.h index b6447c6..0650442 100644 --- a/kms++/inc/kms++/modedb.h +++ b/kms++/inc/kms++/modedb.h @@ -13,4 +13,4 @@ extern const Videomode cea_modes[]; const Videomode& find_dmt(uint32_t width, uint32_t height, float vrefresh, bool ilace); const Videomode& find_cea(uint32_t width, uint32_t height, float vrefresh, bool ilace); -} +} // namespace kms diff --git a/kms++/inc/kms++/omap/omapcard.h b/kms++/inc/kms++/omap/omapcard.h index 2f1f528..123205b 100644 --- a/kms++/inc/kms++/omap/omapcard.h +++ b/kms++/inc/kms++/omap/omapcard.h @@ -17,4 +17,4 @@ public: private: struct omap_device* m_omap_dev; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/omap/omapframebuffer.h b/kms++/inc/kms++/omap/omapframebuffer.h index 70bf946..72329b4 100644 --- a/kms++/inc/kms++/omap/omapframebuffer.h +++ b/kms++/inc/kms++/omap/omapframebuffer.h @@ -12,8 +12,7 @@ class OmapCard; class OmapFramebuffer : public Framebuffer { public: - enum Flags - { + enum Flags { None = 0, Tiled = 1 << 0, MemContig = 1 << 1, @@ -59,4 +58,4 @@ private: PixelFormat m_format; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/pagefliphandler.h b/kms++/inc/kms++/pagefliphandler.h index 79cda0d..2f5fdcd 100644 --- a/kms++/inc/kms++/pagefliphandler.h +++ b/kms++/inc/kms++/pagefliphandler.h @@ -1,11 +1,12 @@ #pragma once -namespace kms { +namespace kms +{ class PageFlipHandlerBase { public: - PageFlipHandlerBase() { } - virtual ~PageFlipHandlerBase() { } + PageFlipHandlerBase() {} + virtual ~PageFlipHandlerBase() {} virtual void handle_page_flip(uint32_t frame, double time) = 0; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/pipeline.h b/kms++/inc/kms++/pipeline.h index ef04ec1..236e582 100644 --- a/kms++/inc/kms++/pipeline.h +++ b/kms++/inc/kms++/pipeline.h @@ -8,4 +8,4 @@ struct Pipeline { Crtc* crtc; Connector* connector; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/pixelformats.h b/kms++/inc/kms++/pixelformats.h index 4e453a2..6f2671b 100644 --- a/kms++/inc/kms++/pixelformats.h +++ b/kms++/inc/kms++/pixelformats.h @@ -6,13 +6,12 @@ namespace kms { -constexpr uint32_t MakeFourCC(const char *fourcc) +constexpr uint32_t MakeFourCC(const char* fourcc) { return fourcc[0] | (fourcc[1] << 8) | (fourcc[2] << 16) | (fourcc[3] << 24); } -enum class PixelFormat : uint32_t -{ +enum class PixelFormat : uint32_t { Undefined = 0, NV12 = MakeFourCC("NV12"), @@ -82,21 +81,18 @@ static inline std::string PixelFormatToFourCC(PixelFormat f) return std::string(buf); } -enum class PixelColorType -{ +enum class PixelColorType { RGB, YUV, }; -struct PixelFormatPlaneInfo -{ +struct PixelFormatPlaneInfo { uint8_t bitspp; uint8_t xsub; uint8_t ysub; }; -struct PixelFormatInfo -{ +struct PixelFormatInfo { PixelColorType type; uint8_t num_planes; struct PixelFormatPlaneInfo planes[4]; @@ -104,4 +100,4 @@ struct PixelFormatInfo const struct PixelFormatInfo& get_pixel_format_info(PixelFormat format); -} +} // namespace kms diff --git a/kms++/inc/kms++/plane.h b/kms++/inc/kms++/plane.h index 1d78537..d3cfde5 100644 --- a/kms++/inc/kms++/plane.h +++ b/kms++/inc/kms++/plane.h @@ -4,9 +4,7 @@ namespace kms { - -enum class PlaneType -{ +enum class PlaneType { Overlay = 1 << 0, Primary = 1 << 1, Cursor = 1 << 2, @@ -17,6 +15,7 @@ struct PlanePriv; class Plane : public DrmPropObject { friend class Card; + public: bool supports_crtc(Crtc* crtc) const; bool supports_format(PixelFormat fmt) const; @@ -33,10 +32,11 @@ public: uint32_t x() const; uint32_t y() const; uint32_t gamma_size() const; + private: Plane(Card& card, uint32_t id, uint32_t idx); ~Plane() override; PlanePriv* m_priv; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/property.h b/kms++/inc/kms++/property.h index 8d6088e..7c7b834 100644 --- a/kms++/inc/kms++/property.h +++ b/kms++/inc/kms++/property.h @@ -6,11 +6,9 @@ namespace kms { - struct PropertyPriv; -enum class PropertyType -{ +enum class PropertyType { Range, Enum, Blob, @@ -22,6 +20,7 @@ enum class PropertyType class Property : public DrmObject { friend class Card; + public: const std::string& name() const; @@ -32,6 +31,7 @@ public: std::map get_enums() const; std::vector get_values() const; std::vector get_blob_ids() const; + private: Property(Card& card, uint32_t id); ~Property() override; @@ -41,4 +41,4 @@ private: PropertyPriv* m_priv; std::string m_name; }; -} +} // namespace kms diff --git a/kms++/inc/kms++/videomode.h b/kms++/inc/kms++/videomode.h index 3aacd57..7209ea9 100644 --- a/kms++/inc/kms++/videomode.h +++ b/kms++/inc/kms++/videomode.h @@ -8,16 +8,13 @@ namespace kms { - -enum class SyncPolarity -{ +enum class SyncPolarity { Undefined, Positive, Negative, }; -struct Videomode -{ +struct Videomode { std::string name; uint32_t clock; @@ -26,8 +23,8 @@ struct Videomode uint32_t vrefresh; - uint32_t flags; // DRM_MODE_FLAG_* - uint32_t type; // DRM_MODE_TYPE_* + uint32_t flags; // DRM_MODE_FLAG_* + uint32_t type; // DRM_MODE_TYPE_* std::unique_ptr to_blob(Card& card) const; @@ -59,4 +56,4 @@ struct Videomode struct Videomode videomode_from_timings(uint32_t clock_khz, uint16_t hact, uint16_t hfp, uint16_t hsw, uint16_t hbp, uint16_t vact, uint16_t vfp, uint16_t vsw, uint16_t vbp); -} +} // namespace kms diff --git a/kms++/src/atomicreq.cpp b/kms++/src/atomicreq.cpp index 28128f2..e01d7c2 100644 --- a/kms++/src/atomicreq.cpp +++ b/kms++/src/atomicreq.cpp @@ -14,10 +14,21 @@ struct _drmModeAtomicReq; typedef struct _drmModeAtomicReq* drmModeAtomicReqPtr; -static inline drmModeAtomicReqPtr drmModeAtomicAlloc() { return 0; } -static inline void drmModeAtomicFree(drmModeAtomicReqPtr) { } -static inline int drmModeAtomicAddProperty(drmModeAtomicReqPtr, uint32_t, uint32_t, uint64_t) { return 0; } -static inline int drmModeAtomicCommit(int, drmModeAtomicReqPtr, int, void*) { return 0; } +static inline drmModeAtomicReqPtr drmModeAtomicAlloc() +{ + return 0; +} +static inline void drmModeAtomicFree(drmModeAtomicReqPtr) +{ +} +static inline int drmModeAtomicAddProperty(drmModeAtomicReqPtr, uint32_t, uint32_t, uint64_t) +{ + return 0; +} +static inline int drmModeAtomicCommit(int, drmModeAtomicReqPtr, int, void*) +{ + return 0; +} #endif // DRM_CLIENT_CAP_ATOMIC @@ -44,7 +55,7 @@ void AtomicReq::add(uint32_t ob_id, uint32_t prop_id, uint64_t value) throw std::invalid_argument("foo"); } -void AtomicReq::add(DrmPropObject* ob, Property *prop, uint64_t value) +void AtomicReq::add(DrmPropObject* ob, Property* prop, uint64_t value) { add(ob->id(), prop->id(), value); } @@ -56,33 +67,33 @@ void AtomicReq::add(kms::DrmPropObject* ob, const string& prop, uint64_t value) void AtomicReq::add(kms::DrmPropObject* ob, const map& values) { - for(const auto& kvp : values) + for (const auto& kvp : values) add(ob, kvp.first, kvp.second); } void AtomicReq::add_display(Connector* conn, Crtc* crtc, Blob* videomode, Plane* primary, Framebuffer* fb) { add(conn, { - { "CRTC_ID", crtc->id() }, - }); + { "CRTC_ID", crtc->id() }, + }); add(crtc, { - { "ACTIVE", 1 }, - { "MODE_ID", videomode->id() }, - }); + { "ACTIVE", 1 }, + { "MODE_ID", videomode->id() }, + }); add(primary, { - { "FB_ID", fb->id() }, - { "CRTC_ID", crtc->id() }, - { "SRC_X", 0 << 16 }, - { "SRC_Y", 0 << 16 }, - { "SRC_W", fb->width() << 16 }, - { "SRC_H", fb->height() << 16 }, - { "CRTC_X", 0 }, - { "CRTC_Y", 0 }, - { "CRTC_W", fb->width() }, - { "CRTC_H", fb->height() }, - }); + { "FB_ID", fb->id() }, + { "CRTC_ID", crtc->id() }, + { "SRC_X", 0 << 16 }, + { "SRC_Y", 0 << 16 }, + { "SRC_W", fb->width() << 16 }, + { "SRC_H", fb->height() << 16 }, + { "CRTC_X", 0 }, + { "CRTC_Y", 0 }, + { "CRTC_W", fb->width() }, + { "CRTC_H", fb->height() }, + }); } int AtomicReq::test(bool allow_modeset) @@ -114,4 +125,4 @@ int AtomicReq::commit_sync(bool allow_modeset) return drmModeAtomicCommit(m_card.fd(), m_req, flags, 0); } -} +} // namespace kms diff --git a/kms++/src/blob.cpp b/kms++/src/blob.cpp index e1cd1f8..431863a 100644 --- a/kms++/src/blob.cpp +++ b/kms++/src/blob.cpp @@ -7,7 +7,6 @@ using namespace std; namespace kms { - Blob::Blob(Card& card, uint32_t blob_id) : DrmObject(card, blob_id, DRM_MODE_OBJECT_BLOB), m_created(false) { @@ -48,4 +47,4 @@ vector Blob::data() return v; } -} +} // namespace kms diff --git a/kms++/src/card.cpp b/kms++/src/card.cpp index 3a7ab70..935969d 100644 --- a/kms++/src/card.cpp +++ b/kms++/src/card.cpp @@ -22,20 +22,19 @@ using namespace std; namespace kms { - static vector glob(const string& pattern) { glob_t glob_result; memset(&glob_result, 0, sizeof(glob_result)); int r = glob(pattern.c_str(), 0, NULL, &glob_result); - if(r != 0) { + if (r != 0) { globfree(&glob_result); throw runtime_error("failed to find DRM cards"); } vector filenames; - for(size_t i = 0; i < glob_result.gl_pathc; ++i) + for (size_t i = 0; i < glob_result.gl_pathc; ++i) filenames.push_back(string(glob_result.gl_pathv[i])); globfree(&glob_result); @@ -315,7 +314,7 @@ void Card::restore_modes() Connector* Card::get_first_connected_connector() const { - for(auto c : m_connectors) { + for (auto c : m_connectors) { if (c->connected()) return c; } @@ -334,23 +333,37 @@ DrmObject* Card::get_object(uint32_t id) const std::vector Card::get_objects() const { vector v; - for(auto pair : m_obmap) + for (auto pair : m_obmap) v.push_back(pair.second); return v; } -Connector* Card::get_connector(uint32_t id) const { return dynamic_cast(get_object(id)); } -Crtc* Card::get_crtc(uint32_t id) const { return dynamic_cast(get_object(id)); } -Encoder* Card::get_encoder(uint32_t id) const { return dynamic_cast(get_object(id)); } -Property* Card::get_prop(uint32_t id) const { return dynamic_cast(get_object(id)); } -Plane* Card::get_plane(uint32_t id) const { return dynamic_cast(get_object(id)); } +Connector* Card::get_connector(uint32_t id) const +{ + return dynamic_cast(get_object(id)); +} +Crtc* Card::get_crtc(uint32_t id) const +{ + return dynamic_cast(get_object(id)); +} +Encoder* Card::get_encoder(uint32_t id) const +{ + return dynamic_cast(get_object(id)); +} +Property* Card::get_prop(uint32_t id) const +{ + return dynamic_cast(get_object(id)); +} +Plane* Card::get_plane(uint32_t id) const +{ + return dynamic_cast(get_object(id)); +} std::vector Card::get_connected_pipelines() { vector outputs; - for (auto conn : get_connectors()) - { + for (auto conn : get_connectors()) { if (conn->connected() == false) continue; @@ -370,7 +383,7 @@ std::vector Card::get_connected_pipelines() to_string(conn->idx()) + " has no possible crtcs"); - outputs.push_back(Pipeline { crtc, conn }); + outputs.push_back(Pipeline{ crtc, conn }); } return outputs; @@ -378,7 +391,7 @@ std::vector Card::get_connected_pipelines() static void page_flip_handler(int fd, unsigned int frame, unsigned int sec, unsigned int usec, - void *data) + void* data) { auto handler = (PageFlipHandlerBase*)data; double time = sec + usec / 1000000.0; @@ -387,7 +400,7 @@ static void page_flip_handler(int fd, unsigned int frame, void Card::call_page_flip_handlers() { - drmEventContext ev { }; + drmEventContext ev{}; ev.version = DRM_EVENT_CONTEXT_VERSION; ev.page_flip_handler = page_flip_handler; @@ -400,18 +413,18 @@ int Card::disable_all() for (Crtc* c : m_crtcs) { req.add(c, { - { "ACTIVE", 0 }, - }); + { "ACTIVE", 0 }, + }); } for (Plane* p : m_planes) { req.add(p, { - { "FB_ID", 0 }, - { "CRTC_ID", 0 }, - }); + { "FB_ID", 0 }, + { "CRTC_ID", 0 }, + }); } return req.commit_sync(true); } -} +} // namespace kms diff --git a/kms++/src/connector.cpp b/kms++/src/connector.cpp index a408619..92bab80 100644 --- a/kms++/src/connector.cpp +++ b/kms++/src/connector.cpp @@ -12,7 +12,6 @@ using namespace std; namespace kms { - #ifndef DRM_MODE_CONNECTOR_DPI #define DRM_MODE_CONNECTOR_DPI 17 #endif @@ -46,7 +45,10 @@ static const map connection_str = { }; static const map subpix_str = { -#define DEF_SUBPIX(c) { DRM_MODE_SUBPIXEL_##c, #c } +#define DEF_SUBPIX(c) \ + { \ + DRM_MODE_SUBPIXEL_##c, #c \ + } DEF_SUBPIX(UNKNOWN), DEF_SUBPIX(HORIZONTAL_RGB), DEF_SUBPIX(HORIZONTAL_BGR), @@ -56,13 +58,12 @@ static const map subpix_str = { #undef DEF_SUBPIX }; -struct ConnectorPriv -{ +struct ConnectorPriv { drmModeConnectorPtr drm_connector; }; -Connector::Connector(Card &card, uint32_t id, uint32_t idx) - :DrmPropObject(card, id, DRM_MODE_OBJECT_CONNECTOR, idx) +Connector::Connector(Card& card, uint32_t id, uint32_t idx) + : DrmPropObject(card, id, DRM_MODE_OBJECT_CONNECTOR, idx) { m_priv = new ConnectorPriv(); @@ -193,7 +194,7 @@ Videomode Connector::get_mode(unsigned xres, unsigned yres, float vrefresh, bool bool Connector::connected() const { return m_priv->drm_connector->connection == DRM_MODE_CONNECTED || - m_priv->drm_connector->connection == DRM_MODE_UNKNOWNCONNECTION; + m_priv->drm_connector->connection == DRM_MODE_UNKNOWNCONNECTION; } ConnectorStatus Connector::connector_status() const @@ -267,7 +268,7 @@ std::vector Connector::get_modes() const for (int i = 0; i < m_priv->drm_connector->count_modes; i++) modes.push_back(drm_mode_to_video_mode( - m_priv->drm_connector->modes[i])); + m_priv->drm_connector->modes[i])); return modes; } @@ -283,4 +284,4 @@ std::vector Connector::get_encoders() const return encoders; } -} +} // namespace kms diff --git a/kms++/src/crtc.cpp b/kms++/src/crtc.cpp index 7ffaaff..6dc4333 100644 --- a/kms++/src/crtc.cpp +++ b/kms++/src/crtc.cpp @@ -11,14 +11,12 @@ using namespace std; namespace kms { - -struct CrtcPriv -{ +struct CrtcPriv { drmModeCrtcPtr drm_crtc; }; -Crtc::Crtc(Card &card, uint32_t id, uint32_t idx) - :DrmPropObject(card, id, DRM_MODE_OBJECT_CRTC, idx) +Crtc::Crtc(Card& card, uint32_t id, uint32_t idx) + : DrmPropObject(card, id, DRM_MODE_OBJECT_CRTC, idx) { m_priv = new CrtcPriv(); m_priv->drm_crtc = drmModeGetCrtc(this->card().fd(), this->id()); @@ -65,13 +63,13 @@ int Crtc::set_mode(Connector* conn, const Videomode& mode) unique_ptr blob = mode.to_blob(card()); req.add(conn, { - { "CRTC_ID", this->id() }, - }); + { "CRTC_ID", this->id() }, + }); req.add(this, { - { "ACTIVE", 1 }, - { "MODE_ID", blob->id() }, - }); + { "ACTIVE", 1 }, + { "MODE_ID", blob->id() }, + }); int r = req.commit_sync(true); @@ -117,7 +115,7 @@ int Crtc::disable_plane(Plane* plane) Plane* Crtc::get_primary_plane() { - Plane *primary = nullptr; + Plane* primary = nullptr; for (Plane* p : get_possible_planes()) { if (p->plane_type() != PlaneType::Primary) @@ -135,7 +133,7 @@ Plane* Crtc::get_primary_plane() throw invalid_argument(string("No primary plane for crtc ") + to_string(id())); } -int Crtc::page_flip(Framebuffer& fb, void *data) +int Crtc::page_flip(Framebuffer& fb, void* data) { return drmModePageFlip(card().fd(), id(), fb.id(), DRM_MODE_PAGE_FLIP_EVENT, data); } @@ -180,4 +178,4 @@ int Crtc::gamma_size() const return m_priv->drm_crtc->gamma_size; } -} +} // namespace kms diff --git a/kms++/src/dmabufframebuffer.cpp b/kms++/src/dmabufframebuffer.cpp index 991d96c..cb76f09 100644 --- a/kms++/src/dmabufframebuffer.cpp +++ b/kms++/src/dmabufframebuffer.cpp @@ -62,8 +62,7 @@ DmabufFramebuffer::DmabufFramebuffer(Card& card, uint32_t width, uint32_t height bo_handles, pitches.data(), offsets.data(), &id, 0); if (r) throw invalid_argument(string("drmModeAddFB2 failed: ") + strerror(errno)); - } - else { + } else { modifiers.resize(4); r = drmModeAddFB2WithModifiers(card.fd(), width, height, (uint32_t)format, bo_handles, pitches.data(), offsets.data(), modifiers.data(), &id, DRM_MODE_FB_MODIFIERS); @@ -86,8 +85,8 @@ uint8_t* DmabufFramebuffer::map(unsigned plane) if (p.map) return p.map; - p.map = (uint8_t *)mmap(0, p.size, PROT_READ | PROT_WRITE, MAP_SHARED, - p.prime_fd, 0); + p.map = (uint8_t*)mmap(0, p.size, PROT_READ | PROT_WRITE, MAP_SHARED, + p.prime_fd, 0); if (p.map == MAP_FAILED) throw invalid_argument(string("mmap failed: ") + strerror(errno)); @@ -118,7 +117,7 @@ void DmabufFramebuffer::begin_cpu_access(CpuAccess access) break; } - dma_buf_sync dbs { + dma_buf_sync dbs{ .flags = DMA_BUF_SYNC_START | m_sync_flags }; @@ -134,7 +133,7 @@ void DmabufFramebuffer::end_cpu_access() if (m_sync_flags == 0) throw runtime_error("begin_cpu sync not started"); - dma_buf_sync dbs { + dma_buf_sync dbs{ .flags = DMA_BUF_SYNC_END | m_sync_flags }; @@ -147,4 +146,4 @@ void DmabufFramebuffer::end_cpu_access() m_sync_flags = 0; } -} +} // namespace kms diff --git a/kms++/src/drmobject.cpp b/kms++/src/drmobject.cpp index 9c0f5ae..f01c8af 100644 --- a/kms++/src/drmobject.cpp +++ b/kms++/src/drmobject.cpp @@ -11,24 +11,22 @@ using namespace std; namespace kms { - DrmObject::DrmObject(Card& card, uint32_t object_type) - :m_card(card), m_id(-1), m_object_type(object_type), m_idx(0) + : m_card(card), m_id(-1), m_object_type(object_type), m_idx(0) { } DrmObject::DrmObject(Card& card, uint32_t id, uint32_t object_type, uint32_t idx) - :m_card(card), m_id(id), m_object_type(object_type), m_idx(idx) + : m_card(card), m_id(id), m_object_type(object_type), m_idx(idx) { } DrmObject::~DrmObject() { - } void DrmObject::set_id(uint32_t id) { m_id = id; } -} +} // namespace kms diff --git a/kms++/src/drmpropobject.cpp b/kms++/src/drmpropobject.cpp index c78f70a..616aef7 100644 --- a/kms++/src/drmpropobject.cpp +++ b/kms++/src/drmpropobject.cpp @@ -11,7 +11,6 @@ using namespace std; namespace kms { - DrmPropObject::DrmPropObject(Card& card, uint32_t object_type) : DrmObject(card, object_type) { @@ -25,7 +24,6 @@ DrmPropObject::DrmPropObject(Card& card, uint32_t id, uint32_t object_type, uint DrmPropObject::~DrmPropObject() { - } void DrmPropObject::refresh_props() @@ -90,7 +88,7 @@ int DrmPropObject::set_prop_value(uint32_t id, uint64_t value) return drmModeObjectSetProperty(card().fd(), this->id(), this->object_type(), id, value); } -int DrmPropObject::set_prop_value(const string &name, uint64_t value) +int DrmPropObject::set_prop_value(const string& name, uint64_t value) { Property* prop = get_prop(name); @@ -100,4 +98,4 @@ int DrmPropObject::set_prop_value(const string &name, uint64_t value) return set_prop_value(prop->id(), value); } -} +} // namespace kms diff --git a/kms++/src/dumbframebuffer.cpp b/kms++/src/dumbframebuffer.cpp index 4c3c031..fc50586 100644 --- a/kms++/src/dumbframebuffer.cpp +++ b/kms++/src/dumbframebuffer.cpp @@ -19,14 +19,13 @@ using namespace std; namespace kms { - -DumbFramebuffer::DumbFramebuffer(Card &card, uint32_t width, uint32_t height, const string& fourcc) - :DumbFramebuffer(card, width, height, FourCCToPixelFormat(fourcc)) +DumbFramebuffer::DumbFramebuffer(Card& card, uint32_t width, uint32_t height, const string& fourcc) + : DumbFramebuffer(card, width, height, FourCCToPixelFormat(fourcc)) { } DumbFramebuffer::DumbFramebuffer(Card& card, uint32_t width, uint32_t height, PixelFormat format) - :Framebuffer(card, width, height), m_format(format) + : Framebuffer(card, width, height), m_format(format) { int r; @@ -65,16 +64,22 @@ DumbFramebuffer::DumbFramebuffer(Card& card, uint32_t width, uint32_t height, Pi /* create framebuffer object for the dumb-buffer */ uint32_t bo_handles[4] = { - m_planes[0].handle, m_planes[1].handle, - m_planes[2].handle, m_planes[3].handle, + m_planes[0].handle, + m_planes[1].handle, + m_planes[2].handle, + m_planes[3].handle, }; uint32_t pitches[4] = { - m_planes[0].stride, m_planes[1].stride, - m_planes[2].stride, m_planes[3].stride, + m_planes[0].stride, + m_planes[1].stride, + m_planes[2].stride, + m_planes[3].stride, }; uint32_t offsets[4] = { - m_planes[0].offset, m_planes[1].offset, - m_planes[2].offset, m_planes[3].offset, + m_planes[0].offset, + m_planes[1].offset, + m_planes[2].offset, + m_planes[3].offset, }; uint32_t id; r = drmModeAddFB2(card.fd(), width, height, (uint32_t)format, @@ -121,8 +126,8 @@ uint8_t* DumbFramebuffer::map(unsigned plane) throw invalid_argument(string("DRM_IOCTL_MODE_MAP_DUMB failed: ") + strerror(errno)); /* perform actual memory mapping */ - p.map = (uint8_t *)mmap(0, p.size, PROT_READ | PROT_WRITE, MAP_SHARED, - card().fd(), mreq.offset); + p.map = (uint8_t*)mmap(0, p.size, PROT_READ | PROT_WRITE, MAP_SHARED, + card().fd(), mreq.offset); if (p.map == MAP_FAILED) throw invalid_argument(string("mmap failed: ") + strerror(errno)); @@ -142,4 +147,4 @@ int DumbFramebuffer::prime_fd(unsigned int plane) return m_planes.at(plane).prime_fd; } -} +} // namespace kms diff --git a/kms++/src/encoder.cpp b/kms++/src/encoder.cpp index 30a241a..8144b9f 100644 --- a/kms++/src/encoder.cpp +++ b/kms++/src/encoder.cpp @@ -12,14 +12,15 @@ using namespace std; namespace kms { - -struct EncoderPriv -{ +struct EncoderPriv { drmModeEncoderPtr drm_encoder; }; static const map encoder_types = { -#define DEF_ENC(c) { DRM_MODE_ENCODER_##c, #c } +#define DEF_ENC(c) \ + { \ + DRM_MODE_ENCODER_##c, #c \ + } DEF_ENC(NONE), DEF_ENC(DAC), DEF_ENC(TMDS), @@ -32,8 +33,8 @@ static const map encoder_types = { #undef DEF_ENC }; -Encoder::Encoder(Card &card, uint32_t id, uint32_t idx) - :DrmPropObject(card, id, DRM_MODE_OBJECT_ENCODER, idx) +Encoder::Encoder(Card& card, uint32_t id, uint32_t idx) + : DrmPropObject(card, id, DRM_MODE_OBJECT_ENCODER, idx) { m_priv = new EncoderPriv(); m_priv->drm_encoder = drmModeGetEncoder(this->card().fd(), this->id()); @@ -83,4 +84,4 @@ const string& Encoder::get_encoder_type() const return encoder_types.at(m_priv->drm_encoder->encoder_type); } -} +} // namespace kms diff --git a/kms++/src/extframebuffer.cpp b/kms++/src/extframebuffer.cpp index 4ea563c..78b6fbb 100644 --- a/kms++/src/extframebuffer.cpp +++ b/kms++/src/extframebuffer.cpp @@ -13,7 +13,6 @@ using namespace std; namespace kms { - ExtFramebuffer::ExtFramebuffer(Card& card, uint32_t width, uint32_t height, PixelFormat format, vector handles, vector pitches, vector offsets, vector modifiers) : Framebuffer(card, width, height) @@ -46,8 +45,7 @@ ExtFramebuffer::ExtFramebuffer(Card& card, uint32_t width, uint32_t height, Pixe if (modifiers.empty()) { r = drmModeAddFB2(card.fd(), width, height, (uint32_t)format, handles.data(), pitches.data(), offsets.data(), &id, 0); - } - else { + } else { modifiers.resize(4); r = drmModeAddFB2WithModifiers(card.fd(), width, height, (uint32_t)format, handles.data(), pitches.data(), offsets.data(), modifiers.data(), &id, DRM_MODE_FB_MODIFIERS); } @@ -63,4 +61,4 @@ ExtFramebuffer::~ExtFramebuffer() drmModeRmFB(card().fd(), id()); } -} +} // namespace kms diff --git a/kms++/src/framebuffer.cpp b/kms++/src/framebuffer.cpp index 39c4e16..f1cba3b 100644 --- a/kms++/src/framebuffer.cpp +++ b/kms++/src/framebuffer.cpp @@ -11,7 +11,6 @@ using namespace std; namespace kms { - Framebuffer::Framebuffer(Card& card, uint32_t width, uint32_t height) : DrmObject(card, DRM_MODE_OBJECT_FB), m_width(width), m_height(height) { @@ -37,7 +36,7 @@ Framebuffer::Framebuffer(Card& card, uint32_t id) void Framebuffer::flush() { - drmModeClip clip { }; + drmModeClip clip{}; clip.x1 = clip.y1 = 0; clip.x2 = width(); clip.y2 = height(); @@ -52,5 +51,4 @@ Framebuffer::~Framebuffer() card().m_framebuffers.erase(iter); } - -} +} // namespace kms diff --git a/kms++/src/helpers.cpp b/kms++/src/helpers.cpp index 8bd082b..9079a23 100644 --- a/kms++/src/helpers.cpp +++ b/kms++/src/helpers.cpp @@ -9,7 +9,7 @@ namespace kms { Videomode drm_mode_to_video_mode(const drmModeModeInfo& drmmode) { - Videomode mode = { }; + Videomode mode = {}; auto& src = drmmode; auto& dst = mode; @@ -40,7 +40,7 @@ Videomode drm_mode_to_video_mode(const drmModeModeInfo& drmmode) drmModeModeInfo video_mode_to_drm_mode(const Videomode& mode) { - drmModeModeInfo drmmode = { }; + drmModeModeInfo drmmode = {}; auto& src = mode; auto& dst = drmmode; @@ -69,4 +69,4 @@ drmModeModeInfo video_mode_to_drm_mode(const Videomode& mode) return drmmode; } -} +} // namespace kms diff --git a/kms++/src/helpers.h b/kms++/src/helpers.h index 4eb597c..58926bf 100644 --- a/kms++/src/helpers.h +++ b/kms++/src/helpers.h @@ -9,4 +9,4 @@ struct Videomode; Videomode drm_mode_to_video_mode(const drmModeModeInfo& drmmode); drmModeModeInfo video_mode_to_drm_mode(const Videomode& mode); -} +} // namespace kms diff --git a/kms++/src/mode_cvt.cpp b/kms++/src/mode_cvt.cpp index 41503c7..a7a10b8 100644 --- a/kms++/src/mode_cvt.cpp +++ b/kms++/src/mode_cvt.cpp @@ -7,12 +7,10 @@ using namespace std; namespace kms { - static float CELL_GRAN = 8; static float CELL_GRAN_RND = round(CELL_GRAN); -struct CVTConsts -{ +struct CVTConsts { float CLOCK_STEP; float MIN_V_BPORCH; float RB_H_BLANK; @@ -24,30 +22,28 @@ struct CVTConsts float REFRESH_MULTIPLIER; }; -static const CVTConsts cvt_consts_v1 = -{ - .CLOCK_STEP = 0.25, // Fixed - .MIN_V_BPORCH = 6, // Min - .RB_H_BLANK = 160, // Fixed - .RB_H_FPORCH = 48, // Fixed - .RB_H_SYNC = 32, // Fixed - .RB_H_BPORCH = 80, // Fixed - .RB_MIN_V_BLANK = 460, // Min - .RB_V_FPORCH = 3, // Fixed - .REFRESH_MULTIPLIER = 1,// Fixed +static const CVTConsts cvt_consts_v1 = { + .CLOCK_STEP = 0.25, // Fixed + .MIN_V_BPORCH = 6, // Min + .RB_H_BLANK = 160, // Fixed + .RB_H_FPORCH = 48, // Fixed + .RB_H_SYNC = 32, // Fixed + .RB_H_BPORCH = 80, // Fixed + .RB_MIN_V_BLANK = 460, // Min + .RB_V_FPORCH = 3, // Fixed + .REFRESH_MULTIPLIER = 1, // Fixed }; -static const CVTConsts cvt_consts_v2 = -{ - .CLOCK_STEP = 0.001, // Fixed - .MIN_V_BPORCH = 6, // Fixed - .RB_H_BLANK = 80, // Fixed - .RB_H_FPORCH = 8, // Fixed - .RB_H_SYNC = 32, // Fixed - .RB_H_BPORCH = 40, // Fixed - .RB_MIN_V_BLANK = 460, // Min - .RB_V_FPORCH = 1, // Min - .REFRESH_MULTIPLIER = 1,// or 1000/1001 +static const CVTConsts cvt_consts_v2 = { + .CLOCK_STEP = 0.001, // Fixed + .MIN_V_BPORCH = 6, // Fixed + .RB_H_BLANK = 80, // Fixed + .RB_H_FPORCH = 8, // Fixed + .RB_H_SYNC = 32, // Fixed + .RB_H_BPORCH = 40, // Fixed + .RB_MIN_V_BLANK = 460, // Min + .RB_V_FPORCH = 1, // Min + .REFRESH_MULTIPLIER = 1, // or 1000/1001 }; Videomode videomode_from_cvt(uint32_t hact, uint32_t vact, uint32_t refresh, bool ilace, bool reduced_v2, bool video_optimized) @@ -55,7 +51,7 @@ Videomode videomode_from_cvt(uint32_t hact, uint32_t vact, uint32_t refresh, boo CVTConsts c = reduced_v2 ? cvt_consts_v2 : cvt_consts_v1; if (video_optimized) - c.REFRESH_MULTIPLIER = 1000.0/1001.0; + c.REFRESH_MULTIPLIER = 1000.0 / 1001.0; bool INT_RQD = ilace; @@ -151,4 +147,4 @@ Videomode videomode_from_cvt(uint32_t hact, uint32_t vact, uint32_t refresh, boo return mode; } -} +} // namespace kms diff --git a/kms++/src/modedb.cpp b/kms++/src/modedb.cpp index 5d5d373..081100a 100644 --- a/kms++/src/modedb.cpp +++ b/kms++/src/modedb.cpp @@ -8,7 +8,6 @@ using namespace std; namespace kms { - static const Videomode& find_from_table(const Videomode* modes, uint32_t width, uint32_t height, float vrefresh, bool ilace) { for (unsigned i = 0; modes[i].clock; ++i) { @@ -56,4 +55,4 @@ const Videomode& find_cea(uint32_t width, uint32_t height, float vrefresh, bool return find_from_table(cea_modes, width, height, vrefresh, ilace); } -} +} // namespace kms diff --git a/kms++/src/modedb_cea.cpp b/kms++/src/modedb_cea.cpp index a99a612..b09472f 100644 --- a/kms++/src/modedb_cea.cpp +++ b/kms++/src/modedb_cea.cpp @@ -35,14 +35,13 @@ namespace kms { - #define DIV_ROUND(n, d) (((n) + (d) / 2) / (d)) -#define DRM_MODE(nm, c, hd, hss, hse, ht, hsk, vd, vss, vse, vt, vs, f) \ - .name = nm, .clock = (c), \ +#define DRM_MODE(nm, c, hd, hss, hse, ht, hsk, vd, vss, vse, vt, vs, f) \ + .name = nm, .clock = (c), \ .hdisplay = (hd), .hsync_start = (hss), .hsync_end = (hse), .htotal = (ht), .hskew = (hsk), \ - .vdisplay = (vd), .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), .vscan = (vs), \ - .vrefresh = DIV_ROUND(c * 1000, ht * vt) * (((f) & DRM_MODE_FLAG_INTERLACE) ? 2 : 1), \ + .vdisplay = (vd), .vsync_start = (vss), .vsync_end = (vse), .vtotal = (vt), .vscan = (vs), \ + .vrefresh = DIV_ROUND(c * 1000, ht * vt) * (((f)&DRM_MODE_FLAG_INTERLACE) ? 2 : 1), \ .flags = (f), .type = 0 /* @@ -51,352 +50,416 @@ namespace kms */ const Videomode cea_modes[] = { /* 1 - 640x480@60Hz */ - { DRM_MODE("640x480", 25175, 640, 656, - 752, 800, 0, 480, 490, 492, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("640x480", 25175, 640, 656, + 752, 800, 0, 480, 490, 492, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 2 - 720x480@60Hz */ - { DRM_MODE("720x480", 27000, 720, 736, - 798, 858, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x480", 27000, 720, 736, + 798, 858, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 3 - 720x480@60Hz */ - { DRM_MODE("720x480", 27000, 720, 736, - 798, 858, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x480", 27000, 720, 736, + 798, 858, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 4 - 1280x720@60Hz */ - { DRM_MODE("1280x720", 74250, 1280, 1390, - 1430, 1650, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 74250, 1280, 1390, + 1430, 1650, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 5 - 1920x1080i@60Hz */ - { DRM_MODE("1920x1080i", 74250, 1920, 2008, - 2052, 2200, 0, 1080, 1084, 1094, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("1920x1080i", 74250, 1920, 2008, + 2052, 2200, 0, 1080, 1084, 1094, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 6 - 720(1440)x480i@60Hz */ - { DRM_MODE("720x480i", 13500, 720, 739, - 801, 858, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x480i", 13500, 720, 739, + 801, 858, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 7 - 720(1440)x480i@60Hz */ - { DRM_MODE("720x480i", 13500, 720, 739, - 801, 858, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x480i", 13500, 720, 739, + 801, 858, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 8 - 720(1440)x240@60Hz */ - { DRM_MODE("720x240", 13500, 720, 739, - 801, 858, 0, 240, 244, 247, 262, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x240", 13500, 720, 739, + 801, 858, 0, 240, 244, 247, 262, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_DBLCLK), }, /* 9 - 720(1440)x240@60Hz */ - { DRM_MODE("720x240", 13500, 720, 739, - 801, 858, 0, 240, 244, 247, 262, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x240", 13500, 720, 739, + 801, 858, 0, 240, 244, 247, 262, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_DBLCLK), }, /* 10 - 2880x480i@60Hz */ - { DRM_MODE("2880x480i", 54000, 2880, 2956, - 3204, 3432, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("2880x480i", 54000, 2880, 2956, + 3204, 3432, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 11 - 2880x480i@60Hz */ - { DRM_MODE("2880x480i", 54000, 2880, 2956, - 3204, 3432, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("2880x480i", 54000, 2880, 2956, + 3204, 3432, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 12 - 2880x240@60Hz */ - { DRM_MODE("2880x240", 54000, 2880, 2956, - 3204, 3432, 0, 240, 244, 247, 262, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x240", 54000, 2880, 2956, + 3204, 3432, 0, 240, 244, 247, 262, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 13 - 2880x240@60Hz */ - { DRM_MODE("2880x240", 54000, 2880, 2956, - 3204, 3432, 0, 240, 244, 247, 262, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x240", 54000, 2880, 2956, + 3204, 3432, 0, 240, 244, 247, 262, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 14 - 1440x480@60Hz */ - { DRM_MODE("1440x480", 54000, 1440, 1472, - 1596, 1716, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("1440x480", 54000, 1440, 1472, + 1596, 1716, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 15 - 1440x480@60Hz */ - { DRM_MODE("1440x480", 54000, 1440, 1472, - 1596, 1716, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("1440x480", 54000, 1440, 1472, + 1596, 1716, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 16 - 1920x1080@60Hz */ - { DRM_MODE("1920x1080", 148500, 1920, 2008, - 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 148500, 1920, 2008, + 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 17 - 720x576@50Hz */ - { DRM_MODE("720x576", 27000, 720, 732, - 796, 864, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x576", 27000, 720, 732, + 796, 864, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 18 - 720x576@50Hz */ - { DRM_MODE("720x576", 27000, 720, 732, - 796, 864, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x576", 27000, 720, 732, + 796, 864, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 19 - 1280x720@50Hz */ - { DRM_MODE("1280x720", 74250, 1280, 1720, - 1760, 1980, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 74250, 1280, 1720, + 1760, 1980, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 20 - 1920x1080i@50Hz */ - { DRM_MODE("1920x1080i", 74250, 1920, 2448, - 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("1920x1080i", 74250, 1920, 2448, + 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 21 - 720(1440)x576i@50Hz */ - { DRM_MODE("720x576i", 13500, 720, 732, - 795, 864, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x576i", 13500, 720, 732, + 795, 864, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 22 - 720(1440)x576i@50Hz */ - { DRM_MODE("720x576i", 13500, 720, 732, - 795, 864, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x576i", 13500, 720, 732, + 795, 864, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 23 - 720(1440)x288@50Hz */ - { DRM_MODE("720x288", 13500, 720, 732, - 795, 864, 0, 288, 290, 293, 312, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x288", 13500, 720, 732, + 795, 864, 0, 288, 290, 293, 312, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_DBLCLK), }, /* 24 - 720(1440)x288@50Hz */ - { DRM_MODE("720x288", 13500, 720, 732, - 795, 864, 0, 288, 290, 293, 312, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x288", 13500, 720, 732, + 795, 864, 0, 288, 290, 293, 312, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_DBLCLK), }, /* 25 - 2880x576i@50Hz */ - { DRM_MODE("2880x576i", 54000, 2880, 2928, - 3180, 3456, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("2880x576i", 54000, 2880, 2928, + 3180, 3456, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 26 - 2880x576i@50Hz */ - { DRM_MODE("2880x576i", 54000, 2880, 2928, - 3180, 3456, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("2880x576i", 54000, 2880, 2928, + 3180, 3456, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 27 - 2880x288@50Hz */ - { DRM_MODE("2880x288", 54000, 2880, 2928, - 3180, 3456, 0, 288, 290, 293, 312, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x288", 54000, 2880, 2928, + 3180, 3456, 0, 288, 290, 293, 312, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 28 - 2880x288@50Hz */ - { DRM_MODE("2880x288", 54000, 2880, 2928, - 3180, 3456, 0, 288, 290, 293, 312, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x288", 54000, 2880, 2928, + 3180, 3456, 0, 288, 290, 293, 312, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 29 - 1440x576@50Hz */ - { DRM_MODE("1440x576", 54000, 1440, 1464, - 1592, 1728, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("1440x576", 54000, 1440, 1464, + 1592, 1728, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 30 - 1440x576@50Hz */ - { DRM_MODE("1440x576", 54000, 1440, 1464, - 1592, 1728, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("1440x576", 54000, 1440, 1464, + 1592, 1728, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 31 - 1920x1080@50Hz */ - { DRM_MODE("1920x1080", 148500, 1920, 2448, - 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 148500, 1920, 2448, + 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 32 - 1920x1080@24Hz */ - { DRM_MODE("1920x1080", 74250, 1920, 2558, - 2602, 2750, 0, 1080, 1084, 1089, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 74250, 1920, 2558, + 2602, 2750, 0, 1080, 1084, 1089, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 33 - 1920x1080@25Hz */ - { DRM_MODE("1920x1080", 74250, 1920, 2448, - 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 74250, 1920, 2448, + 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 34 - 1920x1080@30Hz */ - { DRM_MODE("1920x1080", 74250, 1920, 2008, - 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 74250, 1920, 2008, + 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 35 - 2880x480@60Hz */ - { DRM_MODE("2880x480", 108000, 2880, 2944, - 3192, 3432, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x480", 108000, 2880, 2944, + 3192, 3432, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 36 - 2880x480@60Hz */ - { DRM_MODE("2880x480", 108000, 2880, 2944, - 3192, 3432, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x480", 108000, 2880, 2944, + 3192, 3432, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 37 - 2880x576@50Hz */ - { DRM_MODE("2880x576", 108000, 2880, 2928, - 3184, 3456, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x576", 108000, 2880, 2928, + 3184, 3456, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 38 - 2880x576@50Hz */ - { DRM_MODE("2880x576", 108000, 2880, 2928, - 3184, 3456, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("2880x576", 108000, 2880, 2928, + 3184, 3456, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 39 - 1920x1080i@50Hz */ - { DRM_MODE("1920x1080i", 72000, 1920, 1952, - 2120, 2304, 0, 1080, 1126, 1136, 1250, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("1920x1080i", 72000, 1920, 1952, + 2120, 2304, 0, 1080, 1126, 1136, 1250, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 40 - 1920x1080i@100Hz */ - { DRM_MODE("1920x1080i", 148500, 1920, 2448, - 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("1920x1080i", 148500, 1920, 2448, + 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 41 - 1280x720@100Hz */ - { DRM_MODE("1280x720", 148500, 1280, 1720, - 1760, 1980, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 148500, 1280, 1720, + 1760, 1980, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 42 - 720x576@100Hz */ - { DRM_MODE("720x576", 54000, 720, 732, - 796, 864, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x576", 54000, 720, 732, + 796, 864, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 43 - 720x576@100Hz */ - { DRM_MODE("720x576", 54000, 720, 732, - 796, 864, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x576", 54000, 720, 732, + 796, 864, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 44 - 720(1440)x576i@100Hz */ - { DRM_MODE("720x576i", 27000, 720, 732, - 795, 864, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x576i", 27000, 720, 732, + 795, 864, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 45 - 720(1440)x576i@100Hz */ - { DRM_MODE("720x576i", 27000, 720, 732, - 795, 864, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x576i", 27000, 720, 732, + 795, 864, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 46 - 1920x1080i@120Hz */ - { DRM_MODE("1920x1080i", 148500, 1920, 2008, - 2052, 2200, 0, 1080, 1084, 1094, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | - DRM_MODE_FLAG_INTERLACE), + { + DRM_MODE("1920x1080i", 148500, 1920, 2008, + 2052, 2200, 0, 1080, 1084, 1094, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | + DRM_MODE_FLAG_INTERLACE), }, /* 47 - 1280x720@120Hz */ - { DRM_MODE("1280x720", 148500, 1280, 1390, - 1430, 1650, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 148500, 1280, 1390, + 1430, 1650, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 48 - 720x480@120Hz */ - { DRM_MODE("720x480", 54000, 720, 736, - 798, 858, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x480", 54000, 720, 736, + 798, 858, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 49 - 720x480@120Hz */ - { DRM_MODE("720x480", 54000, 720, 736, - 798, 858, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x480", 54000, 720, 736, + 798, 858, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 50 - 720(1440)x480i@120Hz */ - { DRM_MODE("720x480i", 27000, 720, 739, - 801, 858, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x480i", 27000, 720, 739, + 801, 858, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 51 - 720(1440)x480i@120Hz */ - { DRM_MODE("720x480i", 27000, 720, 739, - 801, 858, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x480i", 27000, 720, 739, + 801, 858, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 52 - 720x576@200Hz */ - { DRM_MODE("720x576", 108000, 720, 732, - 796, 864, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x576", 108000, 720, 732, + 796, 864, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 53 - 720x576@200Hz */ - { DRM_MODE("720x576", 108000, 720, 732, - 796, 864, 0, 576, 581, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x576", 108000, 720, 732, + 796, 864, 0, 576, 581, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 54 - 720(1440)x576i@200Hz */ - { DRM_MODE("720x576i", 54000, 720, 732, - 795, 864, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x576i", 54000, 720, 732, + 795, 864, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 55 - 720(1440)x576i@200Hz */ - { DRM_MODE("720x576i", 54000, 720, 732, - 795, 864, 0, 576, 580, 586, 625, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x576i", 54000, 720, 732, + 795, 864, 0, 576, 580, 586, 625, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 56 - 720x480@240Hz */ - { DRM_MODE("720x480", 108000, 720, 736, - 798, 858, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x480", 108000, 720, 736, + 798, 858, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 57 - 720x480@240Hz */ - { DRM_MODE("720x480", 108000, 720, 736, - 798, 858, 0, 480, 489, 495, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), + { + DRM_MODE("720x480", 108000, 720, 736, + 798, 858, 0, 480, 489, 495, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC), }, /* 58 - 720(1440)x480i@240 */ - { DRM_MODE("720x480i", 54000, 720, 739, - 801, 858, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x480i", 54000, 720, 739, + 801, 858, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 59 - 720(1440)x480i@240 */ - { DRM_MODE("720x480i", 54000, 720, 739, - 801, 858, 0, 480, 488, 494, 525, 0, - DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | - DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), + { + DRM_MODE("720x480i", 54000, 720, 739, + 801, 858, 0, 480, 488, 494, 525, 0, + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC | + DRM_MODE_FLAG_INTERLACE | DRM_MODE_FLAG_DBLCLK), }, /* 60 - 1280x720@24Hz */ - { DRM_MODE("1280x720", 59400, 1280, 3040, - 3080, 3300, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 59400, 1280, 3040, + 3080, 3300, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 61 - 1280x720@25Hz */ - { DRM_MODE("1280x720", 74250, 1280, 3700, - 3740, 3960, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 74250, 1280, 3700, + 3740, 3960, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 62 - 1280x720@30Hz */ - { DRM_MODE("1280x720", 74250, 1280, 3040, - 3080, 3300, 0, 720, 725, 730, 750, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1280x720", 74250, 1280, 3040, + 3080, 3300, 0, 720, 725, 730, 750, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 63 - 1920x1080@120Hz */ - { DRM_MODE("1920x1080", 297000, 1920, 2008, - 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 297000, 1920, 2008, + 2052, 2200, 0, 1080, 1084, 1089, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* 64 - 1920x1080@100Hz */ - { DRM_MODE("1920x1080", 297000, 1920, 2448, - 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, - DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), + { + DRM_MODE("1920x1080", 297000, 1920, 2448, + 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), }, /* TERMINATOR */ - { }, + {}, }; -} +} // namespace kms diff --git a/kms++/src/modedb_dmt.cpp b/kms++/src/modedb_dmt.cpp index 7dee6b1..21fe1c2 100644 --- a/kms++/src/modedb_dmt.cpp +++ b/kms++/src/modedb_dmt.cpp @@ -6,18 +6,17 @@ namespace kms { - #define DIV_ROUND(n, d) (((n) + (d) / 2) / (d)) // hd, hss, hse, ht, vd, vss, vse, vt -#define DRM_MODE(nm, c, hact, hfp, hsw, hbp, vact, vfp, vsw, vbp, f) \ - { \ - .name = nm, .clock = c, \ - .hdisplay = (hact), .hsync_start = (hact) + (hfp), .hsync_end = (hact) + (hfp) + (hsw), .htotal = (hact) + (hfp) + (hsw) + (hbp), .hskew = 0, \ - .vdisplay = (vact), .vsync_start = (vact) + (vfp), .vsync_end = (vact) + (vfp) + (vsw), .vtotal = (vact) + (vfp) + (vsw) + (vbp), .vscan = 0, \ - .vrefresh = DIV_ROUND(c * 1000, ((hact) + (hfp) + (hsw) + (hbp)) * ((vact) + (vfp) + (vsw) + (vbp))) * (((f) & DRM_MODE_FLAG_INTERLACE) ? 2 : 1), \ - .flags = (f), .type = 0 \ +#define DRM_MODE(nm, c, hact, hfp, hsw, hbp, vact, vfp, vsw, vbp, f) \ + { \ + .name = nm, .clock = c, \ + .hdisplay = (hact), .hsync_start = (hact) + (hfp), .hsync_end = (hact) + (hfp) + (hsw), .htotal = (hact) + (hfp) + (hsw) + (hbp), .hskew = 0, \ + .vdisplay = (vact), .vsync_start = (vact) + (vfp), .vsync_end = (vact) + (vfp) + (vsw), .vtotal = (vact) + (vfp) + (vsw) + (vbp), .vscan = 0, \ + .vrefresh = DIV_ROUND(c * 1000, ((hact) + (hfp) + (hsw) + (hbp)) * ((vact) + (vfp) + (vsw) + (vbp))) * (((f)&DRM_MODE_FLAG_INTERLACE) ? 2 : 1), \ + .flags = (f), .type = 0 \ } const Videomode dmt_modes[] = { @@ -198,7 +197,7 @@ const Videomode dmt_modes[] = { // 0x58 - 4096 x 2160 @ 59.94 Hz CVT (Reduced Blanking v2) DRM_MODE("4096 x 2160 @ 59.94 Hz CVT (Reduced Blanking v2)", 556188, 4096, 8, 32, 40, 2160, 48, 8, 6, DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC), /* TERMINATOR */ - { }, + {}, }; -} +} // namespace kms diff --git a/kms++/src/omap/omapcard.cpp b/kms++/src/omap/omapcard.cpp index 5e21c75..500bb72 100644 --- a/kms++/src/omap/omapcard.cpp +++ b/kms++/src/omap/omapcard.cpp @@ -9,7 +9,6 @@ using namespace std; namespace kms { - OmapCard::OmapCard(const string& device) : Card(device) { @@ -21,4 +20,4 @@ OmapCard::~OmapCard() omap_device_del(m_omap_dev); } -} +} // namespace kms diff --git a/kms++/src/omap/omapframebuffer.cpp b/kms++/src/omap/omapframebuffer.cpp index f33a286..eac45e2 100644 --- a/kms++/src/omap/omapframebuffer.cpp +++ b/kms++/src/omap/omapframebuffer.cpp @@ -18,21 +18,20 @@ extern "C" { } #define __round_mask(x, y) ((__typeof__(x))((y)-1)) -#define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1) +#define round_up(x, y) ((((x)-1) | __round_mask(x, y)) + 1) #define PAGE_SIZE 4096 using namespace std; namespace kms { - OmapFramebuffer::OmapFramebuffer(OmapCard& card, uint32_t width, uint32_t height, const string& fourcc, Flags flags) : OmapFramebuffer(card, width, height, FourCCToPixelFormat(fourcc), flags) { } OmapFramebuffer::OmapFramebuffer(OmapCard& card, uint32_t width, uint32_t height, PixelFormat format, Flags flags) - :Framebuffer(card, width, height), m_omap_card(card), m_format(format) + : Framebuffer(card, width, height), m_omap_card(card), m_format(format) { Create(flags); } @@ -80,23 +79,33 @@ void OmapFramebuffer::Create(Flags buffer_flags) switch (m_format) { case PixelFormat::NV12: - bitspertiler = i == 0 ? 8 : 16; break; + bitspertiler = i == 0 ? 8 : 16; + break; case PixelFormat::YUYV: case PixelFormat::UYVY: - bitspertiler = 32; break; + bitspertiler = 32; + break; case PixelFormat::ARGB8888: case PixelFormat::XRGB8888: - bitspertiler = 32; break; + bitspertiler = 32; + break; case PixelFormat::RGB565: - bitspertiler = 16; break; + bitspertiler = 16; + break; default: throw invalid_argument("unimplemented format"); } switch (bitspertiler) { - case 8: flags |= OMAP_BO_TILED_8; break; - case 16: flags |= OMAP_BO_TILED_16; break; - case 32: flags |= OMAP_BO_TILED_32; break; + case 8: + flags |= OMAP_BO_TILED_8; + break; + case 16: + flags |= OMAP_BO_TILED_16; + break; + case 32: + flags |= OMAP_BO_TILED_32; + break; default: throw invalid_argument("bad bitspertiler"); } @@ -125,7 +134,7 @@ void OmapFramebuffer::Create(Flags buffer_flags) uint32_t offsets[4] = { m_planes[0].offset, m_planes[1].offset }; uint32_t id; int r = drmModeAddFB2(card().fd(), width(), height(), (uint32_t)format(), - bo_handles, pitches, offsets, &id, 0); + bo_handles, pitches, offsets, &id, 0); if (r) throw invalid_argument(string("drmModeAddFB2 failed: ") + strerror(errno)); @@ -181,4 +190,4 @@ int OmapFramebuffer::prime_fd(unsigned int plane) return fd; } -} +} // namespace kms diff --git a/kms++/src/pixelformats.cpp b/kms++/src/pixelformats.cpp index 2c60c1e..d739efd 100644 --- a/kms++/src/pixelformats.cpp +++ b/kms++/src/pixelformats.cpp @@ -8,54 +8,266 @@ namespace kms { static const map format_info_array = { /* YUV packed */ - { PixelFormat::UYVY, { PixelColorType::YUV, 1, { { 16, 2, 1 } }, } }, - { PixelFormat::YUYV, { PixelColorType::YUV, 1, { { 16, 2, 1 } }, } }, - { PixelFormat::YVYU, { PixelColorType::YUV, 1, { { 16, 2, 1 } }, } }, - { PixelFormat::VYUY, { PixelColorType::YUV, 1, { { 16, 2, 1 } }, } }, + { PixelFormat::UYVY, { + PixelColorType::YUV, + 1, + { { 16, 2, 1 } }, + } }, + { PixelFormat::YUYV, { + PixelColorType::YUV, + 1, + { { 16, 2, 1 } }, + } }, + { PixelFormat::YVYU, { + PixelColorType::YUV, + 1, + { { 16, 2, 1 } }, + } }, + { PixelFormat::VYUY, { + PixelColorType::YUV, + 1, + { { 16, 2, 1 } }, + } }, /* YUV semi-planar */ - { PixelFormat::NV12, { PixelColorType::YUV, 2, { { 8, 1, 1, }, { 8, 2, 2 } }, } }, - { PixelFormat::NV21, { PixelColorType::YUV, 2, { { 8, 1, 1, }, { 8, 2, 2 } }, } }, - { PixelFormat::NV16, { PixelColorType::YUV, 2, { { 8, 1, 1, }, { 8, 2, 1 } }, } }, - { PixelFormat::NV61, { PixelColorType::YUV, 2, { { 8, 1, 1, }, { 8, 2, 1 } }, } }, + { PixelFormat::NV12, { + PixelColorType::YUV, + 2, + { { + 8, + 1, + 1, + }, + { 8, 2, 2 } }, + } }, + { PixelFormat::NV21, { + PixelColorType::YUV, + 2, + { { + 8, + 1, + 1, + }, + { 8, 2, 2 } }, + } }, + { PixelFormat::NV16, { + PixelColorType::YUV, + 2, + { { + 8, + 1, + 1, + }, + { 8, 2, 1 } }, + } }, + { PixelFormat::NV61, { + PixelColorType::YUV, + 2, + { { + 8, + 1, + 1, + }, + { 8, 2, 1 } }, + } }, /* YUV planar */ - { PixelFormat::YUV420, { PixelColorType::YUV, 3, { { 8, 1, 1, }, { 8, 2, 2 }, { 8, 2, 2 } }, } }, - { PixelFormat::YVU420, { PixelColorType::YUV, 3, { { 8, 1, 1, }, { 8, 2, 2 }, { 8, 2, 2 } }, } }, - { PixelFormat::YUV422, { PixelColorType::YUV, 3, { { 8, 1, 1, }, { 8, 2, 1 }, { 8, 2, 1 } }, } }, - { PixelFormat::YVU422, { PixelColorType::YUV, 3, { { 8, 1, 1, }, { 8, 2, 1 }, { 8, 2, 1 } }, } }, - { PixelFormat::YUV444, { PixelColorType::YUV, 3, { { 8, 1, 1, }, { 8, 1, 1 }, { 8, 1, 1 } }, } }, - { PixelFormat::YVU444, { PixelColorType::YUV, 3, { { 8, 1, 1, }, { 8, 1, 1 }, { 8, 1, 1 } }, } }, + { PixelFormat::YUV420, { + PixelColorType::YUV, + 3, + { { + 8, + 1, + 1, + }, + { 8, 2, 2 }, + { 8, 2, 2 } }, + } }, + { PixelFormat::YVU420, { + PixelColorType::YUV, + 3, + { { + 8, + 1, + 1, + }, + { 8, 2, 2 }, + { 8, 2, 2 } }, + } }, + { PixelFormat::YUV422, { + PixelColorType::YUV, + 3, + { { + 8, + 1, + 1, + }, + { 8, 2, 1 }, + { 8, 2, 1 } }, + } }, + { PixelFormat::YVU422, { + PixelColorType::YUV, + 3, + { { + 8, + 1, + 1, + }, + { 8, 2, 1 }, + { 8, 2, 1 } }, + } }, + { PixelFormat::YUV444, { + PixelColorType::YUV, + 3, + { { + 8, + 1, + 1, + }, + { 8, 1, 1 }, + { 8, 1, 1 } }, + } }, + { PixelFormat::YVU444, { + PixelColorType::YUV, + 3, + { { + 8, + 1, + 1, + }, + { 8, 1, 1 }, + { 8, 1, 1 } }, + } }, /* RGB8 */ - { PixelFormat::RGB332, { PixelColorType::RGB, 1, { { 8, 1, 1 } }, } }, + { PixelFormat::RGB332, { + PixelColorType::RGB, + 1, + { { 8, 1, 1 } }, + } }, /* RGB16 */ - { PixelFormat::RGB565, { PixelColorType::RGB, 1, { { 16, 1, 1 } }, } }, - { PixelFormat::BGR565, { PixelColorType::RGB, 1, { { 16, 1, 1 } }, } }, - { PixelFormat::XRGB4444, { PixelColorType::RGB, 1, { { 16, 1, 1 } }, } }, - { PixelFormat::XRGB1555, { PixelColorType::RGB, 1, { { 16, 1, 1 } }, } }, - { PixelFormat::ARGB4444, { PixelColorType::RGB, 1, { { 16, 1, 1 } }, } }, - { PixelFormat::ARGB1555, { PixelColorType::RGB, 1, { { 16, 1, 1 } }, } }, + { PixelFormat::RGB565, { + PixelColorType::RGB, + 1, + { { 16, 1, 1 } }, + } }, + { PixelFormat::BGR565, { + PixelColorType::RGB, + 1, + { { 16, 1, 1 } }, + } }, + { PixelFormat::XRGB4444, { + PixelColorType::RGB, + 1, + { { 16, 1, 1 } }, + } }, + { PixelFormat::XRGB1555, { + PixelColorType::RGB, + 1, + { { 16, 1, 1 } }, + } }, + { PixelFormat::ARGB4444, { + PixelColorType::RGB, + 1, + { { 16, 1, 1 } }, + } }, + { PixelFormat::ARGB1555, { + PixelColorType::RGB, + 1, + { { 16, 1, 1 } }, + } }, /* RGB24 */ - { PixelFormat::RGB888, { PixelColorType::RGB, 1, { { 24, 1, 1 } }, } }, - { PixelFormat::BGR888, { PixelColorType::RGB, 1, { { 24, 1, 1 } }, } }, + { PixelFormat::RGB888, { + PixelColorType::RGB, + 1, + { { 24, 1, 1 } }, + } }, + { PixelFormat::BGR888, { + PixelColorType::RGB, + 1, + { { 24, 1, 1 } }, + } }, /* RGB32 */ - { PixelFormat::XRGB8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::XBGR8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::RGBX8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::BGRX8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, + { PixelFormat::XRGB8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::XBGR8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::RGBX8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::BGRX8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, - { PixelFormat::ARGB8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::ABGR8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::RGBA8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::BGRA8888, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, + { PixelFormat::ARGB8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::ABGR8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::RGBA8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::BGRA8888, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, - { PixelFormat::XRGB2101010, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::XBGR2101010, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::RGBX1010102, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::BGRX1010102, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, + { PixelFormat::XRGB2101010, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::XBGR2101010, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::RGBX1010102, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::BGRX1010102, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, - { PixelFormat::ARGB2101010, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::ABGR2101010, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::RGBA1010102, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, - { PixelFormat::BGRA1010102, { PixelColorType::RGB, 1, { { 32, 1, 1 } }, } }, + { PixelFormat::ARGB2101010, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::ABGR2101010, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::RGBA1010102, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, + { PixelFormat::BGRA1010102, { + PixelColorType::RGB, + 1, + { { 32, 1, 1 } }, + } }, }; const struct PixelFormatInfo& get_pixel_format_info(PixelFormat format) @@ -66,4 +278,4 @@ const struct PixelFormatInfo& get_pixel_format_info(PixelFormat format) return format_info_array.at(format); } -} +} // namespace kms diff --git a/kms++/src/plane.cpp b/kms++/src/plane.cpp index ffab3b5..bd426dd 100644 --- a/kms++/src/plane.cpp +++ b/kms++/src/plane.cpp @@ -13,14 +13,12 @@ using namespace std; namespace kms { - -struct PlanePriv -{ +struct PlanePriv { drmModePlanePtr drm_plane; }; -Plane::Plane(Card &card, uint32_t id, uint32_t idx) - :DrmPropObject(card, id, DRM_MODE_OBJECT_PLANE, idx) +Plane::Plane(Card& card, uint32_t id, uint32_t idx) + : DrmPropObject(card, id, DRM_MODE_OBJECT_PLANE, idx) { m_priv = new PlanePriv(); m_priv->drm_plane = drmModeGetPlane(this->card().fd(), this->id()); @@ -76,7 +74,6 @@ vector Plane::get_possible_crtcs() const for (uint32_t crtc_mask = m_priv->drm_plane->possible_crtcs; crtc_mask; idx++, crtc_mask >>= 1) { - if ((crtc_mask & 1) == 0) continue; @@ -97,7 +94,7 @@ vector Plane::get_formats() const vector r; for (unsigned i = 0; i < p->count_formats; ++i) - r.push_back((PixelFormat) p->formats[i]); + r.push_back((PixelFormat)p->formats[i]); return r; } @@ -137,4 +134,4 @@ uint32_t Plane::gamma_size() const return m_priv->drm_plane->gamma_size; } -} +} // namespace kms diff --git a/kms++/src/property.cpp b/kms++/src/property.cpp index ee79922..0484f0e 100644 --- a/kms++/src/property.cpp +++ b/kms++/src/property.cpp @@ -7,9 +7,7 @@ using namespace std; namespace kms { - -struct PropertyPriv -{ +struct PropertyPriv { drmModePropertyPtr drm_prop; }; @@ -84,4 +82,4 @@ vector Property::get_blob_ids() const drmModePropertyPtr p = m_priv->drm_prop; return vector(p->blob_ids, p->blob_ids + p->count_blobs); } -} +} // namespace kms diff --git a/kms++/src/videomode.cpp b/kms++/src/videomode.cpp index 066896f..b039059 100644 --- a/kms++/src/videomode.cpp +++ b/kms++/src/videomode.cpp @@ -11,7 +11,6 @@ using namespace std; namespace kms { - bool Videomode::valid() const { return !!clock; @@ -147,7 +146,7 @@ Videomode videomode_from_timings(uint32_t clock_khz, uint16_t hact, uint16_t hfp, uint16_t hsw, uint16_t hbp, uint16_t vact, uint16_t vfp, uint16_t vsw, uint16_t vbp) { - Videomode m { }; + Videomode m{}; m.clock = clock_khz; m.hdisplay = hact; @@ -163,4 +162,4 @@ Videomode videomode_from_timings(uint32_t clock_khz, return m; } -} +} // namespace kms -- cgit v1.2.3