diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-12-31 19:18:30 -0600 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-12-31 19:18:30 -0600 |
| commit | 1118226f270d2b44d10dd3cebd9f89fd38042680 (patch) | |
| tree | 9dd80995633c70581443d40f58d6ac35837e0bd4 /Source/Core/InputCommon/UDPWrapper.cpp | |
| parent | 8d8b0fc884367bc4d433d698a790ef5badee6957 (diff) | |
| parent | 16824d5fd17b43b156706bf02a8063b389604766 (diff) | |
Merge branch 'master' into buffer_storage
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; +} |
