2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
13 void OSD::initialize_socket()
15 for(int i = 0; i < SOCKET_MAX; i++) {
18 recv_r_ptr[i] = recv_w_ptr[i] = 0;
22 void OSD::release_socket()
29 void OSD::notify_socket_connected(int ch)
31 // winmain notify that network is connected
32 vm->notify_socket_connected(ch);
35 void OSD::notify_socket_disconnected(int ch)
37 // winmain notify that network is disconnected
38 if(!socket_delay[ch]) {
39 socket_delay[ch] = 1;//56;
43 void OSD::update_socket()
45 for(int i = 0; i < SOCKET_MAX; i++) {
46 if(recv_r_ptr[i] < recv_w_ptr[i]) {
49 uint8* buf0 = vm->get_socket_recv_buffer0(i, &size0, &size1);
50 uint8* buf1 = vm->get_socket_recv_buffer1(i);
52 int size = recv_w_ptr[i] - recv_r_ptr[i];
53 if(size > size0 + size1) {
56 char* src = &recv_buffer[i][recv_r_ptr[i]];
57 recv_r_ptr[i] += size;
60 memcpy(buf0, src, size);
62 memcpy(buf0, src, size0);
63 memcpy(buf1, src + size0, size - size0);
65 vm->inc_socket_recv_buffer_ptr(i, size);
66 } else if(socket_delay[i] != 0) {
67 if(--socket_delay[i] == 0) {
68 vm->notify_socket_disconnected(i);
74 bool OSD::initialize_socket_tcp(int ch)
78 recv_r_ptr[ch] = recv_w_ptr[ch] = 0;
83 bool OSD::initialize_socket_udp(int ch)
87 recv_r_ptr[ch] = recv_w_ptr[ch] = 0;
91 bool OSD::connect_socket(int ch, uint32 ipaddr, int port)
96 void OSD::disconnect_socket(int ch)
99 vm->notify_socket_disconnected(ch);
102 bool OSD::listen_socket(int ch)
107 void OSD::send_socket_data_tcp(int ch)
111 void OSD::send_socket_data_udp(int ch, uint32 ipaddr, int port)
115 void OSD::send_socket_data(int ch)
119 void OSD::recv_socket_data(int ch)