d9aeb08e8036df481fb01b7b638fd376b21970db
[android/external-libkmsxx.git] / libkms++ / atomicreq.h
1 #pragma once
3 #include <cstdint>
4 #include <string>
6 struct _drmModeAtomicReq;
8 #include "decls.h"
10 namespace kms
11 {
12 class AtomicReq
13 {
14 public:
15         AtomicReq(Card& card);
16         ~AtomicReq();
18         AtomicReq(const AtomicReq& other) = delete;
19         AtomicReq& operator=(const AtomicReq& other) = delete;
21         void add(uint32_t ob_id, uint32_t prop_id, uint64_t value);
22         void add(DrmObject *ob, Property *prop, uint64_t value);
23         void add(DrmObject *ob, const std::string& prop, uint64_t value);
25         int test();
26         int commit(void* data);
27         int commit_sync();
29 private:
30         Card& m_card;
31         _drmModeAtomicReq* m_req;
32 };
34 }