diff options
Diffstat (limited to 'kms++/drmobject.h')
-rw-r--r-- | kms++/drmobject.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/kms++/drmobject.h b/kms++/drmobject.h new file mode 100644 index 0000000..a939aa7 --- /dev/null +++ b/kms++/drmobject.h @@ -0,0 +1,40 @@ +#pragma once + +#include <map> + +#include "decls.h" + +namespace kms +{ + +class DrmObject +{ + friend class Card; +public: + DrmObject(const DrmObject& other) = delete; + DrmObject& operator=(const DrmObject& other) = delete; + + 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; } + +protected: + DrmObject(Card& card, uint32_t object_type); + DrmObject(Card& card, uint32_t id, uint32_t object_type, uint32_t idx = 0); + + virtual ~DrmObject(); + + virtual void setup() { } + + virtual void set_id(uint32_t id); + +private: + Card& m_card; + + uint32_t m_id; + uint32_t m_object_type; + uint32_t m_idx; +}; +} |