/*****************************************************************************
* Control
*****************************************************************************/
+void input_ControlPush( input_thread_t *p_input,
+ int i_type, vlc_value_t *p_val )
+{
+ vlc_mutex_lock( &p_input->p->lock_control );
+ if( i_type == INPUT_CONTROL_SET_DIE )
+ {
+ /* Special case, empty the control */
+ p_input->p->i_control = 1;
+ p_input->p->control[0].i_type = i_type;
+ memset( &p_input->p->control[0].val, 0, sizeof( vlc_value_t ) );
+ }
+ else if( p_input->p->i_control >= INPUT_CONTROL_FIFO_SIZE )
+ {
+ msg_Err( p_input, "input control fifo overflow, trashing type=%d",
+ i_type );
+ }
+ else
+ {
+ p_input->p->control[p_input->p->i_control].i_type = i_type;
+ if( p_val )
+ p_input->p->control[p_input->p->i_control].val = *p_val;
+ else
+ memset( &p_input->p->control[p_input->p->i_control].val, 0,
+ sizeof( vlc_value_t ) );
+
+ p_input->p->i_control++;
+ }
+ vlc_cond_signal( &p_input->p->wait_control );
+ vlc_mutex_unlock( &p_input->p->lock_control );
+}
+
static inline int ControlPopNoLock( input_thread_t *p_input,
int *pi_type, vlc_value_t *p_val,
mtime_t i_deadline )
};
/* Internal helpers */
-static inline void input_ControlPush( input_thread_t *p_input,
- int i_type, vlc_value_t *p_val )
-{
- vlc_mutex_lock( &p_input->p->lock_control );
- if( i_type == INPUT_CONTROL_SET_DIE )
- {
- /* Special case, empty the control */
- p_input->p->i_control = 1;
- p_input->p->control[0].i_type = i_type;
- memset( &p_input->p->control[0].val, 0, sizeof( vlc_value_t ) );
- }
- else if( p_input->p->i_control >= INPUT_CONTROL_FIFO_SIZE )
- {
- msg_Err( p_input, "input control fifo overflow, trashing type=%d",
- i_type );
- }
- else
- {
- p_input->p->control[p_input->p->i_control].i_type = i_type;
- if( p_val )
- p_input->p->control[p_input->p->i_control].val = *p_val;
- else
- memset( &p_input->p->control[p_input->p->i_control].val, 0,
- sizeof( vlc_value_t ) );
-
- p_input->p->i_control++;
- }
- vlc_cond_signal( &p_input->p->wait_control );
- vlc_mutex_unlock( &p_input->p->lock_control );
-}
+void input_ControlPush( input_thread_t *, int i_type, vlc_value_t * );
/**********************************************************************
* Item metadata