forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			170 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright 2015 Dolphin Emulator Project
 | 
						|
// Licensed under GPLv2+
 | 
						|
// Refer to the license.txt file included.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <string>
 | 
						|
#include "InputCommon/ControllerEmu.h"
 | 
						|
#include "InputCommon/InputConfig.h"
 | 
						|
 | 
						|
enum Hotkey
 | 
						|
{
 | 
						|
	HK_OPEN,
 | 
						|
	HK_CHANGE_DISC,
 | 
						|
	HK_REFRESH_LIST,
 | 
						|
 | 
						|
	HK_PLAY_PAUSE,
 | 
						|
	HK_STOP,
 | 
						|
	HK_RESET,
 | 
						|
	HK_FRAME_ADVANCE,
 | 
						|
	HK_FRAME_ADVANCE_DECREASE_SPEED,
 | 
						|
	HK_FRAME_ADVANCE_INCREASE_SPEED,
 | 
						|
	HK_FRAME_ADVANCE_RESET_SPEED,
 | 
						|
 | 
						|
	HK_START_RECORDING,
 | 
						|
	HK_PLAY_RECORDING,
 | 
						|
	HK_EXPORT_RECORDING,
 | 
						|
	HK_READ_ONLY_MODE,
 | 
						|
 | 
						|
	HK_FULLSCREEN,
 | 
						|
	HK_SCREENSHOT,
 | 
						|
	HK_EXIT,
 | 
						|
 | 
						|
	HK_WIIMOTE1_CONNECT,
 | 
						|
	HK_WIIMOTE2_CONNECT,
 | 
						|
	HK_WIIMOTE3_CONNECT,
 | 
						|
	HK_WIIMOTE4_CONNECT,
 | 
						|
	HK_BALANCEBOARD_CONNECT,
 | 
						|
 | 
						|
	HK_VOLUME_DOWN,
 | 
						|
	HK_VOLUME_UP,
 | 
						|
	HK_VOLUME_TOGGLE_MUTE,
 | 
						|
 | 
						|
	HK_INCREASE_IR,
 | 
						|
	HK_DECREASE_IR,
 | 
						|
 | 
						|
	HK_TOGGLE_AR,
 | 
						|
	HK_TOGGLE_EFBCOPIES,
 | 
						|
	HK_TOGGLE_FOG,
 | 
						|
	HK_TOGGLE_THROTTLE,
 | 
						|
 | 
						|
	HK_DECREASE_FRAME_LIMIT,
 | 
						|
	HK_INCREASE_FRAME_LIMIT,
 | 
						|
 | 
						|
	HK_FREELOOK_DECREASE_SPEED,
 | 
						|
	HK_FREELOOK_INCREASE_SPEED,
 | 
						|
	HK_FREELOOK_RESET_SPEED,
 | 
						|
	HK_FREELOOK_UP,
 | 
						|
	HK_FREELOOK_DOWN,
 | 
						|
	HK_FREELOOK_LEFT,
 | 
						|
	HK_FREELOOK_RIGHT,
 | 
						|
	HK_FREELOOK_ZOOM_IN,
 | 
						|
	HK_FREELOOK_ZOOM_OUT,
 | 
						|
	HK_FREELOOK_RESET,
 | 
						|
 | 
						|
	HK_TOGGLE_STEREO_SBS,
 | 
						|
	HK_TOGGLE_STEREO_TAB,
 | 
						|
	HK_TOGGLE_STEREO_ANAGLYPH,
 | 
						|
	HK_TOGGLE_STEREO_3DVISION,
 | 
						|
 | 
						|
	HK_DECREASE_DEPTH,
 | 
						|
	HK_INCREASE_DEPTH,
 | 
						|
	HK_DECREASE_CONVERGENCE,
 | 
						|
	HK_INCREASE_CONVERGENCE,
 | 
						|
 | 
						|
	HK_LOAD_STATE_SLOT_1,
 | 
						|
	HK_LOAD_STATE_SLOT_2,
 | 
						|
	HK_LOAD_STATE_SLOT_3,
 | 
						|
	HK_LOAD_STATE_SLOT_4,
 | 
						|
	HK_LOAD_STATE_SLOT_5,
 | 
						|
	HK_LOAD_STATE_SLOT_6,
 | 
						|
	HK_LOAD_STATE_SLOT_7,
 | 
						|
	HK_LOAD_STATE_SLOT_8,
 | 
						|
	HK_LOAD_STATE_SLOT_9,
 | 
						|
	HK_LOAD_STATE_SLOT_10,
 | 
						|
 | 
						|
	HK_SAVE_STATE_SLOT_1,
 | 
						|
	HK_SAVE_STATE_SLOT_2,
 | 
						|
	HK_SAVE_STATE_SLOT_3,
 | 
						|
	HK_SAVE_STATE_SLOT_4,
 | 
						|
	HK_SAVE_STATE_SLOT_5,
 | 
						|
	HK_SAVE_STATE_SLOT_6,
 | 
						|
	HK_SAVE_STATE_SLOT_7,
 | 
						|
	HK_SAVE_STATE_SLOT_8,
 | 
						|
	HK_SAVE_STATE_SLOT_9,
 | 
						|
	HK_SAVE_STATE_SLOT_10,
 | 
						|
 | 
						|
	HK_SELECT_STATE_SLOT_1,
 | 
						|
	HK_SELECT_STATE_SLOT_2,
 | 
						|
	HK_SELECT_STATE_SLOT_3,
 | 
						|
	HK_SELECT_STATE_SLOT_4,
 | 
						|
	HK_SELECT_STATE_SLOT_5,
 | 
						|
	HK_SELECT_STATE_SLOT_6,
 | 
						|
	HK_SELECT_STATE_SLOT_7,
 | 
						|
	HK_SELECT_STATE_SLOT_8,
 | 
						|
	HK_SELECT_STATE_SLOT_9,
 | 
						|
	HK_SELECT_STATE_SLOT_10,
 | 
						|
 | 
						|
	HK_SAVE_STATE_SLOT_SELECTED,
 | 
						|
	HK_LOAD_STATE_SLOT_SELECTED,
 | 
						|
 | 
						|
	HK_LOAD_LAST_STATE_1,
 | 
						|
	HK_LOAD_LAST_STATE_2,
 | 
						|
	HK_LOAD_LAST_STATE_3,
 | 
						|
	HK_LOAD_LAST_STATE_4,
 | 
						|
	HK_LOAD_LAST_STATE_5,
 | 
						|
	HK_LOAD_LAST_STATE_6,
 | 
						|
	HK_LOAD_LAST_STATE_7,
 | 
						|
	HK_LOAD_LAST_STATE_8,
 | 
						|
	HK_LOAD_LAST_STATE_9,
 | 
						|
	HK_LOAD_LAST_STATE_10,
 | 
						|
 | 
						|
	HK_SAVE_FIRST_STATE,
 | 
						|
	HK_UNDO_LOAD_STATE,
 | 
						|
	HK_UNDO_SAVE_STATE,
 | 
						|
	HK_SAVE_STATE_FILE,
 | 
						|
	HK_LOAD_STATE_FILE,
 | 
						|
 | 
						|
	HK_SWITCH_STEREOSCOPY_PRESET,
 | 
						|
	HK_USE_STEREOSCOPY_PRESET_0,
 | 
						|
	HK_USE_STEREOSCOPY_PRESET_1,
 | 
						|
	HK_USE_STEREOSCOPY_PRESET_2,
 | 
						|
 | 
						|
	NUM_HOTKEYS,
 | 
						|
};
 | 
						|
 | 
						|
