kodi
DRMCrtc.h
1 /*
2  * Copyright (C) 2005-2020 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "DRMObject.h"
12 
13 namespace KODI
14 {
15 namespace WINDOWING
16 {
17 namespace GBM
18 {
19 
20 class CDRMCrtc : public CDRMObject
21 {
22 public:
23  explicit CDRMCrtc(int fd, uint32_t crtc);
24  CDRMCrtc(const CDRMCrtc&) = delete;
25  CDRMCrtc& operator=(const CDRMCrtc&) = delete;
26  ~CDRMCrtc() = default;
27 
28  uint32_t GetCrtcId() const { return m_crtc->crtc_id; }
29  uint32_t GetBufferId() const { return m_crtc->buffer_id; }
30  uint32_t GetX() const { return m_crtc->x; }
31  uint32_t GetY() const { return m_crtc->y; }
32  drmModeModeInfoPtr GetMode() const { return &m_crtc->mode; }
33  bool GetModeValid() const { return m_crtc->mode_valid != 0; }
34 
35 private:
36  struct DrmModeCrtcDeleter
37  {
38  void operator()(drmModeCrtc* p) { drmModeFreeCrtc(p); }
39  };
40 
41  std::unique_ptr<drmModeCrtc, DrmModeCrtcDeleter> m_crtc;
42 };
43 
44 } // namespace GBM
45 } // namespace WINDOWING
46 } // namespace KODI
Definition: DRMCrtc.h:20
Definition: DRMObject.h:27
Definition: AudioDecoder.h:18