vout_thread_t *p_vout = vlc_object_find( VLCIntf, VLC_OBJECT_VOUT,
FIND_ANYWHERE );
+ playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST,
+ FIND_ANYWHERE );
+
if( p_vout != NULL )
{
while ((o_window = [o_enumerator nextObject]))
}
}
vlc_object_release( (vlc_object_t *)p_vout );
+ if (p_playlist) vlc_object_release(p_playlist);
}
+
+ else if ( p_playlist != NULL )
+ {
+ if (! ([o_title isEqualToString: _NS("Half Size") ] ||
+ [o_title isEqualToString: _NS("Normal Size") ] ||
+ [o_title isEqualToString: _NS("Double Size") ] ||
+ [o_title isEqualToString: _NS("Float on Top") ] ||
+ [o_title isEqualToString: _NS("Fit to Screen") ] ))
+ {
+ vlc_value_t val;
+ var_Get( p_playlist, "fullscreen", &val );
+ var_Set( p_playlist, "fullscreen", (vlc_value_t)!val.b_bool );
+ }
+ vlc_object_release( (vlc_object_t *)p_playlist );
+ }
+
}
- (void)setupVarMenuItem:(NSMenuItem *)o_mi
{
[o_mi setState: p_intf->p_sys->b_mute ? NSOnState : NSOffState];
}
- else if( [[o_mi title] isEqualToString: _NS("Fullscreen")] ||
- [[o_mi title] isEqualToString: _NS("Half Size")] ||
+ else if( [[o_mi title] isEqualToString: _NS("Half Size")] ||
[[o_mi title] isEqualToString: _NS("Normal Size")] ||
[[o_mi title] isEqualToString: _NS("Double Size")] ||
[[o_mi title] isEqualToString: _NS("Fit to Screen")] ||
vlc_object_release( (vlc_object_t *)p_vout );
}
}
+ else if( [[o_mi title] isEqualToString: _NS("Fullscreen")])
+ {
+ if (p_playlist)
+ {
+ var_Get(p_playlist, "fullscreen", &val );
+ [o_mi setState: val.b_bool];
+ bEnabled = TRUE;
+ }
+ else
+ {
+ bEnabled = FALSE;
+ }
+ }
+
if( p_playlist != NULL )
{
return VLC_SUCCESS;
}
+/*****************************************************************************
+ * FullscreenChanged: Callback triggered by the fullscreen-change playlist
+ * variable, to let the intf update the controller.
+ *****************************************************************************/
+int FullscreenChanged( vlc_object_t *p_this, const char *psz_variable,
+ vlc_value_t old_val, vlc_value_t new_val, void *param )
+{
+ intf_thread_t * p_intf = VLCIntf;
+ p_intf->p_sys->b_fullscreen_update = TRUE;
+ return VLC_SUCCESS;
+}
+
+
static struct
{
unichar i_nskey;
{
playlist_Play( p_playlist );
}
+ var_Create( p_playlist, "fullscreen", VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
+ val.b_bool = VLC_FALSE;
+
+ var_AddCallback( p_playlist, "fullscreen", FullscreenChanged, self);
+
[o_btn_fullscreen setState: ( var_Get( p_playlist, "fullscreen", &val )>=0 && val.b_bool )];
vlc_object_release( p_playlist );
}
{
NSDate * o_sleep_date;
playlist_t * p_playlist;
+ vlc_value_t val;
/* new thread requires a new pool */
NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init];
var_AddCallback( p_playlist, "intf-change", PlaylistChanged, self );
var_AddCallback( p_playlist, "item-change", PlaylistChanged, self );
var_AddCallback( p_playlist, "playlist-current", PlaylistChanged, self );
+
vlc_object_release( p_playlist );
}
if ( p_intf->p_sys->b_playlist_update )
{
- [o_playlist playlistUpdated];
+ [o_playlist playlistUpdated];
p_intf->p_sys->b_playlist_update = VLC_FALSE;
}
if( p_intf->p_sys->b_fullscreen_update )
{
- vout_thread_t * p_vout;
-
playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
FIND_ANYWHERE );
vlc_object_release( p_playlist );
- p_vout = vlc_object_find( p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE );
- if( p_vout != NULL )
- {
- [o_btn_fullscreen setEnabled: VLC_TRUE];
- vlc_object_release( p_vout );
- }
- else
- {
- [o_btn_fullscreen setEnabled: VLC_FALSE];
- }
p_intf->p_sys->b_fullscreen_update = VLC_FALSE;
}