Commit 0b66060b authored by Felix Paul Kühne's avatar Felix Paul Kühne

* implemented the previously committed playmode buttons and fixed the playmode saving

parent d0df040a
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
prev = id; prev = id;
random = id; random = id;
repeat = id; repeat = id;
repeatButtonAction = id;
slower = id; slower = id;
stop = id; stop = id;
toggleVar = id; toggleVar = id;
...@@ -33,6 +34,9 @@ ...@@ -33,6 +34,9 @@
CLASS = VLCControls; CLASS = VLCControls;
LANGUAGE = ObjC; LANGUAGE = ObjC;
OUTLETS = { OUTLETS = {
"o_btn_addNode" = id;
"o_btn_repeat" = id;
"o_btn_shuffle" = id;
"o_fs_panel" = id; "o_fs_panel" = id;
"o_main" = id; "o_main" = id;
"o_specificTime_cancel_btn" = id; "o_specificTime_cancel_btn" = id;
...@@ -352,7 +356,6 @@ ...@@ -352,7 +356,6 @@
ACTIONS = { ACTIONS = {
addNode = id; addNode = id;
deleteItem = id; deleteItem = id;
handlePopUp = id;
playItem = id; playItem = id;
preparseItem = id; preparseItem = id;
recursiveExpandNode = id; recursiveExpandNode = id;
......
...@@ -26,11 +26,9 @@ ...@@ -26,11 +26,9 @@
<key>IBOpenObjects</key> <key>IBOpenObjects</key>
<array> <array>
<integer>21</integer> <integer>21</integer>
<integer>2197</integer>
<integer>2416</integer>
<integer>2730</integer> <integer>2730</integer>
<integer>2197</integer>
<integer>29</integer> <integer>29</integer>
<integer>2769</integer>
</array> </array>
<key>IBSystem Version</key> <key>IBSystem Version</key>
<string>8J135</string> <string>8J135</string>
......
/***************************************************************************** /*****************************************************************************
* controls.h: MacOS X interface module * controls.h: MacOS X interface module
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2005 the VideoLAN team * Copyright (C) 2002-2006 the VideoLAN team
* $Id$ * $Id$
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
...@@ -34,6 +34,10 @@ ...@@ -34,6 +34,10 @@
IBOutlet id o_btn_fullscreen; IBOutlet id o_btn_fullscreen;
IBOutlet id o_volumeslider; IBOutlet id o_volumeslider;
IBOutlet id o_btn_shuffle;
IBOutlet id o_btn_addNode;
IBOutlet id o_btn_repeat;
IBOutlet id o_specificTime_cancel_btn; IBOutlet id o_specificTime_cancel_btn;
IBOutlet id o_specificTime_enter_fld; IBOutlet id o_specificTime_enter_fld;
...@@ -57,6 +61,13 @@ ...@@ -57,6 +61,13 @@
- (IBAction)random:(id)sender; - (IBAction)random:(id)sender;
- (IBAction)repeat:(id)sender; - (IBAction)repeat:(id)sender;
- (IBAction)loop:(id)sender; - (IBAction)loop:(id)sender;
- (IBAction)repeatButtonAction:(id)sender;
/* the three ugly helpers again */
- (void)repeatOne;
- (void)repeatAll;
- (void)repeatOff;
- (void)shuffle;
- (IBAction)forward:(id)sender; - (IBAction)forward:(id)sender;
- (IBAction)backward:(id)sender; - (IBAction)backward:(id)sender;
......
...@@ -31,10 +31,11 @@ ...@@ -31,10 +31,11 @@
#include <sys/param.h> /* for MAXPATHLEN */ #include <sys/param.h> /* for MAXPATHLEN */
#include <string.h> #include <string.h>
#include "intf.h" #import "intf.h"
#include "vout.h" #import "vout.h"
#include "open.h" #import "open.h"
#include "controls.h" #import "controls.h"
#import "playlist.h"
#include <vlc_osd.h> #include <vlc_osd.h>
...@@ -173,6 +174,108 @@ ...@@ -173,6 +174,108 @@
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
/* three little ugly helpers */
- (void)repeatOne
{
[o_btn_repeat setImage: [[NSImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForImageResource:@"repeat_single_embedded_blue.png"]]];
[o_btn_repeat setAlternateImage: [[NSImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForImageResource:@"repeat_embedded_blue.png"]]];
}
- (void)repeatAll
{
[o_btn_repeat setImage: [[NSImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForImageResource:@"repeat_embedded_blue.png"]]];
[o_btn_repeat setAlternateImage: [[NSImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForImageResource:@"repeat_embedded.png"]]];
}
- (void)repeatOff
{
[o_btn_repeat setImage: [[NSImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForImageResource:@"repeat_embedded.png"]]];
[o_btn_repeat setAlternateImage: [[NSImage alloc] initWithContentsOfFile:
[[NSBundle mainBundle] pathForImageResource:@"repeat_single_embedded_blue.png"]]];
}
- (void)shuffle
{
vlc_value_t val;
playlist_t *p_playlist = pl_Yield( VLCIntf );
var_Get( p_playlist, "random", &val );
[o_btn_shuffle setState: val.b_bool];
vlc_object_release( p_playlist );
}
- (IBAction)repeatButtonAction:(id)sender
{
vlc_value_t looping,repeating;
intf_thread_t * p_intf = VLCIntf;
playlist_t * p_playlist = pl_Yield( p_intf );
var_Get( p_playlist, "repeat", &repeating );
var_Get( p_playlist, "loop", &looping );
[[o_btn_repeat image] release];
[[o_btn_repeat alternateImage] release];
if( !repeating.b_bool && !looping.b_bool )
{
/* was: no repeating at all, switching to Repeat One */
/* set our button's look */
[self repeatOne];
/* prepare core communication */
repeating.b_bool = VLC_TRUE;
looping.b_bool = VLC_FALSE;
config_PutInt( p_playlist, "repeat", 1 );
config_PutInt( p_playlist, "loop", 0 );
/* show the change */
vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat One" ) );
}
else if( repeating.b_bool && !looping.b_bool )
{
/* was: Repeat One, switching to Repeat All */
/* set our button's look */
[self repeatAll];
/* prepare core communication */
repeating.b_bool = VLC_FALSE;
looping.b_bool = VLC_TRUE;
config_PutInt( p_playlist, "repeat", 0 );
config_PutInt( p_playlist, "loop", 1 );
/* show the change */
vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat All" ) );
}
else
{
/* was: Repeat All or bug in VLC, switching to Repeat Off */
/* set our button's look */
[self repeatOff];
/* prepare core communication */
repeating.b_bool = VLC_FALSE;
looping.b_bool = VLC_FALSE;
config_PutInt( p_playlist, "repeat", 0 );
config_PutInt( p_playlist, "loop", 0 );
/* show the change */
vout_OSDMessage( p_intf, DEFAULT_CHAN, _( "Repeat Off" ) );
}
/* communicate with core and the main intf loop */
var_Set( p_playlist, "repeat", repeating );
var_Set( p_playlist, "loop", looping );
p_intf->p_sys->b_playmode_update = VLC_TRUE;
p_intf->p_sys->b_intf_update = VLC_TRUE;
vlc_object_release( p_playlist );
}
- (IBAction)repeat:(id)sender - (IBAction)repeat:(id)sender
{ {
vlc_value_t val; vlc_value_t val;
......
...@@ -477,8 +477,8 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -477,8 +477,8 @@ static VLCMain *_o_sharedMainInstance = nil;
var_AddCallback( p_intf, "interaction", InteractCallback, self ); var_AddCallback( p_intf, "interaction", InteractCallback, self );
p_intf->b_interaction = VLC_TRUE; p_intf->b_interaction = VLC_TRUE;
// First we setup the blue selection box - another window that will be attached as a child window /* update the playmode stuff */
// to this one, and will be moved by timers as needed. p_intf->p_sys->b_playmode_update = VLC_TRUE;
nib_main_loaded = TRUE; nib_main_loaded = TRUE;
} }
...@@ -916,7 +916,9 @@ static VLCMain *_o_sharedMainInstance = nil; ...@@ -916,7 +916,9 @@ static VLCMain *_o_sharedMainInstance = nil;
- (id)getPlaylist - (id)getPlaylist
{ {
return o_playlist; if( o_playlist )
return o_playlist;
return nil;
} }
- (id)getInfo - (id)getInfo
......
...@@ -73,8 +73,6 @@ ...@@ -73,8 +73,6 @@
IBOutlet id o_playlist_view; IBOutlet id o_playlist_view;
IBOutlet id o_status_field; IBOutlet id o_status_field;
IBOutlet id o_search_field; IBOutlet id o_search_field;
IBOutlet id o_random_ckb;
IBOutlet id o_loop_popup;
IBOutlet id o_mi_save_playlist; IBOutlet id o_mi_save_playlist;
IBOutlet id o_ctx_menu; IBOutlet id o_ctx_menu;
...@@ -118,7 +116,6 @@ ...@@ -118,7 +116,6 @@
- (void)searchfieldChanged:(NSNotification *)o_notification; - (void)searchfieldChanged:(NSNotification *)o_notification;
- (NSMenu *)menuForEvent:(NSEvent *)o_event; - (NSMenu *)menuForEvent:(NSEvent *)o_event;
- (IBAction)handlePopUp:(id)sender;
- (IBAction)searchItem:(id)sender; - (IBAction)searchItem:(id)sender;
- (void)playlistUpdated; - (void)playlistUpdated;
......
...@@ -42,14 +42,14 @@ ...@@ -42,14 +42,14 @@
#include <sys/mount.h> #include <sys/mount.h>
#include <vlc_keys.h> #include <vlc_keys.h>
#include "intf.h" #import "intf.h"
#import "wizard.h" #import "wizard.h"
#import "bookmarks.h" #import "bookmarks.h"
#import "playlistinfo.h" #import "playlistinfo.h"
#include "playlist.h" #import "playlist.h"
#include "controls.h" #import "controls.h"
#include "vlc_osd.h" #import "vlc_osd.h"
#include "misc.h" #import "misc.h"
#import <vlc_interaction.h> #import <vlc_interaction.h>
/***************************************************************************** /*****************************************************************************
...@@ -204,7 +204,7 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name ); ...@@ -204,7 +204,7 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name );
if( o_value == nil ) if( o_value == nil )
{ {
o_value = [[NSValue valueWithPointer: p_return] retain]; o_value = [[NSValue valueWithPointer: p_return] retain];
msg_Err( VLCIntf, @"missing playlist item's pointer value" ); msg_Err( VLCIntf, "missing playlist item's pointer value" );
} }
return o_value; return o_value;
} }
...@@ -428,14 +428,10 @@ NSLog( @"expandable" ); ...@@ -428,14 +428,10 @@ NSLog( @"expandable" );
[o_status_field setStringValue: [NSString stringWithFormat: [o_status_field setStringValue: [NSString stringWithFormat:
_NS("No items in the playlist")]]; _NS("No items in the playlist")]];
[o_random_ckb setTitle: _NS("Random")];
#if 0 #if 0
[o_search_button setTitle: _NS("Search")]; [o_search_button setTitle: _NS("Search")];
#endif #endif
[o_search_field setToolTip: _NS("Search in Playlist")]; [o_search_field setToolTip: _NS("Search in Playlist")];
[[o_loop_popup itemAtIndex:0] setTitle: _NS("Standard Play")];
[[o_loop_popup itemAtIndex:1] setTitle: _NS("Repeat One")];
[[o_loop_popup itemAtIndex:2] setTitle: _NS("Repeat All")];
[o_mi_addNode setTitle: _NS("Add Folder to Playlist")]; [o_mi_addNode setTitle: _NS("Add Folder to Playlist")];
[o_save_accessory_text setStringValue: _NS("File Format:")]; [o_save_accessory_text setStringValue: _NS("File Format:")];
...@@ -492,19 +488,18 @@ NSLog( @"expandable" ); ...@@ -492,19 +488,18 @@ NSLog( @"expandable" );
var_Get( p_playlist, "repeat", &val ); var_Get( p_playlist, "repeat", &val );
if( val.b_bool == VLC_TRUE ) if( val.b_bool == VLC_TRUE )
{ {
[o_loop_popup selectItemAtIndex: 1]; [[[VLCMain sharedInstance] getControls] repeatOne];
} }
else if( val2.b_bool == VLC_TRUE ) else if( val2.b_bool == VLC_TRUE )
{ {
[o_loop_popup selectItemAtIndex: 2]; [[[VLCMain sharedInstance] getControls] repeatAll];
} }
else else
{ {
[o_loop_popup selectItemAtIndex: 0]; [[[VLCMain sharedInstance] getControls] repeatOff];
} }
var_Get( p_playlist, "random", &val ); [[[VLCMain sharedInstance] getControls] shuffle];
[o_random_ckb setState: val.b_bool];
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
...@@ -1072,7 +1067,7 @@ NSLog( @"expandable" ); ...@@ -1072,7 +1067,7 @@ NSLog( @"expandable" );
[self playlistUpdated]; [self playlistUpdated];
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
} }
/* FIXME!!
- (IBAction)handlePopUp:(id)sender - (IBAction)handlePopUp:(id)sender
{ {
...@@ -1114,7 +1109,7 @@ NSLog( @"expandable" ); ...@@ -1114,7 +1109,7 @@ NSLog( @"expandable" );
vlc_object_release( p_playlist ); vlc_object_release( p_playlist );
[self playlistUpdated]; [self playlistUpdated];
} }
*/
- (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item - (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item
{ {
playlist_t *p_playlist = pl_Yield( VLCIntf ); playlist_t *p_playlist = pl_Yield( VLCIntf );
......
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