struct HotkeyStatus
 | 
						|
{
 | 
						|
	u32 button[(NUM_HOTKEYS + 31) / 32];
 | 
						|
	s8  err;
 | 
						|
};
 | 
						|
 | 
						|
class HotkeyManager : public ControllerEmu
 | 
						|
{
 | 
						|
public:
 | 
						|
	HotkeyManager();
 | 
						|
	~HotkeyManager();
 | 
						|
 | 
						|
	void GetInput(HotkeyStatus* const hk);
 | 
						|
	std::string GetName() const override;
 | 
						|
	void LoadDefaults(const ControllerInterface& ciface) override;
 | 
						|
 | 
						|
private:
 | 
						|
	Buttons* m_keys[(NUM_HOTKEYS + 31) / 32];
 | 
						|
	ControlGroup* m_options;
 | 
						|
};
 | 
						|
 | 
						|
namespace HotkeyManagerEmu
 | 
						|
{
 | 
						|
	void Initialize(void* const hwnd);
 | 
						|
	void Shutdown();
 | 
						|
	void LoadConfig();
 | 
						|
 | 
						|
	InputConfig* GetConfig();
 | 
						|
	void GetStatus();
 | 
						|
	bool IsEnabled();
 | 
						|
	void Enable(bool enable_toggle);
 | 
						|
	bool IsPressed(int Id, bool held);
 | 
						|
}
 |