* intf.m: MacOS X interface plugin
*****************************************************************************
* Copyright (C) 2002-2003 VideoLAN
- * $Id: intf.m,v 1.52 2003/02/09 01:50:35 massiot Exp $
+ * $Id: intf.m,v 1.72 2003/05/04 22:42:16 gbazin Exp $
*
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr>
#include "vout.h"
#include "prefs.h"
#include "playlist.h"
+#include "info.h"
/*****************************************************************************
* Local prototypes.
return psz_string;
}
+- (NSStringEncoding)getEncoding
+{
+ return i_encoding;
+}
+
- (void)setIntf:(intf_thread_t *)_p_intf
{
p_intf = _p_intf;
[o_msgs_panel setDelegate: self];
[o_msgs_panel setTitle: _NS("Messages")];
[o_msgs_panel setExcludedFromWindowsMenu: TRUE];
- [o_msgs_btn_ok setTitle: _NS("Close")];
[o_msgs_btn_crashlog setTitle: _NS("Open CrashLog")];
/* main menu */
[o_mi_about setTitle: _NS("About VLC media player")];
- [o_mi_prefs setTitle: _NS("Preferences")];
+ [o_mi_prefs setTitle: _NS("Preferences...")];
[o_mi_hide setTitle: _NS("Hide VLC")];
[o_mi_hide_others setTitle: _NS("Hide Others")];
[o_mi_show_all setTitle: _NS("Show All")];
[o_mi_quit setTitle: _NS("Quit VLC")];
- [o_mu_file setTitle: _NS("File")];
+ [o_mu_file setTitle: _ANS("1:File")];
[o_mi_open_generic setTitle: _NS("Open...")];
[o_mi_open_file setTitle: _NS("Open File...")];
[o_mi_open_disc setTitle: _NS("Open Disc...")];
[o_mi_normal_window setTitle: _NS("Normal Size")];
[o_mi_double_window setTitle: _NS("Double Size")];
[o_mi_fullscreen setTitle: _NS("Fullscreen")];
+ [o_mi_floatontop setTitle: _NS("Float On Top")];
[o_mi_screen setTitle: _NS("Screen")];
[o_mi_deinterlace setTitle: _NS("Deinterlace")];
+ [o_mu_deinterlace setTitle: _NS("Deinterlace")];
[o_mu_window setTitle: _NS("Window")];
[o_mi_minimize setTitle: _NS("Minimize Window")];
[o_mi_close_window setTitle: _NS("Close Window")];
[o_mi_controller setTitle: _NS("Controller")];
[o_mi_playlist setTitle: _NS("Playlist")];
+ [o_mi_info setTitle: _NS("Info")];
[o_mi_messages setTitle: _NS("Messages")];
[o_mi_bring_atf setTitle: _NS("Bring All to Front")];
[o_mu_help setTitle: _NS("Help")];
[o_mi_readme setTitle: _NS("ReadMe...")];
- [o_mi_reportabug setTitle: _NS("Report A Bug")];
+ [o_mi_reportabug setTitle: _NS("Report a Bug")];
[o_mi_website setTitle: _NS("VideoLAN Website")];
[o_mi_license setTitle: _NS("License")];
[o_err_btn_msgs setTitle: _NS("Open Messages Window")];
[o_err_btn_dismiss setTitle: _NS("Dismiss")];
+ [o_info_window setTitle: _NS("Info")];
+
[self setSubmenusEnabled: FALSE];
[self manageVolumeSlider];
}
[NSTimer scheduledTimerWithTimeInterval: 0.5
target: self selector: @selector(manageIntf:)
- userInfo: nil repeats: TRUE];
+ userInfo: nil repeats: FALSE];
[NSThread detachNewThreadSelector: @selector(manage)
toTarget: self withObject: nil];
+
+ vlc_thread_set_priority( p_intf, VLC_THREAD_PRIORITY_LOW );
}
- (BOOL)application:(NSApplication *)o_app openFile:(NSString *)o_filename
{
+ intf_thread_t * p_intf = [NSApp getIntf];
+
[o_playlist appendArray:
[NSArray arrayWithObject: o_filename] atPos: -1 enqueue: NO];
-
+
+ config_PutPsz( [NSApp getIntf], "sub-file", "" );
+ config_PutInt( p_intf, "sub-delay", 0 );
+ config_PutFloat( p_intf, "sub-fps", 0.0 );
+ config_PutPsz( p_intf, "sout", "" );
+
return( TRUE );
}
+- (id)getControls
+{
+ if ( o_controls )
+ {
+ return o_controls;
+ }
+ return nil;
+}
+
- (void)manage
{
NSDate * o_sleep_date;
if( p_playlist != NULL )
{
vlc_mutex_lock( &p_playlist->object_lock );
-
+
[self manage: p_playlist];
-
+
vlc_mutex_unlock( &p_playlist->object_lock );
vlc_object_release( p_playlist );
}
- (void)manage:(playlist_t *)p_playlist
{
+ vlc_value_t val;
+
intf_thread_t * p_intf = [NSApp getIntf];
+ if( var_Get( (vlc_object_t *)p_playlist, "intf-change", &val ) >= 0 &&
+ val.b_bool )
+ {
+ p_intf->p_sys->b_playlist_update = VLC_TRUE;
+ p_intf->p_sys->b_intf_update = VLC_TRUE;
+ }
+
#define p_input p_playlist->p_input
if( p_input )
p_intf->p_sys->b_aout_update = 1;
b_need_menus = VLC_TRUE;
}
+
vlc_object_release( (vlc_object_t *)p_aout );
}
+
aout_VolumeGet( p_intf, &i_volume );
p_intf->p_sys->b_mute = ( i_volume == 0 );
p_intf->p_sys->b_chapter_update = 1;
p_intf->p_sys->b_audio_update = 1;
p_intf->p_sys->b_spu_update = 1;
+ p_intf->p_sys->b_current_title_update = 1;
p_intf->p_sys->i_part = 0;
p_playlist->p_input->stream.b_changed = 0;
+
msg_Dbg( p_intf, "stream has changed, refreshing interface" );
}
else
vout_Destroy( p_vout );
vlc_mutex_lock( &p_playlist->object_lock );
}
-
- aout_instance_t * p_aout = vlc_object_find( p_intf, VLC_OBJECT_AOUT,
- FIND_ANYWHERE );
- if( p_aout != NULL )
- {
- vlc_object_detach( (vlc_object_t *)p_aout );
- vlc_object_release( (vlc_object_t *)p_aout );
- aout_Delete( p_aout );
- }
}
p_intf->p_sys->b_intf_update = VLC_TRUE;
return;
}
+ if ( p_intf->p_sys->b_playlist_update )
+ {
+ vlc_value_t val;
+
+ val.b_bool = 0;
+ var_Set( (vlc_object_t *)p_playlist, "intf-change", val );
+
+ [o_playlist playlistUpdated];
+
+ p_intf->p_sys->b_playlist_update = VLC_FALSE;
+ }
+
+ if( p_intf->p_sys->b_current_title_update )
+ {
+ id o_vout_wnd;
+
+ NSEnumerator * o_enum = [[NSApp windows] objectEnumerator];
+
+ while( ( o_vout_wnd = [o_enum nextObject] ) )
+ {
+ if( [[o_vout_wnd className] isEqualToString: @"VLCWindow"] )
+ {
+ [o_vout_wnd updateTitle];
+ }
+ }
+
+ [o_playlist updateRowSelection];
+ [o_info updateInfo];
+
+ p_intf->p_sys->b_current_title_update = FALSE;
+ }
+
vlc_mutex_lock( &p_playlist->object_lock );
#define p_input p_playlist->p_input
{
if( f_slider == f_slider_old )
{
- float f_updated = ( 100. * p_area->i_tell ) /
+ float f_updated = ( 10000. * p_area->i_tell ) /
p_area->i_size;
if( f_slider != f_updated )
}
else
{
- off_t i_seek = ( f_slider * p_area->i_size ) / 100;
+ off_t i_seek = ( f_slider * p_area->i_size ) / 10000;
/* release the lock to be able to seek */
vlc_mutex_unlock( &p_input->stream.stream_lock );
vlc_object_release( p_playlist );
[self updateMessageArray];
+
+ [NSTimer scheduledTimerWithTimeInterval: 0.5
+ target: self selector: @selector(manageIntf:)
+ userInfo: nil repeats: FALSE];
}
- (void)updateMessageArray
[o_msg_lock lock];
- if( [o_msg_arr count] + 2 > 200 )
+ if( [o_msg_arr count] + 2 > 400 )
{
unsigned rid[] = { 0, 1 };
[o_msg_arr removeObjectsFromIndices: (unsigned *)&rid
var_Set( (vlc_object_t *)p_aout, "intf-change", val );
+#error fixme! look at rc.c line 823
[self setupVarMenu: o_mi_channels target: (vlc_object_t *)p_aout
var: "audio-channels" selector: @selector(toggleVar:)];
psz_value = val.psz_string;
if ( var_Change( p_object, psz_variable,
- VLC_VAR_GETLIST, &val ) < 0 )
+ VLC_VAR_GETLIST, &val, NULL ) < 0 )
{
free( psz_value );
return;
}
var_Change( p_object, psz_variable, VLC_VAR_FREELIST,
- &val );
+ &val, NULL );
free( psz_value );
}
#define p_area p_playlist->p_input->stream.p_selected_area
vlc_mutex_lock( &p_playlist->p_input->stream.stream_lock );
- i_tell = f_updated / 100. * p_area->i_size;
+ i_tell = f_updated / 10000. * p_area->i_size;
input_OffsetToTime( p_playlist->p_input, psz_time, i_tell );
vlc_mutex_unlock( &p_playlist->p_input->stream.stream_lock );
#undef p_area
- (IBAction)openCrashLog:(id)sender
{
- NSString * o_path = [@"~/Library/Logs/CrashReporter/vlc.crash.log"
+ NSString * o_path = [@"~/Library/Logs/CrashReporter/VLC.crash.log"
stringByExpandingTildeInPath];