Commit 98943979 authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* extras/MacOSX/Resources/English.lproj/MainMenu.nib/*

* modules/gui/macosx/open.?
  - updated the open dialog (now with sheets !!!)
  - added ogg file stream out
  - added http file stream out
  - added file subtitle support for the delay and fps options
* extras/MacOSX/vlc.pbproj/project.pbxproj
  - added the .ts file-extension to the application
parent 8f1869cc
...@@ -153,7 +153,6 @@ ...@@ -153,7 +153,6 @@
}, },
{ {
ACTIONS = { ACTIONS = {
loadSubsChanged = id;
openDisc = id; openDisc = id;
openDiscMenusChanged = id; openDiscMenusChanged = id;
openDiscStepperChanged = id; openDiscStepperChanged = id;
...@@ -165,14 +164,22 @@ ...@@ -165,14 +164,22 @@
openNet = id; openNet = id;
openNetModeChanged = id; openNetModeChanged = id;
openNetStepperChanged = id; openNetStepperChanged = id;
openSubBrowse = id;
openVTSBrowse = id; openVTSBrowse = id;
panelCancel = id; panelCancel = id;
panelOk = id; panelOk = id;
soutChanged = id; soutChanged = id;
soutCloseSheet = id;
soutFileBrowse = id; soutFileBrowse = id;
soutModeChanged = id; soutModeChanged = id;
soutSettings = id;
soutStepperChanged = id; soutStepperChanged = id;
subCloseSheet = id;
subDelayStepperChanged = id;
subFileBrowse = id;
subFpsStepperChanged = id;
subOverride = id;
subSettings = id;
subsChanged = id;
}; };
CLASS = VLCOpen; CLASS = VLCOpen;
LANGUAGE = ObjC; LANGUAGE = ObjC;
...@@ -196,8 +203,18 @@ ...@@ -196,8 +203,18 @@
"o_file_path" = id; "o_file_path" = id;
"o_file_stream" = id; "o_file_stream" = id;
"o_file_sub_btn_browse" = id; "o_file_sub_btn_browse" = id;
"o_file_sub_btn_settings" = id;
"o_file_sub_ckbox" = id; "o_file_sub_ckbox" = id;
"o_file_sub_delay" = id;
"o_file_sub_delay_lbl" = id;
"o_file_sub_delay_stp" = id;
"o_file_sub_fps" = id;
"o_file_sub_fps_lbl" = id;
"o_file_sub_fps_stp" = id;
"o_file_sub_ok_btn" = id;
"o_file_sub_override" = id;
"o_file_sub_path" = id; "o_file_sub_path" = id;
"o_file_sub_sheet" = id;
"o_mrl" = id; "o_mrl" = id;
"o_mrl_lbl" = id; "o_mrl_lbl" = id;
"o_net_http_url" = id; "o_net_http_url" = id;
...@@ -214,12 +231,17 @@ ...@@ -214,12 +231,17 @@
"o_panel" = id; "o_panel" = id;
"o_playlist" = id; "o_playlist" = id;
"o_sout_access" = id; "o_sout_access" = id;
"o_sout_access_lbl" = id;
"o_sout_btn_ok" = id;
"o_sout_cbox" = id; "o_sout_cbox" = id;
"o_sout_file_btn_browse" = id; "o_sout_file_btn_browse" = id;
"o_sout_file_path" = id; "o_sout_file_path" = id;
"o_sout_mrl" = id; "o_sout_mrl" = id;
"o_sout_mrl_lbl" = id; "o_sout_mrl_lbl" = id;
"o_sout_mux" = id; "o_sout_mux" = id;
"o_sout_mux_lbl" = id;
"o_sout_settings" = id;
"o_sout_sheet" = id;
"o_sout_udp_addr" = id; "o_sout_udp_addr" = id;
"o_sout_udp_addr_lbl" = id; "o_sout_udp_addr_lbl" = id;
"o_sout_udp_port" = id; "o_sout_udp_port" = id;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>IBDocumentLocation</key> <key>IBDocumentLocation</key>
<string>417 347 365 441 0 0 1600 1178 </string> <string>38 65 365 441 0 0 1280 1002 </string>
<key>IBEditorPositions</key> <key>IBEditorPositions</key>
<dict> <dict>
<key>29</key> <key>29</key>
...@@ -21,12 +21,6 @@ ...@@ -21,12 +21,6 @@
<array> <array>
<integer>977</integer> <integer>977</integer>
</array> </array>
<key>IBOpenObjects</key>
<array>
<integer>1194</integer>
<integer>21</integer>
<integer>29</integer>
</array>
<key>IBSystem Version</key> <key>IBSystem Version</key>
<string>6I32</string> <string>6I32</string>
</dict> </dict>
......
...@@ -306,6 +306,7 @@ ...@@ -306,6 +306,7 @@
<array> <array>
<string>mpg</string> <string>mpg</string>
<string>mpeg</string> <string>mpeg</string>
<string>ts</string>
</array> </array>
<key>CFBundleTypeIconFile</key> <key>CFBundleTypeIconFile</key>
<string>mpeg.icns</string> <string>mpeg.icns</string>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* open.h: MacOS X plugin for vlc * open.h: MacOS X plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: open.h,v 1.12 2003/03/06 11:43:07 hartman Exp $ * $Id: open.h,v 1.13 2003/03/26 03:13:30 hartman Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -25,10 +25,6 @@ ...@@ -25,10 +25,6 @@
NSArray *GetEjectableMediaOfClass( const char *psz_class ); NSArray *GetEjectableMediaOfClass( const char *psz_class );
#define OPEN_PANEL_FULL_HEIGHT 498
#define OPEN_PANEL_SHORT_HEIGHT 329
#define WINDOW_TITLE_HEIGHT 21
/***************************************************************************** /*****************************************************************************
* Intf_Open interface * Intf_Open interface
*****************************************************************************/ *****************************************************************************/
...@@ -49,9 +45,6 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ); ...@@ -49,9 +45,6 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class );
IBOutlet id o_file_path; IBOutlet id o_file_path;
IBOutlet id o_file_btn_browse; IBOutlet id o_file_btn_browse;
IBOutlet id o_file_stream; IBOutlet id o_file_stream;
IBOutlet id o_file_sub_path;
IBOutlet id o_file_sub_btn_browse;
IBOutlet id o_file_sub_ckbox;
IBOutlet id o_disc_type; IBOutlet id o_disc_type;
IBOutlet id o_disc_device; IBOutlet id o_disc_device;
...@@ -79,9 +72,12 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ); ...@@ -79,9 +72,12 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class );
IBOutlet id o_net_http_url_lbl; IBOutlet id o_net_http_url_lbl;
IBOutlet id o_sout_cbox; IBOutlet id o_sout_cbox;
IBOutlet id o_sout_settings;
IBOutlet id o_sout_sheet;
IBOutlet id o_sout_mrl_lbl; IBOutlet id o_sout_mrl_lbl;
IBOutlet id o_sout_mrl; IBOutlet id o_sout_mrl;
IBOutlet id o_sout_access; IBOutlet id o_sout_access;
IBOutlet id o_sout_access_lbl;
IBOutlet id o_sout_file_path; IBOutlet id o_sout_file_path;
IBOutlet id o_sout_file_btn_browse; IBOutlet id o_sout_file_btn_browse;
IBOutlet id o_sout_udp_addr; IBOutlet id o_sout_udp_addr;
...@@ -90,6 +86,22 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ); ...@@ -90,6 +86,22 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class );
IBOutlet id o_sout_udp_port_lbl; IBOutlet id o_sout_udp_port_lbl;
IBOutlet id o_sout_udp_port_stp; IBOutlet id o_sout_udp_port_stp;
IBOutlet id o_sout_mux; IBOutlet id o_sout_mux;
IBOutlet id o_sout_mux_lbl;
IBOutlet id o_sout_btn_ok;
IBOutlet id o_file_sub_ckbox;
IBOutlet id o_file_sub_btn_settings;
IBOutlet id o_file_sub_sheet;
IBOutlet id o_file_sub_path;
IBOutlet id o_file_sub_btn_browse;
IBOutlet id o_file_sub_override;
IBOutlet id o_file_sub_delay;
IBOutlet id o_file_sub_delay_lbl;
IBOutlet id o_file_sub_delay_stp;
IBOutlet id o_file_sub_fps;
IBOutlet id o_file_sub_fps_lbl;
IBOutlet id o_file_sub_fps_stp;
IBOutlet id o_file_sub_ok_btn;
} }
- (void)openTarget:(int)i_type; - (void)openTarget:(int)i_type;
...@@ -98,9 +110,8 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ); ...@@ -98,9 +110,8 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class );
- (IBAction)openFileGeneric:(id)sender; - (IBAction)openFileGeneric:(id)sender;
- (void)openFilePathChanged:(NSNotification *)o_notification; - (void)openFilePathChanged:(NSNotification *)o_notification;
- (IBAction)openFileBrowse:(id)sender; - (IBAction)openFileBrowse:(id)sender;
- (void) pathChosenInPanel: (NSOpenPanel *) sheet withReturn:(int)returnCode contextInfo:(void *)contextInfo;
- (IBAction)openFileStreamChanged:(id)sender; - (IBAction)openFileStreamChanged:(id)sender;
- (IBAction)loadSubsChanged:(id)sender;
- (IBAction)openSubBrowse:(id)sender;
- (IBAction)openDisc:(id)sender; - (IBAction)openDisc:(id)sender;
- (IBAction)openDiscTypeChanged:(id)sender; - (IBAction)openDiscTypeChanged:(id)sender;
...@@ -115,10 +126,20 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ); ...@@ -115,10 +126,20 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class );
- (void)openNetInfoChanged:(NSNotification *)o_notification; - (void)openNetInfoChanged:(NSNotification *)o_notification;
- (IBAction)soutChanged:(id)sender; - (IBAction)soutChanged:(id)sender;
- (IBAction)soutSettings:(id)sender;
- (IBAction)soutFileBrowse:(id)sender; - (IBAction)soutFileBrowse:(id)sender;
- (void)soutModeChanged:(NSNotification *)o_notification; - (void)soutModeChanged:(NSNotification *)o_notification;
- (void)soutInfoChanged:(NSNotification *)o_notification; - (void)soutInfoChanged:(NSNotification *)o_notification;
- (IBAction)soutStepperChanged:(id)sender; - (IBAction)soutStepperChanged:(id)sender;
- (IBAction)soutCloseSheet:(id)sender;
- (IBAction)subsChanged:(id)sender;
- (IBAction)subSettings:(id)sender;
- (IBAction)subFileBrowse:(id)sender;
- (IBAction)subOverride:(id)sender;
- (IBAction)subDelayStepperChanged:(id)sender;
- (IBAction)subFpsStepperChanged:(id)sender;
- (IBAction)subCloseSheet:(id)sender;
- (IBAction)panelCancel:(id)sender; - (IBAction)panelCancel:(id)sender;
- (IBAction)panelOk:(id)sender; - (IBAction)panelOk:(id)sender;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* open.m: MacOS X plugin for vlc * open.m: MacOS X plugin for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2003 VideoLAN * Copyright (C) 2002-2003 VideoLAN
* $Id: open.m,v 1.25 2003/03/24 15:20:26 hartman Exp $ * $Id: open.m,v 1.26 2003/03/26 03:13:30 hartman Exp $
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
* Christophe Massiot <massiot@via.ecp.fr> * Christophe Massiot <massiot@via.ecp.fr>
...@@ -137,28 +137,10 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -137,28 +137,10 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
if ( psz_sout != NULL && *psz_sout ) if ( psz_sout != NULL && *psz_sout )
{ {
[o_sout_cbox setState: YES]; [o_sout_cbox setState: YES];
NSRect s_rect = [o_panel frame];
s_rect.size.height = OPEN_PANEL_FULL_HEIGHT + WINDOW_TITLE_HEIGHT;
[o_panel setFrame: s_rect display: NO];
NSPoint s_point;
s_point.x = 0;
s_point.y = 0;
[[o_panel contentView] setBoundsOrigin: s_point];
} }
else else
{ {
[o_sout_cbox setState: NO]; [o_sout_cbox setState: NO];
NSRect s_rect = [o_panel frame];
s_rect.size.height = OPEN_PANEL_SHORT_HEIGHT + WINDOW_TITLE_HEIGHT;
[o_panel setFrame: s_rect display: NO];
NSPoint s_point;
s_point.x = 0;
s_point.y = OPEN_PANEL_FULL_HEIGHT - OPEN_PANEL_SHORT_HEIGHT;
[[o_panel contentView] setBoundsOrigin: s_point];
} }
free(psz_sout); free(psz_sout);
...@@ -176,9 +158,6 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -176,9 +158,6 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[o_file_btn_browse setTitle: _NS("Browse...")]; [o_file_btn_browse setTitle: _NS("Browse...")];
[o_file_stream setTitle: _NS("Treat as a pipe rather than as a file")]; [o_file_stream setTitle: _NS("Treat as a pipe rather than as a file")];
[o_file_sub_btn_browse setTitle: _NS("Browse...")];
[o_file_sub_ckbox setTitle: _NS("Load subtitles file:")];
[o_disc_device_lbl setStringValue: _NS("Device name")]; [o_disc_device_lbl setStringValue: _NS("Device name")];
[o_disc_title_lbl setStringValue: _NS("Title")]; [o_disc_title_lbl setStringValue: _NS("Title")];
[o_disc_chapter_lbl setStringValue: _NS("Chapter")]; [o_disc_chapter_lbl setStringValue: _NS("Chapter")];
...@@ -201,20 +180,37 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -201,20 +180,37 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[o_net_udp_port setIntValue: config_GetInt( p_intf, "server-port" )]; [o_net_udp_port setIntValue: config_GetInt( p_intf, "server-port" )];
[o_net_udp_port_stp setIntValue: config_GetInt( p_intf, "server-port" )]; [o_net_udp_port_stp setIntValue: config_GetInt( p_intf, "server-port" )];
[o_sout_cbox setTitle: _NS("Stream output")]; [o_sout_cbox setTitle: _NS("Stream output:")];
[o_sout_btn_ok setTitle: _NS("OK")];
[o_sout_settings setTitle: _NS("Settings")];
[o_sout_mrl_lbl setTitle: _NS("Stream output MRL")]; [o_sout_mrl_lbl setTitle: _NS("Stream output MRL")];
[o_sout_access_lbl setTitle: _NS("Output Method")];
[[o_sout_access cellAtRow:0 column:0] setTitle: _NS("File")]; [[o_sout_access cellAtRow:0 column:0] setTitle: _NS("File")];
[[o_sout_access cellAtRow:1 column:0] setTitle: _NS("UDP")]; [[o_sout_access cellAtRow:1 column:0] setTitle: _NS("HTTP")];
[[o_sout_access cellAtRow:2 column:0] setTitle: _NS("RTP")]; [[o_sout_access cellAtRow:2 column:0] setTitle: _NS("UDP")];
[[o_sout_access cellAtRow:3 column:0] setTitle: _NS("RTP")];
[o_sout_file_btn_browse setTitle: _NS("Browse...")]; [o_sout_file_btn_browse setTitle: _NS("Browse...")];
[o_sout_udp_addr_lbl setStringValue: _NS("Address")]; [o_sout_udp_addr_lbl setStringValue: _NS("Address")];
[o_sout_udp_port_lbl setStringValue: _NS("Port")]; [o_sout_udp_port_lbl setStringValue: _NS("Port")];
[[o_sout_mux cellAtRow:0 column:0] setTitle: _NS("AVI")]; [o_sout_mux_lbl setTitle: _NS("Encapsulation Method")];
[[o_sout_mux cellAtRow:0 column:1] setTitle: _NS("PS")]; [[o_sout_mux cellAtRow:0 column:0] setTitle: _NS("MPEG TS")];
[[o_sout_mux cellAtRow:0 column:2] setTitle: _NS("TS")]; [[o_sout_mux cellAtRow:0 column:1] setTitle: _NS("MPEG PS")];
[[o_sout_mux cellAtRow:0 column:2] setTitle: _NS("AVI")];
[[o_sout_mux cellAtRow:0 column:3] setTitle: _NS("Ogg")];
[o_file_sub_ckbox setTitle: _NS("Load subtitles file:")];
[o_file_sub_btn_settings setTitle: _NS("Settings")];
[o_file_sub_btn_browse setTitle: _NS("Browse...")];
[o_file_sub_override setTitle: _NS("Override")];
[o_file_sub_delay_lbl setStringValue: _NS("delay")];
[o_file_sub_delay_stp setEnabled: NO];
[o_file_sub_fps_lbl setStringValue: _NS("fps")];
[o_file_sub_fps_stp setEnabled: NO];
[o_file_sub_ok_btn setStringValue: _NS("OK")];
[[NSNotificationCenter defaultCenter] addObserver: self [[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(openFilePathChanged:) selector: @selector(openFilePathChanged:)
name: NSControlTextDidChangeNotification name: NSControlTextDidChangeNotification
...@@ -274,10 +270,7 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -274,10 +270,7 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[o_tabview selectTabViewItemAtIndex: i_type]; [o_tabview selectTabViewItemAtIndex: i_type];
[o_ckbox_enqueue setState: NSOnState]; [o_ckbox_enqueue setState: NSOnState];
[o_file_sub_path setStringValue: @""];
[o_file_sub_ckbox setState: NSOffState]; [o_file_sub_ckbox setState: NSOffState];
[o_file_sub_path setEnabled: NO];
[o_file_sub_btn_browse setEnabled: NO];
i_result = [NSApp runModalForWindow: o_panel]; i_result = [NSApp runModalForWindow: o_panel];
[o_panel close]; [o_panel close];
...@@ -300,9 +293,21 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -300,9 +293,21 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[NSArray arrayWithObject: o_source] atPos: -1 enqueue:b_enq]; [NSArray arrayWithObject: o_source] atPos: -1 enqueue:b_enq];
if (([o_file_sub_ckbox state] == NSOnState) && !([subPath isEqualTo: @""])) if (([o_file_sub_ckbox state] == NSOnState) && !([subPath isEqualTo: @""]))
{
config_PutPsz( p_intf, "sub-file", strdup( [subPath cString] ) ); config_PutPsz( p_intf, "sub-file", strdup( [subPath cString] ) );
if ( [o_file_sub_override state] )
{
config_PutInt( p_intf, "sub-delay", (int)( [o_file_sub_delay intValue] * 10 ) );
config_PutFloat( p_intf, "sub-fps", [o_file_sub_fps floatValue] );
}
}
else
{
config_PutPsz( p_intf, "sub-file", "" );
config_PutInt( p_intf, "sub-delay", 0 );
config_PutFloat( p_intf, "sub-fps", 0.0 );
}
} }
[self soutModeChanged: nil]; [self soutModeChanged: nil];
} }
...@@ -381,10 +386,22 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -381,10 +386,22 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[o_open_panel setTitle: _NS("Open File")]; [o_open_panel setTitle: _NS("Open File")];
[o_open_panel setPrompt: _NS("Open")]; [o_open_panel setPrompt: _NS("Open")];
if( [o_open_panel runModalForDirectory: nil [o_open_panel beginSheetForDirectory:nil
file: nil types: nil] == NSOKButton ) file:nil
types:nil
modalForWindow:[sender window]
modalDelegate: self
didEndSelector: @selector(pathChosenInPanel:
withReturn:
contextInfo:)
contextInfo: nil];
}
- (void)pathChosenInPanel: (NSOpenPanel *) sheet withReturn:(int)returnCode contextInfo:(void *)contextInfo
{
if (returnCode == NSFileHandlingPanelOKButton)
{ {
NSString *o_filename = [[o_open_panel filenames] objectAtIndex: 0]; NSString *o_filename = [[sheet filenames] objectAtIndex: 0];
[o_file_path setStringValue: o_filename]; [o_file_path setStringValue: o_filename];
[self openFilePathChanged: nil]; [self openFilePathChanged: nil];
} }
...@@ -395,36 +412,6 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -395,36 +412,6 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[self openFilePathChanged: nil]; [self openFilePathChanged: nil];
} }
- (IBAction)loadSubsChanged:(id)sender
{
if ([o_file_sub_ckbox state] == NSOnState)
{
[o_file_sub_path setEnabled:YES];
[o_file_sub_btn_browse setEnabled:YES];
}
else
{
[o_file_sub_path setEnabled:NO];
[o_file_sub_btn_browse setEnabled:NO];
}
}
- (IBAction)openSubBrowse:(id)sender
{
NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];
[o_open_panel setAllowsMultipleSelection: NO];
[o_open_panel setTitle: _NS("Open File")];
[o_open_panel setPrompt: _NS("Open")];
if( [o_open_panel runModalForDirectory: nil
file: nil types: nil] == NSOKButton )
{
NSString *o_filename = [[o_open_panel filenames] objectAtIndex: 0];
[o_file_sub_path setStringValue: o_filename];
}
}
- (IBAction)openDiscTypeChanged:(id)sender - (IBAction)openDiscTypeChanged:(id)sender
{ {
NSString *o_type; NSString *o_type;
...@@ -675,42 +662,36 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -675,42 +662,36 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
- (IBAction)soutChanged:(id)sender; - (IBAction)soutChanged:(id)sender;
{ {
[self soutModeChanged: nil]; if ([o_sout_cbox state] == NSOnState)
if ( [o_sout_cbox state] )
{ {
NSPoint s_point; [o_sout_settings setEnabled:YES];
s_point.x = 0;
s_point.y = 0;
[[o_panel contentView] setBoundsOrigin: s_point];
[[o_panel contentView] setNeedsDisplay: YES];
NSRect s_rect = [o_panel frame];
s_rect.size.height = OPEN_PANEL_FULL_HEIGHT + WINDOW_TITLE_HEIGHT;
s_rect.origin.y -= OPEN_PANEL_FULL_HEIGHT - OPEN_PANEL_SHORT_HEIGHT;
[o_panel setFrame: s_rect display: YES animate: NO];
} }
else else
{ {
NSPoint s_point; [o_sout_settings setEnabled:NO];
s_point.x = 0;
s_point.y = OPEN_PANEL_FULL_HEIGHT - OPEN_PANEL_SHORT_HEIGHT;
[[o_panel contentView] setBoundsOrigin: s_point];
[[o_panel contentView] setNeedsDisplay: YES];
NSRect s_rect = [o_panel frame];
s_rect.size.height = OPEN_PANEL_SHORT_HEIGHT + WINDOW_TITLE_HEIGHT;
s_rect.origin.y += OPEN_PANEL_FULL_HEIGHT - OPEN_PANEL_SHORT_HEIGHT;
[o_panel setFrame: s_rect display: YES animate:NO];
} }
} }
- (IBAction)soutSettings:(id)sender
{
[self soutModeChanged: nil];
[NSApp beginSheet: o_sout_sheet
modalForWindow: [sender window]
modalDelegate: self
didEndSelector: NULL
contextInfo: nil];
}
- (IBAction)soutFileBrowse:(id)sender - (IBAction)soutFileBrowse:(id)sender
{ {
NSSavePanel *o_save_panel = [NSSavePanel savePanel]; NSSavePanel *o_save_panel = [NSSavePanel savePanel];
NSString *o_mux_string; NSString *o_mux_string;
if ( [[[o_sout_mux selectedCell] title] isEqualToString: _NS("PS")] ) if ( [[[o_sout_mux selectedCell] title] isEqualToString: _NS("MPEG PS")] )
o_mux_string = @"vob"; o_mux_string = @"vob";
else if ( [[[o_sout_mux selectedCell] title] isEqualToString: _NS("AVI")] )
o_mux_string = @"avi";
else if ( [[[o_sout_mux selectedCell] title] isEqualToString: _NS("Ogg")] )
o_mux_string = @"ogm";
else else
o_mux_string = @"ts"; o_mux_string = @"ts";
...@@ -743,15 +724,16 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -743,15 +724,16 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
[o_sout_file_path setEnabled: b_file]; [o_sout_file_path setEnabled: b_file];
[o_sout_file_btn_browse setEnabled: b_file]; [o_sout_file_btn_browse setEnabled: b_file];
[o_sout_udp_addr setEnabled: b_net]; [o_sout_udp_addr setEnabled: !b_file];
[o_sout_udp_port setEnabled: b_net]; [o_sout_udp_port setEnabled: !b_file];
[o_sout_udp_port_stp setEnabled: b_net]; [o_sout_udp_port_stp setEnabled: !b_file ];
[[o_sout_mux cellAtRow:0 column: 0] setEnabled: !b_net];
[[o_sout_mux cellAtRow:0 column: 1] setEnabled: !b_net]; [[o_sout_mux cellAtRow:0 column: 1] setEnabled: !b_net];
[[o_sout_mux cellAtRow:0 column: 2] setEnabled: !b_net];
[[o_sout_mux cellAtRow:0 column: 3] setEnabled: !b_net];
if ( b_net ) if ( b_net )
{ {
[[o_sout_mux cellAtRow: 0 column:2] setState: YES]; [o_sout_mux selectCellAtRow:0 column: 0];
} }
[self soutInfoChanged: nil]; [self soutInfoChanged: nil];
...@@ -768,7 +750,8 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -768,7 +750,8 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
o_mux = [[o_sout_mux selectedCell] title]; o_mux = [[o_sout_mux selectedCell] title];
if ( [o_mux isEqualToString: _NS("AVI")] ) o_mux_string = @"avi"; if ( [o_mux isEqualToString: _NS("AVI")] ) o_mux_string = @"avi";
else if ( [o_mux isEqualToString: _NS("PS")] ) o_mux_string = @"ps"; else if ( [o_mux isEqualToString: _NS("Ogg")] ) o_mux_string = @"ogg";
else if ( [o_mux isEqualToString: _NS("MPEG PS")] ) o_mux_string = @"ps";
else o_mux_string = @"ts"; else o_mux_string = @"ts";
if ( [o_mode isEqualToString: _NS("File")] ) if ( [o_mode isEqualToString: _NS("File")] )
...@@ -776,6 +759,12 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -776,6 +759,12 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
o_mrl_string = [NSString stringWithFormat: @"file/%@://%@", o_mrl_string = [NSString stringWithFormat: @"file/%@://%@",
o_mux_string, [o_sout_file_path stringValue]]; o_mux_string, [o_sout_file_path stringValue]];
} }
else if ( [o_mode isEqualToString: _NS("HTTP")] )
{
o_mrl_string = [NSString stringWithFormat: @"http/%@://%@:%i",
o_mux_string, [o_sout_udp_addr stringValue],
[o_sout_udp_port intValue]];
}
else if ( [o_mode isEqualToString: _NS("UDP")] ) else if ( [o_mode isEqualToString: _NS("UDP")] )
{ {
o_mrl_string = [NSString stringWithFormat: @"udp/%@://%@:%i", o_mrl_string = [NSString stringWithFormat: @"udp/%@://%@:%i",
...@@ -795,11 +784,16 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -795,11 +784,16 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
- (IBAction)soutStepperChanged:(id)sender - (IBAction)soutStepperChanged:(id)sender
{ {
[o_sout_udp_port setIntValue: [o_net_udp_port_stp intValue]]; [o_sout_udp_port setIntValue: [o_sout_udp_port_stp intValue]];
[self soutInfoChanged: nil]; [self soutInfoChanged: nil];
} }
- (IBAction)soutCloseSheet:(id)sender
{
[o_sout_sheet orderOut:sender];
[NSApp endSheet: o_sout_sheet];
}
- (IBAction)openFile:(id)sender - (IBAction)openFile:(id)sender
{ {
NSOpenPanel *o_open_panel = [NSOpenPanel openPanel]; NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];
...@@ -818,6 +812,68 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class ) ...@@ -818,6 +812,68 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
} }
} }
- (IBAction)subsChanged:(id)sender
{
if ([o_file_sub_ckbox state] == NSOnState)
{
[o_file_sub_btn_settings setEnabled:YES];
}
else
{
[o_file_sub_btn_settings setEnabled:NO];
}
}
- (IBAction)subSettings:(id)sender
{
[NSApp beginSheet: o_file_sub_sheet
modalForWindow: [sender window]
modalDelegate: self
didEndSelector: NULL
contextInfo: nil];
}
- (IBAction)subFileBrowse:(id)sender
{
NSOpenPanel *o_open_panel = [NSOpenPanel openPanel];
[o_open_panel setAllowsMultipleSelection: NO];
[o_open_panel setTitle: _NS("Open File")];
[o_open_panel setPrompt: _NS("Open")];
if( [o_open_panel runModalForDirectory: nil
file: nil types: nil] == NSOKButton )
{
NSString *o_filename = [[o_open_panel filenames] objectAtIndex: 0];
[o_file_sub_path setStringValue: o_filename];
}
}
- (IBAction)subOverride:(id)sender
{
BOOL b_state = [o_file_sub_override state];
[o_file_sub_delay setEnabled: b_state];
[o_file_sub_delay_stp setEnabled: b_state];
[o_file_sub_fps setEnabled: b_state];
[o_file_sub_fps_stp setEnabled: b_state];
}
- (IBAction)subDelayStepperChanged:(id)sender
{
[o_file_sub_delay setIntValue: [o_file_sub_delay_stp intValue]];
}
- (IBAction)subFpsStepperChanged:(id)sender;
{
[o_file_sub_fps setFloatValue: [o_file_sub_fps_stp floatValue]];
}
- (IBAction)subCloseSheet:(id)sender
{
[o_file_sub_sheet orderOut:sender];
[NSApp endSheet: o_file_sub_sheet];
}
- (IBAction)panelCancel:(id)sender - (IBAction)panelCancel:(id)sender
{ {
[NSApp stopModalWithCode: 0]; [NSApp stopModalWithCode: 0];
......
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