artUrl = "";
p_input = NULL;
p_input_vbi = NULL;
- i_rate = 0;
+ f_rate = 0;
p_item = NULL;
b_video = false;
timeA = 0;
{
msg_Dbg( p_intf, "IM: Setting an input" );
vlc_object_hold( p_input );
- emit statusChanged( PLAYING_S );
+ addCallbacks();
+ UpdateStatus();
UpdateName();
UpdateArt();
UpdateTeletext();
UpdateNavigation();
UpdateVout();
- addCallbacks();
+
p_item = input_GetItem( p_input );
+ emit rateChanged( var_GetFloat( p_input, "rate" ) );
}
else
{
p_input = NULL;
p_item = NULL;
assert( !p_input_vbi );
- emit rateChanged( INPUT_RATE_DEFAULT );
+ emit rateChanged( var_InheritFloat( p_intf, "rate" ) );
}
}
p_input = NULL;
emit positionUpdated( -1.0, 0 ,0 );
- emit rateChanged( INPUT_RATE_DEFAULT ); /* TODO: Do we want this ? */
+ emit rateChanged( var_InheritFloat( p_intf, "rate" ) );
emit nameChanged( "" );
emit chapterChanged( 0 );
emit titleChanged( 0 );
emit encryptionChanged( false );
emit recordingStateChanged( false );
+
+ emit cachingChanged( 1 );
}
/* Convert the event from the callbacks in actions */
{
/* Update navigation status */
vlc_value_t val; val.i_int = 0;
+ vlc_value_t val2; val2.i_int = 0;
if( hasInput() )
var_Change( p_input, "title", VLC_VAR_CHOICESCOUNT, &val, NULL );
emit titleChanged( true );
msg_Dbg( p_intf, "Title %i", val.i_int );
/* p_input != NULL since val.i_int != 0 */
- val.i_int = 0;
- var_Change( p_input, "chapter", VLC_VAR_CHOICESCOUNT, &val, NULL );
- emit chapterChanged( (val.i_int > 0) );
- msg_Dbg( p_intf, "Chapter: %i", val.i_int );
+ var_Change( p_input, "chapter", VLC_VAR_CHOICESCOUNT, &val2, NULL );
+ emit chapterChanged( (val2.i_int > 1) || ( val2.i_int > 0 && val.i_int > 1 ) );
+ msg_Dbg( p_intf, "Chapter: %i", val2.i_int );
}
else
emit titleChanged( false );
void InputManager::UpdateRate()
{
/* Update Rate */
- int i_new_rate = INPUT_RATE_DEFAULT / var_GetFloat( p_input, "rate" );
- if( i_new_rate != i_rate )
+ float f_new_rate = var_GetFloat( p_input, "rate" );
+ if( f_new_rate != f_rate )
{
- i_rate = i_new_rate;
+ f_rate = f_new_rate;
/* Update rate */
- emit rateChanged( i_rate );
+ emit rateChanged( f_rate );
}
}
if( f_newCache != f_cache )
{
f_cache = f_newCache;
- /* Update rate */
+ /* Update cache */
emit cachingChanged( f_cache );
}
}
assert( p_item );
char *psz_art = input_item_GetArtURL( p_item );
- QString url;
- if( psz_art && !strncmp( psz_art, "file://", 7 ) &&
- decode_URI( psz_art + 7 ) )
-#ifdef WIN32
- url = qfu( psz_art + 8 ); // Remove extra / starting on Win32.
-#else
- url = qfu( psz_art + 7 );
-#endif
- free( psz_art );
+ if( psz_art )
+ {
+ char *psz = make_path( psz_art );
+ free( psz_art );
+ psz_art = psz;
+ }
- url = url.replace( "file://", "" );
+#if 0
/* Taglib seems to define a attachment://, It won't work yet */
url = url.replace( "attachment://", "" );
- return url;
+#endif
+ return qfu( psz_art ? psz_art : "" );
}
void InputManager::UpdateArt()
{
if( hasInput() )
var_SetFloat( p_input, "position", new_pos );
+ emit seekRequested( new_pos );
}
/* User togglePlayPause */
int state = var_GetInteger( p_input, "state" );
state = ( state != PLAYING_S ) ? PLAYING_S : PAUSE_S;
var_SetInteger( p_input, "state", state );
- emit statusChanged( state );
}
}
var_AddCallback( THEPL, "repeat", RepeatChanged, this );
var_AddCallback( THEPL, "loop", LoopChanged, this );
- var_AddCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, this );
- var_AddCallback( p_intf->p_libvlc, "volume-muted", SoundMuteChanged, this );
+ var_AddCallback( THEPL, "volume-change", VolumeChanged, this );
+ var_AddCallback( THEPL, "volume-muted", SoundMuteChanged, this );
/* Warn our embedded IM about input changes */
- CONNECT( this, inputChanged( input_thread_t * ),
- im, setInput( input_thread_t * ) );
+ DCONNECT( this, inputChanged( input_thread_t * ),
+ im, setInput( input_thread_t * ) );
/* emit check if playlist has already started playing */
input_thread_t *p_input = playlist_CurrentInput( THEPL );
vlc_object_release( p_input );
}
- var_DelCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, this );
- var_DelCallback( p_intf->p_libvlc, "volume-muted", SoundMuteChanged, this );
+ var_DelCallback( THEPL, "volume-change", VolumeChanged, this );
+ var_DelCallback( THEPL, "volume-muted", SoundMuteChanged, this );
var_DelCallback( THEPL, "activity", PLItemChanged, this );
var_DelCallback( THEPL, "item-change", ItemChanged, im );
void MainInputManager::notifyRepeatLoop()
{
- int i_value = var_GetBool( THEPL, "loop" ) * REPEAT_ONE
- + var_GetBool( THEPL, "repeat" ) * REPEAT_ALL;
+ int i_value = var_GetBool( THEPL, "loop" ) * REPEAT_ALL
+ + var_GetBool( THEPL, "repeat" ) * REPEAT_ONE;
emit repeatLoopChanged( i_value );
}