mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Initial megacommit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
164
Source/Plugins/Plugin_PadDX9/Src/DIHandler.h
Normal file
164
Source/Plugins/Plugin_PadDX9/Src/DIHandler.h
Normal file
@ -0,0 +1,164 @@
|
||||
// Copyright (C) 2003-2008 Dolphin Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official SVN repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// M O D U L E B E G I N ///////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
// Struct to store the current input state
|
||||
struct SControllerInput
|
||||
{
|
||||
float fMainLR;
|
||||
float fMainUP;
|
||||
float fCPadLR;
|
||||
float fCPadUP;
|
||||
float fDPadLR;
|
||||
float fDPadUP;
|
||||
|
||||
bool bButtonStart;
|
||||
bool bButtonA;
|
||||
bool bButtonB;
|
||||
bool bButtonX;
|
||||
bool bButtonY;
|
||||
bool bButtonZ;
|
||||
|
||||
float fTriggerL;
|
||||
float fTriggerR;
|
||||
};
|
||||
|
||||
class CDIHandler
|
||||
{
|
||||
public:
|
||||
CDIHandler(void);
|
||||
|
||||
~CDIHandler(void);
|
||||
|
||||
HRESULT InitInput(HWND _hWnd);
|
||||
void ConfigInput(void);
|
||||
void CleanupDirectInput(void);
|
||||
void UpdateInput(void);
|
||||
|
||||
const SControllerInput& GetControllerInput(unsigned int _number)
|
||||
{
|
||||
return m_controllerInput[_number];
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
enum
|
||||
{
|
||||
MAX_AXIS = 127
|
||||
};
|
||||
|
||||
enum INPUT_SEMANTICS
|
||||
{
|
||||
// Gameplay semantics
|
||||
INPUT_MAIN_AXIS_LR=1,
|
||||
INPUT_MAIN_AXIS_UD,
|
||||
INPUT_MAIN_LEFT,
|
||||
INPUT_MAIN_RIGHT,
|
||||
INPUT_MAIN_UP,
|
||||
INPUT_MAIN_DOWN,
|
||||
INPUT_CPAD_AXIS_LR,
|
||||
INPUT_CPAD_AXIS_UP,
|
||||
INPUT_CPAD_LEFT,
|
||||
INPUT_CPAD_RIGHT,
|
||||
INPUT_CPAD_UP,
|
||||
INPUT_CPAD_DOWN,
|
||||
INPUT_DPAD_AXIS_LR,
|
||||
INPUT_DPAD_AXIS_UP,
|
||||
INPUT_DPAD_LEFT,
|
||||
INPUT_DPAD_RIGHT,
|
||||
INPUT_DPAD_UP,
|
||||
INPUT_DPAD_DOWN,
|
||||
INPUT_BUTTON_START,
|
||||
INPUT_BUTTON_A,
|
||||
INPUT_BUTTON_B,
|
||||
INPUT_BUTTON_X,
|
||||
INPUT_BUTTON_Y,
|
||||
INPUT_BUTTON_Z,
|
||||
INPUT_BUTTON_L,
|
||||
INPUT_BUTTON_R
|
||||
};
|
||||
|
||||
// Struct to store the current input state
|
||||
struct SUserInput
|
||||
{
|
||||
bool bMainLeft;
|
||||
bool bMainRight;
|
||||
bool bMainUp;
|
||||
bool bMainDown;
|
||||
float fMainLR;
|
||||
float fMainUP;
|
||||
|
||||
bool bCPadLeft;
|
||||
bool bCPadRight;
|
||||
bool bCPadUp;
|
||||
bool bCPadDown;
|
||||
float fCPadLR;
|
||||
float fCPadUP;
|
||||
|
||||
bool bDPadLeft;
|
||||
bool bDPadRight;
|
||||
bool bDPadUp;
|
||||
bool bDPadDown;
|
||||
float fDPadLR;
|
||||
float fDPadUP;
|
||||
|
||||
bool bButtonStart;
|
||||
bool bButtonA;
|
||||
bool bButtonB;
|
||||
bool bButtonX;
|
||||
bool bButtonY;
|
||||
bool bButtonZ;
|
||||
|
||||
bool fTriggerL;
|
||||
bool fTriggerR;
|
||||
};
|
||||
|
||||
// handle to window that "owns" the DInput
|
||||
HWND m_hWnd;
|
||||
|
||||
static DIACTION m_rgGameAction[];
|
||||
|
||||
// DirectInput multiplayer device manager
|
||||
CMultiplayerInputDeviceManager* m_pInputDeviceManager;
|
||||
|
||||
// Action format for game play
|
||||
DIACTIONFORMAT m_diafGame;
|
||||
|
||||
// Struct for storing user input
|
||||
SControllerInput m_controllerInput[4];
|
||||
|
||||
// Number of players in the game
|
||||
DWORD m_dwNumPlayers;
|
||||
|
||||
void CleanupDeviceStateStructs(void);
|
||||
|
||||
HRESULT ChangeNumPlayers(DWORD _dwNumPlayers, BOOL _bResetOwnership, BOOL _bResetMappings);
|
||||
|
||||
static HRESULT CALLBACK StaticInputAddDeviceCB(CMultiplayerInputDeviceManager::PlayerInfo* _pPlayerInfo,
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* _pDeviceInfo,
|
||||
const DIDEVICEINSTANCE* _pdidi,
|
||||
LPVOID _pParam);
|
||||
|
||||
HRESULT InputAddDeviceCB(CMultiplayerInputDeviceManager::PlayerInfo* _pPlayerInfo,
|
||||
CMultiplayerInputDeviceManager::DeviceInfo* _pDeviceInfo,
|
||||
const DIDEVICEINSTANCE* _pdidi);
|
||||
};
|
Reference in New Issue
Block a user