void input_remote_poll(input_remote_t *handle) { unsigned user; settings_t *settings = config_get_ptr(); input_remote_state_t *ol_state = input_remote_get_state_ptr(); for(user = 0; user < settings->input.max_users; user++) { if (settings->network_remote_enable_user[user]) { #if defined(HAVE_NETWORKGAMEPAD) && defined(HAVE_NETPLAY) char buf[8]; ssize_t ret; fd_set fds; struct timeval tmp_tv = {0}; if (handle->net_fd[user] < 0) return; FD_ZERO(&fds); FD_SET(handle->net_fd[user], &fds); ret = recvfrom(handle->net_fd[user], buf, sizeof(buf) - 1, 0, NULL, NULL); if (ret > 0) input_remote_parse_packet(buf, sizeof(buf), user); else #endif ol_state->buttons[user] = 0; } } }
void input_remote_poll(input_remote_t *handle, unsigned max_users) { unsigned user; settings_t *settings = config_get_ptr(); input_remote_state_t *input_state = input_remote_get_state_ptr(); for(user = 0; user < max_users; user++) { if (settings->bools.network_remote_enable_user[user]) { #if defined(HAVE_NETWORKING) && defined(HAVE_NETWORKGAMEPAD) struct remote_message msg; ssize_t ret; fd_set fds; if (handle->net_fd[user] < 0) return; FD_ZERO(&fds); FD_SET(handle->net_fd[user], &fds); ret = recvfrom(handle->net_fd[user], (char*)&msg, sizeof(msg), 0, NULL, NULL); if (ret == sizeof(msg)) input_remote_parse_packet(&msg, user); else if ((ret != -1) || ((errno != EAGAIN) && (errno != ENOENT))) #endif { input_state->buttons[user] = 0; input_state->analog[0][user] = 0; input_state->analog[1][user] = 0; input_state->analog[2][user] = 0; input_state->analog[3][user] = 0; } } } }