Example #1
0
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;
         }
      }
   }
}