diff options
Diffstat (limited to 'xbmc/windowing/tvos/VideoSyncTVos.h')
-rw-r--r-- | xbmc/windowing/tvos/VideoSyncTVos.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/xbmc/windowing/tvos/VideoSyncTVos.h b/xbmc/windowing/tvos/VideoSyncTVos.h new file mode 100644 index 0000000..de78226 --- /dev/null +++ b/xbmc/windowing/tvos/VideoSyncTVos.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2015-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "guilib/DispResource.h" +#include "windowing/VideoSync.h" + +class CWinSystemTVOS; + +class CVideoSyncTVos : public CVideoSync, IDispResource +{ +public: + CVideoSyncTVos(void* clock, CWinSystemTVOS& winSystem) : CVideoSync(clock), m_winSystem(winSystem) + { + } + + // CVideoSync interface + bool Setup(PUPDATECLOCK func) override; + void Run(CEvent& stopEvent) override; + void Cleanup() override; + float GetFps() override; + + // IDispResource interface + void OnResetDisplay() override; + + // used in the displaylink callback + void TVosVblankHandler(); + +private: + // CVideoSyncDarwin interface + virtual bool InitDisplayLink(); + virtual void DeinitDisplayLink(); + + //timestamp of the last vblank, used for calculating how many vblanks happened + int64_t m_LastVBlankTime = 0; + CEvent m_abortEvent; + CWinSystemTVOS& m_winSystem; +}; |