int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e ) { if( p_iter ) { return p_iter->i_pos != p_iter->i_end; } RAISEZERO("Invalid log iterator!"); }
unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance, libvlc_exception_t *p_e ) { if( p_instance ) { libvlc_priv_t *p_priv = libvlc_priv( p_instance->p_libvlc_int ); return p_priv->i_verbose; } RAISEZERO("Invalid VLC instance!"); }
unsigned libvlc_log_count( const libvlc_log_t *p_log, libvlc_exception_t *p_e ) { if( p_log && p_log->p_messages ) { int i_start = p_log->p_messages->i_start; int i_stop = *(p_log->p_messages->pi_stop); if( i_stop >= i_start ) return i_stop-i_start; else return VLC_MSG_QSIZE-(i_start-i_stop); } RAISEZERO("Invalid log object!"); }
unsigned libvlc_log_count( const libvlc_log_t *p_log, libvlc_exception_t *p_e ) { if( p_log ) { msg_cb_data_t *data = &((libvlc_log_t *)p_log)->data; unsigned ret; /* We cannot lock due to constant pointer constraints. Break them. * Even then, this si not really thread safe anyway. */ vlc_spin_lock (&data->lock); ret = data->count; vlc_spin_unlock (&data->lock); return ret; } RAISEZERO("Invalid log object!"); }