UpdateVout();
addCallbacks();
p_item = input_GetItem( p_input );
+ emit rateChanged( INPUT_RATE_DEFAULT / var_GetFloat( p_input, "rate" ) );
}
else
{
p_input = NULL;
p_item = NULL;
assert( !p_input_vbi );
- emit rateChanged( INPUT_RATE_DEFAULT );
+ emit rateChanged( INPUT_RATE_DEFAULT / 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( INPUT_RATE_DEFAULT / 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 );
var_DelCallback( p_input_vbi, "vbi-page", VbiEvent, this );
vlc_object_release( p_input_vbi );
}
- p_input_vbi = (vlc_object_t *)
- vlc_object_find_name( p_input, "zvbi", FIND_CHILD );
+
+ if( input_GetEsObjects( p_input, i_teletext_es, &p_input_vbi, NULL, NULL ) )
+ p_input_vbi = NULL;
if( p_input_vbi )
{
if( f_newCache != f_cache )
{
f_cache = f_newCache;
- /* Update rate */
+ /* Update cache */
emit cachingChanged( f_cache );
}
}
{
if( hasInput() )
{
- playlist_t *p_playlist = pl_Hold( p_intf );
- playlist_AskForArtEnqueue( p_playlist, input_GetItem( p_input ), pl_Unlocked );
- pl_Release( p_intf );
+ playlist_AskForArtEnqueue( pl_Get(p_intf), input_GetItem( p_input ) );
}
else
{
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 */
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 );
p_input = NULL;
}
/* we are working as a dialogs provider */
- playlist_t *p_playlist = pl_Hold( p_intf );
- p_input = playlist_CurrentInput( p_playlist );
+ p_input = playlist_CurrentInput( pl_Get(p_intf) );
if( p_input )
{
emit inputChanged( p_input );
}
- pl_Release( p_intf );
}
}