mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 09:09:52 -06:00
InputCommon(GCPad/WiimoteNew): Fixed issue when inifile didn't exist, defaults were loaded, and input didn't work. Fixed prob in DirectInput(hopefully doesn't break any other gamepads): buffered data wasn't ever being used. WiimoteNew: Hopefully made emulated swinging better(please comment). Added (completely untested) incomplete emulated turntable(DJ Hero) extension support :p. Deleted some files that I meant to delete in my last commit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6250 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -262,22 +262,10 @@ public:
|
||||
const float state = controls[i+1]->control_ref->State() - controls[i]->control_ref->State();
|
||||
if (fabsf(state) > deadzone)
|
||||
tmpf = ((state - (deadzone * sign(state))) / (1 - deadzone));
|
||||
else
|
||||
tmpf = 0;
|
||||
|
||||
float &ax = m_swing[i >> 1];
|
||||
|
||||
if (fabs(tmpf) > fabsf(ax))
|
||||
{
|
||||
if (tmpf > ax)
|
||||
ax = std::min(ax + 0.15f, tmpf);
|
||||
else if (tmpf < ax)
|
||||
ax = std::max(ax - 0.15f, tmpf);
|
||||
}
|
||||
else
|
||||
ax = tmpf;
|
||||
|
||||
*axis++ = (C)(ax * range + base);
|
||||
*axis++ = (C)((tmpf - ax) * range + base);
|
||||
ax = tmpf;
|
||||
}
|
||||
}
|
||||
private:
|
||||
|
@ -206,9 +206,6 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI
|
||||
, m_index(index)
|
||||
//, m_name(TStringToString(lpddi->tszInstanceName))
|
||||
{
|
||||
// this needs to be done before GetCapabilities() maybe?
|
||||
m_device->Acquire();
|
||||
|
||||
// get joystick caps
|
||||
DIDEVCAPS js_caps;
|
||||
js_caps.dwSize = sizeof(js_caps);
|
||||
@ -270,6 +267,9 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI
|
||||
}
|
||||
}
|
||||
|
||||
// it seems this needs to be done after SetProperty...
|
||||
m_device->Acquire();
|
||||
|
||||
// TODO: check for DIDC_FORCEFEEDBACK in devcaps?
|
||||
|
||||
// get supported ff effects
|
||||
@ -395,8 +395,6 @@ bool Joystick::UpdateInput()
|
||||
// msdn says if this isn't needed it doesnt do anything
|
||||
m_device->Poll();
|
||||
|
||||
bool need_ = true;
|
||||
|
||||
if (m_buffered)
|
||||
{
|
||||
DIDEVICEOBJECTDATA evtbuf[DATA_BUFFER_SIZE];
|
||||
@ -415,9 +413,7 @@ bool Joystick::UpdateInput()
|
||||
((BYTE*)&m_state_in)[evt->dwOfs] = (BYTE)evt->dwData;
|
||||
}
|
||||
|
||||
// we lost some data, attempt to use GetDeviceState
|
||||
// maybe this isn't the best thing to do
|
||||
// maybe I should clear the input state?
|
||||
// seems like this needs to be done maybe...
|
||||
if (DI_BUFFEROVERFLOW == hr)
|
||||
hr = m_device->GetDeviceState(sizeof(m_state_in), &m_state_in);
|
||||
}
|
||||
|
@ -42,24 +42,26 @@ InputPlugin::~InputPlugin()
|
||||
bool InputPlugin::LoadConfig()
|
||||
{
|
||||
IniFile inifile;
|
||||
if (false == inifile.Load(std::string(File::GetUserPath(D_CONFIG_IDX)) + ini_name + ".ini"))
|
||||
if (inifile.Load(std::string(File::GetUserPath(D_CONFIG_IDX)) + ini_name + ".ini"))
|
||||
{
|
||||
std::vector< ControllerEmu* >::const_iterator
|
||||
i = controllers.begin(),
|
||||
e = controllers.end();
|
||||
for (; i!=e; ++i)
|
||||
{
|
||||
// load settings from ini
|
||||
(*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str()));
|
||||
// update refs
|
||||
(*i)->UpdateReferences(controller_interface);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
controllers[0]->LoadDefaults(controller_interface);
|
||||
controllers[0]->UpdateReferences(controller_interface);
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector< ControllerEmu* >::const_iterator
|
||||
i = controllers.begin(),
|
||||
e = controllers.end();
|
||||
for ( ; i!=e; ++i )
|
||||
{
|
||||
// load settings from ini
|
||||
(*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str()));
|
||||
// update refs
|
||||
(*i)->UpdateReferences(controller_interface);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void InputPlugin::SaveConfig()
|
||||
|
@ -1,28 +0,0 @@
|
||||
// Copyright (C) 2003 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/
|
||||
|
||||
#include "Common.h"
|
||||
#include "NativeVertexWriter.h"
|
||||
|
||||
namespace VertexManager
|
||||
{
|
||||
|
||||
u8* s_pCurBufferPointer = NULL;
|
||||
u8* s_pBaseBufferPointer = NULL;
|
||||
|
||||
}
|
||||
|
@ -1,37 +0,0 @@
|
||||
// Copyright (C) 2003 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/
|
||||
|
||||
#ifndef _NATIVE_VERTEX_WRITER
|
||||
#define _NATIVE_VERTEX_WRITER
|
||||
|
||||
// TODO: rename
|
||||
namespace VertexManager
|
||||
{
|
||||
|
||||
void AddVertices(int primitive, int numvertices);
|
||||
void AddCompiledVertices(int primitive, int numvertices, u8* Vdata);
|
||||
void Flush(); // flushes the current buffer
|
||||
int GetRemainingSize(); // remaining space in the current buffer.
|
||||
int GetRemainingVertices(int primitive); // remaining number of vertices that can be processed in one AddVertices call
|
||||
|
||||
// TODO: move, rename.
|
||||
extern u8* s_pCurBufferPointer;
|
||||
extern u8* s_pBaseBufferPointer;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user