X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcontrol%2Fnetsync.c;h=8be09774b1e4104c626d0226ab742345829795a1;hb=098dab901c1a17c869a52d0d4042d03f00a83d67;hp=3050943dcaceced8e94596d0f80dd72353dfb370;hpb=d3fe7f28797d4dba65ffcdd60bf932e758a48a9e;p=vlc diff --git a/modules/control/netsync.c b/modules/control/netsync.c index 3050943dca..8be09774b1 100644 --- a/modules/control/netsync.c +++ b/modules/control/netsync.c @@ -24,8 +24,12 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include #include #include #include @@ -39,6 +43,9 @@ #ifdef HAVE_SYS_TYPES_H # include #endif +#ifdef HAVE_POLL +# include +#endif #include @@ -71,15 +78,15 @@ static mtime_t GetClockRef( intf_thread_t *, mtime_t ); "the master client used for the network synchronisation." ) vlc_module_begin(); - set_shortname( _("Network Sync")); - set_description( _("Network synchronisation") ); + set_shortname( N_("Network Sync")); + set_description( N_("Network synchronisation") ); set_category( CAT_ADVANCED ); set_subcategory( SUBCAT_ADVANCED_MISC ); add_bool( "netsync-master", 0, NULL, - NETSYNC_TEXT, NETSYNC_LONGTEXT, VLC_TRUE ); + NETSYNC_TEXT, NETSYNC_LONGTEXT, true ); add_string( "netsync-master-ip", NULL, NULL, MIP_TEXT, MIP_LONGTEXT, - VLC_TRUE ); + true ); set_capability( "interface", 0 ); set_callbacks( Activate, Close ); @@ -132,7 +139,7 @@ static void Run( intf_thread_t *p_intf ) { #define MAX_MSG_LENGTH (2 * sizeof(int64_t)) - vlc_bool_t b_master = config_GetInt( p_intf, "netsync-master" ); + bool b_master = config_GetInt( p_intf, "netsync-master" ); char *psz_master = NULL; char p_data[MAX_MSG_LENGTH]; int i_socket; @@ -148,11 +155,11 @@ static void Run( intf_thread_t *p_intf ) } if( b_master ) - i_socket = net_ListenUDP1( p_intf, NULL, NETSYNC_PORT ); + i_socket = net_ListenUDP1( VLC_OBJECT(p_intf), NULL, NETSYNC_PORT ); else - i_socket = net_ConnectUDP( p_intf, psz_master, NETSYNC_PORT, 0 ); + i_socket = net_ConnectUDP( VLC_OBJECT(p_intf), psz_master, NETSYNC_PORT, 0 ); - if( psz_master ) free( psz_master ); + free( psz_master ); if( i_socket < 0 ) { @@ -165,9 +172,6 @@ static void Run( intf_thread_t *p_intf ) while( !intf_ShouldDie( p_intf ) ) { - struct timeval timeout; - fd_set fds_r; - /* Update the input */ if( p_intf->p_sys->p_input == NULL ) { @@ -193,10 +197,8 @@ static void Run( intf_thread_t *p_intf ) */ /* Initialize file descriptor set and timeout (0.5s) */ - FD_ZERO( &fds_r ); - FD_SET( i_socket, &fds_r ); - timeout.tv_sec = 0; - timeout.tv_usec = 500000; + /* FIXME: arbitrary tick */ + struct pollfd ufd = { .fd = i_socket, .events = POLLIN, }; if( b_master ) { @@ -205,7 +207,7 @@ static void Run( intf_thread_t *p_intf ) int i_struct_size, i_read, i_ret; /* Don't block */ - i_ret = select( i_socket + 1, &fds_r, 0, 0, &timeout ); + i_ret = poll( &ufd, 1, 500 ); if( i_ret == 0 ) continue; if( i_ret < 0 ) { @@ -233,8 +235,8 @@ static void Run( intf_thread_t *p_intf ) (struct sockaddr *)&from, i_struct_size ); #if 0 - msg_Dbg( p_intf, "Master clockref: "I64Fd" -> "I64Fd", from %s " - "(date: "I64Fd")", i_clockref, i_master_clockref, + msg_Dbg( p_intf, "Master clockref: %"PRId64" -> %"PRId64", from %s " + "(date: %"PRId64")", i_clockref, i_master_clockref, from.ss_family == AF_INET ? inet_ntoa(((struct sockaddr_in *)&from)->sin_addr) : "non-IPv4", i_date ); @@ -260,7 +262,7 @@ static void Run( intf_thread_t *p_intf ) } /* Don't block */ - i_ret = select(i_socket + 1, &fds_r, 0, 0, &timeout); + i_ret = poll( &ufd, 1, 500 ); if( i_ret == 0 ) continue; if( i_ret < 0 ) { @@ -297,8 +299,8 @@ static void Run( intf_thread_t *p_intf ) } #if 0 - msg_Dbg( p_intf, "Slave clockref: "I64Fd" -> "I64Fd" -> "I64Fd", " - "clock diff: "I64Fd" drift: "I64Fd, + msg_Dbg( p_intf, "Slave clockref: %"PRId64" -> %"PRId64" -> %"PRId64", " + "clock diff: %"PRId64" drift: %"PRId64, i_clockref, i_master_clockref, i_client_clockref, i_diff_date, i_drift ); #endif