diff options
| author | Jasper St. Pierre <jstpierre@mecheye.net> | 2013-12-31 14:07:57 -0500 |
|---|---|---|
| committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2013-12-31 14:07:57 -0500 |
| commit | 16824d5fd17b43b156706bf02a8063b389604766 (patch) | |
| tree | b0eedc645badbea316ff59c125eaf808b28777ec /Source/Core/InputCommon/UDPWrapper.cpp | |
| parent | 43e618682e8093602fc83dfa902ee7ae3fd3a4f6 (diff) | |
| parent | 34692ab826abc8f8faa61bdb2280b742424528f1 (diff) | |
Merge branch 'fuck-you-src-i-hate-you'
Diffstat (limited to 'Source/Core/InputCommon/UDPWrapper.cpp')
| -rw-r--r-- | Source/Core/InputCommon/UDPWrapper.cpp | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/UDPWrapper.cpp b/Source/Core/InputCommon/UDPWrapper.cpp new file mode 100644 index 0000000000..7fc77c4f44 --- /dev/null +++ b/Source/Core/InputCommon/UDPWrapper.cpp @@ -0,0 +1,92 @@ +#include "UDPWrapper.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +const char* DefaultPort(const int index) +{ + static std::string s; + s = "443"; + s += (char)('2' + index); + return s.c_str(); +} + +UDPWrapper::UDPWrapper(int indx, const char* const _name) : + ControllerEmu::ControlGroup(_name,GROUP_TYPE_UDPWII), + inst(NULL), index(indx), + updIR(false),updAccel(false), + updButt(false),udpEn(false) + , port(DefaultPort(indx)) +{ + //PanicAlert("UDPWrapper #%d ctor",index); +} + +void UDPWrapper::LoadConfig(IniFile::Section *sec, const std::string& defdev, const std::string& base ) +{ + ControlGroup::LoadConfig(sec,defdev,base); + + std::string group( base + name ); group += "/"; + + int _updAccel,_updIR,_updButt,_udpEn,_updNun,_updNunAccel; + sec->Get((group + "Enable").c_str(),&_udpEn, 0); + sec->Get((group + "Port").c_str(), &port, DefaultPort(index)); + sec->Get((group + "Update_Accel").c_str(), &_updAccel, 1); + sec->Get((group + "Update_IR").c_str(), &_updIR, 1); + sec->Get((group + "Update_Butt").c_str(), &_updButt, 1); + sec->Get((group + "Update_Nunchuk").c_str(), &_updNun, 1); + sec->Get((group + "Update_NunchukAccel").c_str(), &_updNunAccel, 0); + + udpEn=(_udpEn>0); + updAccel=(_updAccel>0); + updIR=(_updIR>0); + updButt=(_updButt>0); + updNun=(_updNun>0); + updNunAccel=(_updNunAccel>0); + + Refresh(); +} + + +void UDPWrapper::SaveConfig(IniFile::Section *sec, const std::string& defdev, const std::string& base ) +{ + ControlGroup::SaveConfig(sec,defdev,base); + std::string group( base + name ); group += "/"; + sec->Set((group + "Enable").c_str(), (int)udpEn, 0); + sec->Set((group + "Port").c_str(), port, DefaultPort(index)); + sec->Set((group + "Update_Accel").c_str(), (int)updAccel, 1); + sec->Set((group + "Update_IR").c_str(), (int)updIR, 1); + sec->Set((group + "Update_Butt").c_str(), (int)updButt, 1); + sec->Set((group + "Update_Nunchuk").c_str(), (int)updNun, 1); + sec->Set((group + "Update_NunchukAccel").c_str(), (int)updNunAccel, 0); +} + + +void UDPWrapper::Refresh() +{ + bool udpAEn=(inst!=NULL); + if (udpEn&&udpAEn) + { + if (strcmp(inst->getPort(),port.c_str())) + { + delete inst; + inst= new UDPWiimote(port.c_str(),"Dolphin-Emu",index); //TODO: Changeable display name + } + return; + } + if (!udpEn) + { + if (inst) + delete inst; + inst=NULL; + return; + } + //else + inst= new UDPWiimote(port.c_str(),"Dolphin-Emu",index); +} + +UDPWrapper::~UDPWrapper() +{ + if (inst) + delete inst; +} |
