Merge pull request #26287 from CrystalP/ref-savefilestatejob
[xbmc.git] / xbmc / windowing / gbm / drm / DRMCrtc.h
bloba1aadc2fadbff1297c2cb07adbca93c5318e416e
1 /*
2 * Copyright (C) 2005-2020 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "DRMObject.h"
13 namespace KODI
15 namespace WINDOWING
17 namespace GBM
20 class CDRMCrtc : public CDRMObject
22 public:
23 explicit CDRMCrtc(int fd, uint32_t crtc);
24 CDRMCrtc(const CDRMCrtc&) = delete;
25 CDRMCrtc& operator=(const CDRMCrtc&) = delete;
26 ~CDRMCrtc() = default;
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; }
35 private:
36 struct DrmModeCrtcDeleter
38 void operator()(drmModeCrtc* p) { drmModeFreeCrtc(p); }
41 std::unique_ptr<drmModeCrtc, DrmModeCrtcDeleter> m_crtc;
44 } // namespace GBM
45 } // namespace WINDOWING
46 } // namespace KODI