kodi
GUIPlaybackControl.h
1 /*
2  * Copyright (C) 2018 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 "cores/RetroPlayer/playback/IPlaybackControl.h"
12 
13 namespace KODI
14 {
15 namespace RETRO
16 {
21 {
22 public:
24 
25  ~CGUIPlaybackControl() override;
26 
27  // Implementation of IPlaybackControl
28  void FrameMove() override;
29 
30 private:
31  enum class GuiState
32  {
33  UNKNOWN,
34  FULLSCREEN,
35  MENU_PAUSED,
36  MENU_PLAYING,
37  };
38 
39  // Helper functions
40  GuiState NextState(bool bFullscreen, bool bInMenu, bool bInBackground);
41  static double GetTargetSpeed(GuiState state);
42  static bool AcceptsInput(GuiState state);
43 
44  // Construction parameters
45  IPlaybackCallback& m_callback;
46 
47  // State parameters
48  GuiState m_state = GuiState::UNKNOWN;
49  double m_previousSpeed = 0.0;
50 };
51 } // namespace RETRO
52 } // namespace KODI
Class to control playback by monitoring OSD status.
Definition: GUIPlaybackControl.h:20
The playback client being controlled.
Definition: IPlaybackControl.h:18
Class that can control playback and input.
Definition: IPlaybackControl.h:41
Definition: AudioDecoder.h:18
void FrameMove() override
Called every frame.
Definition: GUIPlaybackControl.cpp:25