Commit 0f98a479 authored by Clément Stenac's avatar Clément Stenac

Manage navigation buttons, status and text

parent 4a935b11
......@@ -46,19 +46,57 @@ void InputManager::setInput( input_thread_t *_p_input )
void InputManager::update()
{
/// \todo Emit the signals only if it changed
if( !p_input || p_input->b_die ) return;
if( p_input->b_dead )
{
emit positionUpdated( 0.0, 0, 0 );
emit navigationChanged( 0 );
emit statusChanged( 0 ); // 0 = STOPPED, 1 = PAUSE, 2 = PLAY
}
/* Update position */
mtime_t i_length, i_time;
float f_pos;
i_length = var_GetTime( p_input, "length" ) / 1000000;
i_time = var_GetTime( p_input, "time") / 1000000;
f_pos = var_GetFloat( p_input, "position" );
emit positionUpdated( f_pos, i_time, i_length );
/* Update disc status */
vlc_value_t val;
var_Change( p_input, "title", VLC_VAR_CHOICESCOUNT, &val, NULL );
if( val.i_int > 0 )
{
vlc_value_t val;
var_Change( p_input, "chapter", VLC_VAR_CHOICESCOUNT, &val, NULL );
if( val.i_int > 0 )
emit navigationChanged( 1 ); // 1 = chapter, 2 = title, 3 = NO
else
emit navigationChanged( 2 );
}
else
{
emit navigationChanged( 0 );
}
/* Update text */
QString text;
if( p_input->input.p_item->p_meta &&
p_input->input.p_item->p_meta->psz_nowplaying &&
*p_input->input.p_item->p_meta->psz_nowplaying )
{
text.sprintf( "%s - %s",
p_input->input.p_item->p_meta->psz_nowplaying,
p_input->input.p_item->psz_name );
}
else
{
text.sprintf( "%s", p_input->input.p_item->psz_name );
}
emit nameChanged( text );
}
void InputManager::sliderUpdate( float new_pos )
......
......@@ -45,6 +45,9 @@ public slots:
signals:
/// Send new position, new time and new length
void positionUpdated( float , int, int );
void nameChanged( QString );
void navigationChanged( int );
void statusChanged( int );
};
......
......@@ -43,9 +43,17 @@ InputSlider::InputSlider( Qt::Orientation q,QWidget *_parent ) :
void InputSlider::setPosition( float pos, int a, int b )
{
mymove = true;
setValue( (int)(pos * 1000.0 ) );
mymove = false;
if( pos == 0.0 )
{
setEnabled( false );
}
else
{
setEnabled( true );
mymove = true;
setValue( (int)(pos * 1000.0 ) );
mymove = false;
}
}
void InputSlider::userDrag( int new_value )
......
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