mirror of
https://github.com/Oibaf66/frodo-wii.git
synced 2024-11-10 21:55:11 +01:00
Minor refactoring, only send joystick data on changes
This commit is contained in:
parent
5a0941ff7e
commit
47f73f2b83
@ -616,6 +616,8 @@ void C64::network_vblank()
|
||||
}
|
||||
}
|
||||
else if (this->network_client) {
|
||||
Uint8 js = TheCIA1->Joystick2;
|
||||
|
||||
if (this->quit_thyself)
|
||||
{
|
||||
this->network_client->Disconnect();
|
||||
@ -624,10 +626,15 @@ void C64::network_vblank()
|
||||
return;
|
||||
}
|
||||
|
||||
this->network_client->EncodeJoystickUpdate(TheCIA1->Joystick2);
|
||||
this->network_client->SendUpdate();
|
||||
/* Perhaps send joystick data */
|
||||
if (this->network_client->cur_joystick_data != js)
|
||||
{
|
||||
this->network_client->EncodeJoystickUpdate(js);
|
||||
this->network_client->SendUpdate();
|
||||
this->network_client->cur_joystick_data = js;
|
||||
}
|
||||
|
||||
if (this->network_client->ReceiveUpdateBlock())
|
||||
if (this->network_client->ReceiveUpdate())
|
||||
{
|
||||
/* Got something? */
|
||||
if (this->network_client->DecodeUpdate(this->network_client->screen) == true)
|
||||
|
@ -633,10 +633,8 @@ void NetworkServer::RemoveClient(NetworkClient *client)
|
||||
/* Not found */
|
||||
}
|
||||
|
||||
NetworkClient::NetworkClient(int sock) : Network()
|
||||
void NetworkClient::Init()
|
||||
{
|
||||
this->sock = sock;
|
||||
|
||||
this->screen = (Uint8 *)malloc(DISPLAY_X * DISPLAY_Y);
|
||||
assert(this->screen);
|
||||
|
||||
@ -644,6 +642,13 @@ NetworkClient::NetworkClient(int sock) : Network()
|
||||
memset(this->screen, 0, DISPLAY_X * DISPLAY_Y);
|
||||
}
|
||||
|
||||
|
||||
NetworkClient::NetworkClient(int sock)
|
||||
{
|
||||
this->Init();
|
||||
this->sock = sock;
|
||||
}
|
||||
|
||||
NetworkClient::~NetworkClient()
|
||||
{
|
||||
free(this->screen);
|
||||
|
@ -210,7 +210,10 @@ public:
|
||||
|
||||
Uint8 *screen;
|
||||
int joystick_port;
|
||||
Uint8 cur_joystick_data;
|
||||
private:
|
||||
void Init();
|
||||
|
||||
int sock;
|
||||
};
|
||||
|
||||
|
@ -124,6 +124,8 @@ NetworkClient::NetworkClient(const char *hostname, int port)
|
||||
/* Again from glibc docs */
|
||||
struct sockaddr_in servername;
|
||||
|
||||
this->Init();
|
||||
|
||||
/* Create the socket. */
|
||||
this->sock = socket (PF_INET, SOCK_STREAM, 0);
|
||||
if (this->sock < 0)
|
||||
@ -142,12 +144,6 @@ NetworkClient::NetworkClient(const char *hostname, int port)
|
||||
perror ("connect (client)");
|
||||
return;
|
||||
}
|
||||
|
||||
this->screen = (Uint8 *)malloc(DISPLAY_X * DISPLAY_Y);
|
||||
assert(this->screen);
|
||||
|
||||
/* Assume black screen */
|
||||
memset(this->screen, 0, DISPLAY_X * DISPLAY_Y);
|
||||
}
|
||||
|
||||
bool Network::ReceiveData(void *dst, int sock, size_t sz)
|
||||
|
Loading…
Reference in New Issue
Block a user