diff options
author | Tomi Valkeinen <tomi.valkeinen@iki.fi> | 2015-09-28 01:13:34 +0300 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@iki.fi> | 2015-09-28 01:13:34 +0300 |
commit | 009828beac9bfe9c36d336a4de0d297f90aece52 (patch) | |
tree | 3ea6b22f2036dcc0c23c459ce53bfc2ad282e3e7 /libkms++/drmobject.h |
Initial version
Diffstat (limited to 'libkms++/drmobject.h')
-rw-r--r-- | libkms++/drmobject.h | 44 |
1 files changed, 44 insertions, 0 deletions
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 <map> + +#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<uint32_t, uint64_t> m_prop_values; + uint32_t m_object_type; + uint32_t m_idx; +}; +} |