Changeset a6cb8953d4bb5d5b75eeeb6fb7c9009591ee8431

Show
Ignore:
Timestamp:
04/12/05 16:41:47 (3 years ago)
Author:
Derk-Jan Hartman <hartman@videolan.org>
git-committer:
Derk-Jan Hartman <hartman@videolan.org> 1113316907 +0000
git-parent:

[44c6d658c95fc55d3f7a9129f9dea42ee1bdf067]

git-author:
Derk-Jan Hartman <hartman@videolan.org> 1113316907 +0000
Message:

* fixed fullscreen on osx with multiple vouts.
* different way to remember fullscreen state.
* update the playlist on item-append and item-deleted calls.
* fixed video-on-top with opengl vouts on OSX.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • AUTHORS

    r0adee23 ra6cb895  
    174174D: Dutch translation 
    175175D: Directory input 
     176D: Mac OS X Video Output 
     177D: Mac OS X Audio Output 
     178D: Kasenna client support 
    176179S: Netherlands 
    177180 
  • TODO

    r94782ce ra6cb895  
    145145   - *   Ability to save playlist on quit<br /> 
    146146   - ?   Represent navigation structure as "fake items" ?  <br /> 
    147    -     Custom playlist format<br /> 
     147   -     Custom playlist format (http://xspf.xiph.org/ looks like a good idea)<br /> 
    148148- Helper modules<br /> 
    149149   - **  ASX and B4S parsers (see below)<br /> 
  • modules/gui/macosx/controls.m

    ra887c68 ra6cb895  
    275275                                              FIND_ANYWHERE ); 
    276276 
    277     playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, 
    278                                               FIND_ANYWHERE ); 
    279  
    280277    if( p_vout != NULL ) 
    281278    { 
     
    303300                else 
    304301                { 
    305                     vlc_value_t val; 
    306                     var_Get( p_vout, "fullscreen", &val ); 
    307                     var_Set( p_vout, "fullscreen", (vlc_value_t)!val.b_bool ); 
     302                    [o_window toggleFullscreen]; 
    308303                } 
    309304                break; 
     
    311306        } 
    312307        vlc_object_release( (vlc_object_t *)p_vout ); 
    313         if (p_playlist) vlc_object_release(p_playlist); 
    314     } 
    315  
    316     else if ( p_playlist != NULL ) 
    317     { 
    318         if (! ([o_title isEqualToString: _NS("Half Size") ] || 
    319                [o_title isEqualToString: _NS("Normal Size") ] || 
    320                [o_title isEqualToString: _NS("Double Size") ] || 
    321                [o_title isEqualToString: _NS("Float on Top") ] || 
    322                [o_title isEqualToString: _NS("Fit to Screen") ] )) 
     308    } 
     309    else 
     310    { 
     311        playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, 
     312                                              FIND_ANYWHERE ); 
     313 
     314        if( p_playlist && ( [o_title isEqualToString: _NS("Fullscreen")] || 
     315            [sender isKindOfClass:[NSButton class]] ) ) 
    323316        { 
    324317            vlc_value_t val; 
     
    326319            var_Set( p_playlist, "fullscreen", (vlc_value_t)!val.b_bool ); 
    327320        } 
    328     vlc_object_release( (vlc_object_t *)p_playlist ); 
     321        if( p_playlist ) vlc_object_release( (vlc_object_t *)p_playlist ); 
    329322    } 
    330323 
     
    567560        vlc_mutex_lock( &p_playlist->object_lock ); 
    568561    } 
     562    else return FALSE; 
    569563 
    570564#define p_input p_playlist->p_input 
     
    573567        [[o_mi title] isEqualToString: _NS("Slower")] ) 
    574568    { 
    575         if( p_playlist != NULL && p_input != NULL ) 
     569        if( p_input != NULL ) 
    576570        { 
    577571            bEnabled = p_input->input.b_can_pace_control; 
     
    584578    else if( [[o_mi title] isEqualToString: _NS("Stop")] ) 
    585579    { 
    586         if( p_playlist == NULL || p_input == NULL ) 
     580        if( p_input == NULL ) 
    587581        { 
    588582            bEnabled = FALSE; 
     
    593587             [[o_mi title] isEqualToString: _NS("Next")] ) 
    594588    { 
    595         if( p_playlist == NULL ) 
    596         { 
    597             bEnabled = FALSE; 
    598         } 
    599         else 
    600         { 
    601589            bEnabled = p_playlist->i_size > 1; 
    602         } 
    603590    } 
    604591    else if( [[o_mi title] isEqualToString: _NS("Random")] ) 
     
    626613             [[o_mi title] isEqualToString: _NS("Step Backward")] ) 
    627614    { 
    628         bEnabled = FALSE; 
    629         if( p_playlist != NULL && p_input != NULL ) 
     615        if( p_input != NULL ) 
    630616        { 
    631617            var_Get( p_input, "seekable", &val); 
    632             if( val.b_bool ) 
    633             { 
    634                 bEnabled = TRUE; 
    635             } 
     618            bEnabled = val.b_bool; 
    636619        } 
    637620    } 
     
    646629                [[o_mi title] isEqualToString: _NS("Fit to Screen")] || 
    647630                [[o_mi title] isEqualToString: _NS("Snapshot")] || 
     631                [[o_mi title] isEqualToString: _NS("Fullscreen")] || 
    648632                [[o_mi title] isEqualToString: _NS("Float on Top")] ) 
    649633    { 
     
    657641        if( p_vout != NULL ) 
    658642        { 
    659             if ( [[o_mi title] isEqualToString: _NS("Float on Top")] ) 
     643            if( [[o_mi title] isEqualToString: _NS("Float on Top")] ) 
    660644            { 
    661645                var_Get( p_vout, "video-on-top", &val ); 
     
    663647            } 
    664648 
    665             while ((o_window = [o_enumerator nextObject])) 
     649            while( (o_window = [o_enumerator nextObject])) 
    666650            { 
    667651                if( [[o_window className] isEqualToString: @"VLCWindow"] ) 
     
    673657            vlc_object_release( (vlc_object_t *)p_vout ); 
    674658        } 
    675     } 
    676     else if( [[o_mi title] isEqualToString: _NS("Fullscreen")]) 
    677     { 
    678         if (p_playlist) 
    679         { 
    680             var_Get(p_playlist, "fullscreen", &val ); 
     659        else if( [[o_mi title] isEqualToString: _NS("Fullscreen")] ) 
     660        { 
     661            var_Get( p_playlist, "fullscreen", &val ); 
    681662            [o_mi setState: val.b_bool]; 
    682663            bEnabled = TRUE; 
    683664        } 
    684         else 
    685         { 
    686             bEnabled = FALSE; 
    687         } 
    688665        [o_main setupMenus]; /* Make sure video menu is up to date */ 
    689666    } 
    690667 
    691  
    692     if( p_playlist != NULL ) 
    693     { 
    694         vlc_mutex_unlock( &p_playlist->object_lock ); 
    695         vlc_object_release( p_playlist ); 
    696     } 
     668    vlc_mutex_unlock( &p_playlist->object_lock ); 
     669    vlc_object_release( p_playlist ); 
    697670 
    698671    return( bEnabled ); 
  • modules/gui/macosx/intf.m

    r44c6d65 ra6cb895  
    773773        var_AddCallback( p_playlist, "intf-change", PlaylistChanged, self ); 
    774774        var_AddCallback( p_playlist, "item-change", PlaylistChanged, self ); 
     775        var_AddCallback( p_playlist, "item-append", PlaylistChanged, self ); 
     776        var_AddCallback( p_playlist, "item-deleted", PlaylistChanged, self ); 
    775777        var_AddCallback( p_playlist, "playlist-current", PlaylistChanged, self ); 
    776778 
     
    885887        playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, 
    886888                                                   FIND_ANYWHERE ); 
    887  
    888         [o_btn_fullscreen setState: ( var_Get( p_playlist, "fullscreen", &val )>=0 && val.b_bool ) ]; 
    889  
     889        var_Get( p_playlist, "fullscreen", &val ); 
     890        [o_btn_fullscreen setState: val.b_bool]; 
    890891        vlc_object_release( p_playlist ); 
    891892 
  • modules/gui/macosx/vout.m

    r34e0612 ra6cb895  
    366366    vlc_value_t val; 
    367367 
    368     if( var_Get( p_vout, "video-on-top", &val )>=0 && val.b_bool) 
     368    if( var_Get( p_real_vout, "video-on-top", &val )>=0 && val.b_bool) 
    369369    { 
    370370        val.b_bool = VLC_FALSE; 
     
    374374        val.b_bool = VLC_TRUE; 
    375375    } 
    376     var_Set( p_vout, "video-on-top", val ); 
     376    var_Set( p_real_vout, "video-on-top", val ); 
    377377} 
    378378 
     
    380380{ 
    381381    vlc_value_t val; 
    382     val.b_bool = !p_real_vout->b_fullscreen; 
     382    var_Get( p_real_vout, "fullscreen", &val ); 
     383    val.b_bool = !val.b_bool; 
    383384    var_Set( p_real_vout, "fullscreen", val ); 
    384385} 
     
    386387- (BOOL)isFullscreen 
    387388{ 
    388     return( p_vout->b_fullscreen ); 
     389    vlc_value_t val; 
     390    var_Get( p_real_vout, "fullscreen", &val ); 
     391    return( val.b_bool ); 
    389392} 
    390393 
    391394- (void)snapshot 
    392395{ 
    393     vout_Control( p_vout, VOUT_SNAPSHOT ); 
     396    vout_Control( p_real_vout, VOUT_SNAPSHOT ); 
    394397} 
    395398