mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 13:57:57 -07:00
1a12876330
This is an extension of host input authority that allows switching the host (who has zero latency) on the fly, at the further expense of everyone else's latency. This is useful for turn-based games where the latency of players not on their turn doesn't matter. To become the so-called golfer, the player simply presses a hotkey. When the host is the golfer, latency is identical to normal host input authority.
73 lines
1.4 KiB
C++
73 lines
1.4 KiB
C++
// Copyright 2017 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <thread>
|
|
|
|
#include <QObject>
|
|
|
|
#include "Common/Flag.h"
|
|
#include "InputCommon/InputProfile.h"
|
|
|
|
class HotkeyScheduler : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit HotkeyScheduler();
|
|
~HotkeyScheduler();
|
|
|
|
void Start();
|
|
void Stop();
|
|
signals:
|
|
void Open();
|
|
void EjectDisc();
|
|
void ChangeDisc();
|
|
|
|
void ExitHotkey();
|
|
void ActivateChat();
|
|
void RequestGolfControl();
|
|
void FullScreenHotkey();
|
|
void StopHotkey();
|
|
void ResetHotkey();
|
|
void TogglePauseHotkey();
|
|
void ScreenShotHotkey();
|
|
void RefreshGameListHotkey();
|
|
void SetStateSlotHotkey(int slot);
|
|
void StateLoadSlotHotkey();
|
|
void StateSaveSlotHotkey();
|
|
void StateLoadSlot(int state);
|
|
void StateSaveSlot(int state);
|
|
void StateLoadLastSaved(int state);
|
|
void StateSaveOldest();
|
|
void StateLoadFile();
|
|
void StateSaveFile();
|
|
void StateLoadUndo();
|
|
void StateSaveUndo();
|
|
void StartRecording();
|
|
void ExportRecording();
|
|
void ToggleReadOnlyMode();
|
|
void ConnectWiiRemote(int id);
|
|
|
|
void Step();
|
|
void StepOver();
|
|
void StepOut();
|
|
void Skip();
|
|
|
|
void ShowPC();
|
|
void SetPC();
|
|
|
|
void ToggleBreakpoint();
|
|
void AddBreakpoint();
|
|
|
|
private:
|
|
void Run();
|
|
void CheckDebuggingHotkeys();
|
|
|
|
Common::Flag m_stop_requested;
|
|
std::thread m_thread;
|
|
|
|
InputProfile::ProfileCycler m_profile_cycler;
|
|
};
|