summaryrefslogtreecommitdiffstats
path: root/xbmc/cores/RetroPlayer/RetroPlayerInput.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/cores/RetroPlayer/RetroPlayerInput.cpp
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/cores/RetroPlayer/RetroPlayerInput.cpp')
-rw-r--r--xbmc/cores/RetroPlayer/RetroPlayerInput.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/xbmc/cores/RetroPlayer/RetroPlayerInput.cpp b/xbmc/cores/RetroPlayer/RetroPlayerInput.cpp
new file mode 100644
index 0000000..0e6f813
--- /dev/null
+++ b/xbmc/cores/RetroPlayer/RetroPlayerInput.cpp
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2017-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.
+ */
+
+#include "RetroPlayerInput.h"
+
+#include "cores/RetroPlayer/process/RPProcessInfo.h"
+#include "cores/RetroPlayer/rendering/RenderContext.h"
+#include "peripherals/EventPollHandle.h"
+#include "peripherals/Peripherals.h"
+#include "utils/log.h"
+
+using namespace KODI;
+using namespace RETRO;
+
+CRetroPlayerInput::CRetroPlayerInput(PERIPHERALS::CPeripherals& peripheralManager,
+ CRPProcessInfo& processInfo,
+ GAME::GameClientPtr gameClient)
+ : m_peripheralManager(peripheralManager),
+ m_processInfo(processInfo),
+ m_gameClient(std::move(gameClient))
+{
+ CLog::Log(LOGDEBUG, "RetroPlayer[INPUT]: Initializing input");
+
+ m_inputPollHandle = m_peripheralManager.RegisterEventPoller();
+}
+
+CRetroPlayerInput::~CRetroPlayerInput()
+{
+ CLog::Log(LOGDEBUG, "RetroPlayer[INPUT]: Deinitializing input");
+
+ m_inputPollHandle.reset();
+}
+
+void CRetroPlayerInput::StartAgentManager()
+{
+ if (!m_bAgentManagerStarted)
+ {
+ m_bAgentManagerStarted = true;
+ m_processInfo.GetRenderContext().StartAgentManager(m_gameClient);
+ }
+}
+
+void CRetroPlayerInput::StopAgentManager()
+{
+ if (m_bAgentManagerStarted)
+ {
+ m_bAgentManagerStarted = false;
+ m_processInfo.GetRenderContext().StopAgentManager();
+ }
+}
+
+void CRetroPlayerInput::SetSpeed(double speed)
+{
+ if (speed != 0)
+ m_inputPollHandle->Activate();
+ else
+ m_inputPollHandle->Deactivate();
+}
+
+void CRetroPlayerInput::EnableInput(bool bEnabled)
+{
+ m_bEnabled = bEnabled;
+}
+
+void CRetroPlayerInput::PollInput()
+{
+ m_inputPollHandle->HandleEvents(true);
+}