Changeset a6cb8953d4bb5d5b75eeeb6fb7c9009591ee8431
- 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
| r0adee23 |
ra6cb895 |
|
| 174 | 174 | D: Dutch translation |
|---|
| 175 | 175 | D: Directory input |
|---|
| | 176 | D: Mac OS X Video Output |
|---|
| | 177 | D: Mac OS X Audio Output |
|---|
| | 178 | D: Kasenna client support |
|---|
| 176 | 179 | S: Netherlands |
|---|
| 177 | 180 | |
|---|
| r94782ce |
ra6cb895 |
|
| 145 | 145 | - * Ability to save playlist on quit<br /> |
|---|
| 146 | 146 | - ? 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 /> |
|---|
| 148 | 148 | - Helper modules<br /> |
|---|
| 149 | 149 | - ** ASX and B4S parsers (see below)<br /> |
|---|
| ra887c68 |
ra6cb895 |
|
| 275 | 275 | FIND_ANYWHERE ); |
|---|
| 276 | 276 | |
|---|
| 277 | | playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, |
|---|
| 278 | | FIND_ANYWHERE ); |
|---|
| 279 | | |
|---|
| 280 | 277 | if( p_vout != NULL ) |
|---|
| 281 | 278 | { |
|---|
| … | … | |
| 303 | 300 | else |
|---|
| 304 | 301 | { |
|---|
| 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]; |
|---|
| 308 | 303 | } |
|---|
| 309 | 304 | break; |
|---|
| … | … | |
| 311 | 306 | } |
|---|
| 312 | 307 | 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]] ) ) |
|---|
| 323 | 316 | { |
|---|
| 324 | 317 | vlc_value_t val; |
|---|
| … | … | |
| 326 | 319 | var_Set( p_playlist, "fullscreen", (vlc_value_t)!val.b_bool ); |
|---|
| 327 | 320 | } |
|---|
| 328 | | vlc_object_release( (vlc_object_t *)p_playlist ); |
|---|
| | 321 | if( p_playlist ) vlc_object_release( (vlc_object_t *)p_playlist ); |
|---|
| 329 | 322 | } |
|---|
| 330 | 323 | |
|---|
| … | … | |
| 567 | 560 | vlc_mutex_lock( &p_playlist->object_lock ); |
|---|
| 568 | 561 | } |
|---|
| | 562 | else return FALSE; |
|---|
| 569 | 563 | |
|---|
| 570 | 564 | #define p_input p_playlist->p_input |
|---|
| … | … | |
| 573 | 567 | [[o_mi title] isEqualToString: _NS("Slower")] ) |
|---|
| 574 | 568 | { |
|---|
| 575 | | if( p_playlist != NULL && p_input != NULL ) |
|---|
| | 569 | if( p_input != NULL ) |
|---|
| 576 | 570 | { |
|---|
| 577 | 571 | bEnabled = p_input->input.b_can_pace_control; |
|---|
| … | … | |
| 584 | 578 | else if( [[o_mi title] isEqualToString: _NS("Stop")] ) |
|---|
| 585 | 579 | { |
|---|
| 586 | | if( p_playlist == NULL || p_input == NULL ) |
|---|
| | 580 | if( p_input == NULL ) |
|---|
| 587 | 581 | { |
|---|
| 588 | 582 | bEnabled = FALSE; |
|---|
| … | … | |
| 593 | 587 | [[o_mi title] isEqualToString: _NS("Next")] ) |
|---|
| 594 | 588 | { |
|---|
| 595 | | if( p_playlist == NULL ) |
|---|
| 596 | | { |
|---|
| 597 | | bEnabled = FALSE; |
|---|
| 598 | | } |
|---|
| 599 | | else |
|---|
| 600 | | { |
|---|
| 601 | 589 | bEnabled = p_playlist->i_size > 1; |
|---|
| 602 | | } |
|---|
| 603 | 590 | } |
|---|
| 604 | 591 | else if( [[o_mi title] isEqualToString: _NS("Random")] ) |
|---|
| … | … | |
| 626 | 613 | [[o_mi title] isEqualToString: _NS("Step Backward")] ) |
|---|
| 627 | 614 | { |
|---|
| 628 | | bEnabled = FALSE; |
|---|
| 629 | | if( p_playlist != NULL && p_input != NULL ) |
|---|
| | 615 | if( p_input != NULL ) |
|---|
| 630 | 616 | { |
|---|
| 631 | 617 | var_Get( p_input, "seekable", &val); |
|---|
| 632 | | if( val.b_bool ) |
|---|
| 633 | | { |
|---|
| 634 | | bEnabled = TRUE; |
|---|
| 635 | | } |
|---|
| | 618 | bEnabled = val.b_bool; |
|---|
| 636 | 619 | } |
|---|
| 637 | 620 | } |
|---|
| … | … | |
| 646 | 629 | [[o_mi title] isEqualToString: _NS("Fit to Screen")] || |
|---|
| 647 | 630 | [[o_mi title] isEqualToString: _NS("Snapshot")] || |
|---|
| | 631 | [[o_mi title] isEqualToString: _NS("Fullscreen")] || |
|---|
| 648 | 632 | [[o_mi title] isEqualToString: _NS("Float on Top")] ) |
|---|
| 649 | 633 | { |
|---|
| … | … | |
| 657 | 641 | if( p_vout != NULL ) |
|---|
| 658 | 642 | { |
|---|
| 659 | | if ( [[o_mi title] isEqualToString: _NS("Float on Top")] ) |
|---|
| | 643 | if( [[o_mi title] isEqualToString: _NS("Float on Top")] ) |
|---|
| 660 | 644 | { |
|---|
| 661 | 645 | var_Get( p_vout, "video-on-top", &val ); |
|---|
| … | … | |
| 663 | 647 | } |
|---|
| 664 | 648 | |
|---|
| 665 | | while ((o_window = [o_enumerator nextObject])) |
|---|
| | 649 | while( (o_window = [o_enumerator nextObject])) |
|---|
| 666 | 650 | { |
|---|
| 667 | 651 | if( [[o_window className] isEqualToString: @"VLCWindow"] ) |
|---|
| … | … | |
| 673 | 657 | vlc_object_release( (vlc_object_t *)p_vout ); |
|---|
| 674 | 658 | } |
|---|
| 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 ); |
|---|
| 681 | 662 | [o_mi setState: val.b_bool]; |
|---|
| 682 | 663 | bEnabled = TRUE; |
|---|
| 683 | 664 | } |
|---|
| 684 | | else |
|---|
| 685 | | { |
|---|
| 686 | | bEnabled = FALSE; |
|---|
| 687 | | } |
|---|
| 688 | 665 | [o_main setupMenus]; /* Make sure video menu is up to date */ |
|---|
| 689 | 666 | } |
|---|
| 690 | 667 | |
|---|
| 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 ); |
|---|
| 697 | 670 | |
|---|
| 698 | 671 | return( bEnabled ); |
|---|
| r44c6d65 |
ra6cb895 |
|
| 773 | 773 | var_AddCallback( p_playlist, "intf-change", PlaylistChanged, self ); |
|---|
| 774 | 774 | 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 ); |
|---|
| 775 | 777 | var_AddCallback( p_playlist, "playlist-current", PlaylistChanged, self ); |
|---|
| 776 | 778 | |
|---|
| … | … | |
| 885 | 887 | playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, |
|---|
| 886 | 888 | 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]; |
|---|
| 890 | 891 | vlc_object_release( p_playlist ); |
|---|
| 891 | 892 | |
|---|
| r34e0612 |
ra6cb895 |
|
| 366 | 366 | vlc_value_t val; |
|---|
| 367 | 367 | |
|---|
| 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) |
|---|
| 369 | 369 | { |
|---|
| 370 | 370 | val.b_bool = VLC_FALSE; |
|---|
| … | … | |
| 374 | 374 | val.b_bool = VLC_TRUE; |
|---|
| 375 | 375 | } |
|---|
| 376 | | var_Set( p_vout, "video-on-top", val ); |
|---|
| | 376 | var_Set( p_real_vout, "video-on-top", val ); |
|---|
| 377 | 377 | } |
|---|
| 378 | 378 | |
|---|
| … | … | |
| 380 | 380 | { |
|---|
| 381 | 381 | 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; |
|---|
| 383 | 384 | var_Set( p_real_vout, "fullscreen", val ); |
|---|
| 384 | 385 | } |
|---|
| … | … | |
| 386 | 387 | - (BOOL)isFullscreen |
|---|
| 387 | 388 | { |
|---|
| 388 | | return( p_vout->b_fullscreen ); |
|---|
| | 389 | vlc_value_t val; |
|---|
| | 390 | var_Get( p_real_vout, "fullscreen", &val ); |
|---|
| | 391 | return( val.b_bool ); |
|---|
| 389 | 392 | } |
|---|
| 390 | 393 | |
|---|
| 391 | 394 | - (void)snapshot |
|---|
| 392 | 395 | { |
|---|
| 393 | | vout_Control( p_vout, VOUT_SNAPSHOT ); |
|---|
| | 396 | vout_Control( p_real_vout, VOUT_SNAPSHOT ); |
|---|
| 394 | 397 | } |
|---|
| 395 | 398 | |
|---|