mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
SimplePad: Added input recording options to the GUI, now we just need to get rerecording to work to, perhaps one can rewind the input counter when a state is loaded? So the input counter is saved in the savestate for the pad.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2184 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -240,23 +240,14 @@ void GetJoyState(CONTROLLER_STATE &_PadState, CONTROLLER_MAPPING _PadMapping, in
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/* Function: We have to avoid very big values to becuse some triggers are -0x8000 in the
|
||||
unpressed state (and then go from -0x8000 to 0x8000 as they are fully pressed) */
|
||||
bool AvoidValues(int value,int AdvancedMapFilter)
|
||||
bool AvoidValues(int value, bool NoTriggerFilter)
|
||||
{
|
||||
// Avoid detecting very small or very big (for triggers) values
|
||||
if( (value > -0x2000 && value < 0x2000) )// Small values
|
||||
{
|
||||
return true; //Avoid
|
||||
}
|
||||
if( (value > -0x2000 && value < 0x2000) // Small values
|
||||
|| ((value < -0x6000 || value > 0x6000) && !NoTriggerFilter)) // Big values
|
||||
return true; // Avoid
|
||||
else
|
||||
{
|
||||
if (!AdvancedMapFilter)
|
||||
{
|
||||
if (value < -0x6000 || value > 0x6000) // Big values
|
||||
return true; //Avoid
|
||||
}
|
||||
return false; //Keep
|
||||
}
|
||||
|
||||
return false; // Keep
|
||||
}
|
||||
|
||||
|
||||
@ -264,7 +255,7 @@ bool AvoidValues(int value,int AdvancedMapFilter)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void GetButton(SDL_Joystick *joy, int ControllerID, int buttons, int axes, int hats,
|
||||
int &KeyboardKey, int &value, int &type, int &pressed, bool &Succeed, bool &Stop,
|
||||
bool LeftRight, bool Axis, bool XInput, bool Button, bool Hat , int FilterSet)
|
||||
bool LeftRight, bool Axis, bool XInput, bool Button, bool Hat, bool NoTriggerFilter)
|
||||
{
|
||||
// It needs the wxWidgets excape keycode
|
||||
static const int WXK_ESCAPE = 27;
|
||||
@ -279,13 +270,12 @@ void GetButton(SDL_Joystick *joy, int ControllerID, int buttons, int axes, int h
|
||||
{
|
||||
value = SDL_JoystickGetAxis(joy, i);
|
||||
|
||||
if(AvoidValues(value,FilterSet)) continue; // Avoid values
|
||||
if(AvoidValues(value, NoTriggerFilter)) continue; // Avoid values
|
||||
|
||||
pressed = i + (LeftRight ? 1000 : 0); // Identify the analog triggers
|
||||
type = InputCommon::CTL_AXIS;
|
||||
Succeed = true;
|
||||
}
|
||||
Console::Print("Id: %i\n", joy);
|
||||
}
|
||||
|
||||
// Check for a hat
|
||||
@ -358,7 +348,7 @@ void GetButton(SDL_Joystick *joy, int ControllerID, int buttons, int axes, int h
|
||||
}
|
||||
}
|
||||
// Only accept the escape key
|
||||
else
|
||||
else if (KeyboardKey == WXK_ESCAPE)
|
||||
{
|
||||
Succeed = true;
|
||||
KeyboardKey = 0;
|
||||
|
@ -86,7 +86,7 @@ struct CONTROLLER_MAPPING // GC PAD MAPPING
|
||||
int triggertype; // Triggers range
|
||||
std::string SDiagonal;
|
||||
bool bSquareToCircle;
|
||||
bool bFilterSettings;
|
||||
bool bNoTriggerFilter;
|
||||
int eventnum; // Linux Event Number, Can't be found dynamically yet
|
||||
};
|
||||
|
||||
@ -181,7 +181,7 @@ struct CONTROLLER_MAPPING_NEW // GC PAD MAPPING
|
||||
int triggertype; // SDL or XInput trigger
|
||||
std::string SDiagonal;
|
||||
bool bSquareToCircle;
|
||||
bool bFilterSettings;
|
||||
bool bNoTriggerFilter;
|
||||
};
|
||||
////////////////////////////
|
||||
|
||||
@ -193,7 +193,7 @@ struct CONTROLLER_MAPPING_NEW // GC PAD MAPPING
|
||||
// General functions
|
||||
bool SearchDevices(std::vector<CONTROLLER_INFO> &_joyinfo, int &NumPads, int &NumGoodPads);
|
||||
void GetJoyState(CONTROLLER_STATE &_PadState, CONTROLLER_MAPPING _PadMapping, int controller, int NumButtons);
|
||||
void GetButton(SDL_Joystick*, int,int,int,int, int&,int&,int&,int&,bool&,bool&, bool,bool,bool,bool,bool,int);
|
||||
void GetButton(SDL_Joystick*, int,int,int,int, int&,int&,int&,int&,bool&,bool&, bool,bool,bool,bool,bool,bool);
|
||||
|
||||
// Value conversion
|
||||
int Pad_Convert(int _val);
|
||||
|
Reference in New Issue
Block a user