Commit 42eca57f authored by Gildas Bazin's avatar Gildas Bazin

* fixed race condition with b_seekable.

parent 5232e588
...@@ -90,8 +90,6 @@ Timer::~Timer() ...@@ -90,8 +90,6 @@ Timer::~Timer()
*****************************************************************************/ *****************************************************************************/
void Timer::Notify() void Timer::Notify()
{ {
vlc_bool_t b_pace_control;
vlc_mutex_lock( &p_intf->change_lock ); vlc_mutex_lock( &p_intf->change_lock );
/* Update the input */ /* Update the input */
...@@ -101,27 +99,17 @@ void Timer::Notify() ...@@ -101,27 +99,17 @@ void Timer::Notify()
(input_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_INPUT, (input_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_INPUT,
FIND_ANYWHERE ); FIND_ANYWHERE );
/* Show slider */ /* Refresh interface */
if( p_intf->p_sys->p_input ) if( p_intf->p_sys->p_input )
{ {
if( p_intf->p_sys->p_input->stream.b_seekable ) p_main_interface->slider->SetValue( 0 );
{ b_old_seekable = VLC_FALSE;
p_main_interface->slider->SetValue( 0 );
p_main_interface->slider_frame->Show();
p_main_interface->frame_sizer->Show(
p_main_interface->slider_frame );
p_main_interface->frame_sizer->Layout();
p_main_interface->frame_sizer->Fit( p_main_interface );
}
p_main_interface->statusbar->SetStatusText( p_main_interface->statusbar->SetStatusText(
wxU(p_intf->p_sys->p_input->psz_source), 2 ); wxU(p_intf->p_sys->p_input->psz_source), 2 );
p_main_interface->TogglePlayButton( PLAYING_S ); p_main_interface->TogglePlayButton( PLAYING_S );
i_old_playing_status = PLAYING_S; i_old_playing_status = PLAYING_S;
/* control buttons for free pace streams */
b_pace_control = p_intf->p_sys->p_input->stream.b_pace_control;
} }
} }
else if( p_intf->p_sys->p_input->b_dead ) else if( p_intf->p_sys->p_input->b_dead )
...@@ -144,7 +132,6 @@ void Timer::Notify() ...@@ -144,7 +132,6 @@ void Timer::Notify()
} }
if( p_intf->p_sys->p_input ) if( p_intf->p_sys->p_input )
{ {
input_thread_t *p_input = p_intf->p_sys->p_input; input_thread_t *p_input = p_intf->p_sys->p_input;
...@@ -157,6 +144,17 @@ void Timer::Notify() ...@@ -157,6 +144,17 @@ void Timer::Notify()
p_intf->p_sys->b_playing = 1; p_intf->p_sys->b_playing = 1;
/* Manage the slider */ /* Manage the slider */
if( p_intf->p_sys->p_input->stream.b_seekable && !b_old_seekable )
{
/* Done like this because b_seekable is set slightly after
* the new input object is available. */
b_old_seekable = VLC_TRUE;
p_main_interface->slider_frame->Show();
p_main_interface->frame_sizer->Show(
p_main_interface->slider_frame );
p_main_interface->frame_sizer->Layout();
p_main_interface->frame_sizer->Fit( p_main_interface );
}
if( p_input->stream.b_seekable && p_intf->p_sys->b_playing ) if( p_input->stream.b_seekable && p_intf->p_sys->b_playing )
{ {
/* Update the slider if the user isn't dragging it. */ /* Update the slider if the user isn't dragging it. */
......
...@@ -180,6 +180,7 @@ private: ...@@ -180,6 +180,7 @@ private:
Interface *p_main_interface; Interface *p_main_interface;
int i_old_playing_status; int i_old_playing_status;
int i_old_rate; int i_old_rate;
vlc_bool_t b_old_seekable;
}; };
/* Main Interface */ /* Main Interface */
......
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