Kill off dangling else's in the InputCommon project.
Some indentations were also too far for some things. Fixed this. Also update the license header to show Git instead of SVN. Got rid of some trailing spaces/tabs too.
This commit is contained in:
parent
b91930a2d4
commit
8a9fcd3014
|
@ -12,7 +12,7 @@
|
|||
// 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
|
||||
// Official Git repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#include "ControllerEmu.h"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// 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
|
||||
// Official Git repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#ifndef _CONTROLLEREMU_H_
|
||||
|
@ -196,11 +196,15 @@ public:
|
|||
template <typename C>
|
||||
void GetState(C* const buttons, const C* bitmasks)
|
||||
{
|
||||
std::vector<Control*>::iterator i = controls.begin(),
|
||||
std::vector<Control*>::iterator
|
||||
i = controls.begin(),
|
||||
e = controls.end();
|
||||
|
||||
for (; i!=e; ++i, ++bitmasks)
|
||||
{
|
||||
if ((*i)->control_ref->State() > settings[0]->value) // threshold
|
||||
*buttons |= *bitmasks;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
@ -221,8 +225,9 @@ public:
|
|||
*digital |= *bitmasks;
|
||||
}
|
||||
else
|
||||
{
|
||||
*analog = S(controls[i+trig_count]->control_ref->State() * range);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ bool ControllerInterface::UpdateOutput(const bool force)
|
|||
if (force)
|
||||
lk.lock();
|
||||
else if (!lk.try_lock())
|
||||
return false;
|
||||
return false;
|
||||
|
||||
size_t ok_count = 0;
|
||||
|
||||
|
@ -173,7 +173,7 @@ bool ControllerInterface::UpdateOutput(const bool force)
|
|||
//
|
||||
// Device :: ~Device
|
||||
//
|
||||
// dtor, delete all inputs/outputs on device destruction
|
||||
// Destructor, delete all inputs/outputs on device destruction
|
||||
//
|
||||
ControllerInterface::Device::~Device()
|
||||
{
|
||||
|
@ -209,9 +209,9 @@ void ControllerInterface::Device::AddOutput(Output* const o)
|
|||
//
|
||||
// Device :: ClearInputState
|
||||
//
|
||||
// device classes should override this func
|
||||
// ControllerInterface will call this when the device returns failure durring UpdateInput
|
||||
// used to try to set all buttons and axes to their default state when user unplugs a gamepad durring play
|
||||
// Device classes should override this function
|
||||
// ControllerInterface will call this when the device returns failure during UpdateInput
|
||||
// used to try to set all buttons and axes to their default state when user unplugs a gamepad during play
|
||||
// buttons/axes that were held down at the time of unplugging should be seen as not pressed after unplugging
|
||||
//
|
||||
void ControllerInterface::Device::ClearInputState()
|
||||
|
@ -239,8 +239,10 @@ ControlState ControllerInterface::InputReference::State( const ControlState igno
|
|||
|
||||
// bit of hax for "NOT" to work at start of expression
|
||||
if (ci != ce)
|
||||
{
|
||||
if (ci->mode == 2)
|
||||
state = 1;
|
||||
}
|
||||
|
||||
for (; ci!=ce; ++ci)
|
||||
{
|
||||
|
@ -354,7 +356,8 @@ bool ControllerInterface::DeviceQualifier::operator==(const ControllerInterface:
|
|||
if (name == devq.name)
|
||||
if (source == devq.source)
|
||||
return true;
|
||||
return false;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -421,7 +424,9 @@ void ControllerInterface::UpdateReference(ControllerInterface::ControlReference*
|
|||
break; // no terminating '`' character
|
||||
}
|
||||
else
|
||||
{
|
||||
ctrl_str += c;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -478,7 +483,9 @@ ControllerInterface::Device::Control* ControllerInterface::InputReference::Detec
|
|||
return *i;
|
||||
}
|
||||
else if ((*i)->GetState() < (1 - INPUT_DETECT_THRESHOLD))
|
||||
{
|
||||
*state = false;
|
||||
}
|
||||
}
|
||||
Common::SleepCurrentThread(10); time += 10;
|
||||
}
|
||||
|
@ -490,8 +497,8 @@ ControllerInterface::Device::Control* ControllerInterface::InputReference::Detec
|
|||
//
|
||||
// OutputReference :: Detect
|
||||
//
|
||||
// totally different from the inputReference detect / i have them combined so it was simplier to make the gui.
|
||||
// the gui doesnt know the difference between an input and an output / its odd but i was lazy and it was easy
|
||||
// Totally different from the inputReference detect / I have them combined so it was simpler to make the GUI.
|
||||
// The GUI doesn't know the difference between an input and an output / it's odd but I was lazy and it was easy
|
||||
//
|
||||
// set all binded outputs to <range> power for x milliseconds return false
|
||||
//
|
||||
|
@ -499,7 +506,7 @@ ControllerInterface::Device::Control* ControllerInterface::OutputReference::Dete
|
|||
{
|
||||
// ignore device
|
||||
|
||||
// dont hang if we dont even have any controls mapped
|
||||
// don't hang if we don't even have any controls mapped
|
||||
if (m_controls.size())
|
||||
{
|
||||
State(1);
|
||||
|
|
|
@ -319,9 +319,13 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI
|
|||
eff.lpvTypeSpecificParams = &diCF;
|
||||
}
|
||||
else if (1 == f)
|
||||
{
|
||||
eff.cbTypeSpecificParams = sizeof(DIRAMPFORCE);
|
||||
}
|
||||
else
|
||||
{
|
||||
eff.cbTypeSpecificParams = sizeof(DIPERIODIC);
|
||||
}
|
||||
|
||||
LPDIRECTINPUTEFFECT pEffect;
|
||||
if (SUCCEEDED(m_device->CreateEffect(force_type_names[f].guid, &eff, &pEffect, NULL)))
|
||||
|
@ -427,7 +431,9 @@ bool Joystick::UpdateInput()
|
|||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
hr = m_device->GetDeviceState(sizeof(m_state_in), &m_state_in);
|
||||
}
|
||||
|
||||
// try reacquire if input lost
|
||||
if (DIERR_INPUTLOST == hr || DIERR_NOTACQUIRED == hr)
|
||||
|
@ -460,12 +466,16 @@ bool Joystick::UpdateOutput()
|
|||
ok_count += SUCCEEDED(i->iface->SetParameters(&eff, DIEP_TYPESPECIFICPARAMS | DIEP_START));
|
||||
}
|
||||
else
|
||||
{
|
||||
ok_count += SUCCEEDED(i->iface->Stop());
|
||||
}
|
||||
|
||||
i->params = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
++ok_count;
|
||||
}
|
||||
}
|
||||
|
||||
return (m_state_out.size() == ok_count);
|
||||
|
@ -492,7 +502,9 @@ std::string Joystick::Axis::GetName() const
|
|||
}
|
||||
// slider
|
||||
else
|
||||
{
|
||||
ss << "Slider " << (int)(m_index - 6);
|
||||
}
|
||||
|
||||
ss << (m_range < 0 ? '-' : '+');
|
||||
return ss.str();
|
||||
|
|
|
@ -56,15 +56,19 @@ void InitKeyboardMouse(IDirectInput8* const idi8, std::vector<ControllerInterfac
|
|||
if (SUCCEEDED(idi8->CreateDevice( GUID_SysKeyboard, &kb_device, NULL)))
|
||||
{
|
||||
if (SUCCEEDED(kb_device->SetDataFormat(&c_dfDIKeyboard)))
|
||||
if (SUCCEEDED(kb_device->SetCooperativeLevel(NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE)))
|
||||
{
|
||||
if (SUCCEEDED(idi8->CreateDevice( GUID_SysMouse, &mo_device, NULL )))
|
||||
if (SUCCEEDED(kb_device->SetCooperativeLevel(NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE)))
|
||||
{
|
||||
if (SUCCEEDED(mo_device->SetDataFormat(&c_dfDIMouse2)))
|
||||
if (SUCCEEDED(mo_device->SetCooperativeLevel(NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE)))
|
||||
if (SUCCEEDED(idi8->CreateDevice( GUID_SysMouse, &mo_device, NULL )))
|
||||
{
|
||||
devices.push_back(new KeyboardMouse(kb_device, mo_device));
|
||||
return;
|
||||
if (SUCCEEDED(mo_device->SetDataFormat(&c_dfDIMouse2)))
|
||||
{
|
||||
if (SUCCEEDED(mo_device->SetCooperativeLevel(NULL, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE)))
|
||||
{
|
||||
devices.push_back(new KeyboardMouse(kb_device, mo_device));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -203,7 +207,9 @@ bool KeyboardMouse::UpdateOutput()
|
|||
memset( this, 0, sizeof(*this) );
|
||||
type = INPUT_KEYBOARD;
|
||||
ki.wVk = key;
|
||||
if (up) ki.dwFlags = KEYEVENTF_KEYUP;
|
||||
|
||||
if (up)
|
||||
ki.dwFlags = KEYEVENTF_KEYUP;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ void Init( std::vector<ControllerInterface::Device*>& devices )
|
|||
std::map<std::string, int> name_counts;
|
||||
|
||||
if (SDL_Init( SDL_INIT_FLAGS ) >= 0)
|
||||
{
|
||||
{
|
||||
// joysticks
|
||||
for(int i = 0; i < SDL_NumJoysticks(); ++i)
|
||||
{
|
||||
|
@ -49,7 +49,7 @@ void Init( std::vector<ControllerInterface::Device*>& devices )
|
|||
delete js;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index, const unsigned int index)
|
||||
|
@ -63,7 +63,7 @@ Joystick::Joystick(SDL_Joystick* const joystick, const int sdl_index, const unsi
|
|||
// "why don't my 360 gamepad triggers/rumble work correctly"
|
||||
#ifdef _WIN32
|
||||
// checking the name is probably good (and hacky) enough
|
||||
// but i'll double check with the num of buttons/axes
|
||||
// but I'll double check with the num of buttons/axes
|
||||
std::string lcasename = GetName();
|
||||
std::transform(lcasename.begin(), lcasename.end(), lcasename.begin(), tolower);
|
||||
|
||||
|
@ -204,7 +204,9 @@ void Joystick::ConstantEffect::SetState(const ControlState state)
|
|||
m_effect.effect.constant.length = SDL_HAPTIC_INFINITY;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_effect.effect.type = 0;
|
||||
}
|
||||
|
||||
const Sint16 old = m_effect.effect.constant.level;
|
||||
m_effect.effect.constant.level = state * 0x7FFF;
|
||||
|
@ -220,7 +222,9 @@ void Joystick::RampEffect::SetState(const ControlState state)
|
|||
m_effect.effect.ramp.length = SDL_HAPTIC_INFINITY;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_effect.effect.type = 0;
|
||||
}
|
||||
|
||||
const Sint16 old = m_effect.effect.ramp.start;
|
||||
m_effect.effect.ramp.start = state * 0x7FFF;
|
||||
|
@ -235,15 +239,17 @@ void Joystick::SineEffect::SetState(const ControlState state)
|
|||
m_effect.effect.type = SDL_HAPTIC_SINE;
|
||||
m_effect.effect.periodic.length = 250;
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
m_effect.effect.type = 0;
|
||||
}
|
||||
|
||||
const Sint16 old = m_effect.effect.periodic.magnitude;
|
||||
m_effect.effect.periodic.period = 5;
|
||||
m_effect.effect.periodic.period = 5;
|
||||
m_effect.effect.periodic.magnitude = state * 0x5000;
|
||||
m_effect.effect.periodic.attack_length = 0;
|
||||
m_effect.effect.periodic.fade_length = 500;
|
||||
m_effect.effect.periodic.attack_length = 0;
|
||||
m_effect.effect.periodic.fade_length = 500;
|
||||
|
||||
if (old != m_effect.effect.periodic.magnitude)
|
||||
m_effect.changed = true;
|
||||
}
|
||||
|
@ -255,15 +261,17 @@ void Joystick::SquareEffect::SetState(const ControlState state)
|
|||
m_effect.effect.type = SDL_HAPTIC_SQUARE;
|
||||
m_effect.effect.periodic.length = 250;
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
m_effect.effect.type = 0;
|
||||
}
|
||||
|
||||
const Sint16 old = m_effect.effect.periodic.magnitude;
|
||||
m_effect.effect.periodic.period = 5;
|
||||
m_effect.effect.periodic.period = 5;
|
||||
m_effect.effect.periodic.magnitude = state * 0x5000;
|
||||
m_effect.effect.periodic.attack_length = 0;
|
||||
m_effect.effect.periodic.fade_length = 100;
|
||||
m_effect.effect.periodic.attack_length = 0;
|
||||
m_effect.effect.periodic.fade_length = 100;
|
||||
|
||||
if (old != m_effect.effect.periodic.magnitude)
|
||||
m_effect.changed = true;
|
||||
}
|
||||
|
@ -275,15 +283,17 @@ void Joystick::TriangleEffect::SetState(const ControlState state)
|
|||
m_effect.effect.type = SDL_HAPTIC_TRIANGLE;
|
||||
m_effect.effect.periodic.length = 250;
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
m_effect.effect.type = 0;
|
||||
}
|
||||
|
||||
const Sint16 old = m_effect.effect.periodic.magnitude;
|
||||
m_effect.effect.periodic.period = 5;
|
||||
m_effect.effect.periodic.period = 5;
|
||||
m_effect.effect.periodic.magnitude = state * 0x5000;
|
||||
m_effect.effect.periodic.attack_length = 0;
|
||||
m_effect.effect.periodic.fade_length = 100;
|
||||
m_effect.effect.periodic.attack_length = 0;
|
||||
m_effect.effect.periodic.fade_length = 100;
|
||||
|
||||
if (old != m_effect.effect.periodic.magnitude)
|
||||
m_effect.changed = true;
|
||||
}
|
||||
|
@ -316,7 +326,9 @@ bool Joystick::UpdateOutput()
|
|||
else // effect is already uploaded
|
||||
{
|
||||
if (i->effect.type) // if ouputstate >0
|
||||
{
|
||||
SDL_HapticUpdateEffect(m_haptic, i->id, &i->effect); // update the effect
|
||||
}
|
||||
else
|
||||
{
|
||||
SDL_HapticStopEffect(m_haptic, i->id); // else, stop and remove the effect
|
||||
|
|
|
@ -31,13 +31,13 @@ static const struct
|
|||
{ "Thumb R", XINPUT_GAMEPAD_RIGHT_THUMB }
|
||||
};
|
||||
|
||||
static const char* const named_triggers[] =
|
||||
static const char* const named_triggers[] =
|
||||
{
|
||||
"Trigger L",
|
||||
"Trigger R"
|
||||
};
|
||||
|
||||
static const char* const named_axes[] =
|
||||
static const char* const named_axes[] =
|
||||
{
|
||||
"Left X",
|
||||
"Left Y",
|
||||
|
@ -45,7 +45,7 @@ static const char* const named_axes[] =
|
|||
"Right Y"
|
||||
};
|
||||
|
||||
static const char* const named_motors[] =
|
||||
static const char* const named_motors[] =
|
||||
{
|
||||
"Motor L",
|
||||
"Motor R"
|
||||
|
@ -66,12 +66,14 @@ Device::Device(const XINPUT_CAPABILITIES& caps, u8 index)
|
|||
ZeroMemory(&m_current_state_out, sizeof(m_current_state_out));
|
||||
|
||||
// XInputGetCaps seems to always claim all capabilities are supported
|
||||
// but i will leave all this stuff in, incase m$ fixes xinput up a bit
|
||||
// but I will leave all this stuff in, incase m$ fixes xinput up a bit
|
||||
|
||||
// get supported buttons
|
||||
for (int i = 0; i != sizeof(named_buttons)/sizeof(*named_buttons); ++i)
|
||||
{
|
||||
if (named_buttons[i].bitmask & caps.Gamepad.wButtons)
|
||||
AddInput(new Button(i, m_state_in.Gamepad.wButtons));
|
||||
}
|
||||
|
||||
// get supported triggers
|
||||
for (int i = 0; i != sizeof(named_triggers)/sizeof(*named_triggers); ++i)
|
||||
|
@ -114,8 +116,8 @@ void Device::ClearInputState()
|
|||
std::string Device::GetName() const
|
||||
{
|
||||
// why aren't these defined
|
||||
// subtype doesn't seem to work, i tested with 2 diff arcade sticks, both were shown as gamepad
|
||||
// ill leave it in anyway, maybe m$ will fix it
|
||||
// subtype doesn't seem to work, I tested with 2 different arcade sticks, both were shown as gamepad
|
||||
// I'll leave it in anyway, maybe m$ will fix it
|
||||
|
||||
switch (m_subtype)
|
||||
{
|
||||
|
@ -140,7 +142,7 @@ std::string Device::GetSource() const
|
|||
return "XInput";
|
||||
}
|
||||
|
||||
// update i/o
|
||||
// Update I/O
|
||||
|
||||
bool Device::UpdateInput()
|
||||
{
|
||||
|
@ -157,7 +159,9 @@ bool Device::UpdateOutput()
|
|||
return (ERROR_SUCCESS == XInputSetState(m_index, &m_state_out));
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// GET name/source/id
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// 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
|
||||
// Official Git repository and contact information can be found at
|
||||
// http://code.google.com/p/dolphin-emu/
|
||||
|
||||
#ifndef _GCPAD_H_INCLUDED__
|
||||
|
|
|
@ -78,7 +78,10 @@ bool InputPlugin::LoadConfig(bool isGC)
|
|||
(*i)->LoadConfig(profile_ini.GetOrCreateSection("Profile"));
|
||||
}
|
||||
else
|
||||
{
|
||||
(*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str()));
|
||||
}
|
||||
|
||||
// update refs
|
||||
(*i)->UpdateReferences(g_controller_interface);
|
||||
}
|
||||
|
|
|
@ -96,32 +96,39 @@ UDPWiimote::UDPWiimote(const char *_port, const char * name, int _index) :
|
|||
hints.ai_socktype = SOCK_DGRAM;
|
||||
hints.ai_flags = AI_PASSIVE; // use my IP
|
||||
|
||||
if (!int_port){
|
||||
if (!int_port)
|
||||
{
|
||||
cleanup;
|
||||
err=-1;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((rv = getaddrinfo(NULL, _port, &hints, &servinfo)) != 0) {
|
||||
if ((rv = getaddrinfo(NULL, _port, &hints, &servinfo)) != 0)
|
||||
{
|
||||
cleanup;
|
||||
err=-1;
|
||||
return;
|
||||
}
|
||||
|
||||
// loop through all the results and bind to everything we can
|
||||
for(p = servinfo; p != NULL; p = p->ai_next) {
|
||||
for(p = servinfo; p != NULL; p = p->ai_next)
|
||||
{
|
||||
sock_t sock;
|
||||
if ((sock = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == BAD_SOCK) {
|
||||
if ((sock = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == BAD_SOCK)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (bind(sock, p->ai_addr, (int)p->ai_addrlen) == -1) {
|
||||
|
||||
if (bind(sock, p->ai_addr, (int)p->ai_addrlen) == -1)
|
||||
{
|
||||
close(sock);
|
||||
continue;
|
||||
}
|
||||
d->sockfds.push_back(sock);
|
||||
}
|
||||
|
||||
if (d->sockfds.empty()) {
|
||||
if (d->sockfds.empty())
|
||||
{
|
||||
cleanup;
|
||||
err=-2;
|
||||
return;
|
||||
|
@ -170,7 +177,9 @@ void UDPWiimote::mainThread()
|
|||
timeout.tv_sec=1;
|
||||
timeout.tv_usec=500000;
|
||||
broadcastPresence();
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
tleft-=telapsed;
|
||||
timeout.tv_sec=(long)(tleft/1000);
|
||||
timeout.tv_usec=(tleft%1000)*1000;
|
||||
|
@ -186,6 +195,7 @@ void UDPWiimote::mainThread()
|
|||
if (rt)
|
||||
{
|
||||
for (std::list<sock_t>::iterator i=d->sockfds.begin(); i!=d->sockfds.end(); i++)
|
||||
{
|
||||
if (FD_ISSET(*i,&fds))
|
||||
{
|
||||
sock_t fd=*i;
|
||||
|
@ -206,11 +216,14 @@ void UDPWiimote::mainThread()
|
|||
if (pharsePacket(bf,size)==0)
|
||||
{
|
||||
//NOTICE_LOG(WIIMOTE,"UDPWII New pack");
|
||||
} else {
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTICE_LOG(WIIMOTE,"UDPWII Wrong pack format... ignoring");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (!(d->exit));
|
||||
}
|
||||
|
@ -230,16 +243,18 @@ UDPWiimote::~UDPWiimote()
|
|||
delete d;
|
||||
}
|
||||
|
||||
#define ACCEL_FLAG (1<<0)
|
||||
#define BUTT_FLAG (1<<1)
|
||||
#define IR_FLAG (1<<2)
|
||||
#define NUN_FLAG (1<<3)
|
||||
#define NUNACCEL_FLAG (1<<4)
|
||||
#define ACCEL_FLAG (1 << 0)
|
||||
#define BUTT_FLAG (1 << 1)
|
||||
#define IR_FLAG (1 << 2)
|
||||
#define NUN_FLAG (1 << 3)
|
||||
#define NUNACCEL_FLAG (1 << 4)
|
||||
|
||||
int UDPWiimote::pharsePacket(u8 * bf, size_t size)
|
||||
{
|
||||
if (size<3) return -1;
|
||||
if (bf[0]!=0xde)
|
||||
if (size < 3)
|
||||
return -1;
|
||||
|
||||
if (bf[0] != 0xde)
|
||||
return -1;
|
||||
//if (bf[1]==0)
|
||||
// time=0;
|
||||
|
@ -247,9 +262,11 @@ int UDPWiimote::pharsePacket(u8 * bf, size_t size)
|
|||
// return -1;
|
||||
//time=bf[1];
|
||||
u32 *p=(u32*)(&bf[3]);
|
||||
if (bf[2]&ACCEL_FLAG)
|
||||
if (bf[2] & ACCEL_FLAG)
|
||||
{
|
||||
if ((size-(((u8*)p)-bf))<12) return -1;
|
||||
if ((size-(((u8*)p)-bf)) < 12)
|
||||
return -1;
|
||||
|
||||
double ux,uy,uz;
|
||||
ux=(double)((s32)ntohl(*p)); p++;
|
||||
uy=(double)((s32)ntohl(*p)); p++;
|
||||
|
@ -258,27 +275,39 @@ int UDPWiimote::pharsePacket(u8 * bf, size_t size)
|
|||
y=uy/1048576;
|
||||
z=uz/1048576;
|
||||
}
|
||||
if (bf[2]&BUTT_FLAG)
|
||||
|
||||
if (bf[2] & BUTT_FLAG)
|
||||
{
|
||||
if ((size-(((u8*)p)-bf))<4) return -1;
|
||||
if ((size-(((u8*)p)-bf)) < 4)
|
||||
return -1;
|
||||
|
||||
mask=ntohl(*p); p++;
|
||||
}
|
||||
if (bf[2]&IR_FLAG)
|
||||
|
||||
if (bf[2] & IR_FLAG)
|
||||
{
|
||||
if ((size-(((u8*)p)-bf))<8) return -1;
|
||||
if ((size-(((u8*)p)-bf)) < 8)
|
||||
return -1;
|
||||
|
||||
pointerX=((double)((s32)ntohl(*p)))/1048576; p++;
|
||||
pointerY=((double)((s32)ntohl(*p)))/1048576; p++;
|
||||
}
|
||||
if (bf[2]&NUN_FLAG)
|
||||
|
||||
if (bf[2] & NUN_FLAG)
|
||||
{
|
||||
if ((size-(((u8*)p)-bf))<9) return -1;
|
||||
if ((size-(((u8*)p)-bf)) < 9)
|
||||
return -1;
|
||||
|
||||
nunMask=*((u8*)p); p=(u32*)(((u8*)p)+1);
|
||||
nunX=((double)((s32)ntohl(*p)))/1048576; p++;
|
||||
nunY=((double)((s32)ntohl(*p)))/1048576; p++;
|
||||
}
|
||||
if (bf[2]&NUNACCEL_FLAG)
|
||||
|
||||
if (bf[2] & NUNACCEL_FLAG)
|
||||
{
|
||||
if ((size-(((u8*)p)-bf))<12) return -1;
|
||||
if ((size-(((u8*)p)-bf)) < 12)
|
||||
return -1;
|
||||
|
||||
double ux,uy,uz;
|
||||
ux=(double)((s32)ntohl(*p)); p++;
|
||||
uy=(double)((s32)ntohl(*p)); p++;
|
||||
|
@ -287,6 +316,7 @@ int UDPWiimote::pharsePacket(u8 * bf, size_t size)
|
|||
naY=uy/1048576;
|
||||
naZ=uz/1048576;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -314,7 +344,7 @@ void UDPWiimote::broadcastIPv4(const void * data, size_t size)
|
|||
their_addr.sin_family = AF_INET;
|
||||
their_addr.sin_port = htons(4431);
|
||||
their_addr.sin_addr.s_addr = INADDR_BROADCAST;
|
||||
memset(their_addr.sin_zero, '\0', sizeof their_addr.sin_zero);
|
||||
memset(their_addr.sin_zero, '\0', sizeof their_addr.sin_zero);
|
||||
|
||||
int num;
|
||||
if ((num=sendto(d->bipv4_fd,(const dataz)data,(int)size,0,(struct sockaddr *) &their_addr, sizeof their_addr)) == -1)
|
||||
|
|
Loading…
Reference in New Issue