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 @@
prev = id;
random = id;
repeat = id;
repeatButtonAction = id;
slower = id;
stop = id;
toggleVar = id;
......@@ -33,6 +34,9 @@
CLASS = VLCControls;
LANGUAGE = ObjC;
OUTLETS = {
"o_btn_addNode" = id;
"o_btn_repeat" = id;
"o_btn_shuffle" = id;
"o_fs_panel" = id;
"o_main" = id;
"o_specificTime_cancel_btn" = id;
......@@ -352,7 +356,6 @@
ACTIONS = {
addNode = id;
deleteItem = id;
handlePopUp = id;
playItem = id;
preparseItem = id;
recursiveExpandNode = id;
......
......@@ -26,11 +26,9 @@
<key>IBOpenObjects</key>
<array>
<integer>21</integer>
<integer>2197</integer>
<integer>2416</integer>
<integer>2730</integer>
<integer>2197</integer>
<integer>29</integer>
<integer>2769</integer>
</array>
<key>IBSystem Version</key>
<string>8J135</string>
......
/*****************************************************************************
* controls.h: MacOS X interface module
*****************************************************************************
* Copyright (C) 2002-2005 the VideoLAN team
* Copyright (C) 2002-2006 the VideoLAN team
* $Id$
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
......@@ -34,6 +34,10 @@
IBOutlet id o_btn_fullscreen;
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_enter_fld;
......@@ -57,6 +61,13 @@
- (IBAction)random:(id)sender;
- (IBAction)repeat:(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)backward:(id)sender;
......
......@@ -31,10 +31,11 @@
#include <sys/param.h> /* for MAXPATHLEN */
#include <string.h>
#include "intf.h"
#include "vout.h"
#include "open.h"
#include "controls.h"
#import "intf.h"
#import "vout.h"
#import "open.h"
#import "controls.h"
#import "playlist.h"
#include <vlc_osd.h>
......@@ -173,6 +174,108 @@
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
{
vlc_value_t val;
......
......@@ -477,8 +477,8 @@ static VLCMain *_o_sharedMainInstance = nil;
var_AddCallback( p_intf, "interaction", InteractCallback, self );
p_intf->b_interaction = VLC_TRUE;
// First we setup the blue selection box - another window that will be attached as a child window
// to this one, and will be moved by timers as needed.
/* update the playmode stuff */
p_intf->p_sys->b_playmode_update = VLC_TRUE;
nib_main_loaded = TRUE;
}
......@@ -916,7 +916,9 @@ static VLCMain *_o_sharedMainInstance = nil;
- (id)getPlaylist
{
return o_playlist;
if( o_playlist )
return o_playlist;
return nil;
}
- (id)getInfo
......
......@@ -73,8 +73,6 @@
IBOutlet id o_playlist_view;
IBOutlet id o_status_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_ctx_menu;
......@@ -118,7 +116,6 @@
- (void)searchfieldChanged:(NSNotification *)o_notification;
- (NSMenu *)menuForEvent:(NSEvent *)o_event;
- (IBAction)handlePopUp:(id)sender;
- (IBAction)searchItem:(id)sender;
- (void)playlistUpdated;
......
......@@ -42,14 +42,14 @@
#include <sys/mount.h>
#include <vlc_keys.h>
#include "intf.h"
#import "intf.h"
#import "wizard.h"
#import "bookmarks.h"
#import "playlistinfo.h"
#include "playlist.h"
#include "controls.h"
#include "vlc_osd.h"
#include "misc.h"
#import "playlist.h"
#import "controls.h"
#import "vlc_osd.h"
#import "misc.h"
#import <vlc_interaction.h>
/*****************************************************************************
......@@ -204,7 +204,7 @@ NSLog( @"%d children for %s", i_return, p_item->p_input->psz_name );
if( o_value == nil )
{
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;
}
......@@ -428,14 +428,10 @@ NSLog( @"expandable" );
[o_status_field setStringValue: [NSString stringWithFormat:
_NS("No items in the playlist")]];
[o_random_ckb setTitle: _NS("Random")];
#if 0
[o_search_button setTitle: _NS("Search")];
#endif
[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_save_accessory_text setStringValue: _NS("File Format:")];
......@@ -492,19 +488,18 @@ NSLog( @"expandable" );
var_Get( p_playlist, "repeat", &val );
if( val.b_bool == VLC_TRUE )
{
[o_loop_popup selectItemAtIndex: 1];
[[[VLCMain sharedInstance] getControls] repeatOne];
}
else if( val2.b_bool == VLC_TRUE )
{
[o_loop_popup selectItemAtIndex: 2];
[[[VLCMain sharedInstance] getControls] repeatAll];
}
else
{
[o_loop_popup selectItemAtIndex: 0];
[[[VLCMain sharedInstance] getControls] repeatOff];
}
var_Get( p_playlist, "random", &val );
[o_random_ckb setState: val.b_bool];
[[[VLCMain sharedInstance] getControls] shuffle];
vlc_object_release( p_playlist );
}
......@@ -1072,7 +1067,7 @@ NSLog( @"expandable" );
[self playlistUpdated];
vlc_object_release( p_playlist );
}
/* FIXME!!
- (IBAction)handlePopUp:(id)sender
{
......@@ -1114,7 +1109,7 @@ NSLog( @"expandable" );
vlc_object_release( p_playlist );
[self playlistUpdated];
}
*/
- (NSMutableArray *)subSearchItem:(playlist_item_t *)p_item
{
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