LINK: Treat joybus like every other link mode

git-svn-id: https://svn.code.sf.net/p/vbam/code/branches/bgk-link@1129 a31d4220-a93d-0410-bf67-fe4944624d44
This commit is contained in:
bgk 2012-09-09 20:57:53 +00:00
parent 55ce3002f4
commit 74b3cf7304
5 changed files with 22 additions and 20 deletions

View File

@ -3890,9 +3890,6 @@ void CPULoop(int ticks)
ticks -= clockTicks;
if(GetLinkMode() == LINK_GAMECUBE_DOLPHIN)
JoyBusUpdate(clockTicks);
if(GetLinkMode() != LINK_DISCONNECTED)
LinkUpdate(clockTicks);

View File

@ -213,7 +213,7 @@ LinkMode GetLinkMode() {
int linktime = 0;
GBASockClient* dol = NULL;
sf::IPAddress joybusHostAddr = sf::IPAddress::LocalHost;
static sf::IPAddress joybusHostAddr = sf::IPAddress::LocalHost;
// Hodgepodge
u8 tspeed = 3;
@ -430,9 +430,8 @@ static void JoyBusShutdown()
dol = NULL;
}
void JoyBusUpdate(int ticks)
static void JoyBusUpdate()
{
linktime += ticks;
static int lastjoybusupdate = 0;
// Kinda ugly hack to update joybus stuff intermittently
@ -514,6 +513,12 @@ void LinkUpdate(int ticks)
return;
}
if (GetLinkMode() == LINK_GAMECUBE_DOLPHIN)
{
JoyBusUpdate();
return;
}
if (GetLinkMode() == LINK_CABLE_SOCKET)
{
if (after)
@ -1270,9 +1275,13 @@ ConnectionState ConnectLinkUpdate(char * const message, size_t size)
return gba_connection_state;
}
void SetLinkServerHost(const char *host) {
lc.serveraddr = sf::IPAddress(host);
joybusHostAddr = sf::IPAddress(host);
bool SetLinkServerHost(const char *host) {
sf::IPAddress addr = sf::IPAddress(host);
lc.serveraddr = addr;
joybusHostAddr = addr;
return addr.IsValid();
}
void GetLinkServerHost(char * const host, size_t size) {

View File

@ -49,8 +49,10 @@ extern LinkMode GetLinkMode();
/**
* Set the host to connect to when in socket mode
*
* @return false if the address is invalid
*/
extern void SetLinkServerHost(const char *host);
extern bool SetLinkServerHost(const char *host);
/**
* Get the host relevant to context
@ -135,9 +137,6 @@ typedef struct {
bool speed;
} LANLINKDATA;
extern sf::IPAddress joybusHostAddr;
extern void JoyBusUpdate(int ticks);
extern void StartLink(u16);
extern void StartGPLink(u16);
extern void LinkUpdate(int);
@ -150,8 +149,6 @@ extern int linkid;
#else
// stubs to keep #ifdef's out of mainline
inline void JoyBusUpdate(int) { }
inline bool InitLink() { return true; }
inline void CloseLink() { }
inline void StartLink(u16) { }

View File

@ -2131,7 +2131,7 @@ EVT_HANDLER(LinkConfigure, "Link options...")
bool dolphinHostChanged = jh != gopts.joybus_host;
if (newLinkMode != oldLinkMode || dolphinHostChanged) {
joybusHostAddr = std::string(gopts.joybus_host.mb_str());
SetLinkServerHost(gopts.joybus_host.mb_str());
CloseLink();
InitLink(newLinkMode);
}

View File

@ -2766,8 +2766,8 @@ bool MainFrame::InitMore(void)
addbier(lab, true);
/// Boot ROM
getcbbe("BootRomEn", gopts.gb_use_bios);
getfp("BootRom", gopts.gb_bios);
getcbbe("BootRomEn", gopts.gba_use_bios);
getfp("BootRom", gopts.gba_bios);
addbe(fp);
getlab("BootRomLab");
addbe(lab);
@ -3129,8 +3129,7 @@ bool MainFrame::InitMore(void)
if (linkMode == LINK_GAMECUBE_DOLPHIN) {
bool isv = !gopts.joybus_host.empty();
if(isv) {
joybusHostAddr = std::string(gopts.joybus_host.mb_str());
isv = joybusHostAddr.IsValid();
isv = SetLinkServerHost(gopts.joybus_host.mb_str());
}
if(!isv) {