Merge pull request #26362 from ksooo/estuary-rework-pvr-info-dialog
[xbmc.git] / xbmc / windowing / android / WinSystemAndroid.h
blobe4d9b9b06458c3de873b8422a4d2d7053a9a0115
1 /*
2 * Copyright (C) 2005-2018 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 "AndroidUtils.h"
12 #include "rendering/gles/RenderSystemGLES.h"
13 #include "system_egl.h"
14 #include "threads/CriticalSection.h"
15 #include "threads/Timer.h"
16 #include "utils/HDRCapabilities.h"
17 #include "windowing/WinSystem.h"
19 #include <memory>
21 class CDecoderFilterManager;
22 class IDispResource;
23 class CNativeWindow;
25 class CWinSystemAndroid : public CWinSystemBase, public ITimerCallback
27 public:
28 CWinSystemAndroid();
29 ~CWinSystemAndroid() override;
31 bool InitWindowSystem() override;
32 bool DestroyWindowSystem() override;
34 bool CreateNewWindow(const std::string& name,
35 bool fullScreen,
36 RESOLUTION_INFO& res) override;
38 bool DestroyWindow() override;
39 void UpdateResolutions() override;
41 void InitiateModeChange();
42 bool IsHdmiModeTriggered() const { return m_HdmiModeTriggered; }
43 void SetHdmiState(bool connected);
45 void UpdateDisplayModes();
47 bool HasCursor() override { return false; }
49 bool Minimize() override;
50 bool Hide() override;
51 bool Show(bool raise = true) override;
52 void Register(IDispResource *resource) override;
53 void Unregister(IDispResource *resource) override;
55 void MessagePush(XBMC_Event *newEvent);
57 // winevents override
58 bool MessagePump() override;
59 bool IsHDRDisplay() override;
61 CHDRCapabilities GetDisplayHDRCapabilities() const override;
62 float GetGuiSdrPeakLuminance() const override;
64 protected:
65 std::unique_ptr<KODI::WINDOWING::IOSScreenSaver> GetOSScreenSaverImpl() override;
66 void OnTimeout() override;
68 CAndroidUtils *m_android;
70 EGLDisplay m_nativeDisplay = EGL_NO_DISPLAY;
71 std::shared_ptr<CNativeWindow> m_nativeWindow;
73 int m_displayWidth;
74 int m_displayHeight;
76 RENDER_STEREO_MODE m_stereo_mode;
78 CTimer *m_dispResetTimer;
80 CCriticalSection m_resourceSection;
81 std::vector<IDispResource*> m_resources;
82 CDecoderFilterManager *m_decoderFilterManager;
84 private:
85 bool m_HdmiModeTriggered = false;
86 void UpdateResolutions(bool bUpdateDesktopRes);