From 009828beac9bfe9c36d336a4de0d297f90aece52 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 28 Sep 2015 01:13:34 +0300 Subject: Initial version --- libkms++/drmobject.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 libkms++/drmobject.h (limited to 'libkms++/drmobject.h') diff --git a/libkms++/drmobject.h b/libkms++/drmobject.h new file mode 100644 index 0000000..5c945f9 --- /dev/null +++ b/libkms++/drmobject.h @@ -0,0 +1,44 @@ +#pragma once + +#include + +#include "decls.h" + +namespace kms +{ + +class DrmObject +{ +public: + DrmObject(Card& card, uint32_t object_type); + DrmObject(Card& card, uint32_t id, uint32_t object_type, uint32_t idx = 0); + virtual ~DrmObject(); + + DrmObject(const DrmObject& other) = delete; + DrmObject& operator=(const DrmObject& other) = delete; + + virtual void setup() { }; + + virtual void print_short() const = 0; + void print_props() const; + + uint32_t id() const { return m_id; } + Card& card() const { return m_card; } + + uint32_t object_type() const { return m_object_type; } + uint32_t idx() const { return m_idx; } + + void refresh_props(); + uint64_t get_prop_value(uint32_t id) const; + uint64_t get_prop_value(const char *name) const; + +protected: + uint32_t m_id; // protected for Framebuffer... + +private: + Card& m_card; + std::map m_prop_values; + uint32_t m_object_type; + uint32_t m_idx; +}; +} -- cgit v1.2.3