Commit 658039e1 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

macosx: Cache the input state and properly ask the ugly timer to sync with it.

Should fix #1836 (OSX "waiting" progressbar sometimes doesn't restore to normal state when file starts)
parent 6ab2c446
...@@ -304,6 +304,8 @@ struct intf_sys_t ...@@ -304,6 +304,8 @@ struct intf_sys_t
int i_lastShownVolume; int i_lastShownVolume;
input_state_e cachedInputState;
/* the manage thread */ /* the manage thread */
pthread_t manage_thread; pthread_t manage_thread;
......
...@@ -1221,6 +1221,7 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl"; ...@@ -1221,6 +1221,7 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl";
pl_Release( p_intf ); pl_Release( p_intf );
vlc_object_lock( p_intf ); vlc_object_lock( p_intf );
while( vlc_object_alive( p_intf ) ) while( vlc_object_alive( p_intf ) )
{ {
vlc_mutex_lock( &p_intf->change_lock ); vlc_mutex_lock( &p_intf->change_lock );
...@@ -1245,6 +1246,10 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl"; ...@@ -1245,6 +1246,10 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl";
vlc_object_release( p_input ); vlc_object_release( p_input );
p_input = NULL; p_input = NULL;
} }
else if( cachedInputState != input_GetState( p_input ) )
{
p_intf->p_sys->b_intf_update = true;
}
/* Manage volume status */ /* Manage volume status */
[self manageVolumeSlider]; [self manageVolumeSlider];
...@@ -1304,10 +1309,10 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl"; ...@@ -1304,10 +1309,10 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl";
if( ( b_input = ( p_input != NULL ) ) ) if( ( b_input = ( p_input != NULL ) ) )
{ {
/* seekable streams */ /* seekable streams */
int state = input_GetState( p_input ); cachedInputState = input_GetState( p_input );
if ( state == INIT_S || if ( cachedInputState == INIT_S ||
state == OPENING_S || cachedInputState == OPENING_S ||
state == BUFFERING_S ) cachedInputState == BUFFERING_S )
{ {
b_buffering = YES; b_buffering = YES;
} }
......
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