Commit a323173f authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Cleanup vlc_timer_* prototypes

parent c159f79f
...@@ -175,9 +175,9 @@ VLC_EXPORT( void, vlc_join, (vlc_thread_t, void **) ); ...@@ -175,9 +175,9 @@ VLC_EXPORT( void, vlc_join, (vlc_thread_t, void **) );
VLC_EXPORT (void, vlc_control_cancel, (int cmd, ...)); VLC_EXPORT (void, vlc_control_cancel, (int cmd, ...));
VLC_EXPORT( int, vlc_timer_create, (vlc_timer_t *, void (*) (void *), void *) LIBVLC_USED ); VLC_EXPORT( int, vlc_timer_create, (vlc_timer_t *, void (*) (void *), void *) LIBVLC_USED );
VLC_EXPORT( void, vlc_timer_destroy, (vlc_timer_t *) ); VLC_EXPORT( void, vlc_timer_destroy, (vlc_timer_t) );
VLC_EXPORT( void, vlc_timer_schedule, (vlc_timer_t *, bool, mtime_t, mtime_t) ); VLC_EXPORT( void, vlc_timer_schedule, (vlc_timer_t, bool, mtime_t, mtime_t) );
VLC_EXPORT( unsigned, vlc_timer_getoverrun, (const vlc_timer_t *) LIBVLC_USED ); VLC_EXPORT( unsigned, vlc_timer_getoverrun, (vlc_timer_t) LIBVLC_USED );
#ifndef LIBVLC_USE_PTHREAD_CANCEL #ifndef LIBVLC_USE_PTHREAD_CANCEL
enum { enum {
......
...@@ -385,7 +385,7 @@ static void Close( vlc_object_t *p_this ) ...@@ -385,7 +385,7 @@ static void Close( vlc_object_t *p_this )
/* Stop still image handler */ /* Stop still image handler */
if( p_sys->still.b_created ) if( p_sys->still.b_created )
vlc_timer_destroy( &p_sys->still.timer ); vlc_timer_destroy( p_sys->still.timer );
vlc_mutex_destroy( &p_sys->still.lock ); vlc_mutex_destroy( &p_sys->still.lock );
var_Destroy( p_sys->p_input, "highlight-mutex" ); var_Destroy( p_sys->p_input, "highlight-mutex" );
...@@ -638,7 +638,7 @@ static int Demux( demux_t *p_demux ) ...@@ -638,7 +638,7 @@ static int Demux( demux_t *p_demux )
if( event->length != 0xff && p_sys->still.b_created ) if( event->length != 0xff && p_sys->still.b_created )
{ {
mtime_t delay = event->length * CLOCK_FREQ; mtime_t delay = event->length * CLOCK_FREQ;
vlc_timer_schedule( &p_sys->still.timer, false, delay, 0 ); vlc_timer_schedule( p_sys->still.timer, false, delay, 0 );
} }
b_still_init = true; b_still_init = true;
......
...@@ -163,7 +163,7 @@ static block_t *rtp_recv (demux_t *demux) ...@@ -163,7 +163,7 @@ static block_t *rtp_recv (demux_t *demux)
static void timer_cleanup (void *timer) static void timer_cleanup (void *timer)
{ {
vlc_timer_destroy (timer); vlc_timer_destroy ((vlc_timer_t)timer);
} }
static void rtp_process (void *data); static void rtp_process (void *data);
...@@ -176,7 +176,7 @@ void *rtp_thread (void *data) ...@@ -176,7 +176,7 @@ void *rtp_thread (void *data)
if (vlc_timer_create (&p_sys->timer, rtp_process, data)) if (vlc_timer_create (&p_sys->timer, rtp_process, data))
return NULL; return NULL;
vlc_cleanup_push (timer_cleanup, &p_sys->timer); vlc_cleanup_push (timer_cleanup, (void *)p_sys->timer);
for (;;) for (;;)
{ {
...@@ -217,6 +217,6 @@ static void rtp_process (void *data) ...@@ -217,6 +217,6 @@ static void rtp_process (void *data)
vlc_mutex_lock (&p_sys->lock); vlc_mutex_lock (&p_sys->lock);
if (rtp_dequeue (demux, p_sys->session, &deadline)) if (rtp_dequeue (demux, p_sys->session, &deadline))
vlc_timer_schedule (&p_sys->timer, true, deadline, 0); vlc_timer_schedule (p_sys->timer, true, deadline, 0);
vlc_mutex_unlock (&p_sys->lock); vlc_mutex_unlock (&p_sys->lock);
} }
...@@ -244,7 +244,7 @@ static int Open (vlc_object_t *obj) ...@@ -244,7 +244,7 @@ static int Open (vlc_object_t *obj)
vlc_mutex_init (&p_sys->lock); vlc_mutex_init (&p_sys->lock);
if (vlc_timer_create (&p_sys->timer, Demux, demux)) if (vlc_timer_create (&p_sys->timer, Demux, demux))
goto error; goto error;
vlc_timer_schedule (&p_sys->timer, false, 1, p_sys->interval); vlc_timer_schedule (p_sys->timer, false, 1, p_sys->interval);
/* Initializes demux */ /* Initializes demux */
demux->pf_demux = NULL; demux->pf_demux = NULL;
...@@ -266,7 +266,7 @@ static void Close (vlc_object_t *obj) ...@@ -266,7 +266,7 @@ static void Close (vlc_object_t *obj)
demux_t *demux = (demux_t *)obj; demux_t *demux = (demux_t *)obj;
demux_sys_t *p_sys = demux->p_sys; demux_sys_t *p_sys = demux->p_sys;
vlc_timer_destroy (&p_sys->timer); vlc_timer_destroy (p_sys->timer);
vlc_mutex_destroy (&p_sys->lock); vlc_mutex_destroy (&p_sys->lock);
xcb_disconnect (p_sys->conn); xcb_disconnect (p_sys->conn);
free (p_sys); free (p_sys);
...@@ -324,7 +324,7 @@ static int Control (demux_t *demux, int query, va_list args) ...@@ -324,7 +324,7 @@ static int Control (demux_t *demux, int query, va_list args)
es_out_Control (demux->out, ES_OUT_RESET_PCR); es_out_Control (demux->out, ES_OUT_RESET_PCR);
vlc_mutex_unlock (&p_sys->lock); vlc_mutex_unlock (&p_sys->lock);
} }
vlc_timer_schedule (&p_sys->timer, false, vlc_timer_schedule (p_sys->timer, false,
pausing ? 0 : 1, p_sys->interval); pausing ? 0 : 1, p_sys->interval);
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
...@@ -112,7 +112,7 @@ static int Activate( vlc_object_t *p_this ) ...@@ -112,7 +112,7 @@ static int Activate( vlc_object_t *p_this )
free( p_sys ); free( p_sys );
return VLC_ENOMEM; return VLC_ENOMEM;
} }
vlc_timer_schedule( &p_sys->timer, false, 30*CLOCK_FREQ, 30*CLOCK_FREQ ); vlc_timer_schedule( p_sys->timer, false, 30*CLOCK_FREQ, 30*CLOCK_FREQ );
#ifdef HAVE_DBUS #ifdef HAVE_DBUS
p_sys->p_connection = dbus_init( p_intf ); p_sys->p_connection = dbus_init( p_intf );
...@@ -128,7 +128,7 @@ static void Deactivate( vlc_object_t *p_this ) ...@@ -128,7 +128,7 @@ static void Deactivate( vlc_object_t *p_this )
intf_thread_t *p_intf = (intf_thread_t*)p_this; intf_thread_t *p_intf = (intf_thread_t*)p_this;
intf_sys_t *p_sys = p_intf->p_sys; intf_sys_t *p_sys = p_intf->p_sys;
vlc_timer_destroy( &p_sys->timer ); vlc_timer_destroy( p_sys->timer );
#ifdef HAVE_DBUS #ifdef HAVE_DBUS
if( p_sys->p_connection ) if( p_sys->p_connection )
dbus_connection_unref( p_sys->p_connection ); dbus_connection_unref( p_sys->p_connection );
......
...@@ -775,13 +775,11 @@ int vlc_timer_create (vlc_timer_t *id, void (*func) (void *), void *data) ...@@ -775,13 +775,11 @@ int vlc_timer_create (vlc_timer_t *id, void (*func) (void *), void *data)
* @warning This function <b>must</b> be called before the timer data can be * @warning This function <b>must</b> be called before the timer data can be
* freed and before the timer callback function can be unloaded. * freed and before the timer callback function can be unloaded.
* *
* @param timer to destroy * @param timer timer to destroy
*/ */
void vlc_timer_destroy (vlc_timer_t *id) void vlc_timer_destroy (vlc_timer_t timer)
{ {
struct vlc_timer *timer = *id; vlc_timer_schedule (timer, false, 0, 0);
vlc_timer_schedule (id, false, 0, 0);
vlc_mutex_lock (&timer->lock); vlc_mutex_lock (&timer->lock);
while (timer->users != 0) while (timer->users != 0)
vlc_cond_wait (&timer->wait, &timer->lock); vlc_cond_wait (&timer->wait, &timer->lock);
...@@ -801,7 +799,7 @@ void vlc_timer_destroy (vlc_timer_t *id) ...@@ -801,7 +799,7 @@ void vlc_timer_destroy (vlc_timer_t *id)
* the system is busy or suspended, or because a previous iteration of the * the system is busy or suspended, or because a previous iteration of the
* timer is still running. See also vlc_timer_getoverrun(). * timer is still running. See also vlc_timer_getoverrun().
* *
* @param id initialized timer pointer * @param timer initialized timer
* @param absolute the timer value origin is the same as mdate() if true, * @param absolute the timer value origin is the same as mdate() if true,
* the timer value is relative to now if false. * the timer value is relative to now if false.
* @param value zero to disarm the timer, otherwise the initial time to wait * @param value zero to disarm the timer, otherwise the initial time to wait
...@@ -809,11 +807,9 @@ void vlc_timer_destroy (vlc_timer_t *id) ...@@ -809,11 +807,9 @@ void vlc_timer_destroy (vlc_timer_t *id)
* @param interval zero to fire the timer just once, otherwise the timer * @param interval zero to fire the timer just once, otherwise the timer
* repetition interval. * repetition interval.
*/ */
void vlc_timer_schedule (vlc_timer_t *id, bool absolute, void vlc_timer_schedule (vlc_timer_t timer, bool absolute,
mtime_t value, mtime_t interval) mtime_t value, mtime_t interval)
{ {
struct vlc_timer *timer = *id;
vlc_mutex_lock (&timer->lock); vlc_mutex_lock (&timer->lock);
if (timer->value) if (timer->value)
{ {
...@@ -833,14 +829,13 @@ void vlc_timer_schedule (vlc_timer_t *id, bool absolute, ...@@ -833,14 +829,13 @@ void vlc_timer_schedule (vlc_timer_t *id, bool absolute,
/** /**
* Fetch and reset the overrun counter for a timer. * Fetch and reset the overrun counter for a timer.
* @param id initialized timer pointer * @param timer initialized timer
* @return the timer overrun counter, i.e. the number of times that the timer * @return the timer overrun counter, i.e. the number of times that the timer
* should have run but did not since the last actual run. If all is well, this * should have run but did not since the last actual run. If all is well, this
* is zero. * is zero.
*/ */
unsigned vlc_timer_getoverrun (const vlc_timer_t *id) unsigned vlc_timer_getoverrun (vlc_timer_t timer)
{ {
struct vlc_timer *timer = *id;
unsigned ret; unsigned ret;
vlc_mutex_lock (&timer->lock); vlc_mutex_lock (&timer->lock);
......
...@@ -629,20 +629,16 @@ int vlc_timer_create (vlc_timer_t *id, void (*func) (void *), void *data) ...@@ -629,20 +629,16 @@ int vlc_timer_create (vlc_timer_t *id, void (*func) (void *), void *data)
return 0; return 0;
} }
void vlc_timer_destroy (vlc_timer_t *id) void vlc_timer_destroy (vlc_timer_t timer)
{ {
struct vlc_timer *timer = *id;
if (timer->handle != INVALID_HANDLE_VALUE) if (timer->handle != INVALID_HANDLE_VALUE)
DeleteTimerQueueTimer (NULL, timer->handle, INVALID_HANDLE_VALUE); DeleteTimerQueueTimer (NULL, timer->handle, INVALID_HANDLE_VALUE);
free (timer); free (timer);
} }
void vlc_timer_schedule (vlc_timer_t *id, bool absolute, void vlc_timer_schedule (vlc_timer_t timer, bool absolute,
mtime_t value, mtime_t interval) mtime_t value, mtime_t interval)
{ {
struct vlc_timer *timer = *id;
if (timer->handle != INVALID_HANDLE_VALUE) if (timer->handle != INVALID_HANDLE_VALUE)
{ {
DeleteTimerQueueTimer (NULL, timer->handle, NULL); DeleteTimerQueueTimer (NULL, timer->handle, NULL);
...@@ -660,8 +656,8 @@ void vlc_timer_schedule (vlc_timer_t *id, bool absolute, ...@@ -660,8 +656,8 @@ void vlc_timer_schedule (vlc_timer_t *id, bool absolute,
abort (); abort ();
} }
unsigned vlc_timer_getoverrun (const vlc_timer_t *id) unsigned vlc_timer_getoverrun (vlc_timer_t timer)
{ {
(void)id; (void)timer;
return 0; return 0;
} }
...@@ -41,7 +41,7 @@ static void callback (void *ptr) ...@@ -41,7 +41,7 @@ static void callback (void *ptr)
struct timer_data *data = ptr; struct timer_data *data = ptr;
vlc_mutex_lock (&data->lock); vlc_mutex_lock (&data->lock);
data->count += 1 + vlc_timer_getoverrun (&data->timer); data->count += 1 + vlc_timer_getoverrun (data->timer);
vlc_mutex_unlock (&data->lock); vlc_mutex_unlock (&data->lock);
} }
...@@ -58,28 +58,28 @@ int main (void) ...@@ -58,28 +58,28 @@ int main (void)
assert (val == 0); assert (val == 0);
/* Relative timer */ /* Relative timer */
vlc_timer_schedule (&data.timer, false, 1, CLOCK_FREQ / 10); vlc_timer_schedule (data.timer, false, 1, CLOCK_FREQ / 10);
msleep (CLOCK_FREQ); msleep (CLOCK_FREQ);
vlc_mutex_lock (&data.lock); vlc_mutex_lock (&data.lock);
data.count += vlc_timer_getoverrun (&data.timer); data.count += vlc_timer_getoverrun (data.timer);
printf ("Count = %u\n", data.count); printf ("Count = %u\n", data.count);
assert (data.count >= 10); assert (data.count >= 10);
data.count = 0; data.count = 0;
vlc_mutex_unlock (&data.lock); vlc_mutex_unlock (&data.lock);
vlc_timer_schedule (&data.timer, false, 0, 0); vlc_timer_schedule (data.timer, false, 0, 0);
/* Absolute timer */ /* Absolute timer */
mtime_t now = mdate (); mtime_t now = mdate ();
vlc_timer_schedule (&data.timer, true, now, CLOCK_FREQ / 10); vlc_timer_schedule (data.timer, true, now, CLOCK_FREQ / 10);
msleep (CLOCK_FREQ); msleep (CLOCK_FREQ);
vlc_mutex_lock (&data.lock); vlc_mutex_lock (&data.lock);
data.count += vlc_timer_getoverrun (&data.timer); data.count += vlc_timer_getoverrun (data.timer);
printf ("Count = %u\n", data.count); printf ("Count = %u\n", data.count);
assert (data.count >= 10); assert (data.count >= 10);
vlc_mutex_unlock (&data.lock); vlc_mutex_unlock (&data.lock);
vlc_timer_destroy (&data.timer); vlc_timer_destroy (data.timer);
vlc_mutex_destroy (&data.lock); vlc_mutex_destroy (&data.lock);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment