* MacOS X changes:
authorJon Lech Johansen <jlj@videolan.org>
Mon, 15 Jul 2002 01:54:04 +0000 (01:54 +0000)
committerJon Lech Johansen <jlj@videolan.org>
Mon, 15 Jul 2002 01:54:04 +0000 (01:54 +0000)
    - added messages and playlist panel
    - simple dock menu (play, pause, stop)
    - context menu in video view
    - localization support: http://nanocrew.net/vlc/vlc-osx-ja.png
    - no longer broken :)

40 files changed:
ChangeLog
configure
configure.in
extras/MacOSX/Resources/English.lproj/InfoPlist.strings
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
extras/MacOSX/vlc.pbproj/project.pbxproj
plugins/macosx/Makefile
plugins/macosx/intf_controller.h [deleted file]
plugins/macosx/intf_controller.m [deleted file]
plugins/macosx/intf_controls.m [new file with mode: 0644]
plugins/macosx/intf_macosx.h [new file with mode: 0644]
plugins/macosx/intf_macosx.m
plugins/macosx/intf_open.h
plugins/macosx/intf_open.m
plugins/macosx/intf_playlist.h [new file with mode: 0644]
plugins/macosx/intf_playlist.m [new file with mode: 0644]
plugins/macosx/intf_vlc_wrapper.h [deleted file]
plugins/macosx/intf_vlc_wrapper.m [deleted file]
plugins/macosx/macosx.h [deleted file]
plugins/macosx/vout_macosx.h [new file with mode: 0644]
plugins/macosx/vout_macosx.m
plugins/macosx/vout_qdview.h [deleted file]
plugins/macosx/vout_qdview.m [deleted file]
plugins/macosx/vout_vlc_wrapper.h [deleted file]
plugins/macosx/vout_vlc_wrapper.m [deleted file]
plugins/macosx/vout_window.h [deleted file]
plugins/macosx/vout_window.m [deleted file]
po/Makefile.in.in
po/POTFILES.in
po/de.po
po/en_GB.po
po/fr.po
po/ja.po
po/nl.po
po/no.po
po/pl.po
po/ru.po
po/vlc.pot

index e6a80d6..7ebeccc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@
 0.5.0
 Not released yet
 
+  * MacOS X: added messages and playlist panel, dock menu, context menu 
+    in video view and localization support.
   * ./README: removed much outdated data.
   * ./debian/*: great package renaming - names should make more sense now.
   * ./plugins/mad/mad_libmad.c: prevent the MAD decoder from looping endlessly
index c552d1c..6a9782b 100755 (executable)
--- a/configure
+++ b/configure
@@ -8163,7 +8163,7 @@ if test "${enable_macosx+set}" = set; then
   if test x$enable_macosx = xyes
    then
      BUILTINS="${BUILTINS} macosx"
-     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework AGL -framework QuickTime -lobjc -ObjC"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework AGL -framework QuickTime -lobjc -ObjC"
    fi
 else
   for ac_hdr in Cocoa/Cocoa.h
@@ -8201,7 +8201,7 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
 #define $ac_tr_hdr 1
 EOF
  BUILTINS="${BUILTINS} macosx"
-     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework AGL -framework QuickTime -lobjc -ObjC"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework AGL -framework QuickTime -lobjc -ObjC"
    
 else
   echo "$ac_t""no" 1>&6
index 6b02802..3914ed4 100644 (file)
@@ -1457,11 +1457,11 @@ AC_ARG_ENABLE(macosx,
   [if test x$enable_macosx = xyes
    then
      BUILTINS="${BUILTINS} macosx"
-     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework AGL -framework QuickTime -lobjc -ObjC"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework AGL -framework QuickTime -lobjc -ObjC"
    fi],
   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
      BUILTINS="${BUILTINS} macosx"
-     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework AGL -framework QuickTime -lobjc -ObjC"
+     macosx_LDFLAGS="${macosx_LDFLAGS} -framework CoreAudio -framework AudioToolbox -framework IOKit -framework Cocoa -framework Carbon -framework AGL -framework QuickTime -lobjc -ObjC"
    )])
 
 dnl
index c478562..6700592 100644 (file)
Binary files a/extras/MacOSX/Resources/English.lproj/InfoPlist.strings and b/extras/MacOSX/Resources/English.lproj/InfoPlist.strings differ
index cb22fd6..7bdd099 100644 (file)
@@ -3,36 +3,85 @@
         {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, 
         {
             ACTIONS = {
-                deinterlace = id; 
-                eject = id; 
                 faster = id; 
                 fullscreen = id; 
                 loop = id; 
-                maxvolume = id; 
                 mute = id; 
                 next = id; 
-                nextChannel = id; 
                 pause = id; 
                 play = id; 
                 prev = id; 
-                prevChannel = id; 
-                quit = id; 
                 slower = id; 
                 stop = id; 
-                timesliderUpdate = id; 
+                toggleChapter = id; 
+                toggleLanguage = id; 
+                toggleProgram = id; 
+                toggleSubtitle = id; 
+                toggleTitle = id; 
+                volumeDown = id; 
+                volumeUp = id; 
             }; 
-            CLASS = Intf_Controller; 
+            CLASS = VLCControls; 
+            LANGUAGE = ObjC; 
+            OUTLETS = {o_open = id; }; 
+            SUPERCLASS = NSObject; 
+        }, 
+        {
+            ACTIONS = {clearRecentItems = id; }; 
+            CLASS = VLCMain; 
             LANGUAGE = ObjC; 
             OUTLETS = {
-                o_pause = NSButton; 
-                o_play = NSButton; 
-                o_playlistds = Intf_PlaylistDS; 
-                o_stepf = NSButton; 
-                o_stepr = NSButton; 
-                o_stop = NSButton; 
-                o_time = NSTextField; 
-                o_timeslider = NSSlider; 
-                o_window = NSWindow; 
+                o_controls = id; 
+                o_dmi_pause = id; 
+                o_dmi_play = id; 
+                o_dmi_stop = id; 
+                o_messages = id; 
+                o_mi_about = id; 
+                o_mi_bring_atf = id; 
+                o_mi_chapter = id; 
+                o_mi_clear = id; 
+                o_mi_copy = id; 
+                o_mi_cut = id; 
+                o_mi_faster = id; 
+                o_mi_fullscreen = id; 
+                o_mi_hide = id; 
+                o_mi_hide_others = id; 
+                o_mi_language = id; 
+                o_mi_loop = id; 
+                o_mi_messages = id; 
+                o_mi_minimize = id; 
+                o_mi_mute = id; 
+                o_mi_next = id; 
+                o_mi_open_disc = id; 
+                o_mi_open_file = id; 
+                o_mi_open_net = id; 
+                o_mi_open_quickly = id; 
+                o_mi_open_recent = id; 
+                o_mi_open_recent_cm = id; 
+                o_mi_paste = id; 
+                o_mi_pause = id; 
+                o_mi_play = id; 
+                o_mi_playlist = id; 
+                o_mi_previous = id; 
+                o_mi_program = id; 
+                o_mi_quit = id; 
+                o_mi_select_all = id; 
+                o_mi_show_all = id; 
+                o_mi_slower = id; 
+                o_mi_stop = id; 
+                o_mi_subtitle = id; 
+                o_mi_title = id; 
+                o_mi_vol_down = id; 
+                o_mi_vol_up = id; 
+                o_msgs_btn_ok = id; 
+                o_msgs_panel = id; 
+                o_mu_controls = id; 
+                o_mu_edit = id; 
+                o_mu_file = id; 
+                o_mu_view = id; 
+                o_mu_window = id; 
+                o_playlist = id; 
+                o_window = id; 
             }; 
             SUPERCLASS = NSObject; 
         }, 
                 openDiscTypeChanged = id; 
                 openFile = id; 
                 openNet = id; 
-                openNetProtocol = id; 
+                openNetModeChanged = id; 
+                openQuickly = id; 
                 panelCancel = id; 
                 panelOk = id; 
             }; 
-            CLASS = Intf_Open; 
+            CLASS = VLCOpen; 
             LANGUAGE = ObjC; 
             OUTLETS = {
+                o_disc_btn_cancel = id; 
+                o_disc_btn_ok = id; 
                 o_disc_chapter = id; 
                 o_disc_device = id; 
+                o_disc_lbl_sp = id; 
+                o_disc_lbl_type = id; 
                 o_disc_panel = id; 
                 o_disc_title = id; 
                 o_disc_type = id; 
+                o_net_address = id; 
+                o_net_box_addr = id; 
+                o_net_box_mode = id; 
+                o_net_btn_cancel = id; 
+                o_net_btn_ok = id; 
+                o_net_mode = id; 
                 o_net_panel = id; 
-                o_net_protocol = id; 
-                o_net_server_addr = id; 
-                o_net_server_addr_label = id; 
-                o_net_server_port = id; 
-                o_net_server_port_label = id; 
-                o_net_server_pstepper = id; 
+                o_net_port = id; 
+                o_net_port_lbl = id; 
+                o_net_port_stp = id; 
+                o_playlist = id; 
+                o_quickly_btn_cancel = id; 
+                o_quickly_btn_ok = id; 
+                o_quickly_panel = id; 
+                o_quickly_source = id; 
             }; 
             SUPERCLASS = NSObject; 
         }, 
         {
-            CLASS = Intf_PlaylistDS
+            CLASS = VLCPlaylist
             LANGUAGE = ObjC; 
-            OUTLETS = {o_table = NSTableView; }; 
+            OUTLETS = {o_btn_close = id; o_panel = id; o_table_view = id; }; 
             SUPERCLASS = NSObject; 
-        }
+        }, 
+        {CLASS = VLCPlaylistView; LANGUAGE = ObjC; SUPERCLASS = NSTableView; }
     ); 
     IBVersion = 1; 
 }
\ No newline at end of file
index 20601ed..fc042d5 100644 (file)
@@ -3,26 +3,22 @@
 <plist version="0.9">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>28 196 500 426 0 0 1152 746 </string>
+       <string>98 729 428 434 0 0 1600 1178 </string>
        <key>IBEditorPositions</key>
        <dict>
-               <key>235</key>
-               <string>401 417 350 182 0 0 1152 746 </string>
                <key>29</key>
-               <string>367 465 262 44 0 0 1152 746 </string>
-               <key>445</key>
-               <string>347 561 370 117 0 0 1152 746 </string>
-               <key>460</key>
-               <string>84 279 104 66 0 0 1152 746 </string>
+               <string>642 1081 308 44 0 0 1600 1178 </string>
+               <key>303</key>
+               <string>93 566 72 114 0 0 1600 1178 </string>
        </dict>
        <key>IBFramework Version</key>
-       <string>248.0</string>
+       <string>263.2</string>
        <key>IBOpenObjects</key>
        <array>
-               <integer>528</integer>
                <integer>29</integer>
+               <integer>21</integer>
        </array>
        <key>IBSystem Version</key>
-       <string>5Q125</string>
+       <string>5S66</string>
 </dict>
 </plist>
index b468ee6..c17ec14 100644 (file)
Binary files a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib and b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib differ
index cd5d591..bdfab1c 100644 (file)
@@ -3,42 +3,24 @@
        archiveVersion = 1;
        classes = {
        };
-       objectVersion = 34;
+       objectVersion = 38;
        objects = {
-               F510A6CC01738ED001A80A1F = {
-                       isa = PBXFileReference;
-                       name = intf_vlc_wrapper.h;
-                       path = plugins/macosx/intf_vlc_wrapper.h;
-                       refType = 4;
-               };
-               F510A6CD01738ED001A80A1F = {
-                       isa = PBXFileReference;
-                       name = intf_vlc_wrapper.m;
-                       path = plugins/macosx/intf_vlc_wrapper.m;
-                       refType = 4;
-               };
-               F511306E0170620B01A80A1F = {
-                       buildStyles = (
-                               F51130710170620B01A80A1F,
-                       );
-                       isa = PBXProject;
-                       mainGroup = F511306F0170620B01A80A1F;
-                       productRefGroup = F511306F0170620B01A80A1F;
-                       projectDirPath = "";
-                       targets = (
-                               F52EEB23017E3F0701A80A1F,
-                       );
+               014CEA410018CDE011CA2923 = {
+                       isa = PBXBundleReference;
+                       path = vlc.bundle;
+                       refType = 3;
                };
-               F511306F0170620B01A80A1F = {
-                       children = (
-                               F5121224017062C501A80A1F,
-                               F5121225017062C501A80A1F,
-                               F52EEB22017E3F0701A80A1F,
+               014CEA420018CDE011CA2923 = {
+                       buildRules = (
                        );
-                       isa = PBXGroup;
-                       refType = 4;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               OPTIMIZATION_CFLAGS = "-O0";
+                       };
+                       isa = PBXBuildStyle;
+                       name = Development;
                };
-               F51130710170620B01A80A1F = {
+               014CEA430018CDE011CA2923 = {
                        buildRules = (
                        );
                        buildSettings = {
                        isa = PBXBuildStyle;
                        name = Deployment;
                };
-               F51212220170627901A80A1F = {
-                       children = (
-                               F51212230170627901A80A1F,
+//010
+//011
+//012
+//013
+//014
+//080
+//081
+//082
+//083
+//084
+               089C1669FE841209C02AAC07 = {
+                       buildStyles = (
+                               014CEA420018CDE011CA2923,
+                               014CEA430018CDE011CA2923,
+                       );
+                       isa = PBXProject;
+                       mainGroup = 089C166AFE841209C02AAC07;
+                       projectDirPath = "";
+                       targets = (
+                               089C1673FE841209C02AAC07,
                        );
-                       isa = PBXVariantGroup;
-                       name = MainMenu.nib;
-                       path = "";
-                       refType = 4;
-               };
-               F51212230170627901A80A1F = {
-                       isa = PBXFileReference;
-                       name = English;
-                       path = English.lproj/MainMenu.nib;
-                       refType = 4;
                };
-               F5121224017062C501A80A1F = {
+               089C166AFE841209C02AAC07 = {
                        children = (
-                               F512122B0170635601A80A1F,
-                               F512122C0170635601A80A1F,
-                               F512122D0170635601A80A1F,
-                               F51212300170635601A80A1F,
-                               F51212310170635601A80A1F,
-                               F51212320170635601A80A1F,
-                               F510A6CC01738ED001A80A1F,
-                               F510A6CD01738ED001A80A1F,
-                               F6799746020DCC2A01A80112,
-                               F6799747020DCC2A01A80112,
-                               F6799748020DCC2A01A80112,
-                               F6799749020DCC2A01A80112,
-                               F679974A020DCC2A01A80112,
-                               F6EA76F5024171E201A80112,
-                               F6EA76F6024171E201A80112,
-                               F66B34EC0271A5AF01A80112,
-                               F66B34ED0271A5AF01A80112,
+                               08FB77AFFE84173DC02AAC07,
+                               089C167CFE841241C02AAC07,
+                               089C1671FE841209C02AAC07,
+                               19C28FB8FE9D52D311CA2CBB,
                        );
                        isa = PBXGroup;
-                       name = Files;
-                       path = ../..;
-                       refType = 2;
+                       name = vlc;
+                       refType = 4;
                };
-               F5121225017062C501A80A1F = {
+               089C1671FE841209C02AAC07 = {
                        children = (
-                               F51212220170627901A80A1F,
-                               F51352740170655D01A80A1F,
-                               F513527F0170659801A80A1F,
-                               F51352800170659801A80A1F,
-                               F51352810170659801A80A1F,
-                               F51352820170659801A80A1F,
-                               F52EEB2F017E3F8C01A80A1F,
-                               F5C6804202B407B701B7B2C9,
-                               F5C6804302B407B701B7B2C9,
-                               F5C6804402B407B701B7B2C9,
-                               F5C6804502B407B701B7B2C9,
-                               F5C6804602B407B701B7B2C9,
-                               F5C6804702B407B701B7B2C9,
+                               1058C7ACFEA557BF11CA2CBB,
+                               1058C7AEFEA557BF11CA2CBB,
                        );
                        isa = PBXGroup;
-                       path = Resources;
-                       refType = 2;
-               };
-               F512122B0170635601A80A1F = {
-                       isa = PBXFileReference;
-                       name = aout_macosx.m;
-                       path = plugins/macosx/aout_macosx.m;
+                       name = "Frameworks and Libraries";
                        refType = 4;
                };
-               F512122C0170635601A80A1F = {
-                       isa = PBXFileReference;
-                       name = intf_controller.m;
-                       path = plugins/macosx/intf_controller.m;
-                       refType = 4;
-               };
-               F512122D0170635601A80A1F = {
-                       isa = PBXFileReference;
-                       name = intf_controller.h;
-                       path = plugins/macosx/intf_controller.h;
-                       refType = 4;
+               089C1672FE841209C02AAC07 = {
+                       isa = PBXFrameworkReference;
+                       name = Foundation.framework;
+                       path = /System/Library/Frameworks/Foundation.framework;
+                       refType = 0;
                };
-               F51212300170635601A80A1F = {
-                       isa = PBXFileReference;
-                       name = macosx.m;
-                       path = plugins/macosx/macosx.m;
-                       refType = 4;
-               };
-               F51212310170635601A80A1F = {
-                       isa = PBXFileReference;
-                       name = macosx.h;
-                       path = plugins/macosx/macosx.h;
-                       refType = 4;
-               };
-               F51212320170635601A80A1F = {
-                       isa = PBXFileReference;
-                       name = vout_macosx.m;
-                       path = plugins/macosx/vout_macosx.m;
-                       refType = 4;
-               };
-               F51352740170655D01A80A1F = {
-                       isa = PBXFileReference;
-                       path = pause.png;
-                       refType = 4;
-               };
-               F513527F0170659801A80A1F = {
-                       isa = PBXFileReference;
-                       path = play.png;
-                       refType = 4;
-               };
-               F51352800170659801A80A1F = {
-                       isa = PBXFileReference;
-                       path = stepf.png;
-                       refType = 4;
-               };
-               F51352810170659801A80A1F = {
-                       isa = PBXFileReference;
-                       path = stepr.png;
-                       refType = 4;
-               };
-               F51352820170659801A80A1F = {
-                       isa = PBXFileReference;
-                       path = stop.png;
-                       refType = 4;
-               };
-               F52EEB22017E3F0701A80A1F = {
-                       isa = PBXBundleReference;
-                       path = vlc.bundle;
-                       refType = 3;
-               };
-               F52EEB23017E3F0701A80A1F = {
+               089C1673FE841209C02AAC07 = {
                        buildPhases = (
-                               F52EEB24017E3F0701A80A1F,
-                               F52EEB25017E3F0701A80A1F,
-                               F52EEB2C017E3F0701A80A1F,
-                               F52EEB2D017E3F0701A80A1F,
-                               F52EEB2E017E3F0701A80A1F,
+                               089C1674FE841209C02AAC07,
+                               089C1675FE841209C02AAC07,
+                               089C1676FE841209C02AAC07,
+                               089C1677FE841209C02AAC07,
+                               089C1679FE841209C02AAC07,
                        );
                        buildSettings = {
-                               DEBUGGING_SYMBOLS = NO;
-                               OPTIMIZATION_CFLAGS = "-O3";
+                               FRAMEWORK_SEARCH_PATHS = "";
+                               HEADER_SEARCH_PATHS = "";
+                               INSTALL_PATH = "$(HOME)/Library/Bundles";
+                               LIBRARY_SEARCH_PATHS = "";
                                OTHER_CFLAGS = "";
-                               OTHER_LDFLAGS = "-bundle -undefined suppress";
+                               OTHER_LDFLAGS = "";
                                OTHER_REZFLAGS = "";
                                PRODUCT_NAME = vlc;
                                SECTORDER_FLAGS = "";
                        );
                        isa = PBXBundleTarget;
                        name = vlc;
-                       productInstallPath = "$(USER_LIBRARY_DIR)/Bundles";
-                       productName = vlc.app;
-                       productReference = F52EEB22017E3F0701A80A1F;
+                       productInstallPath = "$(HOME)/Library/Bundles";
+                       productName = vlc;
+                       productReference = 014CEA410018CDE011CA2923;
                        productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <!DOCTYPE plist SYSTEM \"file://localhost/System/Library/DTDs/PropertyList.dtd\">
 <plist version=\"0.9\">
                                <string>vob</string>
                        </array>
                        <key>CFBundleTypeIconFile</key>
-                       <string>vlc.icns</string>
+                       <string>generic.icns</string>
                        <key>CFBundleTypeName</key>
                        <string>VOB File (DVD Video)</string>
                        <key>CFBundleTypeRole</key>
                                <string>mpeg</string>
                        </array>
                        <key>CFBundleTypeIconFile</key>
-                       <string>vlc.icns</string>
+                       <string>mpeg.icns</string>
                        <key>CFBundleTypeName</key>
                        <string>MPEG File</string>
                        <key>CFBundleTypeRole</key>
                        <key>CFBundleTypeIconFile</key>
                        <string>divx.icns</string>
                        <key>CFBundleTypeName</key>
-                       <string>DivX File</string>
+                       <string>DivX file</string>
                        <key>CFBundleTypeRole</key>
                        <string>Viewer</string>
                </dict>
                        <key>CFBundleTypeRole</key>
                        <string>Viewer</string>
                </dict>
+               <dict>
+                       <key>CFBundleTypeExtensions</key>
+                       <array>
+                               <string>mp4</string>
+                       </array>
+                       <key>CFBundleTypeIconFile</key>
+                       <string>mpeg4.icns</string>
+                       <key>CFBundleTypeName</key>
+                       <string>MPEG-4 File</string>
+                       <key>CFBundleTypeRole</key>
+                       <string>Viewer</string>
+               </dict>
        </array>
        <key>CFBundleExecutable</key>
        <string>vlc</string>
-       <key>CFBundleGetInfoString</key>
-       <string>VideoLAN Client, © 1996-2002 VideoLAN project</string>
        <key>CFBundleIconFile</key>
        <string>vlc.icns</string>
        <key>CFBundleIdentifier</key>
        <string>org.videolan.vlc</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
-       <key>CFBundleName</key>
-       <string>vlc</string>
        <key>CFBundlePackageType</key>
-       <string>APPL</string>
-       <key>CFBundleShortVersionString</key>
-       <string>0.4.2</string>
+       <string>BNDL</string>
        <key>CFBundleSignature</key>
        <string>VLC#</string>
        <key>CFBundleVersion</key>
-       <string>0.4.2</string>
+       <string>0.5.0</string>
        <key>NSMainNibFile</key>
        <string>MainMenu</string>
        <key>NSPrincipalClass</key>
-       <string>NSApplication</string>
+       <string>VLCApplication</string>
 </dict>
 </plist>
 ";
-                       shouldUseHeadermap = 0;
+                       shouldUseHeadermap = 1;
                };
-               F52EEB24017E3F0701A80A1F = {
+               089C1674FE841209C02AAC07 = {
                        buildActionMask = 2147483647;
                        files = (
                        );
                        isa = PBXHeadersBuildPhase;
-                       name = Headers;
                };
-               F52EEB25017E3F0701A80A1F = {
+               089C1675FE841209C02AAC07 = {
                        buildActionMask = 2147483647;
                        files = (
-                               F52EEB26017E3F0701A80A1F,
-                               F52EEB27017E3F0701A80A1F,
-                               F52EEB28017E3F0701A80A1F,
-                               F52EEB29017E3F0701A80A1F,
-                               F52EEB2A017E3F0701A80A1F,
-                               F52EEB2B017E3F0701A80A1F,
-                               F52EEB30017E3F8C01A80A1F,
-                               F5C6804802B407B701B7B2C9,
-                               F5C6804902B407B701B7B2C9,
-                               F5C6804A02B407B701B7B2C9,
-                               F5C6804B02B407B701B7B2C9,
-                               F5C6804C02B407B701B7B2C9,
-                               F5C6804D02B407B701B7B2C9,
+                               F74F13E002C2A53401EE194C,
+                               F74F13EC02C2A79C01EE194C,
+                               F6E4F91002D2648B01A80112,
+                               F6E4F91102D2648B01A80112,
+                               F6E4F91202D2648B01A80112,
+                               F6E4F91302D2648B01A80112,
+                               F6E4F91402D2648B01A80112,
+                               F6E4F91502D2648B01A80112,
+                               F69B0CA802E24F6401A80112,
                        );
                        isa = PBXResourcesBuildPhase;
-                       name = "Bundle Resources";
                };
-               F52EEB26017E3F0701A80A1F = {
-                       fileRef = F51212220170627901A80A1F;
-                       isa = PBXBuildFile;
-                       settings = {
-                       };
-               };
-               F52EEB27017E3F0701A80A1F = {
-                       fileRef = F51352740170655D01A80A1F;
-                       isa = PBXBuildFile;
-                       settings = {
-                       };
-               };
-               F52EEB28017E3F0701A80A1F = {
-                       fileRef = F513527F0170659801A80A1F;
-                       isa = PBXBuildFile;
-                       settings = {
-                       };
-               };
-               F52EEB29017E3F0701A80A1F = {
-                       fileRef = F51352800170659801A80A1F;
-                       isa = PBXBuildFile;
-                       settings = {
-                       };
-               };
-               F52EEB2A017E3F0701A80A1F = {
-                       fileRef = F51352810170659801A80A1F;
-                       isa = PBXBuildFile;
-                       settings = {
-                       };
-               };
-               F52EEB2B017E3F0701A80A1F = {
-                       fileRef = F51352820170659801A80A1F;
-                       isa = PBXBuildFile;
-                       settings = {
-                       };
-               };
-               F52EEB2C017E3F0701A80A1F = {
+               089C1676FE841209C02AAC07 = {
                        buildActionMask = 2147483647;
                        files = (
                        );
                        isa = PBXSourcesBuildPhase;
-                       name = Sources;
                };
-               F52EEB2D017E3F0701A80A1F = {
+               089C1677FE841209C02AAC07 = {
                        buildActionMask = 2147483647;
                        files = (
+                               1058C7AFFEA557BF11CA2CBB,
                        );
                        isa = PBXFrameworksBuildPhase;
-                       name = "Frameworks & Libraries";
                };
-               F52EEB2E017E3F0701A80A1F = {
+               089C1679FE841209C02AAC07 = {
                        buildActionMask = 2147483647;
                        files = (
                        );
                        isa = PBXRezBuildPhase;
-                       name = "ResourceManager Resources";
                };
-               F52EEB2F017E3F8C01A80A1F = {
+               089C167CFE841241C02AAC07 = {
+                       children = (
+                               F74F13EA02C2A79C01EE194C,
+                               F74F13DF02C2A53401EE194C,
+                               F6E4F90A02D2648B01A80112,
+                               F6E4F90B02D2648B01A80112,
+                               F6E4F90C02D2648B01A80112,
+                               F6E4F90D02D2648B01A80112,
+                               F6E4F90E02D2648B01A80112,
+                               F6E4F90F02D2648B01A80112,
+                               F69B0CA602E24F6401A80112,
+                       );
+                       isa = PBXGroup;
+                       name = Resources;
+                       refType = 4;
+               };
+               089C167FFE841241C02AAC07 = {
+                       isa = PBXFrameworkReference;
+                       name = AppKit.framework;
+                       path = /System/Library/Frameworks/AppKit.framework;
+                       refType = 0;
+               };
+               08FB77AFFE84173DC02AAC07 = {
+                       children = (
+                       );
+                       isa = PBXGroup;
+                       name = Classes;
+                       refType = 4;
+               };
+//080
+//081
+//082
+//083
+//084
+//100
+//101
+//102
+//103
+//104
+               1058C7ACFEA557BF11CA2CBB = {
+                       children = (
+                               1058C7ADFEA557BF11CA2CBB,
+                       );
+                       isa = PBXGroup;
+                       name = "Linked Frameworks";
+                       refType = 4;
+               };
+               1058C7ADFEA557BF11CA2CBB = {
+                       isa = PBXFrameworkReference;
+                       name = Cocoa.framework;
+                       path = /System/Library/Frameworks/Cocoa.framework;
+                       refType = 0;
+               };
+               1058C7AEFEA557BF11CA2CBB = {
+                       children = (
+                               089C1672FE841209C02AAC07,
+                               089C167FFE841241C02AAC07,
+                       );
+                       isa = PBXGroup;
+                       name = "Other Frameworks";
+                       refType = 4;
+               };
+               1058C7AFFEA557BF11CA2CBB = {
+                       fileRef = 1058C7ADFEA557BF11CA2CBB;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+//100
+//101
+//102
+//103
+//104
+//190
+//191
+//192
+//193
+//194
+               19C28FB8FE9D52D311CA2CBB = {
+                       children = (
+                               014CEA410018CDE011CA2923,
+                       );
+                       isa = PBXGroup;
+                       name = Products;
+                       refType = 4;
+               };
+//190
+//191
+//192
+//193
+//194
+//F60
+//F61
+//F62
+//F63
+//F64
+               F69B0CA602E24F6401A80112 = {
+                       children = (
+                               F69B0CA702E24F6401A80112,
+                       );
+                       isa = PBXVariantGroup;
+                       name = InfoPlist.strings;
+                       path = "";
+                       refType = 4;
+               };
+               F69B0CA702E24F6401A80112 = {
                        isa = PBXFileReference;
-                       path = vlc.icns;
+                       name = English;
+                       path = Resources/English.lproj/InfoPlist.strings;
                        refType = 4;
                };
-               F52EEB30017E3F8C01A80A1F = {
-                       fileRef = F52EEB2F017E3F8C01A80A1F;
+               F69B0CA802E24F6401A80112 = {
+                       fileRef = F69B0CA602E24F6401A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-               F5C6804202B407B701B7B2C9 = {
+               F6E4F90A02D2648B01A80112 = {
                        isa = PBXFileReference;
-                       path = divx.icns;
+                       name = divx.icns;
+                       path = Resources/divx.icns;
                        refType = 4;
                };
-               F5C6804302B407B701B7B2C9 = {
+               F6E4F90B02D2648B01A80112 = {
                        isa = PBXFileReference;
-                       path = mpeg2.icns;
+                       name = generic.icns;
+                       path = Resources/generic.icns;
                        refType = 4;
                };
-               F5C6804402B407B701B7B2C9 = {
+               F6E4F90C02D2648B01A80112 = {
                        isa = PBXFileReference;
-                       path = mpeg.icns;
+                       name = mpeg.icns;
+                       path = Resources/mpeg.icns;
                        refType = 4;
                };
-               F5C6804502B407B701B7B2C9 = {
+               F6E4F90D02D2648B01A80112 = {
                        isa = PBXFileReference;
-                       path = generic.icns;
+                       name = mpeg1.icns;
+                       path = Resources/mpeg1.icns;
                        refType = 4;
                };
-               F5C6804602B407B701B7B2C9 = {
+               F6E4F90E02D2648B01A80112 = {
                        isa = PBXFileReference;
-                       path = mpeg1.icns;
+                       name = mpeg2.icns;
+                       path = Resources/mpeg2.icns;
                        refType = 4;
                };
-               F5C6804702B407B701B7B2C9 = {
+               F6E4F90F02D2648B01A80112 = {
                        isa = PBXFileReference;
-                       path = mpeg4.icns;
+                       name = mpeg4.icns;
+                       path = Resources/mpeg4.icns;
                        refType = 4;
                };
-               F5C6804802B407B701B7B2C9 = {
-                       fileRef = F5C6804202B407B701B7B2C9;
+               F6E4F91002D2648B01A80112 = {
+                       fileRef = F6E4F90A02D2648B01A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-               F5C6804902B407B701B7B2C9 = {
-                       fileRef = F5C6804302B407B701B7B2C9;
+               F6E4F91102D2648B01A80112 = {
+                       fileRef = F6E4F90B02D2648B01A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-               F5C6804A02B407B701B7B2C9 = {
-                       fileRef = F5C6804402B407B701B7B2C9;
+               F6E4F91202D2648B01A80112 = {
+                       fileRef = F6E4F90C02D2648B01A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-               F5C6804B02B407B701B7B2C9 = {
-                       fileRef = F5C6804502B407B701B7B2C9;
+               F6E4F91302D2648B01A80112 = {
+                       fileRef = F6E4F90D02D2648B01A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-               F5C6804C02B407B701B7B2C9 = {
-                       fileRef = F5C6804602B407B701B7B2C9;
+               F6E4F91402D2648B01A80112 = {
+                       fileRef = F6E4F90E02D2648B01A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-               F5C6804D02B407B701B7B2C9 = {
-                       fileRef = F5C6804702B407B701B7B2C9;
+               F6E4F91502D2648B01A80112 = {
+                       fileRef = F6E4F90F02D2648B01A80112;
                        isa = PBXBuildFile;
                        settings = {
                        };
                };
-//F50
-//F51
-//F52
-//F53
-//F54
 //F60
 //F61
 //F62
 //F63
 //F64
-               F66B34EC0271A5AF01A80112 = {
-                       isa = PBXFileReference;
-                       name = intf_open.m;
-                       path = plugins/macosx/intf_open.m;
-                       refType = 4;
-               };
-               F66B34ED0271A5AF01A80112 = {
-                       isa = PBXFileReference;
-                       name = intf_open.h;
-                       path = plugins/macosx/intf_open.h;
-                       refType = 4;
-               };
-               F6799746020DCC2A01A80112 = {
-                       isa = PBXFileReference;
-                       name = intf_macosx.m;
-                       path = plugins/macosx/intf_macosx.m;
-                       refType = 4;
-               };
-               F6799747020DCC2A01A80112 = {
-                       isa = PBXFileReference;
-                       name = vout_qdview.m;
-                       path = plugins/macosx/vout_qdview.m;
-                       refType = 4;
-               };
-               F6799748020DCC2A01A80112 = {
+//F70
+//F71
+//F72
+//F73
+//F74
+               F74F13DF02C2A53401EE194C = {
                        isa = PBXFileReference;
-                       name = vout_qdview.h;
-                       path = plugins/macosx/vout_qdview.h;
+                       name = vlc.icns;
+                       path = Resources/vlc.icns;
                        refType = 4;
                };
-               F6799749020DCC2A01A80112 = {
-                       isa = PBXFileReference;
-                       name = vout_window.m;
-                       path = plugins/macosx/vout_window.m;
-                       refType = 4;
+               F74F13E002C2A53401EE194C = {
+                       fileRef = F74F13DF02C2A53401EE194C;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
                };
-               F679974A020DCC2A01A80112 = {
-                       isa = PBXFileReference;
-                       name = vout_window.h;
-                       path = plugins/macosx/vout_window.h;
+               F74F13EA02C2A79C01EE194C = {
+                       children = (
+                               F74F13EB02C2A79C01EE194C,
+                       );
+                       isa = PBXVariantGroup;
+                       name = MainMenu.nib;
+                       path = "";
                        refType = 4;
                };
-               F6EA76F5024171E201A80112 = {
+               F74F13EB02C2A79C01EE194C = {
                        isa = PBXFileReference;
-                       name = vout_vlc_wrapper.m;
-                       path = plugins/macosx/vout_vlc_wrapper.m;
+                       name = English;
+                       path = Resources/English.lproj/MainMenu.nib;
                        refType = 4;
                };
-               F6EA76F6024171E201A80112 = {
-                       isa = PBXFileReference;
-                       name = vout_vlc_wrapper.h;
-                       path = plugins/macosx/vout_vlc_wrapper.h;
-                       refType = 4;
+               F74F13EC02C2A79C01EE194C = {
+                       fileRef = F74F13EA02C2A79C01EE194C;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
                };
        };
-       rootObject = F511306E0170620B01A80A1F;
+       rootObject = 089C1669FE841209C02AAC07;
 }
index 21c4185..9e390ea 100644 (file)
@@ -1 +1 @@
-macosx_SOURCES = macosx.m aout_macosx.m vout_macosx.m vout_window.m vout_qdview.m vout_vlc_wrapper.m intf_macosx.m intf_controller.m intf_vlc_wrapper.m intf_open.m 
+macosx_SOURCES = macosx.m aout_macosx.m vout_macosx.m intf_macosx.m intf_open.m intf_playlist.m intf_controls.m  
diff --git a/plugins/macosx/intf_controller.h b/plugins/macosx/intf_controller.h
deleted file mode 100644 (file)
index 2f3e3d4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*****************************************************************************
- * intf_controller.h: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_controller.h,v 1.11 2002/06/19 22:47:14 massiot Exp $
- *
- * Authors: Florian G. Pflug <fgp@phlo.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#include "intf_vlc_wrapper.h"
-#include "vout_vlc_wrapper.h"
-
-@interface Intf_PlaylistDS : NSObject
-{
-    NSMutableArray       *o_playlist;
-
-    IBOutlet NSTableView *o_table;
-}
-
-- (void)readPlaylist;
-
-- (int)numberOfRowsInTableView:(NSTableView *)o_table;
-- (id)tableView:(NSTableView *)o_table objectValueForTableColumn:(NSTableColumn *)o_column row:(int)i_row;
-- (void)tableView:(NSTableView *)o_table setObjectValue:o_value forTableColumn:(NSTableColumn *)o_column row:(int)i_index;
-
-@end
-
-@interface Intf_Controller : NSObject
-{
-    Intf_VLCWrapper *o_intf;
-    Vout_VLCWrapper *o_vout;
-
-    NSLock *o_slider_lock;
-    float f_slider, f_slider_old;
-
-    IBOutlet NSWindow       *o_window;
-    IBOutlet NSButton       *o_play;
-    IBOutlet NSButton       *o_pause;
-    IBOutlet NSButton       *o_stop;
-    IBOutlet NSButton       *o_stepr;
-    IBOutlet NSButton       *o_stepf;
-    IBOutlet NSSlider       *o_timeslider;
-    IBOutlet NSTextField    *o_time;
-
-    IBOutlet Intf_PlaylistDS *o_playlistds;
-}
-
-/* Initialization & Event-Management */
-- (void)awakeFromNib;
-- (void)manage;
-- (void)terminate;
-
-/* NSApplication messages */
-- (void)applicationWillFinishLaunching:(NSNotification *)o_notification;
-- (BOOL)application:(NSApplication *)o_app openFile:(NSString *)o_filename;
-
-/* Functions attached to user interface */
-- (IBAction)pause:(id)sender;
-- (IBAction)play:(id)sender;
-- (IBAction)stop:(id)sender;
-- (IBAction)faster:(id)sender;
-- (IBAction)slower:(id)sender;
-- (IBAction)prev:(id)sender;
-- (IBAction)next:(id)sender;
-- (IBAction)prevChannel:(id)sender;
-- (IBAction)nextChannel:(id)sender;
-- (IBAction)loop:(id)sender;
-- (IBAction)deinterlace:(id)sender;
-- (IBAction)mute:(id)sender;
-- (IBAction)fullscreen:(id)fullscreen;
-- (IBAction)eject:(id)sender;
-- (IBAction)maxvolume:(id)sender;
-- (IBAction)timesliderUpdate:(id)slider;
-- (IBAction)quit:(id)sender;
-
-- (BOOL)validateMenuItem:(id)sender;
-
-@end
diff --git a/plugins/macosx/intf_controller.m b/plugins/macosx/intf_controller.m
deleted file mode 100644 (file)
index 75849a5..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-/*****************************************************************************
- * intf_controller.m: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_controller.m,v 1.10 2002/06/19 22:47:14 massiot Exp $
- *
- * Authors: Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#import <ApplicationServices/ApplicationServices.h>
-
-#include <vlc/vlc.h>
-#include <vlc/intf.h>
-
-#include "macosx.h"
-#include "intf_controller.h"
-
-@implementation Intf_Controller
-
-/* Initialization & Event-Management */
-
-- (void)awakeFromNib
-{
-    NSString *pTitle = [NSString
-        stringWithCString: VOUT_TITLE " (Cocoa)"];
-
-    [o_window setTitle: pTitle];
-}
-
-- (void)manage
-{
-    NSDate *sleepDate;
-    NSAutoreleasePool *o_pool;
-
-    o_pool = [[NSAutoreleasePool alloc] init];
-
-    while( ![o_intf manage] )
-    {
-        if( [o_intf playlistPlaying] )
-        { 
-            [o_time setStringValue: [o_intf getTimeAsString]];
-
-            if( f_slider == f_slider_old )
-            {
-                float f_updated = [o_intf getTimeAsFloat];
-
-                if( f_updated != f_slider )
-                {
-                    if( [o_slider_lock tryLock] )
-                    {
-                        [o_timeslider setFloatValue: f_updated];
-                        [o_slider_lock unlock];
-                    }
-                }
-            }
-            else
-            {
-                [o_intf setTimeAsFloat: f_slider];
-                f_slider_old = f_slider;
-            }
-
-            UpdateSystemActivity( UsrActivity );
-        }
-
-        sleepDate = [NSDate dateWithTimeIntervalSinceNow: 0.5];
-        [NSThread sleepUntilDate: sleepDate];
-    }
-
-    [self terminate];
-
-    [o_pool release];
-}
-
-- (void)terminate
-{
-    NSEvent *pEvent;
-
-    [NSApp stop: nil];
-
-    [o_vout release];
-    [o_intf release];
-
-    /* send a dummy event to break out of the event loop */
-    pEvent = [NSEvent mouseEventWithType: NSLeftMouseDown
-                location: NSMakePoint( 1, 1 ) modifierFlags: 0
-                timestamp: 1 windowNumber: [[NSApp mainWindow] windowNumber]
-                context: [NSGraphicsContext currentContext] eventNumber: 1
-                clickCount: 1 pressure: 0.0];
-    [NSApp postEvent: pEvent atStart: YES];
-}
-
-/* NSApplication messages */
-
-- (void)applicationWillFinishLaunching:(NSNotification *)o_notification
-{
-    o_intf = [[Intf_VLCWrapper instance] retain];
-    o_vout = [[Vout_VLCWrapper instance] retain];
-
-    f_slider = f_slider_old = 0.0;
-    o_slider_lock = [[NSLock alloc] init];
-
-    [NSThread detachNewThreadSelector: @selector(manage)
-        toTarget: self withObject: nil];
-}
-
-- (BOOL)application:(NSApplication *)o_app openFile:(NSString *)o_filename
-{
-    NSArray *o_array;
-
-    o_array = [NSArray arrayWithObject: o_filename];
-    [o_intf openFiles: o_array];
-
-    return( TRUE );
-}
-
-/* Functions attached to user interface */
-- (IBAction)pause:(id)sender
-{
-    [o_intf playlistPause];
-}
-
-- (IBAction)play:(id)sender
-{
-    [o_intf playlistPlay];
-}
-
-- (IBAction)stop:(id)sender
-{
-    [o_intf playlistStop];
-}
-
-- (IBAction)faster:(id)sender
-{
-    [o_intf playFaster];
-}
-
-- (IBAction)slower:(id)sender
-{
-    [o_intf playSlower];
-}
-
-- (IBAction)prev:(id)sender
-{
-    [o_intf playlistPrev];
-}
-
-- (IBAction)next:(id)sender
-{
-    [o_intf playlistNext];
-}
-
-- (IBAction)prevChannel:(id)sender
-{
-    [o_intf channelPrev];
-}
-
-- (IBAction)nextChannel:(id)sender
-{
-    [o_intf channelNext];
-}
-
-- (IBAction)loop:(id)sender
-{
-    NSMenuItem * item = (NSMenuItem *)sender;
-
-    [o_intf loop];
-
-    if( p_main->p_intf->p_sys->b_loop )
-    {
-        [item setState:NSOnState];
-    }
-    else
-    {
-        [item setState:NSOffState];
-    }
-}
-
-- (IBAction)deinterlace:(id)sender
-{
-    NSMenuItem * item = (NSMenuItem *)sender;
-
-    if ( [item state] == NSOnState )
-    {
-        config_PutPszVariable( "filter", NULL );
-        [item setState:NSOffState];
-    }
-    else
-    {
-        config_PutPszVariable( "filter", "deinterlace:blend" );
-        [item setState:NSOnState];
-    }
-}
-
-- (IBAction)mute:(id)sender
-{
-    NSMenuItem * item = (NSMenuItem *)sender;
-
-    [o_intf mute];
-
-    if( p_main->p_intf->p_sys->b_mute )
-    {
-        [item setState:NSOnState];
-    }
-    else
-    {
-        [item setState:NSOffState];
-    }
-}
-
-- (IBAction)fullscreen:(id)sender
-{
-    [o_intf fullscreen];
-}
-
-- (IBAction)eject:(id)sender
-{
-    [o_intf eject];
-}
-
-- (IBAction)maxvolume:(id)sender
-{
-    [o_intf maxvolume];
-}
-
-- (IBAction)timesliderUpdate:(id)slider
-{
-    switch( [[NSApp currentEvent] type] )
-    {
-        case NSLeftMouseDown:
-            [o_slider_lock tryLock];
-            break;
-
-        case NSLeftMouseUp:
-            f_slider = [o_timeslider floatValue];
-            [o_slider_lock unlock];
-            break;
-
-        default:
-            break;
-    }
-}
-
-- (IBAction)quit:(id)sender
-{
-    [o_intf quit];
-}
-
-- (BOOL)validateMenuItem:(id)sender
-{
-    NSMenuItem * o_item = (NSMenuItem *)sender;
-    int tag = [o_item tag];
-
-    if ( tag == 12 || tag == 13 )
-    {
-        if( !config_GetIntVariable( "network-channel" ) )
-        {
-            return NO;
-        }
-        if ( tag == 12 && !p_main->p_intf->p_sys->i_channel )
-        {
-            return NO;
-        }
-    }
-        
-    return YES;
-}
-
-@end
-
-@implementation Intf_PlaylistDS
-
-- (id)init
-{
-    if( [super init] == nil )
-        return( nil );
-
-    o_playlist = nil;
-
-    return( self );
-}
-
-- (void)readPlaylist
-{
-    o_playlist = [[[Intf_VLCWrapper instance] playlistAsArray] retain];
-}
-
-- (int)numberOfRowsInTableView:(NSTableView*)o_table
-{
-    [self readPlaylist];
-    return( [o_playlist count] );
-}
-    
-- (id)tableView:(NSTableView *)o_table objectValueForTableColumn:(NSTableColumn*)o_column row:(int)i_row
-{
-    return( [o_playlist objectAtIndex: i_row] );
-}
-    
-- (void)tableView:(NSTableView *)o_table setObjectValue:o_value forTableColumn:(NSTableColumn *)o_column row:(int)i_index
-{
-}
-
-@end
diff --git a/plugins/macosx/intf_controls.m b/plugins/macosx/intf_controls.m
new file mode 100644 (file)
index 0000000..1ad6f07
--- /dev/null
@@ -0,0 +1,468 @@
+/*****************************************************************************
+ * intf_controls.m: MacOS X interface plugin
+ *****************************************************************************
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_controls.m,v 1.1 2002/07/15 01:54:03 jlj Exp $
+ *
+ * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
+ *          Christophe Massiot <massiot@via.ecp.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Preamble
+ *****************************************************************************/
+#include <stdlib.h>                                      /* malloc(), free() */
+#include <sys/param.h>                                    /* for MAXPATHLEN */
+#include <string.h>
+
+#include <vlc/vlc.h>
+#include <vlc/intf.h>
+
+#include <Cocoa/Cocoa.h> 
+#include <CoreAudio/AudioHardware.h>
+
+#include "intf_macosx.h"
+#include "vout_macosx.h"
+
+/*****************************************************************************
+ * VLCControls interface 
+ *****************************************************************************/
+@interface VLCControls : NSObject
+{
+    IBOutlet id o_open;
+}
+
+- (IBAction)play:(id)sender;
+- (IBAction)pause:(id)sender;
+- (IBAction)stop:(id)sender;
+- (IBAction)faster:(id)sender;
+- (IBAction)slower:(id)sender;
+
+- (IBAction)prev:(id)sender;
+- (IBAction)next:(id)sender;
+- (IBAction)loop:(id)sender;
+
+- (IBAction)volumeUp:(id)sender;
+- (IBAction)volumeDown:(id)sender;
+- (IBAction)mute:(id)sender;
+- (IBAction)fullscreen:(id)sender;
+
+- (IBAction)toggleProgram:(id)sender;
+- (IBAction)toggleTitle:(id)sender;
+- (IBAction)toggleChapter:(id)sender;
+- (IBAction)toggleLanguage:(id)sender;
+
+@end
+
+/*****************************************************************************
+ * VLCControls implementation 
+ *****************************************************************************/
+@implementation VLCControls
+
+- (IBAction)play:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    /* If the playlist is empty, open a file requester instead */
+    vlc_mutex_lock( &p_playlist->object_lock );
+    if( p_playlist->i_size )
+    {
+        vlc_mutex_unlock( &p_playlist->object_lock );
+        playlist_Play( p_playlist );
+        vlc_object_release( p_playlist );
+    }
+    else
+    {
+        vlc_mutex_unlock( &p_playlist->object_lock );
+        vlc_object_release( p_playlist );
+
+        [o_open openFile: nil];
+    }
+}
+
+- (IBAction)pause:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( p_intf->p_sys->p_input == NULL )
+    {
+        return;
+    }
+
+    input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_PAUSE );
+}
+
+- (IBAction)stop:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    playlist_Stop( p_playlist );
+    vlc_object_release( p_playlist );
+}
+
+- (IBAction)faster:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( p_intf->p_sys->p_input == NULL )
+    {
+        return;
+    }
+
+    input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_FASTER );
+}
+
+- (IBAction)slower:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( p_intf->p_sys->p_input == NULL )
+    {
+        return;
+    }
+
+    input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_SLOWER );
+}
+
+- (IBAction)prev:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    playlist_Prev( p_playlist );
+    vlc_object_release( p_playlist );
+}
+
+- (IBAction)next:(id)sender
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    playlist_Next( p_playlist );
+    vlc_object_release( p_playlist );
+}
+
+- (IBAction)loop:(id)sender
+{
+    NSMenuItem * o_mi = (NSMenuItem *)sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    if( p_intf->p_sys->b_loop )
+    {
+        [o_mi setState: NSOffState];
+        playlist_Delete( p_playlist, p_playlist->i_size - 1 );
+    }
+    else
+    {
+        [o_mi setState: NSOnState];
+        playlist_Add( p_playlist, "vlc:loop",
+                      PLAYLIST_APPEND, PLAYLIST_END );
+    }
+
+    p_intf->p_sys->b_loop = !p_intf->p_sys->b_loop;
+
+    vlc_object_release( p_playlist );
+}
+
+- (IBAction)volumeUp:(id)sender
+{
+    /*
+    intf_thread_t * p_intf = [NSApp getIntf];
+    */
+
+    /* TODO, kAudioDevicePropertyVolumeScalar */
+}
+
+- (IBAction)volumeDown:(id)sender
+{
+    /*
+    intf_thread_t * p_intf = [NSApp getIntf];
+    */
+
+    /* TODO, kAudioDevicePropertyVolumeScalar */
+}
+
+- (IBAction)mute:(id)sender
+{
+    OSStatus err;
+    AudioDeviceID device;
+    UInt32 ui_param_size;
+
+    NSMenuItem * o_mi = (NSMenuItem *)sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    UInt32 b_mute = !p_intf->p_sys->b_mute;
+
+    [o_mi setState: b_mute ? NSOnState : NSOffState];
+    p_intf->p_sys->b_mute = !p_intf->p_sys->b_mute;
+
+    ui_param_size = sizeof( device );
+    err = AudioHardwareGetProperty( kAudioHardwarePropertyDefaultOutputDevice,
+                                    &ui_param_size, (void *)&device );
+    if( err != noErr )
+    {
+        msg_Err( p_intf, "AudioHardwareGetProperty failed (%d)", err );
+        return;
+    }
+
+    ui_param_size = sizeof( b_mute );
+    err = AudioDeviceSetProperty( device, 0, 0, false,
+                                  kAudioDevicePropertyMute,
+                                  ui_param_size, (void *)&b_mute );
+    if( err != noErr )
+    {
+        msg_Err( p_intf, "AudioDeviceSetProperty failed (%d)", err );
+        return;
+    }
+}
+
+- (IBAction)fullscreen:(id)sender
+{
+    id o_window = [NSApp keyWindow];
+
+    if( [[o_window className] isEqualToString: @"VLCWindow"] )
+    {
+        [o_window toggleFullscreen];
+    }
+}
+
+- (IBAction)toggleProgram:(id)sender
+{
+    NSMenuItem * o_mi = (NSMenuItem *)sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( [o_mi state] == NSOffState )
+    {
+        u16 i_program_id = [o_mi tag];
+
+        input_ChangeProgram( p_intf->p_sys->p_input, i_program_id );
+        input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_PLAY );
+    }
+}
+
+- (IBAction)toggleTitle:(id)sender
+{
+    NSMenuItem * o_mi = (NSMenuItem *)sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( [o_mi state] == NSOffState )
+    {
+        int i_title = [o_mi tag];
+
+#define p_input p_intf->p_sys->p_input
+        input_ChangeArea( p_input, p_input->stream.pp_areas[i_title] );
+        input_SetStatus( p_input, INPUT_STATUS_PLAY );
+#undef p_input
+    }
+}
+
+- (IBAction)toggleChapter:(id)sender
+{
+    NSMenuItem * o_mi = (NSMenuItem *)sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( [o_mi state] == NSOffState )
+    {
+        int i_chapter = [o_mi tag];
+
+#define p_input p_intf->p_sys->p_input
+        p_input->stream.p_selected_area->i_part = i_chapter;
+        input_ChangeArea( p_input, p_input->stream.p_selected_area );
+        input_SetStatus( p_input, INPUT_STATUS_PLAY );
+#undef p_input
+    }
+}
+
+- (IBAction)toggleLanguage:(id)sender
+{
+    NSMenuItem * o_mi = (NSMenuItem *)sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+#define p_input p_intf->p_sys->p_input
+
+    if( !p_intf->p_sys->b_audio_update )
+    {
+        NSValue * o_value = [o_mi representedObject];
+        es_descriptor_t * p_es = [o_value pointerValue];
+
+        if( [o_mi state] == NSOnState )
+        {
+            /* we just have one ES to disable */
+            input_ToggleES( p_input, p_es, 0 );
+        }
+        else
+        {
+            int i;
+            int i_cat = [o_mi tag];
+
+            vlc_mutex_lock( &p_input->stream.stream_lock );
+
+#define ES p_input->stream.pp_selected_es[i]
+
+            /* unselect the selected ES in the same class */
+            for( i = 0; i < p_input->stream.i_selected_es_number; i++ )
+            {
+                if( ES->i_cat == i_cat )
+                {
+                    vlc_mutex_unlock( &p_input->stream.stream_lock );
+                    input_ToggleES( p_input, ES, 0 );
+                    vlc_mutex_lock( &p_input->stream.stream_lock );
+                    break;
+                }
+            }
+
+#undef ES
+
+            vlc_mutex_unlock( &p_input->stream.stream_lock );
+
+            input_ToggleES( p_input, p_es, 1 );
+        }
+    }
+
+#undef p_input
+}
+
+@end
+
+@implementation VLCControls (NSMenuValidation)
+- (BOOL)validateMenuItem:(NSMenuItem *)o_mi
+{
+    BOOL bEnabled = TRUE;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( [[o_mi title] isEqualToString: _NS("Pause")] ||
+        [[o_mi title] isEqualToString: _NS("Faster")] ||
+        [[o_mi title] isEqualToString: _NS("Slower")] )
+    {
+        if( p_intf->p_sys->p_input != NULL )
+        {
+#define p_input p_intf->p_sys->p_input
+            vlc_mutex_lock( &p_input->stream.stream_lock );
+            bEnabled = p_input->stream.b_pace_control;
+            vlc_mutex_unlock( &p_input->stream.stream_lock );
+#undef p_input
+        }
+        else
+        {
+            bEnabled = FALSE;
+        }
+    }
+    else if( [[o_mi title] isEqualToString: _NS("Stop")] )
+    {
+        bEnabled = p_intf->p_sys->p_input != NULL;
+    }
+    else if( [[o_mi title] isEqualToString: _NS("Prev")] ||
+             [[o_mi title] isEqualToString: _NS("Next")] )
+    {
+        playlist_t * p_playlist = vlc_object_find( p_intf, 
+                                                   VLC_OBJECT_PLAYLIST,
+                                                   FIND_ANYWHERE );
+        if( p_playlist == NULL )
+        {
+            bEnabled = FALSE;
+        }
+        else
+        {
+            vlc_mutex_lock( &p_playlist->object_lock );
+            bEnabled = p_playlist->i_size > 1;
+            vlc_mutex_unlock( &p_playlist->object_lock );
+            vlc_object_release( p_playlist );
+        }
+    }
+    else if( [[o_mi title] isEqualToString: _NS("Volume Up")] ||
+             [[o_mi title] isEqualToString: _NS("Volume Down")] )
+    {
+        bEnabled = FALSE; /* not implemented yet */
+    }
+    else if( [[o_mi title] isEqualToString: _NS("Mute")] )
+    {
+        OSStatus err;
+        UInt32 b_mute;
+        AudioDeviceID device;
+        UInt32 ui_param_size;
+
+        ui_param_size = sizeof( device );
+        err = AudioHardwareGetProperty( 
+                            kAudioHardwarePropertyDefaultOutputDevice,
+                            &ui_param_size, (void *)&device );
+        if( err != noErr )
+        {
+            msg_Err( p_intf, "AudioHardwareGetProperty failed (%d)", err );
+        }
+        else
+        {
+            ui_param_size = sizeof( b_mute );
+            err = AudioDeviceGetProperty( device, 0, 0,
+                                          kAudioDevicePropertyMute,
+                                          &ui_param_size, (void *)&b_mute );
+            if( err != noErr )
+            {
+                msg_Err( p_intf, "AudioDeviceGetProperty failed (%d)", err );
+            }
+            else
+            {
+                [o_mi setState: b_mute ? NSOnState : NSOffState];
+                p_intf->p_sys->b_mute = (vlc_bool_t)b_mute ? 1 : 0;
+            }
+        }
+    }
+    else if( [[o_mi title] isEqualToString: _NS("Fullscreen")] )    
+    {
+        id o_window = [NSApp keyWindow];
+
+        if( [[o_window className] isEqualToString: @"VLCWindow"] )
+        {
+            [o_mi setState: [o_window isFullscreen]]; 
+        }
+        else
+        {
+            bEnabled = FALSE;
+        }
+    }
+
+    return( bEnabled );
+}
+
+@end
diff --git a/plugins/macosx/intf_macosx.h b/plugins/macosx/intf_macosx.h
new file mode 100644 (file)
index 0000000..0a349d3
--- /dev/null
@@ -0,0 +1,162 @@
+/*****************************************************************************
+ * intf_macosx.h: MacOS X interface plugin
+ *****************************************************************************
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_macosx.h,v 1.1 2002/07/15 01:54:03 jlj Exp $
+ *
+ * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
+ *          Christophe Massiot <massiot@via.ecp.fr>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * VLCApplication interface 
+ *****************************************************************************/
+@interface VLCApplication : NSApplication
+{
+    NSStringEncoding i_encoding;
+    intf_thread_t *p_intf;
+}
+
+- (void)initIntlSupport;
+- (NSString *)localizedString:(char *)psz;
+
+- (void)setIntf:(intf_thread_t *)p_intf;
+- (intf_thread_t *)getIntf;
+
+@end
+
+#define _NS(s) [NSApp localizedString: _(s)]
+
+/*****************************************************************************
+ * intf_sys_t: description and status of the interface
+ *****************************************************************************/
+struct intf_sys_s
+{
+    NSAutoreleasePool * o_pool;
+    NSPort * o_sendport;
+
+    /* special actions */
+    vlc_bool_t b_loop;
+    vlc_bool_t b_playing;
+    vlc_bool_t b_mute;
+
+    /* menus handlers */
+    vlc_bool_t b_chapter_update;
+    vlc_bool_t b_program_update;
+    vlc_bool_t b_title_update;
+    vlc_bool_t b_audio_update;
+    vlc_bool_t b_spu_update;
+
+    /* The input thread */
+    input_thread_t * p_input;
+
+    /* The messages window */
+    msg_subscription_t * p_sub;
+
+    /* DVD mode */
+    int i_part;
+};
+
+/*****************************************************************************
+ * VLCMain interface 
+ *****************************************************************************/
+@interface VLCMain : NSObject
+{
+    IBOutlet id o_window;       /* main window    */
+
+    IBOutlet id o_controls;     /* VLCControls    */
+    IBOutlet id o_playlist;     /* VLCPlaylist    */
+
+    IBOutlet id o_messages;     /* messages tv    */
+    IBOutlet id o_msgs_panel;   /* messages panel */
+    IBOutlet id o_msgs_btn_ok;  /* messages btn   */
+
+    /* main menu */
+
+    IBOutlet id o_mi_about;
+    IBOutlet id o_mi_hide;
+    IBOutlet id o_mi_hide_others;
+    IBOutlet id o_mi_show_all;
+    IBOutlet id o_mi_quit;
+
+    IBOutlet id o_mu_file;
+    IBOutlet id o_mi_open_file;
+    IBOutlet id o_mi_open_disc;
+    IBOutlet id o_mi_open_net;
+    IBOutlet id o_mi_open_quickly;
+    IBOutlet id o_mi_open_recent;
+    IBOutlet id o_mi_open_recent_cm;
+
+    IBOutlet id o_mu_edit;
+    IBOutlet id o_mi_cut;
+    IBOutlet id o_mi_copy;
+    IBOutlet id o_mi_paste;
+    IBOutlet id o_mi_clear;
+    IBOutlet id o_mi_select_all;
+
+    IBOutlet id o_mu_view;
+    IBOutlet id o_mi_playlist;
+    IBOutlet id o_mi_messages;
+
+    IBOutlet id o_mu_controls;
+    IBOutlet id o_mi_play;
+    IBOutlet id o_mi_pause;
+    IBOutlet id o_mi_stop;
+    IBOutlet id o_mi_faster;
+    IBOutlet id o_mi_slower;
+    IBOutlet id o_mi_previous;
+    IBOutlet id o_mi_next;
+    IBOutlet id o_mi_loop;
+    IBOutlet id o_mi_vol_up;
+    IBOutlet id o_mi_vol_down;
+    IBOutlet id o_mi_mute;
+    IBOutlet id o_mi_fullscreen;
+    IBOutlet id o_mi_program;
+    IBOutlet id o_mi_title;
+    IBOutlet id o_mi_chapter;
+    IBOutlet id o_mi_language;
+    IBOutlet id o_mi_subtitle;
+
+    IBOutlet id o_mu_window;
+    IBOutlet id o_mi_minimize;
+    IBOutlet id o_mi_bring_atf;
+
+    /* dock menu */
+    IBOutlet id o_dmi_play;
+    IBOutlet id o_dmi_pause;
+    IBOutlet id o_dmi_stop;
+}
+
+- (void)terminate;
+
+- (void)manage;
+- (void)manageMode;
+
+- (void)setupMenus;
+- (void)setupLangMenu:(NSMenuItem *)o_mi
+                      es:(es_descriptor_t *)p_es
+                      category:(int)i_cat
+                      selector:(SEL)pf_callback;
+
+- (IBAction)clearRecentItems:(id)sender;
+- (void)openRecentItem:(id)sender;
+
+@end
+
+@interface VLCMain (Internal)
+- (void)handlePortMessage:(NSPortMessage *)o_msg;
+@end
index 28b4557..4d438ab 100644 (file)
@@ -1,12 +1,11 @@
 /*****************************************************************************
  * intf_macosx.m: MacOS X interface plugin
  *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_macosx.m,v 1.5 2002/06/08 19:32:19 sam Exp $
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_macosx.m,v 1.6 2002/07/15 01:54:03 jlj Exp $
  *
- * Authors: Colin Delacroix <colin@zoy.org>
- *          Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
+ * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
+ *          Christophe Massiot <massiot@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 #include <vlc/vlc.h>
 #include <vlc/intf.h>
+#include <vlc/vout.h>
 
-#include "macosx.h"
+#include <Cocoa/Cocoa.h>
+#include <QuickTime/QuickTime.h>
+
+#include "intf_macosx.h"
+#include "vout_macosx.h"
+#include "intf_playlist.h"
 
 /*****************************************************************************
  * Local prototypes.
@@ -64,15 +69,17 @@ static int intf_Open( intf_thread_t *p_intf )
         return( 1 );
     }
 
+    memset( p_intf->p_sys, 0, sizeof( *p_intf->p_sys ) );
+
     p_intf->p_sys->o_pool = [[NSAutoreleasePool alloc] init];
-    p_intf->p_sys->o_port = [[NSPort port] retain];
-    p_intf->p_sys->b_mute = 0;
-    p_intf->p_sys->i_part = 0;
-    p_intf->p_sys->b_disabled_menus = 0; 
-    p_intf->p_sys->b_loop = 0; 
-    p_intf->p_sys->>i_channel = 0; 
-
-    [[NSApplication sharedApplication] autorelease];
+    p_intf->p_sys->o_sendport = [[NSPort port] retain];
+
+    p_intf->p_sys->p_sub = msg_Subscribe( p_intf );
+
+    [[VLCApplication sharedApplication] autorelease];
+    [NSApp initIntlSupport];
+    [NSApp setIntf: p_intf];
+
     [NSBundle loadNibNamed: @"MainMenu" owner: NSApp];
 
     return( 0 );
@@ -83,10 +90,9 @@ static int intf_Open( intf_thread_t *p_intf )
  *****************************************************************************/
 static void intf_Close( intf_thread_t *p_intf )
 {
-    /* write cached user defaults to disk */
-    [[NSUserDefaults standardUserDefaults] synchronize];
+    msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );
 
-    [p_intf->p_sys->o_port release];
+    [p_intf->p_sys->o_sendport release];
     [p_intf->p_sys->o_pool release];
 
     free( p_intf->p_sys );
@@ -99,3 +105,802 @@ static void intf_Run( intf_thread_t *p_intf )
 {
     [NSApp run];
 }
+
+/*****************************************************************************
+ * VLCApplication implementation 
+ *****************************************************************************/
+@implementation VLCApplication
+
+- (id)init
+{
+    /* default encoding: ISO-8859-1 */
+    i_encoding = NSISOLatin1StringEncoding;
+
+    return( [super init] );
+}
+
+- (void)initIntlSupport
+{
+    char *psz_lang = getenv( "LANG" );
+
+    if( psz_lang == NULL )
+    {
+        return;
+    }
+
+    if( strncmp( psz_lang, "pl", 2 ) == 0 )
+    {
+        i_encoding = NSISOLatin2StringEncoding;
+    }
+    else if( strncmp( psz_lang, "ja", 2 ) == 0 ) 
+    {
+        i_encoding = NSJapaneseEUCStringEncoding;
+    }
+    else if( strncmp( psz_lang, "ru", 2 ) == 0 )
+    {
+#define CFSENC2NSSENC(e) CFStringConvertEncodingToNSStringEncoding(e)
+        i_encoding = CFSENC2NSSENC( kCFStringEncodingKOI8_R ); 
+#undef CFSENC2NSSENC
+    }
+}
+
+- (NSString *)localizedString:(char *)psz
+{
+    UInt32 uiLength = (UInt32)strlen( psz );
+    NSData * o_data = [NSData dataWithBytes: psz length: uiLength];
+    NSString *o_str = [[NSString alloc] initWithData: o_data
+                                        encoding: i_encoding];
+    return( [o_str autorelease] );
+}
+
+- (void)setIntf:(intf_thread_t *)_p_intf
+{
+    p_intf = _p_intf;
+}
+
+- (intf_thread_t *)getIntf
+{
+    return( p_intf );
+}
+
+- (void)terminate:(id)sender
+{
+    [self getIntf]->p_vlc->b_die = 1;
+}
+
+@end
+
+/*****************************************************************************
+ * VLCMain implementation 
+ *****************************************************************************/
+@implementation VLCMain
+
+- (void)awakeFromNib
+{
+    NSString * pTitle = [NSString
+        stringWithCString: VOUT_TITLE " (Cocoa)"];
+
+    [o_window setTitle: pTitle];
+
+    [o_msgs_panel setTitle: _NS("Messages")];
+    [o_msgs_btn_ok setTitle: _NS("Close")];
+
+    [o_mi_about setTitle: _NS("About vlc")];
+    [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_mi_open_file setTitle: _NS("Open File")];
+    [o_mi_open_disc setTitle: _NS("Open Disc")];
+    [o_mi_open_net setTitle: _NS("Open Network")];
+    [o_mi_open_quickly setTitle: _NS("Open Quickly...")];
+    [o_mi_open_recent setTitle: _NS("Open Recent")];
+    [o_mi_open_recent_cm setTitle: _NS("Clear Menu")];
+
+    [o_mu_edit setTitle: _NS("Edit")];
+    [o_mi_cut setTitle: _NS("Cut")];
+    [o_mi_copy setTitle: _NS("Copy")];
+    [o_mi_paste setTitle: _NS("Paste")];
+    [o_mi_clear setTitle: _NS("Clear")];
+    [o_mi_select_all setTitle: _NS("Select All")];
+
+    [o_mu_view setTitle: _NS("View")];
+    [o_mi_playlist setTitle: _NS("Playlist")];
+    [o_mi_messages setTitle: _NS("Messages")];
+
+    [o_mu_controls setTitle: _NS("Controls")];
+    [o_mi_play setTitle: _NS("Play")];
+    [o_mi_pause setTitle: _NS("Pause")];
+    [o_mi_stop setTitle: _NS("Stop")];
+    [o_mi_faster setTitle: _NS("Faster")];
+    [o_mi_slower setTitle: _NS("Slower")];
+    [o_mi_previous setTitle: _NS("Prev")];
+    [o_mi_next setTitle: _NS("Next")];
+    [o_mi_loop setTitle: _NS("Loop")];
+    [o_mi_vol_up setTitle: _NS("Volume Up")];
+    [o_mi_vol_down setTitle: _NS("Volume Down")];
+    [o_mi_mute setTitle: _NS("Mute")];
+    [o_mi_fullscreen setTitle: _NS("Fullscreen")];
+    [o_mi_program setTitle: _NS("Program")];
+    [o_mi_title setTitle: _NS("Title")];
+    [o_mi_chapter setTitle: _NS("Chapter")];
+    [o_mi_language setTitle: _NS("Language")];
+    [o_mi_subtitle setTitle: _NS("Subtitles")];
+
+    [o_mu_window setTitle: _NS("Window")];
+    [o_mi_minimize setTitle: _NS("Minimize")];
+    [o_mi_bring_atf setTitle: _NS("Bring All to Front")];
+
+    /* dock menu */
+    [o_dmi_play setTitle: _NS("Play")];
+    [o_dmi_pause setTitle: _NS("Pause")];
+    [o_dmi_stop setTitle: _NS("Stop")];
+
+    [self manageMode];
+}
+
+- (void)applicationWillFinishLaunching:(NSNotification *)o_notification
+{
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    [NSThread detachNewThreadSelector: @selector(manage)
+        toTarget: self withObject: nil];
+
+    [p_intf->p_sys->o_sendport setDelegate: self];
+    [[NSRunLoop currentRunLoop] 
+        addPort: p_intf->p_sys->o_sendport
+        forMode: NSDefaultRunLoopMode];
+}
+
+- (BOOL)application:(NSApplication *)o_app openFile:(NSString *)o_filename
+{
+    [o_playlist appendArray:
+        [NSArray arrayWithObject: o_filename] atPos: -1];
+
+    return( TRUE );
+}
+
+- (void)manage
+{
+    NSDate * o_sleep_date;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init];
+
+    while( !p_intf->p_vlc->b_die )
+    {
+        int i_start, i_stop;
+
+        vlc_mutex_lock( &p_intf->change_lock );
+
+        /* update the input */
+        if( p_intf->p_sys->p_input == NULL )
+        {
+            p_intf->p_sys->p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT,
+                                                              FIND_ANYWHERE );
+        }
+        else if( p_intf->p_sys->p_input->b_dead )
+        {
+            vlc_object_release( p_intf->p_sys->p_input );
+            p_intf->p_sys->p_input = NULL;
+        }
+
+        if( p_intf->p_sys->p_input )
+        {
+            input_thread_t *p_input = p_intf->p_sys->p_input;
+
+            vlc_mutex_lock( &p_input->stream.stream_lock );
+
+            if( !p_input->b_die )
+            {
+                /* New input or stream map change */
+                if( p_input->stream.b_changed )
+                {
+                    [self manageMode];
+                    [self setupMenus];
+                    p_intf->p_sys->b_playing = 1;
+                }
+
+                if( p_intf->p_sys->i_part !=
+                    p_input->stream.p_selected_area->i_part )
+                {
+                    p_intf->p_sys->b_chapter_update = 1;
+                    [self setupMenus];
+                }
+            }
+
+            vlc_mutex_unlock( &p_input->stream.stream_lock );
+        }
+        else if( p_intf->p_sys->b_playing && !p_intf->p_vlc->b_die )
+        {
+            [self manageMode];
+            p_intf->p_sys->b_playing = 0;
+        }
+
+        /* update the log window */
+        vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock );
+        i_stop = *p_intf->p_sys->p_sub->pi_stop;
+        vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock );
+
+        if( p_intf->p_sys->p_sub->i_start != i_stop )
+        {
+            NSColor *o_white = [NSColor whiteColor];
+            NSColor *o_red = [NSColor redColor];
+            NSColor *o_yellow = [NSColor yellowColor];
+            NSColor *o_gray = [NSColor grayColor];
+
+            unsigned int ui_length = [[o_messages string] length];
+
+            NSColor * pp_color[4] = { o_white, o_red, o_yellow, o_gray };
+            static const char * ppsz_type[4] = { ": ", " error: ", 
+                                                 " warning: ", " debug: " }; 
+        
+            [o_messages setEditable: YES];
+            [o_messages setSelectedRange: NSMakeRange( ui_length, 0 )];
+            [o_messages scrollRangeToVisible: NSMakeRange( ui_length, 0 )];
+
+            for( i_start = p_intf->p_sys->p_sub->i_start;
+                 i_start != i_stop;
+                 i_start = (i_start+1) % VLC_MSG_QSIZE )
+            {
+                NSString *o_msg;
+                NSDictionary *o_attr;
+                NSAttributedString *o_msg_color;
+                int i_type = p_intf->p_sys->p_sub->p_msg[i_start].i_type;
+
+                o_attr = [NSDictionary dictionaryWithObject: o_gray
+                    forKey: NSForegroundColorAttributeName];
+                o_msg = [NSString stringWithFormat: @"%s%s",
+                    p_intf->p_sys->p_sub->p_msg[i_start].psz_module, 
+                    ppsz_type[i_type]];
+                o_msg_color = [[NSAttributedString alloc]
+                    initWithString: o_msg attributes: o_attr];
+                [o_messages insertText: o_msg_color];
+
+                o_attr = [NSDictionary dictionaryWithObject: pp_color[i_type]
+                    forKey: NSForegroundColorAttributeName];
+                o_msg = [NSString stringWithCString:
+                    p_intf->p_sys->p_sub->p_msg[i_start].psz_msg];
+                o_msg_color = [[NSAttributedString alloc]
+                    initWithString: o_msg attributes: o_attr];
+                [o_messages insertText: o_msg_color];
+
+                [o_messages insertText: @"\n"];
+            }
+
+            [o_messages setEditable: NO];
+
+            vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock );
+            p_intf->p_sys->p_sub->i_start = i_start;
+            vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock );
+        }
+
+        vlc_mutex_unlock( &p_intf->change_lock );
+
+        o_sleep_date = [NSDate dateWithTimeIntervalSinceNow: 0.1];
+        [NSThread sleepUntilDate: o_sleep_date];
+    }
+
+    [self terminate];
+
+    [o_pool release];
+}
+
+- (void)terminate
+{
+    NSEvent * pEvent;
+    vout_thread_t * p_vout;
+    playlist_t * p_playlist;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    /* release input */
+    if( p_intf->p_sys->p_input )
+    {
+        vlc_object_release( p_intf->p_sys->p_input );
+        p_intf->p_sys->p_input = NULL;
+    }
+
+    /*
+     * Free playlists
+     */
+    msg_Dbg( p_intf, "removing all playlists" );
+    while( (p_playlist = vlc_object_find( p_intf->p_vlc, VLC_OBJECT_PLAYLIST,
+                                          FIND_CHILD )) )
+    {
+        vlc_object_detach_all( p_playlist );
+        vlc_object_release( p_playlist );
+        playlist_Destroy( p_playlist );
+    }
+
+    /*
+     * Free video outputs
+     */
+    msg_Dbg( p_intf, "removing all video outputs" );
+    while( (p_vout = vlc_object_find( p_intf->p_vlc, 
+                                      VLC_OBJECT_VOUT, FIND_CHILD )) )
+    {
+        vlc_object_detach_all( p_vout );
+        vlc_object_release( p_vout );
+        vout_DestroyThread( p_vout );
+    }
+
+    [NSApp stop: nil];
+
+    /* write cached user defaults to disk */
+    [[NSUserDefaults standardUserDefaults] synchronize];
+
+    /* send a dummy event to break out of the event loop */
+    pEvent = [NSEvent mouseEventWithType: NSLeftMouseDown
+                location: NSMakePoint( 1, 1 ) modifierFlags: 0
+                timestamp: 1 windowNumber: [[NSApp mainWindow] windowNumber]
+                context: [NSGraphicsContext currentContext] eventNumber: 1
+                clickCount: 1 pressure: 0.0];
+    [NSApp postEvent: pEvent atStart: YES];
+}
+
+- (void)manageMode
+{
+    vlc_bool_t b_control = 0;
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    if( p_intf->p_sys->p_input )
+    {
+        /* control buttons for free pace streams */
+        b_control = p_intf->p_sys->p_input->stream.b_pace_control;
+
+        /* get ready for menu regeneration */
+        p_intf->p_sys->b_program_update = 1;
+        p_intf->p_sys->b_title_update = 1;
+        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->i_part = 0;
+
+        p_intf->p_sys->p_input->stream.b_changed = 0;
+        msg_Dbg( p_intf, "stream has changed, refreshing interface" );
+    }
+    else
+    {
+        /* unsensitize menus */
+        [o_mi_program setEnabled: FALSE];
+        [o_mi_title setEnabled: FALSE];
+        [o_mi_chapter setEnabled: FALSE];
+        [o_mi_language setEnabled: FALSE];
+        [o_mi_subtitle setEnabled: FALSE];
+    }
+}
+
+- (void)setupMenus
+{
+    int i, i_nb_items;
+    NSMenuItem * o_item;
+    NSString * o_menu_title;
+    char psz_title[ 256 ];
+
+    es_descriptor_t * p_audio_es = NULL;
+    es_descriptor_t * p_spu_es = NULL;
+
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    p_intf->p_sys->b_chapter_update |= p_intf->p_sys->b_title_update;
+    p_intf->p_sys->b_audio_update |= p_intf->p_sys->b_title_update |
+                                     p_intf->p_sys->b_program_update;
+    p_intf->p_sys->b_spu_update |= p_intf->p_sys->b_title_update |
+                                   p_intf->p_sys->b_program_update;
+
+#define p_input (p_intf->p_sys->p_input)
+
+    if( p_intf->p_sys->b_program_update )
+    {
+        NSMenu * o_program;
+        SEL pf_toggle_program;
+        pgrm_descriptor_t * p_pgrm;
+
+        if( p_input->stream.p_new_program )
+        {
+            p_pgrm = p_input->stream.p_new_program;
+        }
+        else
+        {
+            p_pgrm = p_input->stream.p_selected_program;
+        }
+
+        o_program = [o_mi_program submenu];
+        pf_toggle_program = @selector(toggleProgram:);
+
+        /* remove previous program items */
+        i_nb_items = [o_program numberOfItems];
+        for( i = 0; i < i_nb_items; i++ )
+        {
+            [o_program removeItemAtIndex: 0];
+        }
+
+        /* make (un)sensitive */
+        [o_mi_program setEnabled: 
+            p_input->stream.i_pgrm_number > 1];
+
+        /* add program items */
+        for( i = 0 ; i < p_input->stream.i_pgrm_number ; i++ )
+        {
+            snprintf( psz_title, sizeof(psz_title), "id %d",
+                p_input->stream.pp_programs[i]->i_number );
+            psz_title[sizeof(psz_title) - 1] = '\0';
+
+            o_menu_title = [NSString stringWithCString: psz_title];
+
+            o_item = [o_program addItemWithTitle: o_menu_title
+                action: pf_toggle_program keyEquivalent: @""];
+            [o_item setTag: p_input->stream.pp_programs[i]->i_number];
+            [o_item setTarget: o_controls];
+
+            if( p_pgrm == p_input->stream.pp_programs[i] )
+            {
+                [o_item setState: NSOnState];
+            }
+        }
+
+        p_intf->p_sys->b_program_update = 0;
+    }
+
+    if( p_intf->p_sys->b_title_update )
+    {
+        NSMenu * o_title;
+        SEL pf_toggle_title;
+
+        o_title = [o_mi_title submenu];
+        pf_toggle_title = @selector(toggleTitle:);
+
+        /* remove previous title items */
+        i_nb_items = [o_title numberOfItems];
+        for( i = 0; i < i_nb_items; i++ )
+        {
+            [o_title removeItemAtIndex: 0];
+        }
+
+        /* make (un)sensitive */
+        [o_mi_title setEnabled: 
+            p_input->stream.i_area_nb > 1];
+
+        /* add title items */
+        for( i = 1 ; i < p_input->stream.i_area_nb ; i++ )
+        {
+            snprintf( psz_title, sizeof(psz_title), "Title %d (%d)", i,
+                p_input->stream.pp_areas[i]->i_part_nb );
+            psz_title[sizeof(psz_title) - 1] = '\0';
+
+            o_menu_title = [NSString stringWithCString: psz_title];
+
+            o_item = [o_title addItemWithTitle: o_menu_title
+                action: pf_toggle_title keyEquivalent: @""];
+            [o_item setTag: i];
+            [o_item setTarget: o_controls];
+
+            if( ( p_input->stream.pp_areas[i] ==
+                p_input->stream.p_selected_area ) )
+            {
+                [o_item setState: NSOnState];
+            }
+        }
+
+        p_intf->p_sys->b_title_update = 0;
+    }
+
+    if( p_intf->p_sys->b_chapter_update )
+    {
+        NSMenu * o_chapter;
+        SEL pf_toggle_chapter;
+
+        o_chapter = [o_mi_chapter submenu];
+        pf_toggle_chapter = @selector(toggleChapter:);
+
+        /* remove previous chapter items */
+        i_nb_items = [o_chapter numberOfItems];
+        for( i = 0; i < i_nb_items; i++ )
+        {
+            [o_chapter removeItemAtIndex: 0];
+        }
+
+        /* make (un)sensitive */
+        [o_mi_chapter setEnabled: 
+            p_input->stream.p_selected_area->i_part_nb > 1];
+
+        /* add chapter items */
+        for( i = 0 ; i < p_input->stream.p_selected_area->i_part_nb ; i++ )
+        {
+            snprintf( psz_title, sizeof(psz_title), "Chapter %d", i + 1 );
+            psz_title[sizeof(psz_title) - 1] = '\0';
+
+            o_menu_title = [NSString stringWithCString: psz_title];
+
+            o_item = [o_chapter addItemWithTitle: o_menu_title
+                action: pf_toggle_chapter keyEquivalent: @""];
+            [o_item setTag: i + 1];
+            [o_item setTarget: o_controls];
+
+            if( ( p_input->stream.p_selected_area->i_part == i + 1 ) )
+            {
+                [o_item setState: NSOnState];
+            }
+        }
+
+        p_intf->p_sys->i_part =
+                p_input->stream.p_selected_area->i_part;
+
+        p_intf->p_sys->b_chapter_update = 0;
+    }
+
+    for( i = 0 ; i < p_input->stream.i_selected_es_number ; i++ )
+    {
+        if( p_input->stream.pp_selected_es[i]->i_cat == SPU_ES )
+        {
+            p_audio_es = p_input->stream.pp_selected_es[i];
+        }
+        else if( p_input->stream.pp_selected_es[i]->i_cat == SPU_ES )
+        {
+            p_spu_es = p_input->stream.pp_selected_es[i];
+        }
+    }
+
+    vlc_mutex_unlock( &p_input->stream.stream_lock );
+
+    if( p_intf->p_sys->b_audio_update )
+    {
+        [self setupLangMenu: o_mi_language es: p_audio_es
+            category: AUDIO_ES selector: @selector(toggleLanguage:)];
+
+        p_intf->p_sys->b_audio_update = 0;
+    }
+
+    if( p_intf->p_sys->b_spu_update )
+    {
+        [self setupLangMenu: o_mi_subtitle es: p_spu_es
+            category: SPU_ES selector: @selector(toggleLanguage:)];
+
+        p_intf->p_sys->b_spu_update = 0;
+    }
+
+    vlc_mutex_lock( &p_input->stream.stream_lock );
+
+#undef p_input
+}
+
+- (void)setupLangMenu:(NSMenuItem *)o_mi
+                      es:(es_descriptor_t *)p_es
+                      category:(int)i_cat
+                      selector:(SEL)pf_callback
+{
+    int i, i_nb_items;
+    NSMenu * o_menu = [o_mi submenu];
+    intf_thread_t * p_intf = [NSApp getIntf];
+
+    /* remove previous language items */
+    i_nb_items = [o_menu numberOfItems];
+    for( i = 0; i < i_nb_items; i++ )
+    {
+        [o_menu removeItemAtIndex: 0];
+    }
+
+    vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock );
+
+#define ES p_intf->p_sys->p_input->stream.pp_es[i]
+    for( i = 0 ; i < p_intf->p_sys->p_input->stream.i_es_number ; i++ )
+    {
+        if( ( ES->i_cat == i_cat ) &&
+            ( !ES->p_pgrm ||
+              ES->p_pgrm ==
+                 p_intf->p_sys->p_input->stream.p_selected_program ) )
+        {
+            NSMenuItem * o_lmi;
+            NSString * o_title;
+
+            if( *ES->psz_desc )
+            {
+                o_title = [NSString stringWithCString: ES->psz_desc];
+            }
+            else
+            {
+                char psz_title[ 256 ];
+
+                snprintf( psz_title, sizeof(psz_title), "Language 0x%x",
+                          ES->i_id );
+                psz_title[sizeof(psz_title) - 1] = '\0';
+
+                o_title = [NSString stringWithCString: psz_title];
+            }
+
+            o_lmi = [o_menu addItemWithTitle: o_title
+                action: pf_callback keyEquivalent: @""];
+            [o_lmi setRepresentedObject: 
+                [NSValue valueWithPointer: ES]];
+            [o_lmi setTarget: o_controls];
+            [o_lmi setTag: i_cat];
+
+            if( /*p_es == ES*/ ES->p_decoder_fifo != NULL )
+            {
+                [o_lmi setState: NSOnState];
+            }
+        }
+    }
+#undef ES
+
+    vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock );
+
+    /* make (un)sensitive */
+    [o_mi setEnabled: 
+        [o_menu numberOfItems] ? TRUE : FALSE];
+}
+
+- (IBAction)clearRecentItems:(id)sender
+{
+    [[NSDocumentController sharedDocumentController]
+                          clearRecentDocuments: nil];
+}
+
+- (void)openRecentItem:(id)sender
+{
+    [self application: nil openFile: [sender title]]; 
+}
+
+@end
+
+@implementation VLCMain (NSMenuValidation)
+
+- (BOOL)validateMenuItem:(NSMenuItem *)o_mi
+{
+    BOOL bEnabled = TRUE;
+
+    /* Recent Items Menu */
+
+    if( [[o_mi title] isEqualToString: _NS("Clear Menu")] )
+    {
+        NSMenu * o_menu = [o_mi_open_recent submenu];
+        int i_nb_items = [o_menu numberOfItems];
+        NSArray * o_docs = [[NSDocumentController sharedDocumentController]
+                                                       recentDocumentURLs];
+        UInt32 i_nb_docs = [o_docs count];
+
+        if( i_nb_items > 1 )
+        {
+            while( --i_nb_items )
+            {
+                [o_menu removeItemAtIndex: 0];
+            }
+        }
+
+        if( i_nb_docs > 0 )
+        {
+            NSURL * o_url;
+            NSString * o_doc;
+
+            [o_menu insertItem: [NSMenuItem separatorItem] atIndex: 0];
+
+            while( TRUE )
+            {
+                i_nb_docs--;
+
+                o_url = [o_docs objectAtIndex: i_nb_docs];
+
+                if( [o_url isFileURL] )
+                {
+                    o_doc = [o_url path];
+                }
+                else
+                {
+                    o_doc = [o_url absoluteString];
+                }
+
+                [o_menu insertItemWithTitle: o_doc
+                    action: @selector(openRecentItem:)
+                    keyEquivalent: @"" atIndex: 0]; 
+
+                if( i_nb_docs == 0 )
+                {
+                    break;
+                }
+            } 
+        }
+        else
+        {
+            bEnabled = FALSE;
+        }
+    }
+
+    return( bEnabled );
+}
+
+@end
+
+@implementation VLCMain (Internal)
+
+- (void)handlePortMessage:(NSPortMessage *)o_msg
+{
+    NSData * o_req;
+    struct vout_req_s * p_req;
+
+    o_req = [[o_msg components] lastObject];
+    p_req = *((struct vout_req_s **)[o_req bytes]);
+
+    [p_req->o_lock lock];
+
+    if( p_req->i_type == VOUT_REQ_CREATE_WINDOW )
+    {
+        VLCView * o_view;
+
+        p_req->p_vout->p_sys->o_window = [VLCWindow alloc];
+        [p_req->p_vout->p_sys->o_window setVout: p_req->p_vout];
+        [p_req->p_vout->p_sys->o_window setReleasedWhenClosed: YES];
+
+        if( p_req->p_vout->b_fullscreen )
+        {
+            [p_req->p_vout->p_sys->o_window 
+                initWithContentRect: [[NSScreen mainScreen] frame] 
+                styleMask: NSBorderlessWindowMask 
+                backing: NSBackingStoreBuffered
+                defer: NO screen: [NSScreen mainScreen]];
+
+            [p_req->p_vout->p_sys->o_window 
+                setLevel: NSModalPanelWindowLevel];
+        }
+        else
+        {
+            unsigned int i_stylemask = NSTitledWindowMask |
+                                       NSMiniaturizableWindowMask |
+                                       NSResizableWindowMask;
+
+            [p_req->p_vout->p_sys->o_window 
+                initWithContentRect: p_req->p_vout->p_sys->s_rect 
+                styleMask: i_stylemask
+                backing: NSBackingStoreBuffered
+                defer: NO screen: [NSScreen mainScreen]];
+
+            if( !p_req->p_vout->p_sys->b_pos_saved )
+            {
+                [p_req->p_vout->p_sys->o_window center];
+            }
+        }
+
+        o_view = [[VLCView alloc] init];
+        [o_view setVout: p_req->p_vout];
+        [o_view setMenu: o_mu_controls];
+        [p_req->p_vout->p_sys->o_window setContentView: o_view];
+        [o_view autorelease];
+
+        [o_view lockFocus];
+        p_req->p_vout->p_sys->p_qdport = [o_view qdPort];
+        [o_view unlockFocus];
+
+        [p_req->p_vout->p_sys->o_window setTitle: [NSString 
+            stringWithCString: VOUT_TITLE " (QuickTime)"]];
+        [p_req->p_vout->p_sys->o_window setAcceptsMouseMovedEvents: YES];
+        [p_req->p_vout->p_sys->o_window makeKeyAndOrderFront: nil];
+
+        p_req->i_result = 1;
+    }
+    else if( p_req->i_type == VOUT_REQ_DESTROY_WINDOW )
+    {
+        if( !p_req->p_vout->b_fullscreen )
+        {
+            NSRect s_rect;
+
+            s_rect = [[p_req->p_vout->p_sys->o_window contentView] frame];
+            p_req->p_vout->p_sys->s_rect.size = s_rect.size;
+
+            s_rect = [p_req->p_vout->p_sys->o_window frame];
+            p_req->p_vout->p_sys->s_rect.origin = s_rect.origin;
+
+            p_req->p_vout->p_sys->b_pos_saved = 1;
+        }
+
+        p_req->p_vout->p_sys->p_qdport = nil;
+        [p_req->p_vout->p_sys->o_window close];
+        p_req->p_vout->p_sys->o_window = nil;
+
+        p_req->i_result = 1;
+    }
+
+    [p_req->o_lock unlockWithCondition: 1];
+}
+
+@end
+
index a9f1f57..0537868 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
  * intf_open.h: MacOS X plugin for vlc
  *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_open.h,v 1.3 2002/06/02 22:31:52 massiot Exp $
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_open.h,v 1.4 2002/07/15 01:54:03 jlj Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
  *
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
-/*****************************************************************************
- * Preamble
- *****************************************************************************/
-#import <Cocoa/Cocoa.h>
-
 NSArray *GetEjectableMediaOfClass( const char *psz_class );
 
 /*****************************************************************************
  * Intf_Open interface
  *****************************************************************************/
-@interface Intf_Open : NSObject
+@interface VLCOpen : NSObject
 {
+    IBOutlet id o_playlist;
+
     IBOutlet id o_disc_panel;
+    IBOutlet id o_disc_btn_ok;
+    IBOutlet id o_disc_btn_cancel;
+    IBOutlet id o_disc_lbl_type;
+    IBOutlet id o_disc_lbl_sp;
     IBOutlet id o_disc_type;
     IBOutlet id o_disc_title;
     IBOutlet id o_disc_chapter;
     IBOutlet id o_disc_device;
     
     IBOutlet id o_net_panel;
-    IBOutlet id o_net_protocol;
-    IBOutlet id o_net_server_addr;
-    IBOutlet id o_net_server_addr_label;
-    IBOutlet id o_net_server_port;
-    IBOutlet id o_net_server_port_label;
-    IBOutlet id o_net_server_pstepper;
+    IBOutlet id o_net_btn_ok;
+    IBOutlet id o_net_btn_cancel;
+    IBOutlet id o_net_box_mode;
+    IBOutlet id o_net_box_addr;
+    IBOutlet id o_net_mode;
+    IBOutlet id o_net_address;
+    IBOutlet id o_net_port;
+    IBOutlet id o_net_port_lbl;
+    IBOutlet id o_net_port_stp;
+
+    IBOutlet id o_quickly_panel;
+    IBOutlet id o_quickly_btn_ok;
+    IBOutlet id o_quickly_btn_cancel;
+    IBOutlet id o_quickly_source;
 }
 
-- (id)init;
-+ (Intf_Open *)instance;
-- (void)awakeFromNib;
+- (IBAction)openFile:(id)sender;
 
 - (IBAction)openDisc:(id)sender;
 - (IBAction)openDiscTypeChanged:(id)sender;
 
-- (IBAction)openFile:(id)sender;
-
 - (IBAction)openNet:(id)sender;
-- (IBAction)openNetProtocol:(id)sender;
+- (IBAction)openNetModeChanged:(id)sender;
+
+- (IBAction)openQuickly:(id)sender;
 
 - (IBAction)panelCancel:(id)sender;
 - (IBAction)panelOk:(id)sender;
index 8f06fe9..69c0fb0 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
  * intf_open.m: MacOS X plugin for vlc
  *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_open.m,v 1.5 2002/06/08 19:32:19 sam Exp $
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_open.m,v 1.6 2002/07/15 01:54:03 jlj Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
  *
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
+#include <stdlib.h>                                      /* malloc(), free() */
+#include <sys/param.h>                                    /* for MAXPATHLEN */
+#include <string.h>
+
 #include <paths.h>
 #include <IOKit/IOKitLib.h>
 #include <IOKit/IOBSD.h>
 #include <IOKit/storage/IOCDMedia.h>
 #include <IOKit/storage/IODVDMedia.h>
 
+#import <Cocoa/Cocoa.h>
+
+#include <vlc/vlc.h>
+#include <vlc/intf.h>
+
+#include "netutils.h"
+
+#import "intf_macosx.h"
+#import "intf_playlist.h"
 #import "intf_open.h"
-#import "intf_vlc_wrapper.h"
 
 /*****************************************************************************
  * GetEjectableMediaOfClass 
@@ -116,35 +128,28 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
 }
 
 /*****************************************************************************
- * Intf_Open implementation 
+ * VLCOpen implementation 
  *****************************************************************************/
-@implementation Intf_Open
+@implementation VLCOpen
 
-static Intf_Open *o_open = nil;
-
-- (id)init
+- (void)awakeFromNib
 {
-    if( o_open == nil )
-    {
-        o_open = [super init];
-    }
+    [o_disc_panel setTitle: _NS("Open Disc")];
+    [o_disc_btn_ok setTitle: _NS("OK")];
+    [o_disc_btn_cancel setTitle: _NS("Cancel")];
+    [o_disc_lbl_type setTitle: _NS("Disc type")];
+    [o_disc_lbl_sp setTitle: _NS("Starting position")];
+    [o_disc_title setTitle: _NS("Title")];
+    [o_disc_chapter setTitle: _NS("Chapter")];
 
-    return( o_open );
-}
+    [o_net_panel setTitle: _NS("Open Network")];
+    [o_net_box_mode setTitle: _NS("Network mode")];
+    [o_net_box_addr setTitle: _NS("Address")];
+    [o_net_port_lbl setStringValue: _NS("Port")];
 
-+ (Intf_Open *)instance
-{
-    return( o_open );
-}
-
-- (void)awakeFromNib
-{
-    [o_net_server_addr setEnabled: NSOffState];
-    [o_net_server_addr_label setStringValue: @"Address"];
-    [o_net_server_port setEnabled: NSOnState];
-    [o_net_server_port setIntValue: 1234];
-    [o_net_server_pstepper setEnabled: NSOnState];
-    [o_net_server_pstepper setIntValue: [o_net_server_port intValue]];
+    [o_quickly_panel setTitle: _NS("Open Quickly")];
+    [o_quickly_btn_ok setTitle: _NS("OK")];
+    [o_quickly_btn_cancel setTitle: _NS("Cancel")];
 }
 
 - (IBAction)openDisc:(id)sender
@@ -159,13 +164,18 @@ static Intf_Open *o_open = nil;
 
     if( i_result )
     {
+        NSString *o_source;
+
         NSString *o_type = [[o_disc_type selectedCell] title];
         NSString *o_device = [o_disc_device stringValue];
         int i_title = [o_disc_title intValue];
         int i_chapter = [o_disc_chapter intValue];
-        
-        [[Intf_VLCWrapper instance] openDisc: [o_type lowercaseString]
-            device: o_device title: i_title chapter: i_chapter];
+
+        o_source = [NSString stringWithFormat: @"%@:%@@%d,%d",
+            [o_type lowercaseString], o_device, i_title, i_chapter];
+
+        [o_playlist appendArray: 
+            [NSArray arrayWithObject: o_source] atPos: -1];
     }
 }
 
@@ -204,11 +214,13 @@ static Intf_Open *o_open = nil;
             }
             
             [o_disc_device selectItemAtIndex: 0];
+            [o_disc_btn_ok setEnabled: TRUE];
         }
         else
         {
             [o_disc_device setStringValue: 
                 [NSString stringWithFormat: @"No %@s found", o_type]];
+            [o_disc_btn_ok setEnabled: FALSE];
         }
     }
 }
@@ -222,13 +234,14 @@ static Intf_Open *o_open = nil;
     if( [o_panel runModalForDirectory: nil 
             file: nil types: nil] == NSOKButton )
     {
-        [[Intf_VLCWrapper instance] openFiles: [o_panel filenames]];
+        [o_playlist appendArray: [o_panel filenames] atPos: -1];
     }
 }
 
 - (IBAction)openNet:(id)sender
 {
     int i_result;
+    intf_thread_t * p_intf = [NSApp getIntf];
 
     [o_net_panel makeKeyAndOrderFront: self];
     i_result = [NSApp runModalForWindow: o_net_panel];
@@ -236,70 +249,124 @@ static Intf_Open *o_open = nil;
 
     if( i_result )
     {
-        NSString *o_protocol;
-        int i_port = [o_net_server_port intValue];
-        NSString *o_addr = [o_net_server_addr stringValue];
+        NSString * o_source = nil;
+        UInt32 i_port = [o_net_port intValue];
+        NSString * o_addr = [o_net_address stringValue];
+        NSString * o_mode = [[o_net_mode selectedCell] title];
 
-        o_protocol = [[o_net_protocol selectedCell] title];
+        if( i_port > 65536 )
+        {
+            NSBeep();
+            return;
+        }
 
-        if( [o_protocol isEqualToString: @"UDP"] )
+        if( [o_mode isEqualToString: @"UDP"] )
+        {
+            o_source = [NSString 
+                stringWithFormat: @"udp:@:%i", i_port];
+        } 
+        else if( [o_mode isEqualToString: @"UDP Multicase"] )
         {
-            [[Intf_VLCWrapper instance] openNet: @"" port: i_port]; 
+            o_source = [NSString 
+                stringWithFormat: @"udp:@%@:%i", o_addr, i_port];
         }
-        else if( [o_protocol isEqualToString: @"UDP - multicast"] ) 
+        else if( [o_mode isEqualToString: @"Channel server"] )
         {
-            [[Intf_VLCWrapper instance] openNet: o_addr port: i_port]; 
+            if( p_intf->p_vlc->p_channel == NULL )
+            {
+                network_ChannelCreate( p_intf );
+            }
+
+            config_PutPsz( p_intf, "channel-server", 
+                           (char *)[o_addr lossyCString] );
+            config_PutInt( p_intf, "channel-port", i_port );
+
+            p_intf->p_sys->b_playing = 1;
         }
-        else if( [o_protocol isEqualToString: @"Channel server"] ) 
+        else if( [o_mode isEqualToString: @"HTTP"] )
         {
-            [[Intf_VLCWrapper instance] openNetChannel: o_addr port: i_port]; 
+            o_source = o_addr;
         }
-        else if( [o_protocol isEqualToString: @"HTTP"] ) 
+
+        if( o_source != nil )
         {
-            [[Intf_VLCWrapper instance] openNetHTTP: o_addr]; 
+            [o_playlist appendArray:
+                [NSArray arrayWithObject: o_source] atPos: -1];
         }
     }
 }
 
-- (IBAction)openNetProtocol:(id)sender
+- (IBAction)openNetModeChanged:(id)sender
 {
-    NSString *o_protocol;
+    NSString * o_mode;
+    SInt32 i_port = 1234;
+    NSString * o_addr = nil;
 
-    o_protocol = [[o_net_protocol selectedCell] title];
-    
-    if( [o_protocol isEqualToString: @"UDP"] )
+    o_mode = [[o_net_mode selectedCell] title];
+
+    if( [o_mode isEqualToString: @"UDP Multicast"] )
+    {
+        o_addr = @"";
+    }
+    else if( [o_mode isEqualToString: @"Channel server"] )
+    {
+        o_addr = @"localhost";
+        i_port = 6010;
+    }
+    else if( [o_mode isEqualToString: @"HTTP"] )
+    {
+        o_addr = @"http://";
+        i_port = -1;
+    }
+
+    if( o_addr != nil )
     {
-        [o_net_server_addr setEnabled: NSOffState];
-        [o_net_server_port setEnabled: NSOnState];
-        [o_net_server_port setIntValue: 1234];
-        [o_net_server_pstepper setEnabled: NSOnState];
+        [o_net_address setEnabled: TRUE];
+        [o_net_address setStringValue: o_addr];
     }
-    else if( [o_protocol isEqualToString: @"UDP - multicast"] ) 
+    else
     {
-        [o_net_server_addr setEnabled: NSOnState];
-        [o_net_server_addr_label setStringValue: @"Mult. addr."];
-        [o_net_server_port setEnabled: NSOnState];
-        [o_net_server_port setIntValue: 1234];
-        [o_net_server_pstepper setEnabled: NSOnState];
+        [o_net_address setEnabled: FALSE];
     }
-    else if( [o_protocol isEqualToString: @"Channel server"] ) 
+
+    if( i_port > -1 )
     {
-        [o_net_server_addr setEnabled: NSOnState];
-        [o_net_server_addr_label setStringValue: @"Server"];
-        [o_net_server_addr setStringValue: @"vlcs"];
-        [o_net_server_port setEnabled: NSOnState];
-        [o_net_server_port setIntValue: 6010];
-        [o_net_server_pstepper setEnabled: NSOnState];
+        [o_net_port setEnabled: TRUE];
+        [o_net_port_stp setEnabled: TRUE];
+        [o_net_port setIntValue: i_port];
     }
-    else if( [o_protocol isEqualToString: @"HTTP"] ) 
+    else
     {
-        [o_net_server_addr setEnabled: NSOnState];
-        [o_net_server_addr_label setStringValue: @"URL"];
-        [o_net_server_addr setStringValue: @"http://"];
-        [o_net_server_port setEnabled: NSOffState];
-        [o_net_server_pstepper setEnabled: NSOffState];
+        [o_net_port setEnabled: FALSE];
+        [o_net_port_stp setEnabled: FALSE];
+    }
+}
+
+- (IBAction)openQuickly:(id)sender
+{
+    int i_result;
+
+    [o_quickly_source setStringValue: @""];
+    [o_quickly_panel makeKeyAndOrderFront: self];
+    i_result = [NSApp runModalForWindow: o_quickly_panel];
+    [o_quickly_panel close];
+
+    if( i_result )
+    {
+        NSString * o_source;
+
+        o_source = [o_quickly_source stringValue];
+
+        if( [o_source length] > 0 )
+        {
+            [o_playlist appendArray: 
+                [NSArray arrayWithObject: o_source] atPos: -1];
+        }
+        else
+        {
+            NSBeep();
+        }
     }
-    [o_net_server_pstepper setIntValue: [o_net_server_port intValue]];
 }
 
 - (IBAction)panelCancel:(id)sender
diff --git a/plugins/macosx/intf_playlist.h b/plugins/macosx/intf_playlist.h
new file mode 100644 (file)
index 0000000..b29370a
--- /dev/null
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * intf_playlist.h: MacOS X interface plugin
+ *****************************************************************************
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_playlist.h,v 1.1 2002/07/15 01:54:03 jlj Exp $
+ *
+ * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * VLCPlaylistView interface 
+ *****************************************************************************/
+@interface VLCPlaylistView : NSTableView
+{
+
+}
+
+@end
+
+/*****************************************************************************
+ * VLCPlaylist interface 
+ *****************************************************************************/
+@interface VLCPlaylist : NSObject
+{
+    IBOutlet id o_panel; 
+    IBOutlet id o_btn_close;
+    IBOutlet id o_table_view;
+}
+
+- (void)appendArray:(NSArray*)o_array atPos:(int)i_pos;
+
+@end
+
diff --git a/plugins/macosx/intf_playlist.m b/plugins/macosx/intf_playlist.m
new file mode 100644 (file)
index 0000000..e87dbda
--- /dev/null
@@ -0,0 +1,246 @@
+/*****************************************************************************
+ * intf_playlist.m: MacOS X interface plugin
+ *****************************************************************************
+ * Copyright (C) 2002 VideoLAN
+ * $Id: intf_playlist.m,v 1.1 2002/07/15 01:54:03 jlj Exp $
+ *
+ * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Preamble
+ *****************************************************************************/
+#include <stdlib.h>                                      /* malloc(), free() */
+#include <sys/param.h>                                    /* for MAXPATHLEN */
+#include <string.h>
+
+#include <vlc/vlc.h>
+#include <vlc/intf.h>
+
+#include <Cocoa/Cocoa.h> 
+
+#include "intf_macosx.h"
+#include "intf_playlist.h"
+
+/*****************************************************************************
+ * VLCPlaylistView implementation 
+ *****************************************************************************/
+@implementation VLCPlaylistView
+
+- (NSMenu *)menuForEvent:(NSEvent *)o_event
+{
+    /* TODO */
+
+    return( nil );
+}
+
+@end
+
+/*****************************************************************************
+ * VLCPlaylist implementation 
+ *****************************************************************************/
+@implementation VLCPlaylist
+
+- (void)awakeFromNib
+{
+    [o_table_view setTarget: self];
+    [o_table_view setDelegate: self];
+    [o_table_view setDataSource: self];
+
+    [o_table_view setDoubleAction: @selector(doubleClick:)];
+
+    [o_table_view registerForDraggedTypes: 
+        [NSArray arrayWithObjects: NSFilenamesPboardType, nil]];
+
+    [o_panel setTitle: _NS("Playlist")];
+    [o_btn_close setTitle: _NS("Close")];
+}
+
+- (BOOL)tableView:(NSTableView *)o_tv 
+                  shouldEditTableColumn:(NSTableColumn *)o_tc
+                  row:(int)i_row
+{
+    return( NO );
+}
+
+- (NSDragOperation)tableView:(NSTableView*)o_tv 
+                   validateDrop:(id <NSDraggingInfo>)info 
+                   proposedRow:(int)i_row 
+                   proposedDropOperation:(NSTableViewDropOperation)operation
+{
+    return( NSDragOperationPrivate );
+}
+
+- (BOOL)tableView:(NSTableView*)o_tv 
+                  acceptDrop:(id <NSDraggingInfo>)info 
+                  row:(int)i_row 
+                  dropOperation:(NSTableViewDropOperation)operation
+{
+    NSArray * o_values;
+    NSPasteboard * o_pasteboard;
+
+    o_pasteboard = [info draggingPasteboard];
+
+    if( [[o_pasteboard types] containsObject: NSFilenamesPboardType] )
+    {
+        o_values = [o_pasteboard propertyListForType: NSFilenamesPboardType];
+
+        [self appendArray: o_values atPos: i_row];
+
+        if( i_row != -1 )
+        {
+            [o_table_view reloadData];
+        }
+        
+        return( YES );
+    }
+
+    return( NO ); 
+}
+
+- (void)tableView:(NSTableView *)o_tv willDisplayCell:(id)o_cell
+                  forTableColumn:(NSTableColumn *)o_tc row:(int)i_row
+{
+    [o_cell setDrawsBackground: YES];
+
+    if( i_row % 2 )
+    {
+        [o_cell setBackgroundColor: 
+            [NSColor colorWithDeviceRed: 0.937255 
+                                  green: 0.968627
+                                   blue: 1.0
+                                  alpha: 1.0]];
+    }
+    else
+    {
+        [o_cell setBackgroundColor: [NSColor whiteColor]];
+    }
+}
+
+- (IBAction)doubleClick:(id)sender
+{
+    NSTableView * o_tv = sender;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    playlist_Goto( p_playlist, [o_tv clickedRow] );
+
+    vlc_object_release( p_playlist );
+}
+
+- (void)appendArray:(NSArray*)o_array atPos:(int)i_pos
+{
+    int i_items;
+    NSString * o_value;
+    NSEnumerator * o_enum;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                                       FIND_ANYWHERE );
+
+    if( p_playlist == NULL )
+    {
+        return;
+    }
+
+    if( p_intf->p_sys->b_loop )
+    {
+        playlist_Delete( p_playlist, p_playlist->i_size - 1 );
+    }
+
+    i_items = 0;
+    o_enum = [o_array objectEnumerator];
+    while( ( o_value = [o_enum nextObject] ) )
+    {
+        NSURL * o_url;
+
+        int i_mode = i_items == 0 ? PLAYLIST_INSERT | PLAYLIST_GO :
+                                                   PLAYLIST_INSERT;
+
+        playlist_Add( p_playlist, [o_value fileSystemRepresentation],
+            i_mode, i_pos == -1 ? PLAYLIST_END : i_pos + i_items );
+
+        o_url = [NSURL fileURLWithPath: o_value];
+        if( o_url != nil )
+        { 
+            [[NSDocumentController sharedDocumentController]
+                noteNewRecentDocumentURL: o_url]; 
+        }
+
+        i_items++;
+    }
+
+    if( p_intf->p_sys->b_loop )
+    {
+        playlist_Add( p_playlist, "vlc:loop",
+                      PLAYLIST_APPEND, PLAYLIST_END );
+    }
+
+    vlc_object_release( p_playlist );
+}
+
+@end
+
+@implementation VLCPlaylist (NSTableDataSource)
+
+- (int)numberOfRowsInTableView:(NSTableView *)o_tv
+{
+    int i_count = 0;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                               FIND_ANYWHERE );
+
+    if( p_playlist != NULL )
+    {
+        i_count = p_playlist->i_size;
+        vlc_object_release( p_playlist );
+    }
+
+    return( i_count );
+}
+
+- (id)tableView:(NSTableView *)o_tv 
+                objectValueForTableColumn:(NSTableColumn *)o_tc 
+                row:(int)i_row
+{
+    id o_value = nil;
+    intf_thread_t * p_intf = [NSApp getIntf];
+    playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+                                               FIND_ANYWHERE );
+
+    if( p_playlist == NULL )
+    {
+        return( nil );
+    }
+
+    vlc_mutex_lock( &p_playlist->object_lock );
+    o_value = [NSString stringWithCString: 
+        p_playlist->pp_items[i_row]->psz_name]; 
+    vlc_mutex_unlock( &p_playlist->object_lock ); 
+
+    vlc_object_release( p_playlist );
+
+    return( o_value );
+}
+
+@end
+
diff --git a/plugins/macosx/intf_vlc_wrapper.h b/plugins/macosx/intf_vlc_wrapper.h
deleted file mode 100644 (file)
index f5b7525..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*****************************************************************************
- * intf_vlc_wrapper.h: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_vlc_wrapper.h,v 1.11 2002/06/02 22:31:52 massiot Exp $
- *
- * Authors: Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-/* Intf_VLCWrapper is a singleton class
-    (only one instance at any time) */
-
-@interface Intf_VLCWrapper : NSObject
-{
-
-}
-
-/* initialization */
-+ (Intf_VLCWrapper *)instance;
-
-- (bool)manage;
-- (void)quit;
-
-/* playback control */
-- (bool)playlistPlay;
-- (void)playlistPause;
-- (void)playlistStop;
-- (void)playlistNext;
-- (void)playlistPrev;
-- (void)channelNext;
-- (void)channelPrev;
-- (void)loop;
-
-- (void)playSlower;
-- (void)playFaster;
-- (void)mute;
-- (void)maxvolume;
-- (void)fullscreen;
-- (void)eject;
-
-/* playback info */
-- (NSString *)getTimeAsString;
-- (float)getTimeAsFloat;
-- (void)setTimeAsFloat:(float)i_offset;
-
-- (bool)playlistPlaying;
-- (NSArray *)playlistAsArray;
-
-/*
-- (int)playlistLength;
-- (NSString *)playlistItem:(int)i_pos;
-- (void)playlistPlayItem:(int)i_item;
-- (void)playlistAdd:(NSString *)o_filename;
-- (void)clearPlaylist;
-*/
-
-/* open file/disc/network */
-- (void)openFiles:(NSArray*)o_files;
-- (void)openDisc:(NSString*)o_type device:(NSString*)o_device title:(int)i_title chapter:(int)i_chapter;
-- (void)openNet:(NSString*)o_addr port:(int)i_port;
-- (void)openNetChannel:(NSString*)o_addr port:(int)i_port;
-- (void)openNetHTTP:(NSString*)o_addr;
-
-/* menus management */
-- (void)toggleProgram:(id)sender;
-- (void)toggleTitle:(id)sender;
-- (void)toggleChapter:(id)sender;
-- (void)toggleLanguage:(id)sender;
-- (void)toggleSubtitle:(id)sender;
-- (void)setupMenus;
-
-@end
diff --git a/plugins/macosx/intf_vlc_wrapper.m b/plugins/macosx/intf_vlc_wrapper.m
deleted file mode 100644 (file)
index ea28754..0000000
+++ /dev/null
@@ -1,1091 +0,0 @@
-/*****************************************************************************
- * intf_vlc_wrapper.m: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: intf_vlc_wrapper.m,v 1.15 2002/06/18 23:18:40 massiot Exp $
- *
- * Authors: Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
- *          Christophe Massiot <massiot@via.ecp.fr>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#include <stdlib.h>                                      /* malloc(), free() */
-#include <sys/param.h>                                    /* for MAXPATHLEN */
-#include <string.h>
-
-#include <IOKit/storage/IOCDMedia.h>
-#include <IOKit/storage/IODVDMedia.h>
-
-#include <videolan/vlc.h>
-
-#include "interface.h"
-#include "vlc_playlist.h"
-#include "intf_eject.h"
-
-#include "video.h"
-#include "video_output.h"
-#include "audio_output.h"
-
-#include "stream_control.h"
-#include "input_ext-intf.h"
-
-#include "macosx.h"
-#include "intf_open.h"
-#include "intf_vlc_wrapper.h"
-
-#include "netutils.h"
-
-@implementation Intf_VLCWrapper
-
-static Intf_VLCWrapper *o_intf = nil;
-
-/* Initialization */
-
-+ (Intf_VLCWrapper *)instance
-{
-    if( o_intf == nil )
-    {
-        o_intf = [[[Intf_VLCWrapper alloc] init] autorelease];
-    }
-
-    return( o_intf );
-}
-
-- (void)dealloc
-{
-    o_intf = nil;
-    [super dealloc];
-}
-
-- (bool)manage
-{
-    if( p_main->p_intf->b_die )
-    {
-        /* Vout depends on intf */
-        input_EndBank();
-        vout_EndBank();
-        input_InitBank();
-        vout_InitBank();
-
-        return( 1 );
-    }
-
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        vlc_mutex_lock( &p_input_bank->pp_input[0]->stream.stream_lock );
-
-        if( !p_input_bank->pp_input[0]->b_die )
-        {
-            /* New input or stream map change */
-            if( p_input_bank->pp_input[0]->stream.b_changed ||
-                p_main->p_intf->p_sys->i_part !=
-                p_input_bank->pp_input[0]->stream.p_selected_area->i_part )
-            {
-                [self setupMenus];
-                p_main->p_intf->p_sys->b_disabled_menus = 0;
-            }
-        }
-
-        vlc_mutex_unlock( &p_input_bank->pp_input[0]->stream.stream_lock );
-    }
-    else if ( !p_main->p_intf->p_sys->b_disabled_menus )
-    {
-        [self setupMenus];
-        p_main->p_intf->p_sys->b_disabled_menus = 1;
-    }
-
-    return( 0 );
-}
-
-- (void)quit
-{
-    p_main->p_intf->b_die = 1;
-}
-
-/* playlist control */
-    
-- (bool)playlistPlay
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        input_SetStatus( p_input_bank->pp_input[0], INPUT_STATUS_PLAY );
-        p_main->p_playlist->b_stopped = 0;
-    }
-    else
-    {
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-        if( p_main->p_playlist->b_stopped )
-        {
-            if( p_main->p_playlist->i_size )
-            {
-                vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-                intf_PlaylistJumpto( p_main->p_playlist,
-                                     p_main->p_playlist->i_index );
-            }
-            else
-            {
-                vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-                [[Intf_Open instance] openFile: nil];
-            }
-        }
-        else
-        {
-            vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-        }
-    }
-
-    return( TRUE );
-}
-
-- (void)playlistPause
-{
-    if ( p_input_bank->pp_input[0] != NULL )
-    {
-        input_SetStatus( p_input_bank->pp_input[0], INPUT_STATUS_PAUSE );
-
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-        p_main->p_playlist->b_stopped = 0;
-        vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-    }
-}
-    
-- (void)playlistStop
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        /* end playing item */
-        p_input_bank->pp_input[0]->b_eof = 1;
-
-        /* update playlist */
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-        p_main->p_playlist->i_index--;
-        p_main->p_playlist->b_stopped = 1;
-
-        vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-    }
-}
-
-- (void)playlistNext
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-}
-
-- (void)playlistPrev
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        /* FIXME: temporary hack */
-        intf_PlaylistPrev( p_main->p_playlist );
-        intf_PlaylistPrev( p_main->p_playlist );
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-}
-
-- (void)channelNext
-{
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    p_intf->p_sys->i_channel++;
-
-    intf_WarnMsg( 3, "intf info: joining channel %d", p_intf->p_sys->i_channel );
-
-    vlc_mutex_lock( &p_intf->change_lock );
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        /* end playing item */
-        p_input_bank->pp_input[0]->b_eof = 1;
-
-        /* update playlist */
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-        p_main->p_playlist->i_index--;
-        p_main->p_playlist->b_stopped = 1;
-
-        vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-
-        /* FIXME: ugly hack to close input and outputs */
-        p_intf->pf_manage( p_intf );
-    }
-
-    network_ChannelJoin( p_intf->p_sys->i_channel );
-
-    /* FIXME 2 */
-    p_main->p_playlist->b_stopped = 0;
-    p_intf->pf_manage( p_intf );
-
-    vlc_mutex_unlock( &p_intf->change_lock );
-}
-
-- (void)channelPrev
-{
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    if ( p_intf->p_sys->i_channel )
-    {
-        p_intf->p_sys->i_channel--;
-    }
-
-    intf_WarnMsg( 3, "intf info: joining channel %d", p_intf->p_sys->i_channel );
-
-    vlc_mutex_lock( &p_intf->change_lock );
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        /* end playing item */
-        p_input_bank->pp_input[0]->b_eof = 1;
-
-        /* update playlist */
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-        p_main->p_playlist->i_index--;
-        p_main->p_playlist->b_stopped = 1;
-
-        vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-
-        /* FIXME: ugly hack to close input and outputs */
-        p_intf->pf_manage( p_intf );
-    }
-
-    network_ChannelJoin( p_intf->p_sys->i_channel );
-
-    /* FIXME 2 */
-    p_main->p_playlist->b_stopped = 0;
-    p_intf->pf_manage( p_intf );
-
-    vlc_mutex_unlock( &p_intf->change_lock );
-}
-
-- (void)loop
-{
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistDelete( p_main->p_playlist,
-                             p_main->p_playlist->i_size - 1 );
-    }
-    else
-    {
-        intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                          "vlc:loop" );
-    }
-    p_intf->p_sys->b_loop = !p_intf->p_sys->b_loop;
-}
-
-- (void)playSlower
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        input_SetStatus( p_input_bank->pp_input[0], INPUT_STATUS_SLOWER );
-
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-        p_main->p_playlist->b_stopped = 0;
-        vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-    }
-}
-
-- (void)playFaster
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        input_SetStatus( p_input_bank->pp_input[0], INPUT_STATUS_FASTER );
-
-        vlc_mutex_lock( &p_main->p_playlist->change_lock );
-        p_main->p_playlist->b_stopped = 0;
-        vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-    }
-}
-
-- (void)mute
-{
-    if( p_aout_bank->pp_aout[0] == NULL ) return;
-
-    if( p_main->p_intf->p_sys->b_mute )
-    {
-        p_aout_bank->pp_aout[0]->i_volume = 
-                            p_main->p_intf->p_sys->i_saved_volume;
-    }
-    else
-    {
-        p_main->p_intf->p_sys->i_saved_volume = 
-                            p_aout_bank->pp_aout[0]->i_volume;
-        p_aout_bank->pp_aout[0]->i_volume = 0;
-    }
-    p_main->p_intf->p_sys->b_mute = !p_main->p_intf->p_sys->b_mute;
-}
-
-- (void)maxvolume
-{
-    if( p_aout_bank->pp_aout[0] == NULL ) return;
-
-    if( p_main->p_intf->p_sys->b_mute )
-    {
-        p_main->p_intf->p_sys->i_saved_volume = VOLUME_MAX;
-    }
-    else
-    {
-        p_aout_bank->pp_aout[0]->i_volume = VOLUME_MAX;
-    }
-}
-
-- (void)fullscreen
-{
-    if( p_vout_bank->pp_vout[0] != NULL )
-    {
-        p_vout_bank->pp_vout[0]->i_changes |= VOUT_FULLSCREEN_CHANGE;
-    }
-}
-
-- (void)eject
-{
-    /* FIXME : this will only eject the first drive found */
-    NSArray * o_devices = GetEjectableMediaOfClass(kIODVDMediaClass);
-    const char * psz_device;
-
-    if ( p_input_bank->pp_input[0] != NULL &&
-         (p_input_bank->pp_input[0]->stream.i_method == INPUT_METHOD_VCD ||
-          p_input_bank->pp_input[0]->stream.i_method == INPUT_METHOD_DVD ||
-          p_input_bank->pp_input[0]->stream.i_method == INPUT_METHOD_DISC) )
-    {
-        intf_ErrMsg("error: cannot eject the disc while you're reading from it");
-        return;
-    }
-
-    if ( o_devices == nil )
-    {
-        o_devices = GetEjectableMediaOfClass(kIOCDMediaClass);
-    }
-
-    if ( o_devices != nil && [o_devices count] )
-    { 
-        psz_device = [[o_devices objectAtIndex:0] cString];
-        intf_Eject( psz_device );
-    }
-}
-
-/* playback info */
-
-#define p_area p_input_bank->pp_input[0]->stream.p_selected_area
-
-- (NSString *)getTimeAsString
-{
-    static char psz_currenttime[ OFFSETTOTIME_MAX_SIZE ];
-        
-    if( p_input_bank->pp_input[0] == NULL )
-    {
-        return [NSString stringWithCString:"00:00:00"];
-    }     
-   
-    input_OffsetToTime( p_input_bank->pp_input[0], 
-                        psz_currenttime, p_area->i_tell );        
-
-    return( [NSString stringWithCString: psz_currenttime] );
-}
-    
-- (float)getTimeAsFloat
-{
-    float f_time = 0.0;
-
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        f_time = (float)p_area->i_tell / (float)p_area->i_size;
-    }    
-
-    return( f_time );
-}
-
-- (void)setTimeAsFloat:(float)f_position
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        input_Seek( p_input_bank->pp_input[0]->p_this,
-                    p_area->i_size * f_position, INPUT_SEEK_SET );
-    }
-}
-
-#undef p_area
-
-- (bool)playlistPlaying
-{
-    return( !p_main->p_playlist->b_stopped );
-}
-
-- (NSArray *)playlistAsArray
-{
-    int i;
-    NSMutableArray* p_list = 
-        [NSMutableArray arrayWithCapacity: p_main->p_playlist->i_size];
-    
-    vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-    for( i = 0; i < p_main->p_playlist->i_size; i++ )
-    {
-        [p_list addObject: [NSString 
-            stringWithCString: p_main->p_playlist->p_item[i].psz_name]];
-    }
-
-    vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-        
-    return( [NSArray arrayWithArray: p_list] );
-}
-
-/*
-- (int)playlistLength
-{
-    return( p_main->p_playlist->i_size );
-}
-
-- (NSString*)playlistItem:(int)i_pos
-{
-    NSString *o_item = nil;
-
-    vlc_mutex_lock( &p_main->p_playlist->change_lock );
-    
-    if( i_pos < p_main->p_playlist->i_size )
-    {
-        o_item = [NSString 
-            stringWithCString: p_main->p_playlist->p_item[i_pos].psz_name];
-    }
-
-    vlc_mutex_unlock( &p_main->p_playlist->change_lock );
-
-    return( o_item );
-}
-
-- (void)playlistPlayItem:(int)i_item
-{
-    [self playlistStop];
-
-    vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-    if( i_item<p_main->p_playlist->i_size )
-    {
-        p_main->p_playlist->i_index--;
-    }
-
-    vlc_mutex_unlock( &p_main->p_playlist->change_lock );        
-
-    [self playlistPlayCurrent];
-}
-    
-- (void)playlistAdd:(NSString *)o_filename
-{
-    intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                      [o_filename fileSystemRepresentation] );
-}
-    
-- (void)clearPlaylist
-{
-    int i;
-    
-    vlc_mutex_lock( &p_main->p_playlist->change_lock );
-
-    for( i = 0; i < p_main->p_playlist->i_size; i++ )
-    {
-        intf_PlaylistDelete( p_main->p_playlist, i );
-    }
-
-    vlc_mutex_unlock( &p_main->p_playlist->change_lock );        
-}
-*/
-
-/* open file/disc/network */
-
-- (void)openFiles:(NSArray*)o_files
-{
-    NSString *o_file;
-    int i_end = p_main->p_playlist->i_size;
-    NSEnumerator *o_enum = [o_files objectEnumerator];
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistDelete( p_main->p_playlist,
-                             p_main->p_playlist->i_size - 1 );
-    }
-
-    while( ( o_file = (NSString *)[o_enum nextObject] ) )
-    {
-        intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                          [o_file fileSystemRepresentation] );
-    }
-
-    /* end current item, select first added item */
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-
-    intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                          "vlc:loop" );
-    }
-}
-
-- (void)openDisc:(NSString*)o_type device:(NSString*)o_device title:(int)i_title chapter:(int)i_chapter
-{
-    NSString *o_source;
-    int i_end = p_main->p_playlist->i_size;
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    o_source = [NSString stringWithFormat: @"%@:%@@%d,%d", 
-                    o_type, o_device, i_title, i_chapter];
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistDelete( p_main->p_playlist,
-                             p_main->p_playlist->i_size - 1 );
-    }
-
-    intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END,
-                      [o_source fileSystemRepresentation] );
-
-    /* stop current item, select added item */
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-
-    intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                          "vlc:loop" );
-    }
-}
-
-- (void)openNet:(NSString*)o_addr port:(int)i_port
-{
-    NSString *o_source;
-    int i_end = p_main->p_playlist->i_size;
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-
-    config_PutIntVariable( "network-channel", 0 );
-
-    o_source = [NSString stringWithFormat: @"udpstream:@%@:%i",
-                o_addr, i_port];
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistDelete( p_main->p_playlist,
-                             p_main->p_playlist->i_size - 1 );
-    }
-
-    intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END,
-                      [o_source fileSystemRepresentation] );
-
-    intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                          "vlc:loop" );
-    }
-}
-
-- (void)openNetChannel:(NSString*)o_addr port:(int)i_port
-{
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-
-    config_PutIntVariable( "network-channel", 1 );
-
-    if( p_main->p_channel == NULL )
-    {
-        network_ChannelCreate();
-    }
-
-    config_PutPszVariable( "channel-server", (char*)[o_addr lossyCString] );
-    config_PutIntVariable( "channel-port", i_port ); 
-}
-
-- (void)openNetHTTP:(NSString*)o_addr
-{
-    int i_end = p_main->p_playlist->i_size;
-    intf_thread_t * p_intf = p_main->p_intf;
-
-    if( p_input_bank->pp_input[0] != NULL )
-    {
-        p_input_bank->pp_input[0]->b_eof = 1;
-    }
-
-    config_PutIntVariable( "network-channel", 0 );
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistDelete( p_main->p_playlist,
-                             p_main->p_playlist->i_size - 1 );
-    }
-
-    intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END,
-                      [o_addr fileSystemRepresentation] );
-
-    intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
-
-    if ( p_intf->p_sys->b_loop )
-    {
-        intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, 
-                          "vlc:loop" );
-    }
-}
-
-- (void)toggleProgram:(id)sender
-{
-    NSMenuItem * o_item = (NSMenuItem *)sender;
-    input_thread_t * p_input = p_input_bank->pp_input[0];
-
-    if( [o_item state] == NSOffState )
-    {
-        u16 i_program_id = [o_item tag];
-
-        input_ChangeProgram( p_input, i_program_id );
-
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-        [self setupMenus];
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-        input_SetStatus( p_input, INPUT_STATUS_PLAY );
-    }
-}
-
-- (void)toggleTitle:(id)sender
-{
-    NSMenuItem * o_item = (NSMenuItem *)sender;
-    input_thread_t * p_input = p_input_bank->pp_input[0];
-
-    if( [o_item state] == NSOffState )
-    {
-        int i_title = [o_item tag];
-
-        input_ChangeArea( p_input,
-                          p_input->stream.pp_areas[i_title] );
-
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-        [self setupMenus];
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-        input_SetStatus( p_input, INPUT_STATUS_PLAY );
-    }
-}
-
-- (void)toggleChapter:(id)sender
-{
-    NSMenuItem * o_item = (NSMenuItem *)sender;
-    input_thread_t * p_input = p_input_bank->pp_input[0];
-
-    if( [o_item state] == NSOffState )
-    {
-        int i_chapter = [o_item tag];
-
-        p_input->stream.p_selected_area->i_part = i_chapter;
-        input_ChangeArea( p_input,
-                          p_input->stream.p_selected_area );
-
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-        [self setupMenus];
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-        input_SetStatus( p_input, INPUT_STATUS_PLAY );
-    }
-}
-
-- (void)toggleLanguage:(id)sender
-{
-    NSMenuItem * o_item = (NSMenuItem *)sender;
-    input_thread_t * p_input = p_input_bank->pp_input[0];
-
-    int i_es = [o_item tag];
-
-    if( [o_item state] == NSOnState )
-    {
-        /* We just have one ES to disable */
-        input_ToggleES( p_input, p_input->stream.pp_es[i_es], 0 );
-    }
-    else
-    {
-        /* Unselect the selected ES in the same class */
-        int i;
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-        for( i = 0; i < p_input->stream.i_selected_es_number; i++ )
-        {
-            if( p_input->stream.pp_selected_es[i]->i_cat == AUDIO_ES )
-            {
-                vlc_mutex_unlock( &p_input->stream.stream_lock );
-                input_ToggleES( p_input, p_input->stream.pp_selected_es[i], 0 );
-                vlc_mutex_lock( &p_input->stream.stream_lock );
-                break;
-            }
-        }
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-        /* Select the wanted ES */
-        input_ToggleES( p_input, p_input->stream.pp_es[i_es], 1 );
-    }
-
-    vlc_mutex_lock( &p_input->stream.stream_lock );
-    [self setupMenus];
-    vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-    input_SetStatus( p_input, INPUT_STATUS_PLAY );
-}
-
-- (void)toggleSubtitle:(id)sender
-{
-    NSMenuItem * o_item = (NSMenuItem *)sender;
-    input_thread_t * p_input = p_input_bank->pp_input[0];
-
-    int i_es = [o_item tag];
-
-    if( [o_item state] == NSOnState )
-    {
-        /* We just have one ES to disable */
-        input_ToggleES( p_input, p_input->stream.pp_es[i_es], 0 );
-    }
-    else
-    {
-        /* Unselect the selected ES in the same class */
-        int i;
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-        for( i = 0; i < p_input->stream.i_selected_es_number; i++ )
-        {
-            if( p_input->stream.pp_selected_es[i]->i_cat == SPU_ES )
-            {
-                vlc_mutex_unlock( &p_input->stream.stream_lock );
-                input_ToggleES( p_input, p_input->stream.pp_selected_es[i], 0 );
-                vlc_mutex_lock( &p_input->stream.stream_lock );
-                break;
-            }
-        }
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-        /* Select the wanted ES */
-        input_ToggleES( p_input, p_input->stream.pp_es[i_es], 1 );
-    }
-
-    vlc_mutex_lock( &p_input->stream.stream_lock );
-    [self setupMenus];
-    vlc_mutex_unlock( &p_input->stream.stream_lock );
-
-    input_SetStatus( p_input, INPUT_STATUS_PLAY );
-}
-
-- (void)setupMenus
-{
-    NSMenu *o_main_menu;
-    NSMenuItem *o_controls_item;
-    NSMenuItem *o_program_item, *o_title_item, *o_chapter_item, *o_language_item,
-               *o_subtitle_item, *o_next_channel_item, *o_prev_channel_item;
-    input_thread_t * p_input = p_input_bank->pp_input[0];
-
-    o_main_menu  = [NSApp mainMenu];
-    o_controls_item  = [o_main_menu itemWithTitle: @"Controls"];
-    o_program_item = [[o_controls_item submenu] itemWithTitle: @"Program"]; 
-    o_title_item = [[o_controls_item submenu] itemWithTitle: @"Title"]; 
-    o_chapter_item = [[o_controls_item submenu] itemWithTitle: @"Chapter"]; 
-    o_language_item = [[o_controls_item submenu] itemWithTitle: @"Language"]; 
-    o_subtitle_item = [[o_controls_item submenu] itemWithTitle: @"Subtitles"]; 
-    o_next_channel_item = [[o_controls_item submenu] itemWithTag: 13]; 
-    o_prev_channel_item = [[o_controls_item submenu] itemWithTag: 12]; 
-
-    if( p_input == NULL )
-    {
-        [o_program_item setEnabled:0];
-        [o_title_item setEnabled:0];
-        [o_chapter_item setEnabled:0];
-        [o_language_item setEnabled:0];
-        [o_subtitle_item setEnabled:0];
-    }
-    else
-    {
-        NSMenu *o_program, *o_title, *o_chapter, *o_language, *o_subtitle;
-        SEL pf_toggle_program, pf_toggle_title, pf_toggle_chapter,
-            pf_toggle_language, pf_toggle_subtitle;
-
-        int i, i_nb_items;
-        pgrm_descriptor_t * p_pgrm;
-
-        /* ----- PROGRAMS ----- */
-        if( p_input->stream.i_pgrm_number < 2 )
-        {
-            [o_program_item setEnabled:0];
-        }
-        else
-        {
-            [o_program_item setEnabled:1];
-            o_program = [o_program_item submenu];
-            pf_toggle_program = @selector(toggleProgram:);
-    
-            /* Remove previous program menu */
-            i_nb_items = [o_program numberOfItems];
-            for( i = 0; i < i_nb_items; i++ )
-            {
-                [o_program removeItemAtIndex:0];
-            }
-    
-            if( p_input->stream.p_new_program )
-            {
-                p_pgrm = p_input->stream.p_new_program;
-            }
-            else
-            {
-                p_pgrm = p_input->stream.p_selected_program;
-            }
-    
-            /* Create program menu */
-            for( i = 0 ; i < p_input->stream.i_pgrm_number ; i++ )
-            {
-                char psz_title[ 256 ];
-                NSString * o_menu_title;
-                NSMenuItem * o_item;
-    
-                snprintf( psz_title, sizeof(psz_title), "id %d",
-                    p_input->stream.pp_programs[i]->i_number );
-                psz_title[sizeof(psz_title) - 1] = '\0';
-    
-                o_menu_title = [NSString stringWithCString: psz_title];
-    
-                o_item = [o_program addItemWithTitle: o_menu_title
-                        action: pf_toggle_program keyEquivalent: @""];
-                [o_item setTarget: self];
-                [o_item setTag: p_input->stream.pp_programs[i]->i_number];
-                if( p_pgrm == p_input->stream.pp_programs[i] )
-                {
-                    [o_item setState: 1];
-                }
-            }
-        }
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-
-        /* ----- TITLES ----- */
-        if( p_input->stream.i_area_nb < 2 )
-        {
-            [o_title_item setEnabled:0];
-        }
-        else
-        {
-            [o_title_item setEnabled:1];
-            o_title = [o_title_item submenu];
-            pf_toggle_title = @selector(toggleTitle:);
-    
-            /* Remove previous title menu */
-            i_nb_items = [o_title numberOfItems];
-            for( i = 0; i < i_nb_items; i++ )
-            {
-                [o_title removeItemAtIndex:0];
-            }
-    
-            /* Create title menu */
-            for( i = 1 ; i < p_input->stream.i_area_nb ; i++ )
-            {
-                char psz_title[ 256 ];
-                NSString * o_menu_title;
-                NSMenuItem * o_item;
-    
-                snprintf( psz_title, sizeof(psz_title), "Title %d (%d)", i,
-                    p_input->stream.pp_areas[i]->i_part_nb );
-                psz_title[sizeof(psz_title) - 1] = '\0';
-    
-                o_menu_title = [NSString stringWithCString: psz_title];
-    
-                o_item = [o_title addItemWithTitle: o_menu_title
-                        action: pf_toggle_title keyEquivalent: @""];
-                [o_item setTag: i];
-                [o_item setTarget: self];
-                if( ( p_input->stream.pp_areas[i] ==
-                    p_input->stream.p_selected_area ) )
-                {
-                    [o_item setState: 1];
-                }
-            }
-        }
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-
-        /* ----- CHAPTERS ----- */
-        if( p_input->stream.p_selected_area->i_part_nb < 2 )
-        {
-            [o_chapter_item setEnabled:0];
-        }
-        else
-        {
-            [o_chapter_item setEnabled:1];
-            o_chapter = [o_chapter_item submenu];
-            pf_toggle_chapter = @selector(toggleChapter:);
-    
-            /* Remove previous chapter menu */
-            i_nb_items = [o_chapter numberOfItems];
-            for( i = 0; i < i_nb_items; i++ )
-            {
-                [o_chapter removeItemAtIndex:0];
-            }
-    
-            /* Create chapter menu */
-            for( i = 0 ; i < p_input->stream.p_selected_area->i_part_nb ; i++ )
-            {
-                char psz_title[ 256 ];
-                NSString * o_menu_title;
-                NSMenuItem * o_item;
-    
-                snprintf( psz_title, sizeof(psz_title), "Chapter %d", i + 1 );
-                psz_title[sizeof(psz_title) - 1] = '\0';
-    
-                o_menu_title = [NSString stringWithCString: psz_title];
-    
-                o_item = [o_chapter addItemWithTitle: o_menu_title
-                        action: pf_toggle_chapter keyEquivalent: @""];
-                [o_item setTag: i + 1];
-                [o_item setTarget: self];
-                if( ( p_input->stream.p_selected_area->i_part == i + 1 ) )
-                {
-                    [o_item setState: 1];
-                }
-            }
-        }
-        p_main->p_intf->p_sys->i_part = p_input->stream.p_selected_area->i_part;
-        vlc_mutex_unlock( &p_input->stream.stream_lock );
-        vlc_mutex_lock( &p_input->stream.stream_lock );
-
-        /* ----- LANGUAGES & SUBTITLES ----- */
-        o_language = [o_language_item submenu];
-        o_subtitle = [o_subtitle_item submenu];
-        pf_toggle_language = @selector(toggleLanguage:);
-        pf_toggle_subtitle = @selector(toggleSubtitle:);
-
-        /* Remove previous language menu */
-        i_nb_items = [o_language numberOfItems];
-        for( i = 0; i < i_nb_items; i++ )
-        {
-            [o_language removeItemAtIndex:0];
-        }
-
-        /* Remove previous subtitle menu */
-        i_nb_items = [o_subtitle numberOfItems];
-        for( i = 0; i < i_nb_items; i++ )
-        {
-            [o_subtitle removeItemAtIndex:0];
-        }
-
-        [o_language_item setEnabled: 1];
-        [o_subtitle_item setEnabled: 1];
-
-        /* Create language & subtitles menus */
-        for( i = 0 ; i < p_input->stream.i_es_number ; i++ )
-        {
-            es_descriptor_t * p_es = p_input->stream.pp_es[i];
-            if( p_es->p_pgrm != NULL
-                 && p_es->p_pgrm != p_input->stream.p_selected_program )
-            {
-                continue;
-            }
-
-            if( p_es->i_cat == AUDIO_ES )
-            {
-                NSString * o_menu_title;
-                NSMenuItem * o_item;
-
-                if( *p_es->psz_desc )
-                {
-                    o_menu_title = [NSString stringWithCString: p_es->psz_desc];
-                }
-                else
-                {
-                    char psz_title[ 256 ];
-                    snprintf( psz_title, sizeof(psz_title), "Language 0x%x",
-                              p_es->i_id );
-                    psz_title[sizeof(psz_title) - 1] = '\0';
-    
-                    o_menu_title = [NSString stringWithCString: psz_title];
-                }
-    
-                o_item = [o_language addItemWithTitle: o_menu_title
-                          action: pf_toggle_language keyEquivalent: @""];
-                [o_item setTag: i];
-                [o_item setTarget: self];
-                [o_item setEnabled: 1];
-                if( p_es->p_decoder_fifo != NULL )
-                {
-                    [o_item setState: 1];
-                }
-            }
-            else if( p_es->i_cat == SPU_ES )
-            {
-                NSString * o_menu_title;
-                NSMenuItem * o_item;
-
-                if( *p_es->psz_desc )
-                {
-                    o_menu_title = [NSString stringWithCString: p_es->psz_desc];
-                }
-                else
-                {
-                    char psz_title[ 256 ];
-                    snprintf( psz_title, sizeof(psz_title), "Subtitle 0x%x",
-                              p_es->i_id );
-                    psz_title[sizeof(psz_title) - 1] = '\0';
-    
-                    o_menu_title = [NSString stringWithCString: psz_title];
-                }
-    
-                o_item = [o_subtitle addItemWithTitle: o_menu_title
-                          action: pf_toggle_subtitle keyEquivalent: @""];
-                [o_item setTag: i];
-                [o_item setTarget: self];
-                [o_item setEnabled: 1];
-                if( p_es->p_decoder_fifo != NULL )
-                {
-                    [o_item setState: 1];
-                }
-            }
-        }
-
-        if( [o_language numberOfItems] )
-        {
-            [o_language_item setEnabled: 1];
-        }
-        else
-        {
-            [o_language_item setEnabled: 0];
-        }
-        if( [o_subtitle numberOfItems] )
-        {
-            [o_subtitle_item setEnabled: 1];
-        }
-        else
-        {
-            [o_subtitle_item setEnabled: 0];
-        }
-        p_input->stream.b_changed = 0;
-    }
-}
-
-@end
diff --git a/plugins/macosx/macosx.h b/plugins/macosx/macosx.h
deleted file mode 100644 (file)
index 18de880..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*****************************************************************************
- * macosx.h: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: macosx.h,v 1.13 2002/06/08 19:32:19 sam Exp $
- *
- * Authors: Colin Delacroix <colin@zoy.org>
- *          Eugenio Jarosiewicz <ej0@cise.ufl.edu>
- *          Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#import <Cocoa/Cocoa.h>
-#import <QuickTime/QuickTime.h>
-
-#include "vout_window.h"
-#include "vout_qdview.h"
-
-/*****************************************************************************
- * intf_sys_t: description and status of the interface
- *****************************************************************************/
-struct intf_sys_s
-{
-    NSPort *o_port;
-    NSAutoreleasePool *o_pool;
-
-    vlc_bool_t b_mute;
-    int i_saved_volume;
-    
-    int i_part;
-    vlc_bool_t b_disabled_menus;
-    vlc_bool_t b_loop;
-    int i_channel;
-};
-
-/*****************************************************************************
- * vout_sys_t: MacOS X video output method descriptor
- *****************************************************************************/
-struct vout_sys_s
-{
-    VLCWindow *o_window;
-
-    NSRect s_rect;
-    int b_pos_saved;
-
-    vlc_bool_t b_mouse_moved;
-    vlc_bool_t b_mouse_pointer_visible;
-    mtime_t i_time_mouse_last_moved;
-    
-    CodecType i_codec;
-    CGrafPtr p_qdport;
-    ImageSequence i_seq;
-    MatrixRecordPtr p_matrix;
-    DecompressorComponent img_dc;
-    ImageDescriptionHandle h_img_descr;
-
-    intf_thread_t *p_intf;
-};
-
-/*****************************************************************************
- * vout_req_t: MacOS X video output request 
- *****************************************************************************/
-#define VOUT_REQ_CREATE_WINDOW  0x00000001
-#define VOUT_REQ_DESTROY_WINDOW 0x00000002
-
-typedef struct vout_req_s
-{
-    int i_type;
-    int i_result;
-
-    NSConditionLock *o_lock;
-
-    vout_thread_t *p_vout;
-} vout_req_t;
diff --git a/plugins/macosx/vout_macosx.h b/plugins/macosx/vout_macosx.h
new file mode 100644 (file)
index 0000000..57bc452
--- /dev/null
@@ -0,0 +1,92 @@
+/*****************************************************************************
+ * vout_macosx.h: MacOS X interface plugin
+ *****************************************************************************
+ * Copyright (C) 2001, 2002 VideoLAN
+ * $Id: vout_macosx.h,v 1.1 2002/07/15 01:54:04 jlj Exp $
+ *
+ * Authors: Colin Delacroix <colin@zoy.org>
+ *          Florian G. Pflug <fgp@phlo.org>
+ *          Jon Lech Johansen <jon-vl@nanocrew.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * VLCWindow interface
+ *****************************************************************************/
+@interface VLCWindow : NSWindow
+{
+    vout_thread_t * p_vout;
+}
+
+- (void)setVout:(vout_thread_t *)_p_vout;
+
+- (void)toggleFullscreen;
+- (BOOL)isFullscreen;
+
+@end
+
+/*****************************************************************************
+ * VLCView interface
+ *****************************************************************************/
+@interface VLCView : NSQuickDrawView
+{
+    vout_thread_t * p_vout;
+}
+
+- (void)setVout:(vout_thread_t *)_p_vout;
+
+@end
+
+/*****************************************************************************
+ * vout_sys_t: MacOS X video output method descriptor
+ *****************************************************************************/
+struct vout_sys_s
+{
+    intf_thread_t * p_intf;
+    VLCWindow * o_window;
+
+    NSRect s_rect;
+    int b_pos_saved;
+
+    vlc_bool_t b_mouse_moved;
+    vlc_bool_t b_mouse_pointer_visible;
+    mtime_t i_time_mouse_last_moved;
+
+#ifdef __QUICKTIME__
+    CodecType i_codec;
+    CGrafPtr p_qdport;
+    ImageSequence i_seq;
+    MatrixRecordPtr p_matrix;
+    DecompressorComponent img_dc;
+    ImageDescriptionHandle h_img_descr;
+#endif
+};
+
+/*****************************************************************************
+ * vout_req_t: MacOS X video output request
+ *****************************************************************************/
+#define VOUT_REQ_CREATE_WINDOW  0x00000001
+#define VOUT_REQ_DESTROY_WINDOW 0x00000002
+
+typedef struct vout_req_s
+{
+    int i_type;
+    int i_result;
+
+    NSConditionLock * o_lock;
+
+    vout_thread_t * p_vout;
+} vout_req_t;
index c884275..a564eee 100644 (file)
@@ -1,7 +1,8 @@
 /*****************************************************************************
  * vout_macosx.m: MacOS X video output plugin
  *****************************************************************************
- * Copyright (C) 2001 VideoLAN
+ * Copyright (C) 2001, 2002 VideoLAN
+ * $Id: vout_macosx.m,v 1.8 2002/07/15 01:54:04 jlj Exp $
  *
  * Authors: Colin Delacroix <colin@zoy.org>
  *          Florian G. Pflug <fgp@phlo.org>
 #include <vlc/vout.h>
 #include <vlc/intf.h>
 
-#include "macosx.h"
+#include <Cocoa/Cocoa.h>
+#include <QuickTime/QuickTime.h>
+
+#include "intf_macosx.h"
+#include "vout_macosx.h"
 
 #define QT_MAX_DIRECTBUFFERS 10
 
@@ -91,34 +96,34 @@ void _M( vout_getfunctions )( function_list_t * p_function_list )
 static int vout_Create( vout_thread_t *p_vout )
 {
     OSErr err;
-    intf_thread_t *p_intf;
-
-    p_intf = vlc_object_find( p_vout, VLC_OBJECT_INTF, FIND_ANYWHERE );
-    if( p_intf == NULL )
-    {
-        msg_Err( p_vout, "no interface present" );
-        return 1;
-    }
-
-    if( p_intf->p_module == NULL
-         || strcmp( p_intf->p_module->psz_object_name, MODULE_STRING ) != 0 )
-    {
-        msg_Err( p_vout, "MacOS X interface module required" );
-        vlc_object_release( p_intf );
-        return 1;
-    }
 
     p_vout->p_sys = malloc( sizeof( vout_sys_t ) );
     if( p_vout->p_sys == NULL )
     {
         msg_Err( p_vout, "out of memory" );
-        vlc_object_release( p_intf );
-        return 1;
+        return( 1 );
     }
 
     memset( p_vout->p_sys, 0, sizeof( vout_sys_t ) );
 
-    p_vout->p_sys->p_intf = p_intf;
+    p_vout->p_sys->p_intf = vlc_object_find( p_vout, VLC_OBJECT_INTF, 
+                                             FIND_ANYWHERE );
+    if( p_vout->p_sys->p_intf == NULL )
+    {
+        msg_Err( p_vout, "no interface present" );
+        free( p_vout->p_sys );
+        return( 1 );
+    }
+
+    if( p_vout->p_sys->p_intf->p_module == NULL || 
+        strcmp( p_vout->p_sys->p_intf->p_module->psz_object_name, 
+                MODULE_STRING ) != 0 )
+    {
+        msg_Err( p_vout, "MacOS X interface module required" );
+        vlc_object_release( p_vout->p_sys->p_intf );
+        free( p_vout->p_sys );
+        return( 1 );
+    }
 
     p_vout->p_sys->h_img_descr = 
         (ImageDescriptionHandle)NewHandleClear( sizeof(ImageDescription) );
@@ -135,9 +140,8 @@ static int vout_Create( vout_thread_t *p_vout )
         msg_Err( p_vout, "EnterMovies failed: %d", err );
         free( p_vout->p_sys->p_matrix );
         DisposeHandle( (Handle)p_vout->p_sys->h_img_descr );
-        vlc_object_release( p_intf );
         free( p_vout->p_sys );
-        return 1;
+        return( 1 );
     } 
 
     if( vout_ChromaCmp( p_vout->render.i_chroma, FOURCC_I420 ) )
@@ -164,9 +168,8 @@ static int vout_Create( vout_thread_t *p_vout )
     {
         free( p_vout->p_sys->p_matrix );
         DisposeHandle( (Handle)p_vout->p_sys->h_img_descr );
-        vlc_object_release( p_intf );
         free( p_vout->p_sys );
-        return 1;        
+        return( 1 );        
     }
 
     if( CoCreateWindow( p_vout ) )
@@ -174,12 +177,11 @@ static int vout_Create( vout_thread_t *p_vout )
         msg_Err( p_vout, "unable to create window" );
         free( p_vout->p_sys->p_matrix );
         DisposeHandle( (Handle)p_vout->p_sys->h_img_descr );
-        vlc_object_release( p_intf );
         free( p_vout->p_sys ); 
-        return 1;
+        return( 1 );
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -205,7 +207,7 @@ static int vout_Init( vout_thread_t *p_vout )
     if( QTCreateSequence( p_vout ) )
     {
         msg_Err( p_vout, "unable to create sequence" );
-        return 1;
+        return( 1 );
     }
 
     /* Try to initialize up to QT_MAX_DIRECTBUFFERS direct buffers */
@@ -237,7 +239,7 @@ static int vout_Init( vout_thread_t *p_vout )
         I_OUTPUTPICTURES++;
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -271,7 +273,9 @@ static void vout_Destroy( vout_thread_t *p_vout )
 
     free( p_vout->p_sys->p_matrix );
     DisposeHandle( (Handle)p_vout->p_sys->h_img_descr );
+
     vlc_object_release( p_vout->p_sys->p_intf );
+
     free( p_vout->p_sys );
 }
 
@@ -287,7 +291,7 @@ static int vout_Manage( vout_thread_t *p_vout )
     {
         if( CoToggleFullscreen( p_vout ) )  
         {
-            return 1;
+            return( 1 );
         }
 
         p_vout->i_changes &= ~VOUT_FULLSCREEN_CHANGE;
@@ -332,7 +336,7 @@ static int vout_Manage( vout_thread_t *p_vout )
         }
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -386,11 +390,11 @@ static int CoSendRequest( vout_thread_t *p_vout, long i_request )
     o_array = [NSArray arrayWithObject:
         [NSData dataWithBytes: &p_req length: sizeof(void *)]];
     o_msg = [[NSPortMessage alloc]
-        initWithSendPort: p_vout->p_sys->p_intf->p_sys->o_port
-        receivePort: recvPort
-        components: o_array];
+        initWithSendPort: p_vout->p_sys->p_intf->p_sys->o_sendport
+        receivePort: recvPort components: o_array]; 
 
     [o_msg sendBeforeDate: [NSDate distantPast]];
+
     [req.o_lock lockWhenCondition: 1];
     [req.o_lock unlock];
 
@@ -400,7 +404,7 @@ static int CoSendRequest( vout_thread_t *p_vout, long i_request )
     [recvPort release];
     [o_pool release];
 
-    return !req.i_result;
+    return( !req.i_result );
 }
 
 /*****************************************************************************
@@ -413,10 +417,10 @@ static int CoCreateWindow( vout_thread_t *p_vout )
     if( CoSendRequest( p_vout, VOUT_REQ_CREATE_WINDOW ) )
     {
         msg_Err( p_vout, "CoSendRequest (CREATE_WINDOW) failed" );
-        return 1;
+        return( 1 );
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -435,10 +439,10 @@ static int CoDestroyWindow( vout_thread_t *p_vout )
     if( CoSendRequest( p_vout, VOUT_REQ_DESTROY_WINDOW ) )
     {
         msg_Err( p_vout, "CoSendRequest (DESTROY_WINDOW) failed" );
-        return 1;
+        return( 1 );
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -453,15 +457,24 @@ static int CoToggleFullscreen( vout_thread_t *p_vout )
     if( CoDestroyWindow( p_vout ) )
     {
         msg_Err( p_vout, "unable to destroy window" );
-        return 1;
+        return( 1 );
     }
     
     p_vout->b_fullscreen = !p_vout->b_fullscreen;
 
+    if( p_vout->b_fullscreen )
+    {
+        HideMenuBar();
+    }
+    else
+    {
+        ShowMenuBar();
+    }
+
     if( CoCreateWindow( p_vout ) )
     {
         msg_Err( p_vout, "unable to create window" );
-        return 1;
+        return( 1 );
     }
 
     SetPort( p_vout->p_sys->p_qdport );
@@ -470,10 +483,10 @@ static int CoToggleFullscreen( vout_thread_t *p_vout )
     if( QTCreateSequence( p_vout ) )
     {
         msg_Err( p_vout, "unable to create sequence" );
-        return 1
+        return( 1 )
     } 
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -571,10 +584,10 @@ static int QTCreateSequence( vout_thread_t *p_vout )
                               p_vout->p_sys->img_dc ) ) )
     {
         msg_Err( p_vout, "DecompressSequenceBeginS failed: %d", err );
-        return 1;
+        return( 1 );
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -601,7 +614,7 @@ static int QTNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
 
     if( p_pic->p_sys == NULL )
     {
-        return -1;
+        return( -1 );
     }
 
     switch( p_vout->output.i_chroma )
@@ -660,10 +673,10 @@ static int QTNewPicture( vout_thread_t *p_vout, picture_t *p_pic )
         msg_Err( p_vout, "never heard of chroma 0x%.8x (%4.4s)",
                  p_vout->output.i_chroma, (char*)&p_vout->output.i_chroma );
         p_pic->i_planes = 0;
-        return -1;
+        return( -1 );
     }
 
-    return 0;
+    return( 0 );
 }
 
 /*****************************************************************************
@@ -681,3 +694,82 @@ static void QTFreePicture( vout_thread_t *p_vout, picture_t *p_pic )
     free( p_pic->p_sys );
 }
 
+/*****************************************************************************
+ * VLCWindow implementation
+ *****************************************************************************/
+@implementation VLCWindow
+
+- (void)setVout:(vout_thread_t *)_p_vout
+{
+    p_vout = _p_vout;
+}
+
+- (void)toggleFullscreen
+{
+    p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
+}
+
+- (BOOL)isFullscreen
+{
+    return( p_vout->b_fullscreen );
+}
+
+- (BOOL)canBecomeKeyWindow
+{
+    return( YES );
+}
+
+- (void)keyDown:(NSEvent *)o_event
+{
+    unichar key = 0;
+
+    if( [[o_event characters] length] )
+    {
+        key = [[o_event characters] characterAtIndex: 0];
+    }
+
+    switch( key )
+    {
+        case 'f': case 'F':
+            [self toggleFullscreen];
+            break;
+
+        case (unichar)0x1b: /* escape */
+            if( [self isFullscreen] )
+            {
+                [self toggleFullscreen];
+            }
+            break;
+
+        case 'q': case 'Q':
+            p_vout->p_vlc->b_die = 1;
+            break;
+
+        default:
+            [super keyDown: o_event];
+            break;
+    }
+}
+
+@end
+
+/*****************************************************************************
+ * VLCView implementation
+ *****************************************************************************/
+@implementation VLCView
+
+- (void)setVout:(vout_thread_t *)_p_vout
+{
+    p_vout = _p_vout;
+}
+
+- (void)drawRect:(NSRect)rect
+{
+    [[NSColor blackColor] set];
+    NSRectFill( rect );
+    [super drawRect: rect];
+
+    p_vout->i_changes |= VOUT_SIZE_CHANGE;
+}
+
+@end
diff --git a/plugins/macosx/vout_qdview.h b/plugins/macosx/vout_qdview.h
deleted file mode 100644 (file)
index ba3ceba..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*****************************************************************************
- * vout_qdview.h: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: vout_qdview.h,v 1.2 2002/03/19 03:33:52 jlj Exp $
- *
- * Authors: Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#import "vout_vlc_wrapper.h"
-
-@interface VLCView : NSQuickDrawView
-{
-    void *p_vout;
-    Vout_VLCWrapper *o_wrapper;
-}
-
-- (id)initWithWrapper:(Vout_VLCWrapper *)_o_wrapper forVout:(void *)_p_vout;
-
-@end
diff --git a/plugins/macosx/vout_qdview.m b/plugins/macosx/vout_qdview.m
deleted file mode 100644 (file)
index 03c373c..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*****************************************************************************
- * vout_qdview.m: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: vout_qdview.m,v 1.4 2002/06/08 19:32:19 sam Exp $
- *
- * Authors: Florian G. Pflug <fgp@phlo.org>
- *          Jon Lech Johansen <jon-vl@nanocrew.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-/*****************************************************************************
- * Preamble
- *****************************************************************************/
-#import <Cocoa/Cocoa.h>
-
-#import "vout_qdview.h"
-
-/*****************************************************************************
- * VLCView implementation 
- *****************************************************************************/
-@implementation VLCView
-
-- (id)initWithWrapper:(Vout_VLCWrapper *)_o_wrapper forVout:(void *)_p_vout
-{
-    if( [super init] == nil )
-        return nil;
-
-    p_vout = _p_vout;
-    o_wrapper = _o_wrapper;
-
-    return( self );
-}
-
-- (void)drawRect:(NSRect)rect
-{
-    [[NSColor blackColor] set];
-    NSRectFill(rect);
-    [super drawRect: rect];
-    [o_wrapper voutDidResize: p_vout ];
-}
-
-@end
diff --git a/plugins/macosx/vout_vlc_wrapper.h b/plugins/macosx/vout_vlc_wrapper.h
deleted file mode 100644 (file)
index 9c89b8f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*****************************************************************************
- * vout_vlc_wrapper.h: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: vout_vlc_wrapper.h,v 1.4 2002/05/18 18:48:24 massiot Exp $
- *
- * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#define MOUSE_MOVED             0x00000001
-#define MOUSE_NOT_MOVED         0x00000002
-#define MOUSE_LAST_MOVED        0x00000004
-#define MOUSE_NOT_LAST_MOVED    0x00000008
-#define MOUSE_DOWN              0x00000010
-
-@interface Vout_VLCWrapper : NSObject
-{
-
-}
-
-+ (Vout_VLCWrapper *)instance;
-+ (NSPort *)sendPort;
-
-- (void)mouseEvent:(unsigned int)ui_status forVout:(void *)_p_vout;
-- (BOOL)keyDown:(NSEvent *)o_event forVout:(void *)_p_vout;
-- (void)voutDidResize:(void *)_p_vout;
-
-@end
-
-@interface Vout_VLCWrapper (Internal)
-- (void)handlePortMessage:(NSPortMessage *)o_msg;
-@end
diff --git a/plugins/macosx/vout_vlc_wrapper.m b/plugins/macosx/vout_vlc_wrapper.m
deleted file mode 100644 (file)
index 06bd006..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*****************************************************************************
- * vout_vlc_wrapper.m: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: vout_vlc_wrapper.m,v 1.6 2002/06/18 23:18:40 massiot Exp $
- *
- * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-/*****************************************************************************
- * Preamble
- *****************************************************************************/
-#include <errno.h>                                                 /* ENOMEM */
-#include <stdlib.h>                                                /* free() */
-#include <string.h>                                            /* strerror() */
-
-#include <vlc/vlc.h>
-#include <vlc/intf.h>
-#include <vlc/vout.h>
-#include <vlc/aout.h>
-
-#include "stream_control.h"
-#include "input_ext-intf.h"
-
-#include "macosx.h"
-#include "vout_vlc_wrapper.h"
-
-/*****************************************************************************
- * Vout_VLCWrapper implementation 
- *****************************************************************************/
-@implementation Vout_VLCWrapper
-
-static Vout_VLCWrapper *o_vout = nil;
-
-+ (Vout_VLCWrapper *)instance
-{
-    if( o_vout == nil )
-    {
-        o_vout = [[[Vout_VLCWrapper alloc] init] autorelease];
-
-        [[Vout_VLCWrapper sendPort] setDelegate: o_vout];
-        [[NSRunLoop currentRunLoop]
-            addPort: [Vout_VLCWrapper sendPort]
-            forMode: NSDefaultRunLoopMode];
-    }
-
-    return( o_vout );
-}
-
-- (void)dealloc
-{
-    o_vout = nil;
-    [super dealloc];
-}
-
-+ (NSPort *)sendPort
-{
-    return( p_main->p_intf->p_sys->o_port );
-}
-
-- (void)mouseEvent:(unsigned int)ui_status forVout:(void *)_p_vout
-{
-    vout_thread_t *p_vout = (vout_thread_t *)_p_vout;
-
-    if( ui_status & MOUSE_MOVED ) 
-        p_vout->p_sys->b_mouse_moved = 1;
-    if( ui_status & MOUSE_NOT_MOVED ) 
-        p_vout->p_sys->b_mouse_moved = 0;
-    if( ui_status & MOUSE_LAST_MOVED ) 
-        p_vout->p_sys->i_time_mouse_last_moved = mdate();
-    if( ui_status & MOUSE_NOT_LAST_MOVED )
-        p_vout->p_sys->i_time_mouse_last_moved = 0;
-    if( ui_status & MOUSE_DOWN )
-    {
-        if( p_vout->p_sys->b_mouse_pointer_visible )
-        {
-            CGDisplayHideCursor( kCGDirectMainDisplay );
-        }
-        else
-        {
-            CGDisplayShowCursor( kCGDirectMainDisplay );
-        }
-        p_vout->p_sys->b_mouse_pointer_visible = !p_vout->p_sys->b_mouse_pointer_visible;
-    }
-}
-
-- (BOOL)keyDown:(NSEvent *)o_event forVout:(void *)_p_vout
-{
-    unichar key = 0;
-
-    vout_thread_t *p_vout = (vout_thread_t *)_p_vout;
-
-    if( [[o_event characters] length] )
-    {
-        key = [[o_event characters] characterAtIndex: 0];
-    }
-
-    switch( key )
-    {
-        case (unichar)0xf700: /* up-arrow */
-            if ( !p_main->p_intf->p_sys->b_mute
-                  && p_aout_bank->pp_aout[0]->i_volume + VOLUME_STEP
-                       <= VOLUME_MAX )
-            {
-                p_aout_bank->pp_aout[0]->i_volume += VOLUME_STEP;
-            }
-            break;
-
-        case (unichar)0xf701: /* down-arrow */
-            if ( !p_main->p_intf->p_sys->b_mute
-                  && p_aout_bank->pp_aout[0]->i_volume - VOLUME_STEP
-                       >= VOLUME_MIN )
-            {
-                p_aout_bank->pp_aout[0]->i_volume -= VOLUME_STEP;
-            }
-            break;
-
-        case 'f': case 'F':
-            p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
-            break;
-
-        case (unichar)0x1b: /* escape */
-            if ( p_vout->b_fullscreen )
-            {
-                p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
-            }
-            break;
-
-        case 'q': case 'Q':
-            p_vout->p_vlc->b_die = 1;
-            break;
-
-        case ' ':
-            input_SetStatus( p_vout, INPUT_STATUS_PAUSE );
-            break;
-
-        default:
-            return( NO );
-            break;
-    }
-
-    return( YES );
-}
-
-- (void)voutDidResize:(void *)_p_vout
-{
-    vout_thread_t * p_vout = (vout_thread_t *)_p_vout;
-
-    p_vout->i_changes |= VOUT_SIZE_CHANGE;
-}
-
-@end
-
-@implementation Vout_VLCWrapper (Internal)
-
-- (void)handlePortMessage:(NSPortMessage *)o_msg
-{
-    NSData *o_req;
-    struct vout_req_s *p_req;
-
-    o_req = [[o_msg components] lastObject];
-    p_req = *((struct vout_req_s **)[o_req bytes]);
-
-    [p_req->o_lock lock];
-
-    if( p_req->i_type == VOUT_REQ_CREATE_WINDOW )
-    {
-        VLCView *o_view;
-
-        p_req->p_vout->p_sys->o_window = [VLCWindow alloc];
-        [p_req->p_vout->p_sys->o_window 
-            setWrapper: self forVout: (void *)p_req->p_vout];
-        [p_req->p_vout->p_sys->o_window setReleasedWhenClosed: YES];
-
-        if( p_req->p_vout->b_fullscreen )
-        {
-            [p_req->p_vout->p_sys->o_window 
-                initWithContentRect: [[NSScreen mainScreen] frame] 
-                styleMask: NSBorderlessWindowMask 
-                backing: NSBackingStoreBuffered
-                defer: NO screen: [NSScreen mainScreen]];
-
-            [p_req->p_vout->p_sys->o_window 
-                setLevel: CGShieldingWindowLevel()];
-        }
-        else
-        {
-            unsigned int i_stylemask = NSTitledWindowMask |
-                                       NSMiniaturizableWindowMask |
-                                       NSResizableWindowMask;
-
-            [p_req->p_vout->p_sys->o_window 
-                initWithContentRect: p_req->p_vout->p_sys->s_rect 
-                styleMask: i_stylemask
-                backing: NSBackingStoreBuffered
-                defer: NO screen: [NSScreen mainScreen]];
-
-            if( !p_req->p_vout->p_sys->b_pos_saved )
-            {
-                [p_req->p_vout->p_sys->o_window center];
-            }
-        }
-
-        o_view = [[VLCView alloc] 
-            initWithWrapper: self forVout: (void *)p_req->p_vout];
-        [p_req->p_vout->p_sys->o_window setContentView: o_view];
-        [o_view autorelease];
-
-        [o_view lockFocus];
-        p_req->p_vout->p_sys->p_qdport = [o_view qdPort];
-        [o_view unlockFocus];
-
-        [p_req->p_vout->p_sys->o_window setTitle: [NSString 
-            stringWithCString: VOUT_TITLE]];
-        [p_req->p_vout->p_sys->o_window setAcceptsMouseMovedEvents: YES];
-        [p_req->p_vout->p_sys->o_window makeKeyAndOrderFront: nil];
-
-        p_req->i_result = 1;
-    }
-    else if( p_req->i_type == VOUT_REQ_DESTROY_WINDOW )
-    {
-        if( !p_req->p_vout->b_fullscreen )
-        {
-            NSRect s_rect;
-
-            s_rect = [[p_req->p_vout->p_sys->o_window contentView] frame];
-            p_req->p_vout->p_sys->s_rect.size = s_rect.size;
-
-            s_rect = [p_req->p_vout->p_sys->o_window frame];
-            p_req->p_vout->p_sys->s_rect.origin = s_rect.origin;
-
-            p_req->p_vout->p_sys->b_pos_saved = 1;
-        }
-
-        p_req->p_vout->p_sys->p_qdport = nil;
-        [p_req->p_vout->p_sys->o_window close];
-        p_req->p_vout->p_sys->o_window = nil;
-
-        p_req->i_result = 1;
-    }
-
-    [p_req->o_lock unlockWithCondition: 1];
-}
-
-@end
diff --git a/plugins/macosx/vout_window.h b/plugins/macosx/vout_window.h
deleted file mode 100644 (file)
index 4a12f04..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*****************************************************************************
- * vout_window.h: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: vout_window.h,v 1.2 2002/03/19 03:33:52 jlj Exp $
- *
- * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-#import "vout_vlc_wrapper.h"
-
-@interface VLCWindow : NSWindow
-{
-    void *p_vout;
-    Vout_VLCWrapper *o_wrapper;
-}
-
-- (void)setWrapper:(Vout_VLCWrapper *)_o_wrapper forVout:(void *)_p_vout;
-
-@end
diff --git a/plugins/macosx/vout_window.m b/plugins/macosx/vout_window.m
deleted file mode 100644 (file)
index 9ea603a..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*****************************************************************************
- * vout_window.m: MacOS X plugin for vlc
- *****************************************************************************
- * Copyright (C) 2001 VideoLAN
- * $Id: vout_window.m,v 1.3 2002/06/08 19:32:19 sam Exp $
- *
- * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-
-/*****************************************************************************
- * Preamble
- *****************************************************************************/
-#import <Cocoa/Cocoa.h>
-
-#import "vout_window.h"
-
-/*****************************************************************************
- * VLCWindow implementation 
- *****************************************************************************/
-@implementation VLCWindow
-
-- (void)setWrapper:(Vout_VLCWrapper *)_o_wrapper forVout:(void *)_p_vout
-{
-    p_vout = _p_vout;
-    o_wrapper = _o_wrapper;
-}
-
-- (BOOL)canBecomeKeyWindow
-{
-    return( YES );
-}
-
-- (void)becomeKeyWindow
-{
-    [super becomeKeyWindow];
-#if 0
-    [o_wrapper 
-        mouseEvent: (MOUSE_NOT_MOVED | MOUSE_LAST_MOVED)
-        forVout: p_vout];
-#endif
-}
-
-- (void)resignKeyWindow
-{
-    [super resignKeyWindow];
-
-    [o_wrapper
-        mouseEvent: (MOUSE_MOVED | MOUSE_NOT_LAST_MOVED)
-        forVout: p_vout];
-}
-
-- (void)keyDown:(NSEvent *)o_event
-{
-    if( [o_wrapper keyDown: o_event forVout: p_vout] == NO )
-    {
-        [super keyDown: o_event];
-    }
-}
-
-- (void)mouseMoved:(NSEvent *)o_event
-{
-    [o_wrapper
-        mouseEvent: MOUSE_LAST_MOVED
-        forVout: p_vout];
-}
-
-- (void)mouseDown:(NSEvent *)o_event
-{
-    [o_wrapper
-        mouseEvent: MOUSE_DOWN
-        forVout: p_vout];
-}
-
-@end
index 28726a2..3f84acf 100644 (file)
@@ -83,7 +83,7 @@ all-no:
 
 $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
        $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
-         --add-comments --keyword=_ --keyword=N_ \
+         --add-comments --keyword=_ --keyword=N_ --keyword=_NS \
          --files-from=$(srcdir)/POTFILES.in \
        && test ! -f $(PACKAGE).po \
           || ( rm -f $(srcdir)/$(PACKAGE).pot \
index 164792d..d2e9d3f 100644 (file)
@@ -52,6 +52,10 @@ plugins/kde/kde.cpp
 plugins/lirc/lirc.c
 plugins/lpcm_adec/lpcm_adec.c
 plugins/macosx/macosx.m
+plugins/macosx/intf_macosx.m
+plugins/macosx/intf_controls.m
+plugins/macosx/intf_playlist.m
+plugins/macosx/intf_open.m
 plugins/mad/mad_adec.c
 plugins/memcpy/memcpy.c
 plugins/memcpy/memcpyaltivec.c
index 7f9db52..f89a61f 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vlc 0.73.3\n"
-"POT-Creation-Date: 2002-07-12 18:49+0200\n"
+"POT-Creation-Date: 2002-07-15 03:18+0200\n"
 "PO-Revision-Date: 2002-04-18 23:38+0100\n"
 "Last-Translator: Thomas Graf <tgr@reeler.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -671,12 +671,12 @@ msgid "Audio"
 msgstr ""
 
 #. Video options
-#: plugins/directx/directx.c:53 plugins/dummy/dummy.c:51 src/libvlc.h:339
+#: src/libvlc.h:339 plugins/directx/directx.c:53 plugins/dummy/dummy.c:51
 msgid "Video"
 msgstr ""
 
 #. Input options
-#: plugins/satellite/satellite.c:66 src/libvlc.h:352
+#: src/libvlc.h:352 plugins/satellite/satellite.c:66
 msgid "Input"
 msgstr "Eingabe"
 
@@ -691,21 +691,21 @@ msgid "CPU"
 msgstr "Prozessor"
 
 #. Playlist options
-#: plugins/gtk/gnome_interface.c:506 plugins/gtk/gnome_interface.c:2073
-#: plugins/gtk/gnome_interface.c:2098 plugins/gtk/gtk_interface.c:611
-#: plugins/gtk/gtk_interface.c:2342 src/libvlc.h:384
+#: src/libvlc.h:384 plugins/gtk/gtk_interface.c:611
+#: plugins/gtk/gtk_interface.c:2342 plugins/gtk/gnome_interface.c:506
+#: plugins/gtk/gnome_interface.c:2073 plugins/gtk/gnome_interface.c:2098
+#: plugins/macosx/intf_macosx.m:210 plugins/macosx/intf_playlist.m:69
 msgid "Playlist"
 msgstr "Abspielliste"
 
 #. Misc options
-#: plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72 plugins/dsp/dsp.c:81
-#: plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
+#: src/libvlc.h:390 plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72
+#: plugins/dsp/dsp.c:81 plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
 #: plugins/filter/distort.c:55 plugins/filter/transform.c:56
-#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gnome.c:73
-#: plugins/gtk/gtk.c:71 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
+#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gtk.c:71
+#: plugins/gtk/gnome.c:73 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
 #: plugins/mpeg_vdec/video_parser.c:96 plugins/text/logger.c:86
 #: plugins/win32/win32.cpp:48 plugins/x11/x11.c:64 plugins/x11/xvideo.c:74
-#: src/libvlc.h:390
 msgid "Miscellaneous"
 msgstr "Sonstiges"
 
@@ -1036,21 +1036,21 @@ msgstr ""
 #. ****************************************************************************
 #. * Building configuration tree
 #. ****************************************************************************
-#: plugins/gtk/gnome.c:61 plugins/gtk/gtk.c:62
+#: plugins/gtk/gtk.c:62 plugins/gtk/gnome.c:61
 #, fuzzy
 msgid "show tooltips"
 msgstr "Tooltips verstecken"
 
-#: plugins/gtk/gnome.c:62 plugins/gtk/gtk.c:63
+#: plugins/gtk/gtk.c:63 plugins/gtk/gnome.c:62
 #, fuzzy
 msgid "Show tooltips for configuration options."
 msgstr "Keine Tooltips für Konfigurationsoptionen anzeigen"
 
-#: plugins/gtk/gnome.c:67 plugins/gtk/gtk.c:65
+#: plugins/gtk/gtk.c:65 plugins/gtk/gnome.c:67
 msgid "maximum height for the configuration windows"
 msgstr "Maximale Höhe des Konfigurationsfenster"
 
-#: plugins/gtk/gnome.c:69 plugins/gtk/gtk.c:67
+#: plugins/gtk/gtk.c:67 plugins/gtk/gnome.c:69
 msgid ""
 "You can set the maximum height that the configuration windows in the "
 "preferences menu will occupy."
@@ -1072,8 +1072,8 @@ msgstr ""
 msgid "Gnome interface module"
 msgstr "Gnome Benutzeroberfläche Modul"
 
-#: plugins/gtk/gnome_interface.c:202 plugins/gtk/gtk_interface.c:109
-#: plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gtk_interface.c:109 plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gnome_interface.c:202
 msgid "VideoLAN Client"
 msgstr "VideoLAN Client"
 
@@ -1081,45 +1081,45 @@ msgstr "VideoLAN Client"
 msgid "_File"
 msgstr "_Datei"
 
-#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 #: plugins/gtk/gtk_interface.c:153 plugins/gtk/gtk_interface.c:1155
+#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 msgid "_Open File..."
 msgstr "Datei _öffnen..."
 
-#: plugins/gtk/gnome_interface.c:20 plugins/gtk/gnome_interface.c:367
-#: plugins/gtk/gnome_interface.c:801 plugins/gtk/gtk_interface.c:161
-#: plugins/gtk/gtk_interface.c:483 plugins/gtk/gtk_interface.c:1163
+#: plugins/gtk/gtk_interface.c:161 plugins/gtk/gtk_interface.c:483
+#: plugins/gtk/gtk_interface.c:1163 plugins/gtk/gnome_interface.c:20
+#: plugins/gtk/gnome_interface.c:367 plugins/gtk/gnome_interface.c:801
 msgid "Open a File"
 msgstr "Datei öffnen"
 
-#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 #: plugins/gtk/gtk_interface.c:168 plugins/gtk/gtk_interface.c:1167
+#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 msgid "Open _Disc..."
 msgstr "_DVD/VCD laden..."
 
-#: plugins/gtk/gnome_interface.c:27 plugins/gtk/gnome_interface.c:379
-#: plugins/gtk/gnome_interface.c:808 plugins/gtk/gtk_interface.c:176
-#: plugins/gtk/gtk_interface.c:494 plugins/gtk/gtk_interface.c:1175
+#: plugins/gtk/gtk_interface.c:176 plugins/gtk/gtk_interface.c:494
+#: plugins/gtk/gtk_interface.c:1175 plugins/gtk/gnome_interface.c:27
+#: plugins/gtk/gnome_interface.c:379 plugins/gtk/gnome_interface.c:808
 msgid "Open a DVD or VCD"
 msgstr "DVD/VCD laden"
 
-#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 #: plugins/gtk/gtk_interface.c:183 plugins/gtk/gtk_interface.c:1179
+#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 msgid "_Network Stream..."
 msgstr "_Netzwerk Stream..."
 
-#: plugins/gtk/gnome_interface.c:34 plugins/gtk/gnome_interface.c:391
-#: plugins/gtk/gnome_interface.c:815 plugins/gtk/gtk_interface.c:191
-#: plugins/gtk/gtk_interface.c:505 plugins/gtk/gtk_interface.c:1187
+#: plugins/gtk/gtk_interface.c:191 plugins/gtk/gtk_interface.c:505
+#: plugins/gtk/gtk_interface.c:1187 plugins/gtk/gnome_interface.c:34
+#: plugins/gtk/gnome_interface.c:391 plugins/gtk/gnome_interface.c:815
 msgid "Select a Network Stream"
 msgstr "Netzwerk Stream laden"
 
-#: plugins/gtk/gnome_interface.c:41 plugins/gtk/gtk_interface.c:206
+#: plugins/gtk/gtk_interface.c:206 plugins/gtk/gnome_interface.c:41
 msgid "_Eject Disc"
 msgstr "DVD/VCD auswerfen"
 
-#: plugins/gtk/gnome_interface.c:42 plugins/gtk/gnome_interface.c:442
-#: plugins/gtk/gtk_interface.c:214
+#: plugins/gtk/gtk_interface.c:214 plugins/gtk/gnome_interface.c:42
+#: plugins/gtk/gnome_interface.c:442
 msgid "Eject disc"
 msgstr "DVD/VCD auswerfen"
 
@@ -1135,7 +1135,7 @@ msgstr "Programm beenden"
 msgid "_View"
 msgstr "_Ansicht"
 
-#: plugins/gtk/gnome_interface.c:55 plugins/gtk/gtk_interface.c:259
+#: plugins/gtk/gtk_interface.c:259 plugins/gtk/gnome_interface.c:55
 msgid "_Hide interface"
 msgstr "Oberfläche _verstecken"
 
@@ -1143,20 +1143,20 @@ msgstr "Oberfl
 msgid "Hide the main interface window"
 msgstr "Hauptfenster verstecken"
 
-#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 #: plugins/gtk/gtk_interface.c:271 plugins/gtk/gtk_interface.c:1049
+#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 msgid "_Fullscreen"
 msgstr "_Vollbild"
 
-#: plugins/gtk/gnome_interface.c:70 plugins/gtk/gtk_interface.c:290
+#: plugins/gtk/gtk_interface.c:290 plugins/gtk/gnome_interface.c:70
 msgid "Progr_am"
 msgstr "Progr_amm"
 
-#: plugins/gtk/gnome_interface.c:71 plugins/gtk/gtk_interface.c:299
+#: plugins/gtk/gtk_interface.c:299 plugins/gtk/gnome_interface.c:71
 msgid "Choose the program"
 msgstr "Programm wählen"
 
-#: plugins/gtk/gnome_interface.c:77 plugins/gtk/gtk_interface.c:303
+#: plugins/gtk/gtk_interface.c:303 plugins/gtk/gnome_interface.c:77
 msgid "_Title"
 msgstr "_Titel"
 
@@ -1164,32 +1164,32 @@ msgstr "_Titel"
 msgid "Navigate through the stream"
 msgstr "Durch Stream navigieren"
 
-#: plugins/gtk/gnome_interface.c:84 plugins/gtk/gtk_interface.c:316
+#: plugins/gtk/gtk_interface.c:316 plugins/gtk/gnome_interface.c:84
 msgid "_Chapter"
 msgstr "_Kapitel"
 
-#: plugins/gtk/gnome_interface.c:92 plugins/gtk/gtk_interface.c:336
+#: plugins/gtk/gtk_interface.c:336 plugins/gtk/gnome_interface.c:92
 msgid "_Playlist..."
 msgstr "_Playlist..."
 
-#: plugins/gtk/gnome_interface.c:93 plugins/gtk/gtk_interface.c:344
+#: plugins/gtk/gtk_interface.c:344 plugins/gtk/gnome_interface.c:93
 msgid "Open the playlist window"
 msgstr "Playlist Fenster öffnen"
 
-#: plugins/gtk/gnome_interface.c:99 plugins/gtk/gtk_interface.c:348
+#: plugins/gtk/gtk_interface.c:348 plugins/gtk/gnome_interface.c:99
 msgid "_Modules..."
 msgstr "_Module"
 
-#: plugins/gtk/gnome_interface.c:100 plugins/gtk/gtk_interface.c:357
+#: plugins/gtk/gtk_interface.c:357 plugins/gtk/gnome_interface.c:100
 #, fuzzy
 msgid "Open the module manager"
 msgstr "Plugin Manager öffnen"
 
-#: plugins/gtk/gnome_interface.c:106 plugins/gtk/gtk_interface.c:359
+#: plugins/gtk/gtk_interface.c:359 plugins/gtk/gnome_interface.c:106
 msgid "Messages..."
 msgstr "Meldungen"
 
-#: plugins/gtk/gnome_interface.c:107 plugins/gtk/gtk_interface.c:365
+#: plugins/gtk/gtk_interface.c:365 plugins/gtk/gnome_interface.c:107
 msgid "Open the messages window"
 msgstr "Playlist Fenster öffnen"
 
@@ -1201,18 +1201,18 @@ msgstr "_Einstellungen"
 msgid "A_udio"
 msgstr "A_udio"
 
-#: plugins/gtk/gnome_interface.c:119 plugins/gtk/gnome_interface.c:922
-#: plugins/gtk/gtk_interface.c:396
+#: plugins/gtk/gtk_interface.c:396 plugins/gtk/gnome_interface.c:119
+#: plugins/gtk/gnome_interface.c:922
 msgid "Select audio channel"
 msgstr "Audio Kanal festlegen"
 
-#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 #: plugins/gtk/gtk_interface.c:400 plugins/gtk/gtk_interface.c:1125
+#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 msgid "_Subtitles"
 msgstr "_Untertitel"
 
-#: plugins/gtk/gnome_interface.c:126 plugins/gtk/gnome_interface.c:929
-#: plugins/gtk/gtk_interface.c:409
+#: plugins/gtk/gtk_interface.c:409 plugins/gtk/gnome_interface.c:126
+#: plugins/gtk/gnome_interface.c:929
 msgid "Select subtitles channel"
 msgstr "Untertitel festlegen"
 
@@ -1236,123 +1236,131 @@ msgstr "_
 msgid "About this application"
 msgstr "_Über diese Applikation"
 
+#: plugins/gtk/gtk_interface.c:482 plugins/gtk/gtk_interface.c:1596
+#: plugins/gtk/gtk_interface.c:2378 plugins/gtk/gtk_interface.c:2495
 #: plugins/gtk/gnome_interface.c:366 plugins/gtk/gnome_interface.c:1317
-#: plugins/gtk/gnome_interface.c:1963 plugins/gtk/gtk_interface.c:482
-#: plugins/gtk/gtk_interface.c:1596 plugins/gtk/gtk_interface.c:2378
-#: plugins/gtk/gtk_interface.c:2495
+#: plugins/gtk/gnome_interface.c:1963 plugins/macosx/intf_macosx.m:194
 msgid "File"
 msgstr "Datei"
 
-#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
-#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 #: plugins/gtk/gtk_interface.c:493 plugins/gtk/gtk_interface.c:680
 #: plugins/gtk/gtk_interface.c:1707 plugins/gtk/gtk_interface.c:2371
+#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
+#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 msgid "Disc"
 msgstr "DVD/VCD"
 
-#: plugins/gtk/gnome_interface.c:390 plugins/gtk/gtk_interface.c:504
+#: plugins/gtk/gtk_interface.c:504 plugins/gtk/gnome_interface.c:390
 msgid "Net"
 msgstr "Netzwerk"
 
-#: plugins/gtk/gnome_interface.c:402 plugins/gtk/gtk_interface.c:515
+#: plugins/gtk/gtk_interface.c:515 plugins/gtk/gnome_interface.c:402
 msgid "Sat"
 msgstr "Sat"
 
-#: plugins/gtk/gnome_interface.c:403 plugins/gtk/gtk_interface.c:516
+#: plugins/gtk/gtk_interface.c:516 plugins/gtk/gnome_interface.c:403
 msgid "Open a Satellite Card"
 msgstr "Abspielisten Fenster öffnen"
 
-#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 #: plugins/gtk/gtk_interface.c:528 plugins/gtk/gtk_interface.c:1004
+#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 msgid "Back"
 msgstr "Zurück"
 
-#: plugins/gtk/gnome_interface.c:417 plugins/gtk/gtk_interface.c:529
+#: plugins/gtk/gtk_interface.c:529 plugins/gtk/gnome_interface.c:417
 msgid "Go Backward"
 msgstr "Zurück gehen"
 
-#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
 #: plugins/gtk/gtk_interface.c:540 plugins/gtk/gtk_interface.c:997
+#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
+#: plugins/macosx/intf_macosx.m:216 plugins/macosx/intf_macosx.m:239
+#: plugins/macosx/intf_controls.m:392
 msgid "Stop"
 msgstr "Stop"
 
-#: plugins/gtk/gnome_interface.c:430 plugins/gtk/gtk_interface.c:541
+#: plugins/gtk/gtk_interface.c:541 plugins/gtk/gnome_interface.c:430
 msgid "Stop Stream"
 msgstr "Stream stoppen"
 
-#: plugins/gtk/gnome_interface.c:441 plugins/gtk/gtk_interface.c:551
+#: plugins/gtk/gtk_interface.c:551 plugins/gtk/gnome_interface.c:441
 msgid "Eject"
 msgstr "Auswerfen"
 
-#: plugins/gtk/gnome_interface.c:453 plugins/gtk/gnome_interface.c:828
-#: plugins/gtk/gtk_interface.c:562
+#. dock menu
+#: plugins/gtk/gtk_interface.c:562 plugins/gtk/gnome_interface.c:453
+#: plugins/gtk/gnome_interface.c:828 plugins/macosx/intf_macosx.m:214
+#: plugins/macosx/intf_macosx.m:237
 msgid "Play"
 msgstr "Abspielen"
 
-#: plugins/gtk/gnome_interface.c:454 plugins/gtk/gtk_interface.c:563
+#: plugins/gtk/gtk_interface.c:563 plugins/gtk/gnome_interface.c:454
 msgid "Play Stream"
 msgstr "Stream abspielen"
 
-#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
 #: plugins/gtk/gtk_interface.c:573 plugins/gtk/gtk_interface.c:989
+#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
+#: plugins/macosx/intf_macosx.m:215 plugins/macosx/intf_macosx.m:238
+#: plugins/macosx/intf_controls.m:375
 msgid "Pause"
 msgstr "Pause"
 
-#: plugins/gtk/gnome_interface.c:466 plugins/gtk/gtk_interface.c:574
+#: plugins/gtk/gtk_interface.c:574 plugins/gtk/gnome_interface.c:466
 msgid "Pause Stream"
 msgstr "Stream pausieren"
 
-#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 #: plugins/gtk/gtk_interface.c:587 plugins/gtk/gtk_interface.c:1012
+#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 msgid "Slow"
 msgstr "Langsam"
 
-#: plugins/gtk/gnome_interface.c:481 plugins/gtk/gtk_interface.c:588
+#: plugins/gtk/gtk_interface.c:588 plugins/gtk/gnome_interface.c:481
 msgid "Play Slower"
 msgstr "Langsamer abspielen"
 
-#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 #: plugins/gtk/gtk_interface.c:599 plugins/gtk/gtk_interface.c:1020
+#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 msgid "Fast"
 msgstr "Schnell"
 
-#: plugins/gtk/gnome_interface.c:494 plugins/gtk/gtk_interface.c:600
+#: plugins/gtk/gtk_interface.c:600 plugins/gtk/gnome_interface.c:494
 msgid "Play Faster"
 msgstr "Schneller abspielen"
 
-#: plugins/gtk/gnome_interface.c:507 plugins/gtk/gtk_interface.c:612
+#: plugins/gtk/gtk_interface.c:612 plugins/gtk/gnome_interface.c:507
 msgid "Open Playlist"
 msgstr "Abspielliste öffnen"
 
-#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
 #: plugins/gtk/gtk_interface.c:622 plugins/gtk/gtk_interface.c:708
 #: plugins/gtk/gtk_interface.c:752 plugins/gtk/gtk_interface.c:1073
+#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
+#: plugins/macosx/intf_macosx.m:219 plugins/macosx/intf_controls.m:396
 msgid "Prev"
 msgstr "Vorher"
 
-#: plugins/gtk/gnome_interface.c:519 plugins/gtk/gtk_interface.c:623
+#: plugins/gtk/gtk_interface.c:623 plugins/gtk/gnome_interface.c:519
 msgid "Previous File"
 msgstr "Vorherige Datei"
 
-#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
 #: plugins/gtk/gtk_interface.c:633 plugins/gtk/gtk_interface.c:716
 #: plugins/gtk/gtk_interface.c:760 plugins/gtk/gtk_interface.c:1066
+#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
+#: plugins/macosx/intf_macosx.m:220 plugins/macosx/intf_controls.m:397
 msgid "Next"
 msgstr "Nächstes"
 
-#: plugins/gtk/gnome_interface.c:531 plugins/gtk/gtk_interface.c:634
+#: plugins/gtk/gtk_interface.c:634 plugins/gtk/gnome_interface.c:531
 msgid "Next File"
 msgstr "Nächste Datei"
 
-#: plugins/gtk/gnome_interface.c:595 plugins/gtk/gtk_interface.c:694
+#: plugins/gtk/gtk_interface.c:694 plugins/gtk/gnome_interface.c:595
 msgid "Title:"
 msgstr "Titel:"
 
-#: plugins/gtk/gnome_interface.c:638 plugins/gtk/gtk_interface.c:738
+#: plugins/gtk/gtk_interface.c:738 plugins/gtk/gnome_interface.c:638
 msgid "Chapter:"
 msgstr "Kapitel:"
 
-#: plugins/gtk/gnome_interface.c:674 plugins/gtk/gtk_interface.c:775
+#: plugins/gtk/gtk_interface.c:775 plugins/gtk/gnome_interface.c:674
 msgid "No server"
 msgstr "Kein Server"
 
@@ -1360,7 +1368,7 @@ msgstr "Kein Server"
 msgid "Channel:"
 msgstr "Kanal:"
 
-#: plugins/gtk/gnome_interface.c:703 plugins/gtk/gtk_interface.c:804
+#: plugins/gtk/gtk_interface.c:804 plugins/gtk/gnome_interface.c:703
 msgid "Go!"
 msgstr "Los!"
 
@@ -1368,28 +1376,29 @@ msgstr "Los!"
 msgid "_Play"
 msgstr "_Play"
 
-#: plugins/gtk/gnome_interface.c:871 plugins/gtk/gtk_interface.c:1038
+#: plugins/gtk/gtk_interface.c:1038 plugins/gtk/gnome_interface.c:871
 msgid "Toggle _Interface"
 msgstr "Oberfläche ein/ausschalten"
 
-#: plugins/gtk/gnome_interface.c:900 plugins/gtk/gtk_interface.c:1082
+#: plugins/gtk/gtk_interface.c:1082 plugins/gtk/gnome_interface.c:900
 msgid "_Jump..."
 msgstr "_Springen"
 
-#: plugins/gtk/gnome_interface.c:907 plugins/gtk/gtk_interface.c:1091
+#: plugins/gtk/gtk_interface.c:1091 plugins/gtk/gnome_interface.c:907
+#: plugins/macosx/intf_macosx.m:226
 msgid "Program"
 msgstr "Programm"
 
-#: plugins/gtk/gnome_interface.c:914 plugins/gtk/gtk_interface.c:1101
+#: plugins/gtk/gtk_interface.c:1101 plugins/gtk/gnome_interface.c:914
 msgid "_Navigation"
 msgstr "_Navigation"
 
-#: plugins/gtk/gnome_interface.c:118 plugins/gtk/gnome_interface.c:921
-#: plugins/gtk/gtk_interface.c:1113
+#: plugins/gtk/gtk_interface.c:1113 plugins/gtk/gnome_interface.c:118
+#: plugins/gtk/gnome_interface.c:921
 msgid "_Audio"
 msgstr "_Audio"
 
-#: plugins/gtk/gnome_interface.c:937 plugins/gtk/gtk_interface.c:1208
+#: plugins/gtk/gtk_interface.c:1208 plugins/gtk/gnome_interface.c:937
 msgid "Playlist..."
 msgstr "Playlist..."
 
@@ -1397,7 +1406,7 @@ msgstr "Playlist..."
 msgid "About"
 msgstr "Über uns"
 
-#: plugins/gtk/gnome_interface.c:1118 plugins/gtk/gtk_interface.c:1345
+#: plugins/gtk/gtk_interface.c:1345 plugins/gtk/gnome_interface.c:1118
 #: plugins/kde/kde.cpp:123
 msgid "(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"
 msgstr "(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - das VideoLAN Team"
@@ -1412,7 +1421,7 @@ msgid ""
 "http://www.videolan.org/"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1120 plugins/gtk/gtk_interface.c:1371
+#: plugins/gtk/gtk_interface.c:1371 plugins/gtk/gnome_interface.c:1120
 #: plugins/kde/kde.cpp:120
 msgid ""
 "This is the VideoLAN client, a DVD and MPEG player. It can play MPEG and "
@@ -1424,6 +1433,7 @@ msgstr ""
 #: plugins/gtk/gtk_interface.c:1386 plugins/gtk/gtk_interface.c:2058
 #: plugins/gtk/gtk_interface.c:2283 plugins/gtk/gtk_interface.c:2514
 #: plugins/gtk/gtk_interface.c:2621 plugins/gtk/gtk_preferences.c:540
+#: plugins/macosx/intf_open.m:138 plugins/macosx/intf_open.m:151
 msgid "OK"
 msgstr "OK"
 
@@ -1432,119 +1442,125 @@ msgstr "OK"
 msgid "Open Target"
 msgstr "Stream öffnen"
 
-#: plugins/gtk/gnome_interface.c:1224 plugins/gtk/gtk_interface.c:1503
+#: plugins/gtk/gtk_interface.c:1503 plugins/gtk/gnome_interface.c:1224
 msgid "Media Resource Locator (MRL)"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1246 plugins/gtk/gtk_interface.c:1525
+#: plugins/gtk/gtk_interface.c:1525 plugins/gtk/gnome_interface.c:1246
 #, fuzzy
 msgid "Open Target:"
 msgstr "Stream öffnen"
 
-#: plugins/gtk/gnome_interface.c:1266 plugins/gtk/gtk_interface.c:1545
+#: plugins/gtk/gtk_interface.c:1545 plugins/gtk/gnome_interface.c:1266
 msgid ""
 "Alternatively, you can build an MRL using one of the following predefined "
 "targets:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1310 plugins/gtk/gtk_interface.c:1589
+#: plugins/gtk/gtk_interface.c:1589 plugins/gtk/gnome_interface.c:1310
 msgid "Browse..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1334 plugins/gtk/gtk_interface.c:1613
+#: plugins/gtk/gtk_interface.c:1613 plugins/gtk/gnome_interface.c:1334
 #: plugins/gtk/gtk_menu.c:904 plugins/gtk/gtk_menu.c:925
+#: plugins/macosx/intf_macosx.m:227 plugins/macosx/intf_open.m:142
 msgid "Title"
 msgstr "Titel"
 
-#: plugins/gtk/gnome_interface.c:1344 plugins/gtk/gtk_interface.c:1623
+#: plugins/gtk/gtk_interface.c:1623 plugins/gtk/gnome_interface.c:1344
 #: plugins/gtk/gtk_menu.c:799 plugins/gtk/gtk_menu.c:934
+#: plugins/macosx/intf_macosx.m:228 plugins/macosx/intf_open.m:143
 msgid "Chapter"
 msgstr "Kapitel"
 
-#: plugins/gtk/gnome_interface.c:1364 plugins/gtk/gtk_interface.c:1643
+#: plugins/gtk/gtk_interface.c:1643 plugins/gtk/gnome_interface.c:1364
+#: plugins/macosx/intf_open.m:140
 msgid "Disc type"
 msgstr "DVD/VCD Typ"
 
-#: plugins/gtk/gnome_interface.c:1383 plugins/gtk/gtk_interface.c:1662
+#: plugins/gtk/gtk_interface.c:1662 plugins/gtk/gnome_interface.c:1383
 msgid "DVD"
 msgstr "DVD"
 
-#: plugins/gtk/gnome_interface.c:1391 plugins/gtk/gtk_interface.c:1670
+#: plugins/gtk/gtk_interface.c:1670 plugins/gtk/gnome_interface.c:1391
 msgid "VCD"
 msgstr "VCD"
 
-#: plugins/gtk/gnome_interface.c:1399 plugins/gtk/gtk_interface.c:1678
+#: plugins/gtk/gtk_interface.c:1678 plugins/gtk/gnome_interface.c:1399
 msgid "Device name"
 msgstr "Gerätename"
 
-#: plugins/gtk/gnome_interface.c:1445 plugins/gtk/gtk_interface.c:1724
+#: plugins/gtk/gtk_interface.c:1724 plugins/gtk/gnome_interface.c:1445
 msgid "UDP"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1455 plugins/gtk/gtk_interface.c:1734
+#: plugins/gtk/gtk_interface.c:1734 plugins/gtk/gnome_interface.c:1455
 msgid "UDP Multicast"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1465 plugins/gtk/gtk_interface.c:1744
+#: plugins/gtk/gtk_interface.c:1744 plugins/gtk/gnome_interface.c:1465
 #, fuzzy
 msgid "Channel server "
 msgstr "Kanal Server"
 
-#: plugins/gtk/gnome_interface.c:1475 plugins/gtk/gtk_interface.c:1754
+#: plugins/gtk/gtk_interface.c:1754 plugins/gtk/gnome_interface.c:1475
 msgid "HTTP"
 msgstr "HTTP"
 
-#: plugins/gtk/gnome_interface.c:1485 plugins/gtk/gnome_interface.c:1560
-#: plugins/gtk/gnome_interface.c:1571 plugins/gtk/gtk_interface.c:1764
-#: plugins/gtk/gtk_interface.c:1839 plugins/gtk/gtk_interface.c:1850
+#: plugins/gtk/gtk_interface.c:1764 plugins/gtk/gtk_interface.c:1839
+#: plugins/gtk/gtk_interface.c:1850 plugins/gtk/gnome_interface.c:1485
+#: plugins/gtk/gnome_interface.c:1560 plugins/gtk/gnome_interface.c:1571
+#: plugins/macosx/intf_open.m:148
 msgid "Port"
 msgstr "Port"
 
-#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
 #: plugins/gtk/gtk_interface.c:1774 plugins/gtk/gtk_interface.c:1786
+#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
+#: plugins/macosx/intf_open.m:147
 msgid "Address"
 msgstr "Adresse"
 
-#: plugins/gtk/gnome_interface.c:1517 plugins/gtk/gtk_interface.c:1796
+#: plugins/gtk/gtk_interface.c:1796 plugins/gtk/gnome_interface.c:1517
 msgid "URL"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 #: plugins/gtk/gtk_interface.c:1906 plugins/gtk/gtk_interface.c:2385
+#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 msgid "Network"
 msgstr "Netzwerk"
 
-#: plugins/gtk/gnome_interface.c:1644 plugins/gtk/gtk_interface.c:1923
+#: plugins/gtk/gtk_interface.c:1923 plugins/gtk/gnome_interface.c:1644
 msgid "Symbol Rate"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1654 plugins/gtk/gtk_interface.c:1933
+#: plugins/gtk/gtk_interface.c:1933 plugins/gtk/gnome_interface.c:1654
 msgid "Frequency"
 msgstr "Frequenz"
 
-#: plugins/gtk/gnome_interface.c:1664 plugins/gtk/gtk_interface.c:1943
+#: plugins/gtk/gtk_interface.c:1943 plugins/gtk/gnome_interface.c:1664
 msgid "Polarization"
 msgstr "Polarisation"
 
-#: plugins/gtk/gnome_interface.c:1684 plugins/gtk/gtk_interface.c:1963
+#: plugins/gtk/gtk_interface.c:1963 plugins/gtk/gnome_interface.c:1684
 msgid "FEC"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1703 plugins/gtk/gtk_interface.c:1982
+#: plugins/gtk/gtk_interface.c:1982 plugins/gtk/gnome_interface.c:1703
 msgid "Vertical"
 msgstr "Vertikal"
 
-#: plugins/gtk/gnome_interface.c:1711 plugins/gtk/gtk_interface.c:1990
+#: plugins/gtk/gtk_interface.c:1990 plugins/gtk/gnome_interface.c:1711
 msgid "Horizontal"
 msgstr "Horizontal"
 
-#: plugins/gtk/gnome_interface.c:1753 plugins/gtk/gtk_interface.c:2032
+#: plugins/gtk/gtk_interface.c:2032 plugins/gtk/gnome_interface.c:1753
 #, fuzzy
 msgid "Satellite"
 msgstr "Satelliten Karte öffnen"
 
 #: plugins/gtk/gtk_interface.c:2065 plugins/gtk/gtk_interface.c:2290
 #: plugins/gtk/gtk_interface.c:2521 plugins/gtk/gtk_preferences.c:552
+#: plugins/macosx/intf_open.m:139 plugins/macosx/intf_open.m:152
 msgid "Cancel"
 msgstr "Abbrechen"
 
@@ -1560,32 +1576,32 @@ msgstr "Springen"
 msgid "Go to:"
 msgstr "Gehe zu:"
 
-#: plugins/gtk/gnome_interface.c:2294 plugins/gtk/gtk_interface.c:2233
+#: plugins/gtk/gtk_interface.c:2233 plugins/gtk/gnome_interface.c:2294
 msgid "s."
 msgstr "s."
 
-#: plugins/gtk/gnome_interface.c:2309 plugins/gtk/gtk_interface.c:2248
+#: plugins/gtk/gtk_interface.c:2248 plugins/gtk/gnome_interface.c:2309
 msgid "m:"
 msgstr "m:"
 
-#: plugins/gtk/gnome_interface.c:2324 plugins/gtk/gtk_interface.c:2263
+#: plugins/gtk/gtk_interface.c:2263 plugins/gtk/gnome_interface.c:2324
 msgid "h:"
 msgstr "h:"
 
-#: plugins/gtk/gnome_interface.c:2034 plugins/gtk/gtk_interface.c:2357
+#: plugins/gtk/gtk_interface.c:2357 plugins/gtk/gnome_interface.c:2034
 msgid "Add"
 msgstr "Hinzufügen"
 
-#: plugins/gtk/gnome_interface.c:1977 plugins/gtk/gnome_interface.c:2118
-#: plugins/gtk/gtk_interface.c:2392
+#: plugins/gtk/gtk_interface.c:2392 plugins/gtk/gnome_interface.c:1977
+#: plugins/gtk/gnome_interface.c:2118
 msgid "Url"
 msgstr "URL"
 
-#: plugins/gtk/gnome_interface.c:2041 plugins/gtk/gtk_interface.c:2399
+#: plugins/gtk/gtk_interface.c:2399 plugins/gtk/gnome_interface.c:2041
 msgid "Delete"
 msgstr "Löschen"
 
-#: plugins/gtk/gnome_interface.c:1989 plugins/gtk/gtk_interface.c:2413
+#: plugins/gtk/gtk_interface.c:2413 plugins/gtk/gnome_interface.c:1989
 msgid "All"
 msgstr "Alle"
 
@@ -1593,7 +1609,7 @@ msgstr "Alle"
 msgid "Selected"
 msgstr "Selektiert"
 
-#: plugins/gtk/gnome_interface.c:2048 plugins/gtk/gtk_interface.c:2427
+#: plugins/gtk/gtk_interface.c:2427 plugins/gtk/gnome_interface.c:2048
 msgid "Selection"
 msgstr "Selektion"
 
@@ -1609,11 +1625,12 @@ msgstr "_Umkehren"
 msgid "_Select"
 msgstr "_Festlegen"
 
-#: plugins/gtk/gnome_interface.c:2125 plugins/gtk/gtk_interface.c:2502
+#: plugins/gtk/gtk_interface.c:2502 plugins/gtk/gnome_interface.c:2125
 msgid "Duration"
 msgstr "Dauer"
 
-#: plugins/gtk/gnome_interface.c:2381 plugins/gtk/gtk_interface.c:2592
+#: plugins/gtk/gtk_interface.c:2592 plugins/gtk/gnome_interface.c:2381
+#: plugins/macosx/intf_macosx.m:185 plugins/macosx/intf_macosx.m:211
 msgid "Messages"
 msgstr "Meldungen"
 
@@ -1661,7 +1678,7 @@ msgstr "Durch Titel und Kapitel navigieren"
 msgid "Open Stream"
 msgstr "Stream öffnen"
 
-#: plugins/gtk/gnome_interface.c:1868
+#: plugins/gtk/gnome_interface.c:1868 plugins/macosx/intf_macosx.m:195
 msgid "Open File"
 msgstr "Datei öffnen"
 
@@ -1785,6 +1802,158 @@ msgstr "linearer PCM Audio Dekoder"
 msgid "MacOS X interface, sound and video module"
 msgstr "MaxOS X Oberfläche, Audio und Video Modul"
 
+#: plugins/macosx/intf_macosx.m:186 plugins/macosx/intf_playlist.m:70
+msgid "Close"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:188
+#, fuzzy
+msgid "About vlc"
+msgstr "Über uns"
+
+#: plugins/macosx/intf_macosx.m:189
+msgid "Hide vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:190
+#, fuzzy
+msgid "Hide Others"
+msgstr "Oberfläche _verstecken"
+
+#: plugins/macosx/intf_macosx.m:191
+msgid "Show All"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:192
+msgid "Quit vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:196 plugins/macosx/intf_open.m:137
+msgid "Open Disc"
+msgstr "DVD/VCD öffnen"
+
+#: plugins/macosx/intf_macosx.m:197 plugins/macosx/intf_open.m:145
+msgid "Open Network"
+msgstr "Netzwerk öffnen"
+
+#: plugins/macosx/intf_macosx.m:198
+#, fuzzy
+msgid "Open Quickly..."
+msgstr "Datei _öffnen..."
+
+#: plugins/macosx/intf_macosx.m:199
+#, fuzzy
+msgid "Open Recent"
+msgstr "Stream öffnen"
+
+#. Recent Items Menu
+#: plugins/macosx/intf_macosx.m:200 plugins/macosx/intf_macosx.m:755
+msgid "Clear Menu"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:202
+#, fuzzy
+msgid "Edit"
+msgstr "B_eenden"
+
+#: plugins/macosx/intf_macosx.m:203
+msgid "Cut"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:204
+#, fuzzy
+msgid "Copy"
+msgstr "Kürzen"
+
+#: plugins/macosx/intf_macosx.m:205
+#, fuzzy
+msgid "Paste"
+msgstr "Pause"
+
+#: plugins/macosx/intf_macosx.m:206
+msgid "Clear"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:207
+#, fuzzy
+msgid "Select All"
+msgstr "Datei festlegen"
+
+#: plugins/macosx/intf_macosx.m:209
+#, fuzzy
+msgid "View"
+msgstr "_Ansicht"
+
+#: plugins/macosx/intf_macosx.m:213
+msgid "Controls"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:217 plugins/macosx/intf_controls.m:376
+#, fuzzy
+msgid "Faster"
+msgstr "Schnell"
+
+#: plugins/macosx/intf_macosx.m:218 plugins/macosx/intf_controls.m:377
+#, fuzzy
+msgid "Slower"
+msgstr "Langsam"
+
+#: plugins/macosx/intf_macosx.m:221
+msgid "Loop"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:222 plugins/macosx/intf_controls.m:414
+msgid "Volume Up"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:223 plugins/macosx/intf_controls.m:415
+msgid "Volume Down"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:224 plugins/macosx/intf_controls.m:419
+msgid "Mute"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:225 plugins/macosx/intf_controls.m:451
+#, fuzzy
+msgid "Fullscreen"
+msgstr "_Vollbild"
+
+#: plugins/macosx/intf_macosx.m:229
+msgid "Language"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:230
+#, fuzzy
+msgid "Subtitles"
+msgstr "_Untertitel"
+
+#: plugins/macosx/intf_macosx.m:232
+msgid "Window"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:233
+msgid "Minimize"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:234
+msgid "Bring All to Front"
+msgstr ""
+
+#: plugins/macosx/intf_open.m:141
+msgid "Starting position"
+msgstr "Startposition"
+
+#: plugins/macosx/intf_open.m:146
+#, fuzzy
+msgid "Network mode"
+msgstr "Netzwerk"
+
+#: plugins/macosx/intf_open.m:150
+#, fuzzy
+msgid "Open Quickly"
+msgstr "Datei öffnen"
+
 #. ****************************************************************************
 #. * Build configuration tree.
 #. ****************************************************************************
@@ -2126,16 +2295,6 @@ msgstr ""
 msgid "XVideo extension module"
 msgstr "XVideo Erweiterung Modul"
 
-#~ msgid "Starting position"
-#~ msgstr "Startposition"
-
-#, fuzzy
-#~ msgid "Network mode"
-#~ msgstr "Netzwerk"
-
-#~ msgid "Open Disc"
-#~ msgstr "DVD/VCD öffnen"
-
 #~ msgid "Device name:"
 #~ msgstr "Gerätename:"
 
@@ -2166,9 +2325,6 @@ msgstr "XVideo Erweiterung Modul"
 #~ msgid "Open Satellite Card"
 #~ msgstr "Satelliten Karte öffnen"
 
-#~ msgid "Open Network"
-#~ msgstr "Netzwerk öffnen"
-
 #~ msgid "disable hardware acceleration for the video output"
 #~ msgstr "Hardware Beschleuning für Video Ausgabe deaktivieren"
 
index 6a844d3..c150d14 100644 (file)
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-07-12 18:49+0200\n"
+"POT-Creation-Date: 2002-07-15 03:18+0200\n"
 "PO-Revision-Date: 2002-04-22 09:56+0200\n"
 "Last-Translator: Samuel Hocevar <sam@zoy.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -607,12 +607,12 @@ msgid "Audio"
 msgstr ""
 
 #. Video options
-#: plugins/directx/directx.c:53 plugins/dummy/dummy.c:51 src/libvlc.h:339
+#: src/libvlc.h:339 plugins/directx/directx.c:53 plugins/dummy/dummy.c:51
 msgid "Video"
 msgstr ""
 
 #. Input options
-#: plugins/satellite/satellite.c:66 src/libvlc.h:352
+#: src/libvlc.h:352 plugins/satellite/satellite.c:66
 msgid "Input"
 msgstr ""
 
@@ -627,21 +627,21 @@ msgid "CPU"
 msgstr ""
 
 #. Playlist options
-#: plugins/gtk/gnome_interface.c:506 plugins/gtk/gnome_interface.c:2073
-#: plugins/gtk/gnome_interface.c:2098 plugins/gtk/gtk_interface.c:611
-#: plugins/gtk/gtk_interface.c:2342 src/libvlc.h:384
+#: src/libvlc.h:384 plugins/gtk/gtk_interface.c:611
+#: plugins/gtk/gtk_interface.c:2342 plugins/gtk/gnome_interface.c:506
+#: plugins/gtk/gnome_interface.c:2073 plugins/gtk/gnome_interface.c:2098
+#: plugins/macosx/intf_macosx.m:210 plugins/macosx/intf_playlist.m:69
 msgid "Playlist"
 msgstr ""
 
 #. Misc options
-#: plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72 plugins/dsp/dsp.c:81
-#: plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
+#: src/libvlc.h:390 plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72
+#: plugins/dsp/dsp.c:81 plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
 #: plugins/filter/distort.c:55 plugins/filter/transform.c:56
-#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gnome.c:73
-#: plugins/gtk/gtk.c:71 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
+#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gtk.c:71
+#: plugins/gtk/gnome.c:73 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
 #: plugins/mpeg_vdec/video_parser.c:96 plugins/text/logger.c:86
 #: plugins/win32/win32.cpp:48 plugins/x11/x11.c:64 plugins/x11/xvideo.c:74
-#: src/libvlc.h:390
 msgid "Miscellaneous"
 msgstr ""
 
@@ -968,19 +968,19 @@ msgstr ""
 #. ****************************************************************************
 #. * Building configuration tree
 #. ****************************************************************************
-#: plugins/gtk/gnome.c:61 plugins/gtk/gtk.c:62
+#: plugins/gtk/gtk.c:62 plugins/gtk/gnome.c:61
 msgid "show tooltips"
 msgstr ""
 
-#: plugins/gtk/gnome.c:62 plugins/gtk/gtk.c:63
+#: plugins/gtk/gtk.c:63 plugins/gtk/gnome.c:62
 msgid "Show tooltips for configuration options."
 msgstr ""
 
-#: plugins/gtk/gnome.c:67 plugins/gtk/gtk.c:65
+#: plugins/gtk/gtk.c:65 plugins/gtk/gnome.c:67
 msgid "maximum height for the configuration windows"
 msgstr ""
 
-#: plugins/gtk/gnome.c:69 plugins/gtk/gtk.c:67
+#: plugins/gtk/gtk.c:67 plugins/gtk/gnome.c:69
 msgid ""
 "You can set the maximum height that the configuration windows in the "
 "preferences menu will occupy."
@@ -1002,8 +1002,8 @@ msgstr ""
 msgid "Gnome interface module"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:202 plugins/gtk/gtk_interface.c:109
-#: plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gtk_interface.c:109 plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gnome_interface.c:202
 msgid "VideoLAN Client"
 msgstr ""
 
@@ -1011,45 +1011,45 @@ msgstr ""
 msgid "_File"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 #: plugins/gtk/gtk_interface.c:153 plugins/gtk/gtk_interface.c:1155
+#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 msgid "_Open File..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:20 plugins/gtk/gnome_interface.c:367
-#: plugins/gtk/gnome_interface.c:801 plugins/gtk/gtk_interface.c:161
-#: plugins/gtk/gtk_interface.c:483 plugins/gtk/gtk_interface.c:1163
+#: plugins/gtk/gtk_interface.c:161 plugins/gtk/gtk_interface.c:483
+#: plugins/gtk/gtk_interface.c:1163 plugins/gtk/gnome_interface.c:20
+#: plugins/gtk/gnome_interface.c:367 plugins/gtk/gnome_interface.c:801
 msgid "Open a File"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 #: plugins/gtk/gtk_interface.c:168 plugins/gtk/gtk_interface.c:1167
+#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 msgid "Open _Disc..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:27 plugins/gtk/gnome_interface.c:379
-#: plugins/gtk/gnome_interface.c:808 plugins/gtk/gtk_interface.c:176
-#: plugins/gtk/gtk_interface.c:494 plugins/gtk/gtk_interface.c:1175
+#: plugins/gtk/gtk_interface.c:176 plugins/gtk/gtk_interface.c:494
+#: plugins/gtk/gtk_interface.c:1175 plugins/gtk/gnome_interface.c:27
+#: plugins/gtk/gnome_interface.c:379 plugins/gtk/gnome_interface.c:808
 msgid "Open a DVD or VCD"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 #: plugins/gtk/gtk_interface.c:183 plugins/gtk/gtk_interface.c:1179
+#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 msgid "_Network Stream..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:34 plugins/gtk/gnome_interface.c:391
-#: plugins/gtk/gnome_interface.c:815 plugins/gtk/gtk_interface.c:191
-#: plugins/gtk/gtk_interface.c:505 plugins/gtk/gtk_interface.c:1187
+#: plugins/gtk/gtk_interface.c:191 plugins/gtk/gtk_interface.c:505
+#: plugins/gtk/gtk_interface.c:1187 plugins/gtk/gnome_interface.c:34
+#: plugins/gtk/gnome_interface.c:391 plugins/gtk/gnome_interface.c:815
 msgid "Select a Network Stream"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:41 plugins/gtk/gtk_interface.c:206
+#: plugins/gtk/gtk_interface.c:206 plugins/gtk/gnome_interface.c:41
 msgid "_Eject Disc"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:42 plugins/gtk/gnome_interface.c:442
-#: plugins/gtk/gtk_interface.c:214
+#: plugins/gtk/gtk_interface.c:214 plugins/gtk/gnome_interface.c:42
+#: plugins/gtk/gnome_interface.c:442
 msgid "Eject disc"
 msgstr ""
 
@@ -1065,7 +1065,7 @@ msgstr "Exit the programme"
 msgid "_View"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:55 plugins/gtk/gtk_interface.c:259
+#: plugins/gtk/gtk_interface.c:259 plugins/gtk/gnome_interface.c:55
 msgid "_Hide interface"
 msgstr ""
 
@@ -1073,20 +1073,20 @@ msgstr ""
 msgid "Hide the main interface window"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 #: plugins/gtk/gtk_interface.c:271 plugins/gtk/gtk_interface.c:1049
+#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 msgid "_Fullscreen"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:70 plugins/gtk/gtk_interface.c:290
+#: plugins/gtk/gtk_interface.c:290 plugins/gtk/gnome_interface.c:70
 msgid "Progr_am"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:71 plugins/gtk/gtk_interface.c:299
+#: plugins/gtk/gtk_interface.c:299 plugins/gtk/gnome_interface.c:71
 msgid "Choose the program"
 msgstr "Choose the programme"
 
-#: plugins/gtk/gnome_interface.c:77 plugins/gtk/gtk_interface.c:303
+#: plugins/gtk/gtk_interface.c:303 plugins/gtk/gnome_interface.c:77
 msgid "_Title"
 msgstr ""
 
@@ -1094,31 +1094,31 @@ msgstr ""
 msgid "Navigate through the stream"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:84 plugins/gtk/gtk_interface.c:316
+#: plugins/gtk/gtk_interface.c:316 plugins/gtk/gnome_interface.c:84
 msgid "_Chapter"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:92 plugins/gtk/gtk_interface.c:336
+#: plugins/gtk/gtk_interface.c:336 plugins/gtk/gnome_interface.c:92
 msgid "_Playlist..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:93 plugins/gtk/gtk_interface.c:344
+#: plugins/gtk/gtk_interface.c:344 plugins/gtk/gnome_interface.c:93
 msgid "Open the playlist window"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:99 plugins/gtk/gtk_interface.c:348
+#: plugins/gtk/gtk_interface.c:348 plugins/gtk/gnome_interface.c:99
 msgid "_Modules..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:100 plugins/gtk/gtk_interface.c:357
+#: plugins/gtk/gtk_interface.c:357 plugins/gtk/gnome_interface.c:100
 msgid "Open the module manager"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:106 plugins/gtk/gtk_interface.c:359
+#: plugins/gtk/gtk_interface.c:359 plugins/gtk/gnome_interface.c:106
 msgid "Messages..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:107 plugins/gtk/gtk_interface.c:365
+#: plugins/gtk/gtk_interface.c:365 plugins/gtk/gnome_interface.c:107
 msgid "Open the messages window"
 msgstr ""
 
@@ -1130,18 +1130,18 @@ msgstr ""
 msgid "A_udio"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:119 plugins/gtk/gnome_interface.c:922
-#: plugins/gtk/gtk_interface.c:396
+#: plugins/gtk/gtk_interface.c:396 plugins/gtk/gnome_interface.c:119
+#: plugins/gtk/gnome_interface.c:922
 msgid "Select audio channel"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 #: plugins/gtk/gtk_interface.c:400 plugins/gtk/gtk_interface.c:1125
+#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 msgid "_Subtitles"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:126 plugins/gtk/gnome_interface.c:929
-#: plugins/gtk/gtk_interface.c:409
+#: plugins/gtk/gtk_interface.c:409 plugins/gtk/gnome_interface.c:126
+#: plugins/gtk/gnome_interface.c:929
 msgid "Select subtitles channel"
 msgstr ""
 
@@ -1165,123 +1165,131 @@ msgstr ""
 msgid "About this application"
 msgstr ""
 
+#: plugins/gtk/gtk_interface.c:482 plugins/gtk/gtk_interface.c:1596
+#: plugins/gtk/gtk_interface.c:2378 plugins/gtk/gtk_interface.c:2495
 #: plugins/gtk/gnome_interface.c:366 plugins/gtk/gnome_interface.c:1317
-#: plugins/gtk/gnome_interface.c:1963 plugins/gtk/gtk_interface.c:482
-#: plugins/gtk/gtk_interface.c:1596 plugins/gtk/gtk_interface.c:2378
-#: plugins/gtk/gtk_interface.c:2495
+#: plugins/gtk/gnome_interface.c:1963 plugins/macosx/intf_macosx.m:194
 msgid "File"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
-#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 #: plugins/gtk/gtk_interface.c:493 plugins/gtk/gtk_interface.c:680
 #: plugins/gtk/gtk_interface.c:1707 plugins/gtk/gtk_interface.c:2371
+#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
+#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 msgid "Disc"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:390 plugins/gtk/gtk_interface.c:504
+#: plugins/gtk/gtk_interface.c:504 plugins/gtk/gnome_interface.c:390
 msgid "Net"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:402 plugins/gtk/gtk_interface.c:515
+#: plugins/gtk/gtk_interface.c:515 plugins/gtk/gnome_interface.c:402
 msgid "Sat"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:403 plugins/gtk/gtk_interface.c:516
+#: plugins/gtk/gtk_interface.c:516 plugins/gtk/gnome_interface.c:403
 msgid "Open a Satellite Card"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 #: plugins/gtk/gtk_interface.c:528 plugins/gtk/gtk_interface.c:1004
+#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 msgid "Back"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:417 plugins/gtk/gtk_interface.c:529
+#: plugins/gtk/gtk_interface.c:529 plugins/gtk/gnome_interface.c:417
 msgid "Go Backward"
 msgstr "Go Backwards"
 
-#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
 #: plugins/gtk/gtk_interface.c:540 plugins/gtk/gtk_interface.c:997
+#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
+#: plugins/macosx/intf_macosx.m:216 plugins/macosx/intf_macosx.m:239
+#: plugins/macosx/intf_controls.m:392
 msgid "Stop"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:430 plugins/gtk/gtk_interface.c:541
+#: plugins/gtk/gtk_interface.c:541 plugins/gtk/gnome_interface.c:430
 msgid "Stop Stream"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:441 plugins/gtk/gtk_interface.c:551
+#: plugins/gtk/gtk_interface.c:551 plugins/gtk/gnome_interface.c:441
 msgid "Eject"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:453 plugins/gtk/gnome_interface.c:828
-#: plugins/gtk/gtk_interface.c:562
+#. dock menu
+#: plugins/gtk/gtk_interface.c:562 plugins/gtk/gnome_interface.c:453
+#: plugins/gtk/gnome_interface.c:828 plugins/macosx/intf_macosx.m:214
+#: plugins/macosx/intf_macosx.m:237
 msgid "Play"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:454 plugins/gtk/gtk_interface.c:563
+#: plugins/gtk/gtk_interface.c:563 plugins/gtk/gnome_interface.c:454
 msgid "Play Stream"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
 #: plugins/gtk/gtk_interface.c:573 plugins/gtk/gtk_interface.c:989
+#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
+#: plugins/macosx/intf_macosx.m:215 plugins/macosx/intf_macosx.m:238
+#: plugins/macosx/intf_controls.m:375
 msgid "Pause"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:466 plugins/gtk/gtk_interface.c:574
+#: plugins/gtk/gtk_interface.c:574 plugins/gtk/gnome_interface.c:466
 msgid "Pause Stream"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 #: plugins/gtk/gtk_interface.c:587 plugins/gtk/gtk_interface.c:1012
+#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 msgid "Slow"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:481 plugins/gtk/gtk_interface.c:588
+#: plugins/gtk/gtk_interface.c:588 plugins/gtk/gnome_interface.c:481
 msgid "Play Slower"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 #: plugins/gtk/gtk_interface.c:599 plugins/gtk/gtk_interface.c:1020
+#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 msgid "Fast"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:494 plugins/gtk/gtk_interface.c:600
+#: plugins/gtk/gtk_interface.c:600 plugins/gtk/gnome_interface.c:494
 msgid "Play Faster"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:507 plugins/gtk/gtk_interface.c:612
+#: plugins/gtk/gtk_interface.c:612 plugins/gtk/gnome_interface.c:507
 msgid "Open Playlist"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
 #: plugins/gtk/gtk_interface.c:622 plugins/gtk/gtk_interface.c:708
 #: plugins/gtk/gtk_interface.c:752 plugins/gtk/gtk_interface.c:1073
+#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
+#: plugins/macosx/intf_macosx.m:219 plugins/macosx/intf_controls.m:396
 msgid "Prev"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:519 plugins/gtk/gtk_interface.c:623
+#: plugins/gtk/gtk_interface.c:623 plugins/gtk/gnome_interface.c:519
 msgid "Previous File"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
 #: plugins/gtk/gtk_interface.c:633 plugins/gtk/gtk_interface.c:716
 #: plugins/gtk/gtk_interface.c:760 plugins/gtk/gtk_interface.c:1066
+#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
+#: plugins/macosx/intf_macosx.m:220 plugins/macosx/intf_controls.m:397
 msgid "Next"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:531 plugins/gtk/gtk_interface.c:634
+#: plugins/gtk/gtk_interface.c:634 plugins/gtk/gnome_interface.c:531
 msgid "Next File"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:595 plugins/gtk/gtk_interface.c:694
+#: plugins/gtk/gtk_interface.c:694 plugins/gtk/gnome_interface.c:595
 msgid "Title:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:638 plugins/gtk/gtk_interface.c:738
+#: plugins/gtk/gtk_interface.c:738 plugins/gtk/gnome_interface.c:638
 msgid "Chapter:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:674 plugins/gtk/gtk_interface.c:775
+#: plugins/gtk/gtk_interface.c:775 plugins/gtk/gnome_interface.c:674
 msgid "No server"
 msgstr ""
 
@@ -1289,7 +1297,7 @@ msgstr ""
 msgid "Channel:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:703 plugins/gtk/gtk_interface.c:804
+#: plugins/gtk/gtk_interface.c:804 plugins/gtk/gnome_interface.c:703
 msgid "Go!"
 msgstr ""
 
@@ -1297,28 +1305,29 @@ msgstr ""
 msgid "_Play"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:871 plugins/gtk/gtk_interface.c:1038
+#: plugins/gtk/gtk_interface.c:1038 plugins/gtk/gnome_interface.c:871
 msgid "Toggle _Interface"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:900 plugins/gtk/gtk_interface.c:1082
+#: plugins/gtk/gtk_interface.c:1082 plugins/gtk/gnome_interface.c:900
 msgid "_Jump..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:907 plugins/gtk/gtk_interface.c:1091
+#: plugins/gtk/gtk_interface.c:1091 plugins/gtk/gnome_interface.c:907
+#: plugins/macosx/intf_macosx.m:226
 msgid "Program"
 msgstr "Programme"
 
-#: plugins/gtk/gnome_interface.c:914 plugins/gtk/gtk_interface.c:1101
+#: plugins/gtk/gtk_interface.c:1101 plugins/gtk/gnome_interface.c:914
 msgid "_Navigation"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:118 plugins/gtk/gnome_interface.c:921
-#: plugins/gtk/gtk_interface.c:1113
+#: plugins/gtk/gtk_interface.c:1113 plugins/gtk/gnome_interface.c:118
+#: plugins/gtk/gnome_interface.c:921
 msgid "_Audio"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:937 plugins/gtk/gtk_interface.c:1208
+#: plugins/gtk/gtk_interface.c:1208 plugins/gtk/gnome_interface.c:937
 msgid "Playlist..."
 msgstr ""
 
@@ -1326,7 +1335,7 @@ msgstr ""
 msgid "About"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1118 plugins/gtk/gtk_interface.c:1345
+#: plugins/gtk/gtk_interface.c:1345 plugins/gtk/gnome_interface.c:1118
 #: plugins/kde/kde.cpp:123
 msgid "(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"
 msgstr ""
@@ -1341,7 +1350,7 @@ msgid ""
 "http://www.videolan.org/"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1120 plugins/gtk/gtk_interface.c:1371
+#: plugins/gtk/gtk_interface.c:1371 plugins/gtk/gnome_interface.c:1120
 #: plugins/kde/kde.cpp:120
 msgid ""
 "This is the VideoLAN client, a DVD and MPEG player. It can play MPEG and "
@@ -1351,6 +1360,7 @@ msgstr ""
 #: plugins/gtk/gtk_interface.c:1386 plugins/gtk/gtk_interface.c:2058
 #: plugins/gtk/gtk_interface.c:2283 plugins/gtk/gtk_interface.c:2514
 #: plugins/gtk/gtk_interface.c:2621 plugins/gtk/gtk_preferences.c:540
+#: plugins/macosx/intf_open.m:138 plugins/macosx/intf_open.m:151
 msgid "OK"
 msgstr ""
 
@@ -1358,116 +1368,122 @@ msgstr ""
 msgid "Open Target"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1224 plugins/gtk/gtk_interface.c:1503
+#: plugins/gtk/gtk_interface.c:1503 plugins/gtk/gnome_interface.c:1224
 msgid "Media Resource Locator (MRL)"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1246 plugins/gtk/gtk_interface.c:1525
+#: plugins/gtk/gtk_interface.c:1525 plugins/gtk/gnome_interface.c:1246
 msgid "Open Target:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1266 plugins/gtk/gtk_interface.c:1545
+#: plugins/gtk/gtk_interface.c:1545 plugins/gtk/gnome_interface.c:1266
 msgid ""
 "Alternatively, you can build an MRL using one of the following predefined "
 "targets:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1310 plugins/gtk/gtk_interface.c:1589
+#: plugins/gtk/gtk_interface.c:1589 plugins/gtk/gnome_interface.c:1310
 msgid "Browse..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1334 plugins/gtk/gtk_interface.c:1613
+#: plugins/gtk/gtk_interface.c:1613 plugins/gtk/gnome_interface.c:1334
 #: plugins/gtk/gtk_menu.c:904 plugins/gtk/gtk_menu.c:925
+#: plugins/macosx/intf_macosx.m:227 plugins/macosx/intf_open.m:142
 msgid "Title"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1344 plugins/gtk/gtk_interface.c:1623
+#: plugins/gtk/gtk_interface.c:1623 plugins/gtk/gnome_interface.c:1344
 #: plugins/gtk/gtk_menu.c:799 plugins/gtk/gtk_menu.c:934
+#: plugins/macosx/intf_macosx.m:228 plugins/macosx/intf_open.m:143
 msgid "Chapter"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1364 plugins/gtk/gtk_interface.c:1643
+#: plugins/gtk/gtk_interface.c:1643 plugins/gtk/gnome_interface.c:1364
+#: plugins/macosx/intf_open.m:140
 msgid "Disc type"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1383 plugins/gtk/gtk_interface.c:1662
+#: plugins/gtk/gtk_interface.c:1662 plugins/gtk/gnome_interface.c:1383
 msgid "DVD"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1391 plugins/gtk/gtk_interface.c:1670
+#: plugins/gtk/gtk_interface.c:1670 plugins/gtk/gnome_interface.c:1391
 msgid "VCD"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1399 plugins/gtk/gtk_interface.c:1678
+#: plugins/gtk/gtk_interface.c:1678 plugins/gtk/gnome_interface.c:1399
 msgid "Device name"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1445 plugins/gtk/gtk_interface.c:1724
+#: plugins/gtk/gtk_interface.c:1724 plugins/gtk/gnome_interface.c:1445
 msgid "UDP"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1455 plugins/gtk/gtk_interface.c:1734
+#: plugins/gtk/gtk_interface.c:1734 plugins/gtk/gnome_interface.c:1455
 msgid "UDP Multicast"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1465 plugins/gtk/gtk_interface.c:1744
+#: plugins/gtk/gtk_interface.c:1744 plugins/gtk/gnome_interface.c:1465
 msgid "Channel server "
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1475 plugins/gtk/gtk_interface.c:1754
+#: plugins/gtk/gtk_interface.c:1754 plugins/gtk/gnome_interface.c:1475
 msgid "HTTP"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1485 plugins/gtk/gnome_interface.c:1560
-#: plugins/gtk/gnome_interface.c:1571 plugins/gtk/gtk_interface.c:1764
-#: plugins/gtk/gtk_interface.c:1839 plugins/gtk/gtk_interface.c:1850
+#: plugins/gtk/gtk_interface.c:1764 plugins/gtk/gtk_interface.c:1839
+#: plugins/gtk/gtk_interface.c:1850 plugins/gtk/gnome_interface.c:1485
+#: plugins/gtk/gnome_interface.c:1560 plugins/gtk/gnome_interface.c:1571
+#: plugins/macosx/intf_open.m:148
 msgid "Port"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
 #: plugins/gtk/gtk_interface.c:1774 plugins/gtk/gtk_interface.c:1786
+#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
+#: plugins/macosx/intf_open.m:147
 msgid "Address"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1517 plugins/gtk/gtk_interface.c:1796
+#: plugins/gtk/gtk_interface.c:1796 plugins/gtk/gnome_interface.c:1517
 msgid "URL"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 #: plugins/gtk/gtk_interface.c:1906 plugins/gtk/gtk_interface.c:2385
+#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 msgid "Network"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1644 plugins/gtk/gtk_interface.c:1923
+#: plugins/gtk/gtk_interface.c:1923 plugins/gtk/gnome_interface.c:1644
 msgid "Symbol Rate"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1654 plugins/gtk/gtk_interface.c:1933
+#: plugins/gtk/gtk_interface.c:1933 plugins/gtk/gnome_interface.c:1654
 msgid "Frequency"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1664 plugins/gtk/gtk_interface.c:1943
+#: plugins/gtk/gtk_interface.c:1943 plugins/gtk/gnome_interface.c:1664
 msgid "Polarization"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1684 plugins/gtk/gtk_interface.c:1963
+#: plugins/gtk/gtk_interface.c:1963 plugins/gtk/gnome_interface.c:1684
 msgid "FEC"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1703 plugins/gtk/gtk_interface.c:1982
+#: plugins/gtk/gtk_interface.c:1982 plugins/gtk/gnome_interface.c:1703
 msgid "Vertical"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1711 plugins/gtk/gtk_interface.c:1990
+#: plugins/gtk/gtk_interface.c:1990 plugins/gtk/gnome_interface.c:1711
 msgid "Horizontal"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1753 plugins/gtk/gtk_interface.c:2032
+#: plugins/gtk/gtk_interface.c:2032 plugins/gtk/gnome_interface.c:1753
 msgid "Satellite"
 msgstr ""
 
 #: plugins/gtk/gtk_interface.c:2065 plugins/gtk/gtk_interface.c:2290
 #: plugins/gtk/gtk_interface.c:2521 plugins/gtk/gtk_preferences.c:552
+#: plugins/macosx/intf_open.m:139 plugins/macosx/intf_open.m:152
 msgid "Cancel"
 msgstr ""
 
@@ -1483,32 +1499,32 @@ msgstr ""
 msgid "Go to:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2294 plugins/gtk/gtk_interface.c:2233
+#: plugins/gtk/gtk_interface.c:2233 plugins/gtk/gnome_interface.c:2294
 msgid "s."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2309 plugins/gtk/gtk_interface.c:2248
+#: plugins/gtk/gtk_interface.c:2248 plugins/gtk/gnome_interface.c:2309
 msgid "m:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2324 plugins/gtk/gtk_interface.c:2263
+#: plugins/gtk/gtk_interface.c:2263 plugins/gtk/gnome_interface.c:2324
 msgid "h:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2034 plugins/gtk/gtk_interface.c:2357
+#: plugins/gtk/gtk_interface.c:2357 plugins/gtk/gnome_interface.c:2034
 msgid "Add"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1977 plugins/gtk/gnome_interface.c:2118
-#: plugins/gtk/gtk_interface.c:2392
+#: plugins/gtk/gtk_interface.c:2392 plugins/gtk/gnome_interface.c:1977
+#: plugins/gtk/gnome_interface.c:2118
 msgid "Url"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2041 plugins/gtk/gtk_interface.c:2399
+#: plugins/gtk/gtk_interface.c:2399 plugins/gtk/gnome_interface.c:2041
 msgid "Delete"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1989 plugins/gtk/gtk_interface.c:2413
+#: plugins/gtk/gtk_interface.c:2413 plugins/gtk/gnome_interface.c:1989
 msgid "All"
 msgstr ""
 
@@ -1516,7 +1532,7 @@ msgstr ""
 msgid "Selected"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2048 plugins/gtk/gtk_interface.c:2427
+#: plugins/gtk/gtk_interface.c:2427 plugins/gtk/gnome_interface.c:2048
 msgid "Selection"
 msgstr ""
 
@@ -1532,11 +1548,12 @@ msgstr ""
 msgid "_Select"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2125 plugins/gtk/gtk_interface.c:2502
+#: plugins/gtk/gtk_interface.c:2502 plugins/gtk/gnome_interface.c:2125
 msgid "Duration"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:2381 plugins/gtk/gtk_interface.c:2592
+#: plugins/gtk/gtk_interface.c:2592 plugins/gtk/gnome_interface.c:2381
+#: plugins/macosx/intf_macosx.m:185 plugins/macosx/intf_macosx.m:211
 msgid "Messages"
 msgstr ""
 
@@ -1584,7 +1601,7 @@ msgstr ""
 msgid "Open Stream"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1868
+#: plugins/gtk/gnome_interface.c:1868 plugins/macosx/intf_macosx.m:195
 msgid "Open File"
 msgstr ""
 
@@ -1705,6 +1722,143 @@ msgstr ""
 msgid "MacOS X interface, sound and video module"
 msgstr ""
 
+#: plugins/macosx/intf_macosx.m:186 plugins/macosx/intf_playlist.m:70
+msgid "Close"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:188
+msgid "About vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:189
+msgid "Hide vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:190
+msgid "Hide Others"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:191
+msgid "Show All"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:192
+msgid "Quit vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:196 plugins/macosx/intf_open.m:137
+msgid "Open Disc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:197 plugins/macosx/intf_open.m:145
+msgid "Open Network"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:198
+msgid "Open Quickly..."
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:199
+msgid "Open Recent"
+msgstr ""
+
+#. Recent Items Menu
+#: plugins/macosx/intf_macosx.m:200 plugins/macosx/intf_macosx.m:755
+msgid "Clear Menu"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:202
+msgid "Edit"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:203
+msgid "Cut"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:204
+msgid "Copy"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:205
+msgid "Paste"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:206
+msgid "Clear"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:207
+msgid "Select All"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:209
+msgid "View"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:213
+msgid "Controls"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:217 plugins/macosx/intf_controls.m:376
+msgid "Faster"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:218 plugins/macosx/intf_controls.m:377
+msgid "Slower"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:221
+msgid "Loop"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:222 plugins/macosx/intf_controls.m:414
+msgid "Volume Up"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:223 plugins/macosx/intf_controls.m:415
+msgid "Volume Down"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:224 plugins/macosx/intf_controls.m:419
+msgid "Mute"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:225 plugins/macosx/intf_controls.m:451
+msgid "Fullscreen"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:229
+msgid "Language"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:230
+msgid "Subtitles"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:232
+msgid "Window"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:233
+msgid "Minimize"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:234
+msgid "Bring All to Front"
+msgstr ""
+
+#: plugins/macosx/intf_open.m:141
+msgid "Starting position"
+msgstr ""
+
+#: plugins/macosx/intf_open.m:146
+msgid "Network mode"
+msgstr ""
+
+#: plugins/macosx/intf_open.m:150
+msgid "Open Quickly"
+msgstr ""
+
 #. ****************************************************************************
 #. * Build configuration tree.
 #. ****************************************************************************
index 211b626..5575464 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-07-12 18:49+0200\n"
+"POT-Creation-Date: 2002-07-15 03:18+0200\n"
 "PO-Revision-Date: 2001-12-10 13:32+0100\n"
 "Last-Translator: Samuel Hocevar <sam@zoy.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -667,12 +667,12 @@ msgid "Audio"
 msgstr "Audio"
 
 #. Video options
-#: plugins/directx/directx.c:53 plugins/dummy/dummy.c:51 src/libvlc.h:339
+#: src/libvlc.h:339 plugins/directx/directx.c:53 plugins/dummy/dummy.c:51
 msgid "Video"
 msgstr "Vidéo"
 
 #. Input options
-#: plugins/satellite/satellite.c:66 src/libvlc.h:352
+#: src/libvlc.h:352 plugins/satellite/satellite.c:66
 msgid "Input"
 msgstr "Entrée"
 
@@ -687,21 +687,21 @@ msgid "CPU"
 msgstr "Processeur"
 
 #. Playlist options
-#: plugins/gtk/gnome_interface.c:506 plugins/gtk/gnome_interface.c:2073
-#: plugins/gtk/gnome_interface.c:2098 plugins/gtk/gtk_interface.c:611
-#: plugins/gtk/gtk_interface.c:2342 src/libvlc.h:384
+#: src/libvlc.h:384 plugins/gtk/gtk_interface.c:611
+#: plugins/gtk/gtk_interface.c:2342 plugins/gtk/gnome_interface.c:506
+#: plugins/gtk/gnome_interface.c:2073 plugins/gtk/gnome_interface.c:2098
+#: plugins/macosx/intf_macosx.m:210 plugins/macosx/intf_playlist.m:69
 msgid "Playlist"
 msgstr "Playlist"
 
 #. Misc options
-#: plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72 plugins/dsp/dsp.c:81
-#: plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
+#: src/libvlc.h:390 plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72
+#: plugins/dsp/dsp.c:81 plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
 #: plugins/filter/distort.c:55 plugins/filter/transform.c:56
-#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gnome.c:73
-#: plugins/gtk/gtk.c:71 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
+#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gtk.c:71
+#: plugins/gtk/gnome.c:73 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
 #: plugins/mpeg_vdec/video_parser.c:96 plugins/text/logger.c:86
 #: plugins/win32/win32.cpp:48 plugins/x11/x11.c:64 plugins/x11/xvideo.c:74
-#: src/libvlc.h:390
 msgid "Miscellaneous"
 msgstr "Divers"
 
@@ -1030,19 +1030,19 @@ msgstr "module vid
 #. ****************************************************************************
 #. * Building configuration tree
 #. ****************************************************************************
-#: plugins/gtk/gnome.c:61 plugins/gtk/gtk.c:62
+#: plugins/gtk/gtk.c:62 plugins/gtk/gnome.c:61
 msgid "show tooltips"
 msgstr "afficher les bulles d'aide"
 
-#: plugins/gtk/gnome.c:62 plugins/gtk/gtk.c:63
+#: plugins/gtk/gtk.c:63 plugins/gtk/gnome.c:62
 msgid "Show tooltips for configuration options."
 msgstr "Affiche des bulles d'aide pour les options de configuration"
 
-#: plugins/gtk/gnome.c:67 plugins/gtk/gtk.c:65
+#: plugins/gtk/gtk.c:65 plugins/gtk/gnome.c:67
 msgid "maximum height for the configuration windows"
 msgstr "hauteur maximale des fenêtres de configuration"
 
-#: plugins/gtk/gnome.c:69 plugins/gtk/gtk.c:67
+#: plugins/gtk/gtk.c:67 plugins/gtk/gnome.c:69
 msgid ""
 "You can set the maximum height that the configuration windows in the "
 "preferences menu will occupy."
@@ -1066,8 +1066,8 @@ msgstr ""
 msgid "Gnome interface module"
 msgstr "module d'interface Gnome"
 
-#: plugins/gtk/gnome_interface.c:202 plugins/gtk/gtk_interface.c:109
-#: plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gtk_interface.c:109 plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gnome_interface.c:202
 msgid "VideoLAN Client"
 msgstr "Client VideoLAN"
 
@@ -1075,45 +1075,45 @@ msgstr "Client VideoLAN"
 msgid "_File"
 msgstr "_Fichier"
 
-#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 #: plugins/gtk/gtk_interface.c:153 plugins/gtk/gtk_interface.c:1155
+#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 msgid "_Open File..."
 msgstr "_Ouvrir fichier..."
 
-#: plugins/gtk/gnome_interface.c:20 plugins/gtk/gnome_interface.c:367
-#: plugins/gtk/gnome_interface.c:801 plugins/gtk/gtk_interface.c:161
-#: plugins/gtk/gtk_interface.c:483 plugins/gtk/gtk_interface.c:1163
+#: plugins/gtk/gtk_interface.c:161 plugins/gtk/gtk_interface.c:483
+#: plugins/gtk/gtk_interface.c:1163 plugins/gtk/gnome_interface.c:20
+#: plugins/gtk/gnome_interface.c:367 plugins/gtk/gnome_interface.c:801
 msgid "Open a File"
 msgstr "Ouvre un Fichier"
 
-#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 #: plugins/gtk/gtk_interface.c:168 plugins/gtk/gtk_interface.c:1167
+#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 msgid "Open _Disc..."
 msgstr "Ouvrir _disque..."
 
-#: plugins/gtk/gnome_interface.c:27 plugins/gtk/gnome_interface.c:379
-#: plugins/gtk/gnome_interface.c:808 plugins/gtk/gtk_interface.c:176
-#: plugins/gtk/gtk_interface.c:494 plugins/gtk/gtk_interface.c:1175
+#: plugins/gtk/gtk_interface.c:176 plugins/gtk/gtk_interface.c:494
+#: plugins/gtk/gtk_interface.c:1175 plugins/gtk/gnome_interface.c:27
+#: plugins/gtk/gnome_interface.c:379 plugins/gtk/gnome_interface.c:808
 msgid "Open a DVD or VCD"
 msgstr "Ouvre un DVD ou un VCD"
 
-#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 #: plugins/gtk/gtk_interface.c:183 plugins/gtk/gtk_interface.c:1179
+#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 msgid "_Network Stream..."
 msgstr "Flux réseau..."
 
-#: plugins/gtk/gnome_interface.c:34 plugins/gtk/gnome_interface.c:391
-#: plugins/gtk/gnome_interface.c:815 plugins/gtk/gtk_interface.c:191
-#: plugins/gtk/gtk_interface.c:505 plugins/gtk/gtk_interface.c:1187
+#: plugins/gtk/gtk_interface.c:191 plugins/gtk/gtk_interface.c:505
+#: plugins/gtk/gtk_interface.c:1187 plugins/gtk/gnome_interface.c:34
+#: plugins/gtk/gnome_interface.c:391 plugins/gtk/gnome_interface.c:815
 msgid "Select a Network Stream"
 msgstr "Sélectionne un flux réseau"
 
-#: plugins/gtk/gnome_interface.c:41 plugins/gtk/gtk_interface.c:206
+#: plugins/gtk/gtk_interface.c:206 plugins/gtk/gnome_interface.c:41
 msgid "_Eject Disc"
 msgstr "Éj_ecter le disque"
 
-#: plugins/gtk/gnome_interface.c:42 plugins/gtk/gnome_interface.c:442
-#: plugins/gtk/gtk_interface.c:214
+#: plugins/gtk/gtk_interface.c:214 plugins/gtk/gnome_interface.c:42
+#: plugins/gtk/gnome_interface.c:442
 msgid "Eject disc"
 msgstr "Éjecter le disque"
 
@@ -1129,7 +1129,7 @@ msgstr "Quitte le programme"
 msgid "_View"
 msgstr "_Vue"
 
-#: plugins/gtk/gnome_interface.c:55 plugins/gtk/gtk_interface.c:259
+#: plugins/gtk/gtk_interface.c:259 plugins/gtk/gnome_interface.c:55
 msgid "_Hide interface"
 msgstr "Cac_her l'interface"
 
@@ -1137,20 +1137,20 @@ msgstr "Cac_her l'interface"
 msgid "Hide the main interface window"
 msgstr "Cache la fenêtre d'interface"
 
-#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 #: plugins/gtk/gtk_interface.c:271 plugins/gtk/gtk_interface.c:1049
+#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 msgid "_Fullscreen"
 msgstr "Plein écran"
 
-#: plugins/gtk/gnome_interface.c:70 plugins/gtk/gtk_interface.c:290
+#: plugins/gtk/gtk_interface.c:290 plugins/gtk/gnome_interface.c:70
 msgid "Progr_am"
 msgstr "Progr_amme"
 
-#: plugins/gtk/gnome_interface.c:71 plugins/gtk/gtk_interface.c:299
+#: plugins/gtk/gtk_interface.c:299 plugins/gtk/gnome_interface.c:71
 msgid "Choose the program"
 msgstr "Choisir le programme"
 
-#: plugins/gtk/gnome_interface.c:77 plugins/gtk/gtk_interface.c:303
+#: plugins/gtk/gtk_interface.c:303 plugins/gtk/gnome_interface.c:77
 msgid "_Title"
 msgstr "_Titre"
 
@@ -1158,31 +1158,31 @@ msgstr "_Titre"
 msgid "Navigate through the stream"
 msgstr "Se déplacer dans le flux"
 
-#: plugins/gtk/gnome_interface.c:84 plugins/gtk/gtk_interface.c:316
+#: plugins/gtk/gtk_interface.c:316 plugins/gtk/gnome_interface.c:84
 msgid "_Chapter"
 msgstr "Chapitre"
 
-#: plugins/gtk/gnome_interface.c:92 plugins/gtk/gtk_interface.c:336
+#: plugins/gtk/gtk_interface.c:336 plugins/gtk/gnome_interface.c:92
 msgid "_Playlist..."
 msgstr "_Playlist..."
 
-#: plugins/gtk/gnome_interface.c:93 plugins/gtk/gtk_interface.c:344
+#: plugins/gtk/gtk_interface.c:344 plugins/gtk/gnome_interface.c:93
 msgid "Open the playlist window"
 msgstr "Ouvre la fenêtre playlist"
 
-#: plugins/gtk/gnome_interface.c:99 plugins/gtk/gtk_interface.c:348
+#: plugins/gtk/gtk_interface.c:348 plugins/gtk/gnome_interface.c:99
 msgid "_Modules..."
 msgstr "_Modules..."
 
-#: plugins/gtk/gnome_interface.c:100 plugins/gtk/gtk_interface.c:357
+#: plugins/gtk/gtk_interface.c:357 plugins/gtk/gnome_interface.c:100
 msgid "Open the module manager"
 msgstr "Ouvre le gestionnaire de modules"
 
-#: plugins/gtk/gnome_interface.c:106 plugins/gtk/gtk_interface.c:359
+#: plugins/gtk/gtk_interface.c:359 plugins/gtk/gnome_interface.c:106
 msgid "Messages..."
 msgstr "Messages..."
 
-#: plugins/gtk/gnome_interface.c:107 plugins/gtk/gtk_interface.c:365
+#: plugins/gtk/gtk_interface.c:365 plugins/gtk/gnome_interface.c:107
 msgid "Open the messages window"
 msgstr "Ouvre la fenêtre de messages"
 
@@ -1194,18 +1194,18 @@ msgstr "_Param
 msgid "A_udio"
 msgstr "A_udio"
 
-#: plugins/gtk/gnome_interface.c:119 plugins/gtk/gnome_interface.c:922
-#: plugins/gtk/gtk_interface.c:396
+#: plugins/gtk/gtk_interface.c:396 plugins/gtk/gnome_interface.c:119
+#: plugins/gtk/gnome_interface.c:922
 msgid "Select audio channel"
 msgstr "Sélectionner la piste audio"
 
-#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 #: plugins/gtk/gtk_interface.c:400 plugins/gtk/gtk_interface.c:1125
+#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 msgid "_Subtitles"
 msgstr "_Sous-titres"
 
-#: plugins/gtk/gnome_interface.c:126 plugins/gtk/gnome_interface.c:929
-#: plugins/gtk/gtk_interface.c:409
+#: plugins/gtk/gtk_interface.c:409 plugins/gtk/gnome_interface.c:126
+#: plugins/gtk/gnome_interface.c:929
 msgid "Select subtitles channel"
 msgstr "Sélectionner la piste de sous-titres"
 
@@ -1229,123 +1229,131 @@ msgstr "
 msgid "About this application"
 msgstr "À propos de cette application"
 
+#: plugins/gtk/gtk_interface.c:482 plugins/gtk/gtk_interface.c:1596
+#: plugins/gtk/gtk_interface.c:2378 plugins/gtk/gtk_interface.c:2495
 #: plugins/gtk/gnome_interface.c:366 plugins/gtk/gnome_interface.c:1317
-#: plugins/gtk/gnome_interface.c:1963 plugins/gtk/gtk_interface.c:482
-#: plugins/gtk/gtk_interface.c:1596 plugins/gtk/gtk_interface.c:2378
-#: plugins/gtk/gtk_interface.c:2495
+#: plugins/gtk/gnome_interface.c:1963 plugins/macosx/intf_macosx.m:194
 msgid "File"
 msgstr "Fichier"
 
-#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
-#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 #: plugins/gtk/gtk_interface.c:493 plugins/gtk/gtk_interface.c:680
 #: plugins/gtk/gtk_interface.c:1707 plugins/gtk/gtk_interface.c:2371
+#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
+#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 msgid "Disc"
 msgstr "Disque"
 
-#: plugins/gtk/gnome_interface.c:390 plugins/gtk/gtk_interface.c:504
+#: plugins/gtk/gtk_interface.c:504 plugins/gtk/gnome_interface.c:390
 msgid "Net"
 msgstr "Réseau"
 
-#: plugins/gtk/gnome_interface.c:402 plugins/gtk/gtk_interface.c:515
+#: plugins/gtk/gtk_interface.c:515 plugins/gtk/gnome_interface.c:402
 msgid "Sat"
 msgstr "Sat"
 
-#: plugins/gtk/gnome_interface.c:403 plugins/gtk/gtk_interface.c:516
+#: plugins/gtk/gtk_interface.c:516 plugins/gtk/gnome_interface.c:403
 msgid "Open a Satellite Card"
 msgstr "Ouvrir une carte satellite"
 
-#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 #: plugins/gtk/gtk_interface.c:528 plugins/gtk/gtk_interface.c:1004
+#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 msgid "Back"
 msgstr "Retour"
 
-#: plugins/gtk/gnome_interface.c:417 plugins/gtk/gtk_interface.c:529
+#: plugins/gtk/gtk_interface.c:529 plugins/gtk/gnome_interface.c:417
 msgid "Go Backward"
 msgstr "Retour arrière"
 
-#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
 #: plugins/gtk/gtk_interface.c:540 plugins/gtk/gtk_interface.c:997
+#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
+#: plugins/macosx/intf_macosx.m:216 plugins/macosx/intf_macosx.m:239
+#: plugins/macosx/intf_controls.m:392
 msgid "Stop"
 msgstr "Stop"
 
-#: plugins/gtk/gnome_interface.c:430 plugins/gtk/gtk_interface.c:541
+#: plugins/gtk/gtk_interface.c:541 plugins/gtk/gnome_interface.c:430
 msgid "Stop Stream"
 msgstr "Arrêter le flux"
 
-#: plugins/gtk/gnome_interface.c:441 plugins/gtk/gtk_interface.c:551
+#: plugins/gtk/gtk_interface.c:551 plugins/gtk/gnome_interface.c:441
 msgid "Eject"
 msgstr "Éjecte"
 
-#: plugins/gtk/gnome_interface.c:453 plugins/gtk/gnome_interface.c:828
-#: plugins/gtk/gtk_interface.c:562
+#. dock menu
+#: plugins/gtk/gtk_interface.c:562 plugins/gtk/gnome_interface.c:453
+#: plugins/gtk/gnome_interface.c:828 plugins/macosx/intf_macosx.m:214
+#: plugins/macosx/intf_macosx.m:237
 msgid "Play"
 msgstr "Joue"
 
-#: plugins/gtk/gnome_interface.c:454 plugins/gtk/gtk_interface.c:563
+#: plugins/gtk/gtk_interface.c:563 plugins/gtk/gnome_interface.c:454
 msgid "Play Stream"
 msgstr "Jouer le flux"
 
-#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
 #: plugins/gtk/gtk_interface.c:573 plugins/gtk/gtk_interface.c:989
+#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
+#: plugins/macosx/intf_macosx.m:215 plugins/macosx/intf_macosx.m:238
+#: plugins/macosx/intf_controls.m:375
 msgid "Pause"
 msgstr "Pause"
 
-#: plugins/gtk/gnome_interface.c:466 plugins/gtk/gtk_interface.c:574
+#: plugins/gtk/gtk_interface.c:574 plugins/gtk/gnome_interface.c:466
 msgid "Pause Stream"
 msgstr "Pauser le flux"
 
-#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 #: plugins/gtk/gtk_interface.c:587 plugins/gtk/gtk_interface.c:1012
+#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 msgid "Slow"
 msgstr "Ralenti"
 
-#: plugins/gtk/gnome_interface.c:481 plugins/gtk/gtk_interface.c:588
+#: plugins/gtk/gtk_interface.c:588 plugins/gtk/gnome_interface.c:481
 msgid "Play Slower"
 msgstr "Jouer plus lentement"
 
-#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 #: plugins/gtk/gtk_interface.c:599 plugins/gtk/gtk_interface.c:1020
+#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 msgid "Fast"
 msgstr "Accéléré"
 
-#: plugins/gtk/gnome_interface.c:494 plugins/gtk/gtk_interface.c:600
+#: plugins/gtk/gtk_interface.c:600 plugins/gtk/gnome_interface.c:494
 msgid "Play Faster"
 msgstr "Jouer plus rapidement"
 
-#: plugins/gtk/gnome_interface.c:507 plugins/gtk/gtk_interface.c:612
+#: plugins/gtk/gtk_interface.c:612 plugins/gtk/gnome_interface.c:507
 msgid "Open Playlist"
 msgstr "Ouvre la playlist"
 
-#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
 #: plugins/gtk/gtk_interface.c:622 plugins/gtk/gtk_interface.c:708
 #: plugins/gtk/gtk_interface.c:752 plugins/gtk/gtk_interface.c:1073
+#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
+#: plugins/macosx/intf_macosx.m:219 plugins/macosx/intf_controls.m:396
 msgid "Prev"
 msgstr "Préc."
 
-#: plugins/gtk/gnome_interface.c:519 plugins/gtk/gtk_interface.c:623
+#: plugins/gtk/gtk_interface.c:623 plugins/gtk/gnome_interface.c:519
 msgid "Previous File"
 msgstr "Fichier précédent"
 
-#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
 #: plugins/gtk/gtk_interface.c:633 plugins/gtk/gtk_interface.c:716
 #: plugins/gtk/gtk_interface.c:760 plugins/gtk/gtk_interface.c:1066
+#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
+#: plugins/macosx/intf_macosx.m:220 plugins/macosx/intf_controls.m:397
 msgid "Next"
 msgstr "Suiv."
 
-#: plugins/gtk/gnome_interface.c:531 plugins/gtk/gtk_interface.c:634
+#: plugins/gtk/gtk_interface.c:634 plugins/gtk/gnome_interface.c:531
 msgid "Next File"
 msgstr "Fichier suivant"
 
-#: plugins/gtk/gnome_interface.c:595 plugins/gtk/gtk_interface.c:694
+#: plugins/gtk/gtk_interface.c:694 plugins/gtk/gnome_interface.c:595
 msgid "Title:"
 msgstr "Titre:"
 
-#: plugins/gtk/gnome_interface.c:638 plugins/gtk/gtk_interface.c:738
+#: plugins/gtk/gtk_interface.c:738 plugins/gtk/gnome_interface.c:638
 msgid "Chapter:"
 msgstr "Chapitre:"
 
-#: plugins/gtk/gnome_interface.c:674 plugins/gtk/gtk_interface.c:775
+#: plugins/gtk/gtk_interface.c:775 plugins/gtk/gnome_interface.c:674
 msgid "No server"
 msgstr "Pas de serveur"
 
@@ -1353,7 +1361,7 @@ msgstr "Pas de serveur"
 msgid "Channel:"
 msgstr "Canal :"
 
-#: plugins/gtk/gnome_interface.c:703 plugins/gtk/gtk_interface.c:804
+#: plugins/gtk/gtk_interface.c:804 plugins/gtk/gnome_interface.c:703
 msgid "Go!"
 msgstr "Go!"
 
@@ -1361,28 +1369,29 @@ msgstr "Go!"
 msgid "_Play"
 msgstr "_Lecture"
 
-#: plugins/gtk/gnome_interface.c:871 plugins/gtk/gtk_interface.c:1038
+#: plugins/gtk/gtk_interface.c:1038 plugins/gtk/gnome_interface.c:871
 msgid "Toggle _Interface"
 msgstr "Cacher/montrer l'_interface"
 
-#: plugins/gtk/gnome_interface.c:900 plugins/gtk/gtk_interface.c:1082
+#: plugins/gtk/gtk_interface.c:1082 plugins/gtk/gnome_interface.c:900
 msgid "_Jump..."
 msgstr "_Sauter à..."
 
-#: plugins/gtk/gnome_interface.c:907 plugins/gtk/gtk_interface.c:1091
+#: plugins/gtk/gtk_interface.c:1091 plugins/gtk/gnome_interface.c:907
+#: plugins/macosx/intf_macosx.m:226
 msgid "Program"
 msgstr "Programme"
 
-#: plugins/gtk/gnome_interface.c:914 plugins/gtk/gtk_interface.c:1101
+#: plugins/gtk/gtk_interface.c:1101 plugins/gtk/gnome_interface.c:914
 msgid "_Navigation"
 msgstr "_Navigation"
 
-#: plugins/gtk/gnome_interface.c:118 plugins/gtk/gnome_interface.c:921
-#: plugins/gtk/gtk_interface.c:1113
+#: plugins/gtk/gtk_interface.c:1113 plugins/gtk/gnome_interface.c:118
+#: plugins/gtk/gnome_interface.c:921
 msgid "_Audio"
 msgstr "_Audio"
 
-#: plugins/gtk/gnome_interface.c:937 plugins/gtk/gtk_interface.c:1208
+#: plugins/gtk/gtk_interface.c:1208 plugins/gtk/gnome_interface.c:937
 msgid "Playlist..."
 msgstr "Playlist..."
 
@@ -1390,7 +1399,7 @@ msgstr "Playlist..."
 msgid "About"
 msgstr "À propos"
 
-#: plugins/gtk/gnome_interface.c:1118 plugins/gtk/gtk_interface.c:1345
+#: plugins/gtk/gtk_interface.c:1345 plugins/gtk/gnome_interface.c:1118
 #: plugins/kde/kde.cpp:123
 msgid "(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"
 msgstr "(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - l'équipe VideoLAN"
@@ -1407,7 +1416,7 @@ msgstr ""
 "l'équipe VideoLAN <videolan@videolan.org>\n"
 "http://www.videolan.org/"
 
-#: plugins/gtk/gnome_interface.c:1120 plugins/gtk/gtk_interface.c:1371
+#: plugins/gtk/gtk_interface.c:1371 plugins/gtk/gnome_interface.c:1120
 #: plugins/kde/kde.cpp:120
 msgid ""
 "This is the VideoLAN client, a DVD and MPEG player. It can play MPEG and "
@@ -1419,6 +1428,7 @@ msgstr ""
 #: plugins/gtk/gtk_interface.c:1386 plugins/gtk/gtk_interface.c:2058
 #: plugins/gtk/gtk_interface.c:2283 plugins/gtk/gtk_interface.c:2514
 #: plugins/gtk/gtk_interface.c:2621 plugins/gtk/gtk_preferences.c:540
+#: plugins/macosx/intf_open.m:138 plugins/macosx/intf_open.m:151
 msgid "OK"
 msgstr "Valider"
 
@@ -1427,118 +1437,124 @@ msgstr "Valider"
 msgid "Open Target"
 msgstr "Ouvrir un flux"
 
-#: plugins/gtk/gnome_interface.c:1224 plugins/gtk/gtk_interface.c:1503
+#: plugins/gtk/gtk_interface.c:1503 plugins/gtk/gnome_interface.c:1224
 msgid "Media Resource Locator (MRL)"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1246 plugins/gtk/gtk_interface.c:1525
+#: plugins/gtk/gtk_interface.c:1525 plugins/gtk/gnome_interface.c:1246
 #, fuzzy
 msgid "Open Target:"
 msgstr "Ouvrir un flux"
 
-#: plugins/gtk/gnome_interface.c:1266 plugins/gtk/gtk_interface.c:1545
+#: plugins/gtk/gtk_interface.c:1545 plugins/gtk/gnome_interface.c:1266
 msgid ""
 "Alternatively, you can build an MRL using one of the following predefined "
 "targets:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1310 plugins/gtk/gtk_interface.c:1589
+#: plugins/gtk/gtk_interface.c:1589 plugins/gtk/gnome_interface.c:1310
 msgid "Browse..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1334 plugins/gtk/gtk_interface.c:1613
+#: plugins/gtk/gtk_interface.c:1613 plugins/gtk/gnome_interface.c:1334
 #: plugins/gtk/gtk_menu.c:904 plugins/gtk/gtk_menu.c:925
+#: plugins/macosx/intf_macosx.m:227 plugins/macosx/intf_open.m:142
 msgid "Title"
 msgstr "Titre"
 
-#: plugins/gtk/gnome_interface.c:1344 plugins/gtk/gtk_interface.c:1623
+#: plugins/gtk/gtk_interface.c:1623 plugins/gtk/gnome_interface.c:1344
 #: plugins/gtk/gtk_menu.c:799 plugins/gtk/gtk_menu.c:934
+#: plugins/macosx/intf_macosx.m:228 plugins/macosx/intf_open.m:143
 msgid "Chapter"
 msgstr "Chapitre"
 
-#: plugins/gtk/gnome_interface.c:1364 plugins/gtk/gtk_interface.c:1643
+#: plugins/gtk/gtk_interface.c:1643 plugins/gtk/gnome_interface.c:1364
+#: plugins/macosx/intf_open.m:140
 msgid "Disc type"
 msgstr "Type de disque"
 
-#: plugins/gtk/gnome_interface.c:1383 plugins/gtk/gtk_interface.c:1662
+#: plugins/gtk/gtk_interface.c:1662 plugins/gtk/gnome_interface.c:1383
 msgid "DVD"
 msgstr "DVD"
 
-#: plugins/gtk/gnome_interface.c:1391 plugins/gtk/gtk_interface.c:1670
+#: plugins/gtk/gtk_interface.c:1670 plugins/gtk/gnome_interface.c:1391
 msgid "VCD"
 msgstr "VCD"
 
-#: plugins/gtk/gnome_interface.c:1399 plugins/gtk/gtk_interface.c:1678
+#: plugins/gtk/gtk_interface.c:1678 plugins/gtk/gnome_interface.c:1399
 msgid "Device name"
 msgstr "Nom du device"
 
-#: plugins/gtk/gnome_interface.c:1445 plugins/gtk/gtk_interface.c:1724
+#: plugins/gtk/gtk_interface.c:1724 plugins/gtk/gnome_interface.c:1445
 msgid "UDP"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1455 plugins/gtk/gtk_interface.c:1734
+#: plugins/gtk/gtk_interface.c:1734 plugins/gtk/gnome_interface.c:1455
 msgid "UDP Multicast"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1465 plugins/gtk/gtk_interface.c:1744
+#: plugins/gtk/gtk_interface.c:1744 plugins/gtk/gnome_interface.c:1465
 msgid "Channel server "
 msgstr "Serveur de canaux"
 
-#: plugins/gtk/gnome_interface.c:1475 plugins/gtk/gtk_interface.c:1754
+#: plugins/gtk/gtk_interface.c:1754 plugins/gtk/gnome_interface.c:1475
 msgid "HTTP"
 msgstr "HTTP"
 
-#: plugins/gtk/gnome_interface.c:1485 plugins/gtk/gnome_interface.c:1560
-#: plugins/gtk/gnome_interface.c:1571 plugins/gtk/gtk_interface.c:1764
-#: plugins/gtk/gtk_interface.c:1839 plugins/gtk/gtk_interface.c:1850
+#: plugins/gtk/gtk_interface.c:1764 plugins/gtk/gtk_interface.c:1839
+#: plugins/gtk/gtk_interface.c:1850 plugins/gtk/gnome_interface.c:1485
+#: plugins/gtk/gnome_interface.c:1560 plugins/gtk/gnome_interface.c:1571
+#: plugins/macosx/intf_open.m:148
 msgid "Port"
 msgstr "Port"
 
-#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
 #: plugins/gtk/gtk_interface.c:1774 plugins/gtk/gtk_interface.c:1786
+#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
+#: plugins/macosx/intf_open.m:147
 msgid "Address"
 msgstr "Adresse"
 
-#: plugins/gtk/gnome_interface.c:1517 plugins/gtk/gtk_interface.c:1796
+#: plugins/gtk/gtk_interface.c:1796 plugins/gtk/gnome_interface.c:1517
 msgid "URL"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 #: plugins/gtk/gtk_interface.c:1906 plugins/gtk/gtk_interface.c:2385
+#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 msgid "Network"
 msgstr "Réseau"
 
-#: plugins/gtk/gnome_interface.c:1644 plugins/gtk/gtk_interface.c:1923
+#: plugins/gtk/gtk_interface.c:1923 plugins/gtk/gnome_interface.c:1644
 msgid "Symbol Rate"
 msgstr "Débit symbole"
 
-#: plugins/gtk/gnome_interface.c:1654 plugins/gtk/gtk_interface.c:1933
+#: plugins/gtk/gtk_interface.c:1933 plugins/gtk/gnome_interface.c:1654
 msgid "Frequency"
 msgstr "Fréquence"
 
-#: plugins/gtk/gnome_interface.c:1664 plugins/gtk/gtk_interface.c:1943
+#: plugins/gtk/gtk_interface.c:1943 plugins/gtk/gnome_interface.c:1664
 msgid "Polarization"
 msgstr "Polarisation"
 
-#: plugins/gtk/gnome_interface.c:1684 plugins/gtk/gtk_interface.c:1963
+#: plugins/gtk/gtk_interface.c:1963 plugins/gtk/gnome_interface.c:1684
 msgid "FEC"
 msgstr "FEC"
 
-#: plugins/gtk/gnome_interface.c:1703 plugins/gtk/gtk_interface.c:1982
+#: plugins/gtk/gtk_interface.c:1982 plugins/gtk/gnome_interface.c:1703
 msgid "Vertical"
 msgstr "Verticale"
 
-#: plugins/gtk/gnome_interface.c:1711 plugins/gtk/gtk_interface.c:1990
+#: plugins/gtk/gtk_interface.c:1990 plugins/gtk/gnome_interface.c:1711
 msgid "Horizontal"
 msgstr "Horizontale"
 
-#: plugins/gtk/gnome_interface.c:1753 plugins/gtk/gtk_interface.c:2032
+#: plugins/gtk/gtk_interface.c:2032 plugins/gtk/gnome_interface.c:1753
 #, fuzzy
 msgid "Satellite"
 msgstr "Ouvrir une carte satellite"
 
 #: plugins/gtk/gtk_interface.c:2065 plugins/gtk/gtk_interface.c:2290
 #: plugins/gtk/gtk_interface.c:2521 plugins/gtk/gtk_preferences.c:552
+#: plugins/macosx/intf_open.m:139 plugins/macosx/intf_open.m:152
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -1554,32 +1570,32 @@ msgstr "Aller 
 msgid "Go to:"
 msgstr "Aller à :"
 
-#: plugins/gtk/gnome_interface.c:2294 plugins/gtk/gtk_interface.c:2233
+#: plugins/gtk/gtk_interface.c:2233 plugins/gtk/gnome_interface.c:2294
 msgid "s."
 msgstr "s."
 
-#: plugins/gtk/gnome_interface.c:2309 plugins/gtk/gtk_interface.c:2248
+#: plugins/gtk/gtk_interface.c:2248 plugins/gtk/gnome_interface.c:2309
 msgid "m:"
 msgstr "m:"
 
-#: plugins/gtk/gnome_interface.c:2324 plugins/gtk/gtk_interface.c:2263
+#: plugins/gtk/gtk_interface.c:2263 plugins/gtk/gnome_interface.c:2324
 msgid "h:"
 msgstr "h:"
 
-#: plugins/gtk/gnome_interface.c:2034 plugins/gtk/gtk_interface.c:2357
+#: plugins/gtk/gtk_interface.c:2357 plugins/gtk/gnome_interface.c:2034
 msgid "Add"
 msgstr "Ajouter"
 
-#: plugins/gtk/gnome_interface.c:1977 plugins/gtk/gnome_interface.c:2118
-#: plugins/gtk/gtk_interface.c:2392
+#: plugins/gtk/gtk_interface.c:2392 plugins/gtk/gnome_interface.c:1977
+#: plugins/gtk/gnome_interface.c:2118
 msgid "Url"
 msgstr "Url"
 
-#: plugins/gtk/gnome_interface.c:2041 plugins/gtk/gtk_interface.c:2399
+#: plugins/gtk/gtk_interface.c:2399 plugins/gtk/gnome_interface.c:2041
 msgid "Delete"
 msgstr "Supprimer"
 
-#: plugins/gtk/gnome_interface.c:1989 plugins/gtk/gtk_interface.c:2413
+#: plugins/gtk/gtk_interface.c:2413 plugins/gtk/gnome_interface.c:1989
 msgid "All"
 msgstr "Tous"
 
@@ -1587,7 +1603,7 @@ msgstr "Tous"
 msgid "Selected"
 msgstr "Sélectionné"
 
-#: plugins/gtk/gnome_interface.c:2048 plugins/gtk/gtk_interface.c:2427
+#: plugins/gtk/gtk_interface.c:2427 plugins/gtk/gnome_interface.c:2048
 msgid "Selection"
 msgstr "Sélection"
 
@@ -1603,11 +1619,12 @@ msgstr "_Inverser"
 msgid "_Select"
 msgstr "_Sélectionner"
 
-#: plugins/gtk/gnome_interface.c:2125 plugins/gtk/gtk_interface.c:2502
+#: plugins/gtk/gtk_interface.c:2502 plugins/gtk/gnome_interface.c:2125
 msgid "Duration"
 msgstr "Durée"
 
-#: plugins/gtk/gnome_interface.c:2381 plugins/gtk/gtk_interface.c:2592
+#: plugins/gtk/gtk_interface.c:2592 plugins/gtk/gnome_interface.c:2381
+#: plugins/macosx/intf_macosx.m:185 plugins/macosx/intf_macosx.m:211
 msgid "Messages"
 msgstr "Messages"
 
@@ -1655,7 +1672,7 @@ msgstr "Naviguer 
 msgid "Open Stream"
 msgstr "Ouvrir un flux"
 
-#: plugins/gtk/gnome_interface.c:1868
+#: plugins/gtk/gnome_interface.c:1868 plugins/macosx/intf_macosx.m:195
 msgid "Open File"
 msgstr "Ouvrir un fichier"
 
@@ -1778,6 +1795,157 @@ msgstr "d
 msgid "MacOS X interface, sound and video module"
 msgstr "module MacOS X de son, vidéo et d'interface"
 
+#: plugins/macosx/intf_macosx.m:186 plugins/macosx/intf_playlist.m:70
+msgid "Close"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:188
+#, fuzzy
+msgid "About vlc"
+msgstr "À propos"
+
+#: plugins/macosx/intf_macosx.m:189
+msgid "Hide vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:190
+#, fuzzy
+msgid "Hide Others"
+msgstr "Cac_her l'interface"
+
+#: plugins/macosx/intf_macosx.m:191
+msgid "Show All"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:192
+msgid "Quit vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:196 plugins/macosx/intf_open.m:137
+msgid "Open Disc"
+msgstr "Ouvrir disque"
+
+#: plugins/macosx/intf_macosx.m:197 plugins/macosx/intf_open.m:145
+msgid "Open Network"
+msgstr "Lecture réseau"
+
+#: plugins/macosx/intf_macosx.m:198
+#, fuzzy
+msgid "Open Quickly..."
+msgstr "_Ouvrir fichier..."
+
+#: plugins/macosx/intf_macosx.m:199
+#, fuzzy
+msgid "Open Recent"
+msgstr "Ouvrir un flux"
+
+#. Recent Items Menu
+#: plugins/macosx/intf_macosx.m:200 plugins/macosx/intf_macosx.m:755
+msgid "Clear Menu"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:202
+#, fuzzy
+msgid "Edit"
+msgstr "_Quitter"
+
+#: plugins/macosx/intf_macosx.m:203
+msgid "Cut"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:204
+#, fuzzy
+msgid "Copy"
+msgstr "Rogner"
+
+#: plugins/macosx/intf_macosx.m:205
+#, fuzzy
+msgid "Paste"
+msgstr "Pause"
+
+#: plugins/macosx/intf_macosx.m:206
+msgid "Clear"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:207
+#, fuzzy
+msgid "Select All"
+msgstr "Sélectionner le fichier"
+
+#: plugins/macosx/intf_macosx.m:209
+#, fuzzy
+msgid "View"
+msgstr "_Vue"
+
+#: plugins/macosx/intf_macosx.m:213
+msgid "Controls"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:217 plugins/macosx/intf_controls.m:376
+#, fuzzy
+msgid "Faster"
+msgstr "Accéléré"
+
+#: plugins/macosx/intf_macosx.m:218 plugins/macosx/intf_controls.m:377
+#, fuzzy
+msgid "Slower"
+msgstr "Ralenti"
+
+#: plugins/macosx/intf_macosx.m:221
+msgid "Loop"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:222 plugins/macosx/intf_controls.m:414
+msgid "Volume Up"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:223 plugins/macosx/intf_controls.m:415
+msgid "Volume Down"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:224 plugins/macosx/intf_controls.m:419
+msgid "Mute"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:225 plugins/macosx/intf_controls.m:451
+#, fuzzy
+msgid "Fullscreen"
+msgstr "Plein écran"
+
+#: plugins/macosx/intf_macosx.m:229
+msgid "Language"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:230
+#, fuzzy
+msgid "Subtitles"
+msgstr "_Sous-titres"
+
+#: plugins/macosx/intf_macosx.m:232
+msgid "Window"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:233
+msgid "Minimize"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:234
+msgid "Bring All to Front"
+msgstr ""
+
+#: plugins/macosx/intf_open.m:141
+msgid "Starting position"
+msgstr "Position de départ"
+
+#: plugins/macosx/intf_open.m:146
+msgid "Network mode"
+msgstr "Mode réseau"
+
+#: plugins/macosx/intf_open.m:150
+#, fuzzy
+msgid "Open Quickly"
+msgstr "Ouvrir un fichier"
+
 #. ****************************************************************************
 #. * Build configuration tree.
 #. ****************************************************************************
@@ -2118,18 +2286,9 @@ msgstr ""
 msgid "XVideo extension module"
 msgstr "module d'extension XVideo"
 
-#~ msgid "Starting position"
-#~ msgstr "Position de départ"
-
-#~ msgid "Network mode"
-#~ msgstr "Mode réseau"
-
 #~ msgid "Transponder settings"
 #~ msgstr "Paramètres du transpondeur"
 
-#~ msgid "Open Disc"
-#~ msgstr "Ouvrir disque"
-
 #~ msgid "Device name:"
 #~ msgstr "Nom du périphérique :"
 
@@ -2160,9 +2319,6 @@ msgstr "module d'extension XVideo"
 #~ msgid "Open Satellite Card"
 #~ msgstr "Ouvrir une carte satellite"
 
-#~ msgid "Open Network"
-#~ msgstr "Lecture réseau"
-
 #~ msgid "one of 'bob' and 'blend'"
 #~ msgstr "au choix, 'bob' ou 'blend'"
 
index 099b83d..6a45275 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -4,7 +4,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-07-12 18:49+0200\n"
+"POT-Creation-Date: 2002-07-15 03:18+0200\n"
 "PO-Revision-Date: 2002-04-02 03:22+0900\n"
 "Last-Translator: Fumio Nakayama <endymion@ca2.so-net.ne.jp>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -605,13 +605,13 @@ msgid "Audio"
 msgstr "½ÐÎϲ»À¼(_A)"
 
 #. Video options
-#: plugins/directx/directx.c:53 plugins/dummy/dummy.c:51 src/libvlc.h:339
+#: src/libvlc.h:339 plugins/directx/directx.c:53 plugins/dummy/dummy.c:51
 #, fuzzy
 msgid "Video"
 msgstr "ɽ¼¨(_V)"
 
 #. Input options
-#: plugins/satellite/satellite.c:66 src/libvlc.h:352
+#: src/libvlc.h:352 plugins/satellite/satellite.c:66
 msgid "Input"
 msgstr ""
 
@@ -626,21 +626,21 @@ msgid "CPU"
 msgstr ""
 
 #. Playlist options
-#: plugins/gtk/gnome_interface.c:506 plugins/gtk/gnome_interface.c:2073
-#: plugins/gtk/gnome_interface.c:2098 plugins/gtk/gtk_interface.c:611
-#: plugins/gtk/gtk_interface.c:2342 src/libvlc.h:384
+#: src/libvlc.h:384 plugins/gtk/gtk_interface.c:611
+#: plugins/gtk/gtk_interface.c:2342 plugins/gtk/gnome_interface.c:506
+#: plugins/gtk/gnome_interface.c:2073 plugins/gtk/gnome_interface.c:2098
+#: plugins/macosx/intf_macosx.m:210 plugins/macosx/intf_playlist.m:69
 msgid "Playlist"
 msgstr "¥ê¥¹¥È"
 
 #. Misc options
-#: plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72 plugins/dsp/dsp.c:81
-#: plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
+#: src/libvlc.h:390 plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72
+#: plugins/dsp/dsp.c:81 plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
 #: plugins/filter/distort.c:55 plugins/filter/transform.c:56
-#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gnome.c:73
-#: plugins/gtk/gtk.c:71 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
+#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gtk.c:71
+#: plugins/gtk/gnome.c:73 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
 #: plugins/mpeg_vdec/video_parser.c:96 plugins/text/logger.c:86
 #: plugins/win32/win32.cpp:48 plugins/x11/x11.c:64 plugins/x11/xvideo.c:74
-#: src/libvlc.h:390
 msgid "Miscellaneous"
 msgstr ""
 
@@ -972,19 +972,19 @@ msgstr ""
 #. ****************************************************************************
 #. * Building configuration tree
 #. ****************************************************************************
-#: plugins/gtk/gnome.c:61 plugins/gtk/gtk.c:62
+#: plugins/gtk/gtk.c:62 plugins/gtk/gnome.c:61
 msgid "show tooltips"
 msgstr ""
 
-#: plugins/gtk/gnome.c:62 plugins/gtk/gtk.c:63
+#: plugins/gtk/gtk.c:63 plugins/gtk/gnome.c:62
 msgid "Show tooltips for configuration options."
 msgstr ""
 
-#: plugins/gtk/gnome.c:67 plugins/gtk/gtk.c:65
+#: plugins/gtk/gtk.c:65 plugins/gtk/gnome.c:67
 msgid "maximum height for the configuration windows"
 msgstr ""
 
-#: plugins/gtk/gnome.c:69 plugins/gtk/gtk.c:67
+#: plugins/gtk/gtk.c:67 plugins/gtk/gnome.c:69
 msgid ""
 "You can set the maximum height that the configuration windows in the "
 "preferences menu will occupy."
@@ -1006,8 +1006,8 @@ msgstr ""
 msgid "Gnome interface module"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:202 plugins/gtk/gtk_interface.c:109
-#: plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gtk_interface.c:109 plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gnome_interface.c:202
 msgid "VideoLAN Client"
 msgstr "VideoLAN¥¯¥é¥¤¥¢¥ó¥È"
 
@@ -1015,45 +1015,45 @@ msgstr "VideoLAN
 msgid "_File"
 msgstr "¥Õ¥¡¥¤¥ë(_F)"
 
-#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 #: plugins/gtk/gtk_interface.c:153 plugins/gtk/gtk_interface.c:1155
+#: plugins/gtk/gnome_interface.c:19 plugins/gtk/gnome_interface.c:800
 msgid "_Open File..."
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯(_O)..."
 
-#: plugins/gtk/gnome_interface.c:20 plugins/gtk/gnome_interface.c:367
-#: plugins/gtk/gnome_interface.c:801 plugins/gtk/gtk_interface.c:161
-#: plugins/gtk/gtk_interface.c:483 plugins/gtk/gtk_interface.c:1163
+#: plugins/gtk/gtk_interface.c:161 plugins/gtk/gtk_interface.c:483
+#: plugins/gtk/gtk_interface.c:1163 plugins/gtk/gnome_interface.c:20
+#: plugins/gtk/gnome_interface.c:367 plugins/gtk/gnome_interface.c:801
 msgid "Open a File"
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 #: plugins/gtk/gtk_interface.c:168 plugins/gtk/gtk_interface.c:1167
+#: plugins/gtk/gnome_interface.c:26 plugins/gtk/gnome_interface.c:807
 msgid "Open _Disc..."
 msgstr "¥Ç¥£¥¹¥¯¤ò³«¤¯(_D)..."
 
-#: plugins/gtk/gnome_interface.c:27 plugins/gtk/gnome_interface.c:379
-#: plugins/gtk/gnome_interface.c:808 plugins/gtk/gtk_interface.c:176
-#: plugins/gtk/gtk_interface.c:494 plugins/gtk/gtk_interface.c:1175
+#: plugins/gtk/gtk_interface.c:176 plugins/gtk/gtk_interface.c:494
+#: plugins/gtk/gtk_interface.c:1175 plugins/gtk/gnome_interface.c:27
+#: plugins/gtk/gnome_interface.c:379 plugins/gtk/gnome_interface.c:808
 msgid "Open a DVD or VCD"
 msgstr "DVD¤Þ¤¿¤ÏVCD¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 #: plugins/gtk/gtk_interface.c:183 plugins/gtk/gtk_interface.c:1179
+#: plugins/gtk/gnome_interface.c:33 plugins/gtk/gnome_interface.c:814
 msgid "_Network Stream..."
 msgstr "¥Í¥Ã¥È¥ï¡¼¥¯¥¹¥È¥ê¡¼¥à(_N)..."
 
-#: plugins/gtk/gnome_interface.c:34 plugins/gtk/gnome_interface.c:391
-#: plugins/gtk/gnome_interface.c:815 plugins/gtk/gtk_interface.c:191
-#: plugins/gtk/gtk_interface.c:505 plugins/gtk/gtk_interface.c:1187
+#: plugins/gtk/gtk_interface.c:191 plugins/gtk/gtk_interface.c:505
+#: plugins/gtk/gtk_interface.c:1187 plugins/gtk/gnome_interface.c:34
+#: plugins/gtk/gnome_interface.c:391 plugins/gtk/gnome_interface.c:815
 msgid "Select a Network Stream"
 msgstr "¥Í¥Ã¥È¥ï¡¼¥¯¥¹¥È¥ê¡¼¥à¤òÁªÂò¤¹¤ë"
 
-#: plugins/gtk/gnome_interface.c:41 plugins/gtk/gtk_interface.c:206
+#: plugins/gtk/gtk_interface.c:206 plugins/gtk/gnome_interface.c:41
 msgid "_Eject Disc"
 msgstr "¥Ç¥£¥¹¥¯¤Î¼è½Ð¤·(_E)"
 
-#: plugins/gtk/gnome_interface.c:42 plugins/gtk/gnome_interface.c:442
-#: plugins/gtk/gtk_interface.c:214
+#: plugins/gtk/gtk_interface.c:214 plugins/gtk/gnome_interface.c:42
+#: plugins/gtk/gnome_interface.c:442
 msgid "Eject disc"
 msgstr "¥Ç¥£¥¹¥¯¤Î¼è½Ð¤·"
 
@@ -1070,7 +1070,7 @@ msgstr "
 msgid "_View"
 msgstr "¥Õ¥¡¥¤¥ë(_F)"
 
-#: plugins/gtk/gnome_interface.c:55 plugins/gtk/gtk_interface.c:259
+#: plugins/gtk/gtk_interface.c:259 plugins/gtk/gnome_interface.c:55
 #, fuzzy
 msgid "_Hide interface"
 msgstr "¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò±£¤¹(_H)"
@@ -1079,21 +1079,21 @@ msgstr "
 msgid "Hide the main interface window"
 msgstr "¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò±£¤¹"
 
-#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 #: plugins/gtk/gtk_interface.c:271 plugins/gtk/gtk_interface.c:1049
+#: plugins/gtk/gnome_interface.c:62 plugins/gtk/gnome_interface.c:878
 msgid "_Fullscreen"
 msgstr "Á´²èÌ̲½(_F)"
 
-#: plugins/gtk/gnome_interface.c:70 plugins/gtk/gtk_interface.c:290
+#: plugins/gtk/gtk_interface.c:290 plugins/gtk/gnome_interface.c:70
 msgid "Progr_am"
 msgstr "¥×¥í¥°¥é¥à(_a)"
 
-#: plugins/gtk/gnome_interface.c:71 plugins/gtk/gtk_interface.c:299
+#: plugins/gtk/gtk_interface.c:299 plugins/gtk/gnome_interface.c:71
 #, fuzzy
 msgid "Choose the program"
 msgstr "¥×¥í¥°¥é¥à¤Î½ªÎ»"
 
-#: plugins/gtk/gnome_interface.c:77 plugins/gtk/gtk_interface.c:303
+#: plugins/gtk/gtk_interface.c:303 plugins/gtk/gnome_interface.c:77
 msgid "_Title"
 msgstr "¥¿¥¤¥È¥ë(_T)"
 
@@ -1101,32 +1101,32 @@ msgstr "
 msgid "Navigate through the stream"
 msgstr "¥¹¥È¥ê¡¼¥à¤ò¥Ê¥Ó¥²¡¼¥È¤¹¤ë"
 
-#: plugins/gtk/gnome_interface.c:84 plugins/gtk/gtk_interface.c:316
+#: plugins/gtk/gtk_interface.c:316 plugins/gtk/gnome_interface.c:84
 msgid "_Chapter"
 msgstr "¥Á¥ã¥×¥¿¡¼(_C)"
 
-#: plugins/gtk/gnome_interface.c:92 plugins/gtk/gtk_interface.c:336
+#: plugins/gtk/gtk_interface.c:336 plugins/gtk/gnome_interface.c:92
 msgid "_Playlist..."
 msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)..."
 
-#: plugins/gtk/gnome_interface.c:93 plugins/gtk/gtk_interface.c:344
+#: plugins/gtk/gtk_interface.c:344 plugins/gtk/gnome_interface.c:93
 msgid "Open the playlist window"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:99 plugins/gtk/gtk_interface.c:348
+#: plugins/gtk/gtk_interface.c:348 plugins/gtk/gnome_interface.c:99
 msgid "_Modules..."
 msgstr "¥â¥¸¥å¡¼¥ë(_M)..."
 
-#: plugins/gtk/gnome_interface.c:100 plugins/gtk/gtk_interface.c:357
+#: plugins/gtk/gtk_interface.c:357 plugins/gtk/gnome_interface.c:100
 #, fuzzy
 msgid "Open the module manager"
 msgstr "¥×¥é¥°¥¤¥ó¥Þ¥Í¡¼¥¸¥ã¡¼"
 
-#: plugins/gtk/gnome_interface.c:106 plugins/gtk/gtk_interface.c:359
+#: plugins/gtk/gtk_interface.c:359 plugins/gtk/gnome_interface.c:106
 msgid "Messages..."
 msgstr "¥á¥Ã¥»¡¼¥¸..."
 
-#: plugins/gtk/gnome_interface.c:107 plugins/gtk/gtk_interface.c:365
+#: plugins/gtk/gtk_interface.c:365 plugins/gtk/gnome_interface.c:107
 msgid "Open the messages window"
 msgstr "¥á¥Ã¥»¡¼¥¸¥¦¥£¥ó¥É¥¦¤òɽ¼¨"
 
@@ -1138,18 +1138,18 @@ msgstr "
 msgid "A_udio"
 msgstr "½ÐÎϲ»À¼(_u)"
 
-#: plugins/gtk/gnome_interface.c:119 plugins/gtk/gnome_interface.c:922
-#: plugins/gtk/gtk_interface.c:396
+#: plugins/gtk/gtk_interface.c:396 plugins/gtk/gnome_interface.c:119
+#: plugins/gtk/gnome_interface.c:922
 msgid "Select audio channel"
 msgstr "²»À¼¥Á¥ã¥ó¥Í¥ë¤ÎÁªÂò"
 
-#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 #: plugins/gtk/gtk_interface.c:400 plugins/gtk/gtk_interface.c:1125
+#: plugins/gtk/gnome_interface.c:125 plugins/gtk/gnome_interface.c:928
 msgid "_Subtitles"
 msgstr "»úËë(_S)"
 
-#: plugins/gtk/gnome_interface.c:126 plugins/gtk/gnome_interface.c:929
-#: plugins/gtk/gtk_interface.c:409
+#: plugins/gtk/gtk_interface.c:409 plugins/gtk/gnome_interface.c:126
+#: plugins/gtk/gnome_interface.c:929
 #, fuzzy
 msgid "Select subtitles channel"
 msgstr "»úËë¤ÎÁªÂò"
@@ -1174,124 +1174,132 @@ msgstr "VideoLAN
 msgid "About this application"
 msgstr "¤³¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ"
 
+#: plugins/gtk/gtk_interface.c:482 plugins/gtk/gtk_interface.c:1596
+#: plugins/gtk/gtk_interface.c:2378 plugins/gtk/gtk_interface.c:2495
 #: plugins/gtk/gnome_interface.c:366 plugins/gtk/gnome_interface.c:1317
-#: plugins/gtk/gnome_interface.c:1963 plugins/gtk/gtk_interface.c:482
-#: plugins/gtk/gtk_interface.c:1596 plugins/gtk/gtk_interface.c:2378
-#: plugins/gtk/gtk_interface.c:2495
+#: plugins/gtk/gnome_interface.c:1963 plugins/macosx/intf_macosx.m:194
 msgid "File"
 msgstr "¥Õ¥¡¥¤¥ë"
 
-#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
-#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 #: plugins/gtk/gtk_interface.c:493 plugins/gtk/gtk_interface.c:680
 #: plugins/gtk/gtk_interface.c:1707 plugins/gtk/gtk_interface.c:2371
+#: plugins/gtk/gnome_interface.c:378 plugins/gtk/gnome_interface.c:581
+#: plugins/gtk/gnome_interface.c:1428 plugins/gtk/gnome_interface.c:1956
 msgid "Disc"
 msgstr "¥Ç¥£¥¹¥¯"
 
-#: plugins/gtk/gnome_interface.c:390 plugins/gtk/gtk_interface.c:504
+#: plugins/gtk/gtk_interface.c:504 plugins/gtk/gnome_interface.c:390
 msgid "Net"
 msgstr "Network"
 
-#: plugins/gtk/gnome_interface.c:402 plugins/gtk/gtk_interface.c:515
+#: plugins/gtk/gtk_interface.c:515 plugins/gtk/gnome_interface.c:402
 msgid "Sat"
 msgstr "±ÒÀ±"
 
-#: plugins/gtk/gnome_interface.c:403 plugins/gtk/gtk_interface.c:516
+#: plugins/gtk/gtk_interface.c:516 plugins/gtk/gnome_interface.c:403
 msgid "Open a Satellite Card"
 msgstr "±ÒÀ±ÄÌ¿®¥«¡¼¥É¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 #: plugins/gtk/gtk_interface.c:528 plugins/gtk/gtk_interface.c:1004
+#: plugins/gtk/gnome_interface.c:416 plugins/gtk/gnome_interface.c:849
 msgid "Back"
 msgstr "µÕž"
 
-#: plugins/gtk/gnome_interface.c:417 plugins/gtk/gtk_interface.c:529
+#: plugins/gtk/gtk_interface.c:529 plugins/gtk/gnome_interface.c:417
 #, fuzzy
 msgid "Go Backward"
 msgstr "µÕžºÆÀ¸"
 
-#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
 #: plugins/gtk/gtk_interface.c:540 plugins/gtk/gtk_interface.c:997
+#: plugins/gtk/gnome_interface.c:429 plugins/gtk/gnome_interface.c:842
+#: plugins/macosx/intf_macosx.m:216 plugins/macosx/intf_macosx.m:239
+#: plugins/macosx/intf_controls.m:392
 msgid "Stop"
 msgstr "Ää»ß"
 
-#: plugins/gtk/gnome_interface.c:430 plugins/gtk/gtk_interface.c:541
+#: plugins/gtk/gtk_interface.c:541 plugins/gtk/gnome_interface.c:430
 msgid "Stop Stream"
 msgstr "¥¹¥È¥ê¡¼¥à¤ÎÄä»ß"
 
-#: plugins/gtk/gnome_interface.c:441 plugins/gtk/gtk_interface.c:551
+#: plugins/gtk/gtk_interface.c:551 plugins/gtk/gnome_interface.c:441
 msgid "Eject"
 msgstr "¼è½Ð¤·"
 
-#: plugins/gtk/gnome_interface.c:453 plugins/gtk/gnome_interface.c:828
-#: plugins/gtk/gtk_interface.c:562
+#. dock menu
+#: plugins/gtk/gtk_interface.c:562 plugins/gtk/gnome_interface.c:453
+#: plugins/gtk/gnome_interface.c:828 plugins/macosx/intf_macosx.m:214
+#: plugins/macosx/intf_macosx.m:237
 msgid "Play"
 msgstr "ºÆÀ¸"
 
-#: plugins/gtk/gnome_interface.c:454 plugins/gtk/gtk_interface.c:563
+#: plugins/gtk/gtk_interface.c:563 plugins/gtk/gnome_interface.c:454
 msgid "Play Stream"
 msgstr "¥¹¥È¥ê¡¼¥à¤ÎºÆÀ¸"
 
-#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
 #: plugins/gtk/gtk_interface.c:573 plugins/gtk/gtk_interface.c:989
+#: plugins/gtk/gnome_interface.c:465 plugins/gtk/gnome_interface.c:835
+#: plugins/macosx/intf_macosx.m:215 plugins/macosx/intf_macosx.m:238
+#: plugins/macosx/intf_controls.m:375
 msgid "Pause"
 msgstr "°ì»þÄä»ß"
 
-#: plugins/gtk/gnome_interface.c:466 plugins/gtk/gtk_interface.c:574
+#: plugins/gtk/gtk_interface.c:574 plugins/gtk/gnome_interface.c:466
 msgid "Pause Stream"
 msgstr "¥¹¥È¥ê¡¼¥à¤Î°ì»þÄä»ß"
 
-#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 #: plugins/gtk/gtk_interface.c:587 plugins/gtk/gtk_interface.c:1012
+#: plugins/gtk/gnome_interface.c:480 plugins/gtk/gnome_interface.c:856
 msgid "Slow"
 msgstr "¥¹¥í¡¼"
 
-#: plugins/gtk/gnome_interface.c:481 plugins/gtk/gtk_interface.c:588
+#: plugins/gtk/gtk_interface.c:588 plugins/gtk/gnome_interface.c:481
 msgid "Play Slower"
 msgstr "¥¹¥í¡¼ºÆÀ¸"
 
-#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 #: plugins/gtk/gtk_interface.c:599 plugins/gtk/gtk_interface.c:1020
+#: plugins/gtk/gnome_interface.c:493 plugins/gtk/gnome_interface.c:863
 msgid "Fast"
 msgstr "ÁáÁ÷¤ê"
 
-#: plugins/gtk/gnome_interface.c:494 plugins/gtk/gtk_interface.c:600
+#: plugins/gtk/gtk_interface.c:600 plugins/gtk/gnome_interface.c:494
 msgid "Play Faster"
 msgstr "ÁáÁ÷¤êºÆÀ¸"
 
-#: plugins/gtk/gnome_interface.c:507 plugins/gtk/gtk_interface.c:612
+#: plugins/gtk/gtk_interface.c:612 plugins/gtk/gnome_interface.c:507
 msgid "Open Playlist"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
 #: plugins/gtk/gtk_interface.c:622 plugins/gtk/gtk_interface.c:708
 #: plugins/gtk/gtk_interface.c:752 plugins/gtk/gtk_interface.c:1073
+#: plugins/gtk/gnome_interface.c:518 plugins/gtk/gnome_interface.c:893
+#: plugins/macosx/intf_macosx.m:219 plugins/macosx/intf_controls.m:396
 msgid "Prev"
 msgstr "Á°"
 
-#: plugins/gtk/gnome_interface.c:519 plugins/gtk/gtk_interface.c:623
+#: plugins/gtk/gtk_interface.c:623 plugins/gtk/gnome_interface.c:519
 msgid "Previous File"
 msgstr "Á°¤Î¥Õ¥¡¥¤¥ë"
 
-#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
 #: plugins/gtk/gtk_interface.c:633 plugins/gtk/gtk_interface.c:716
 #: plugins/gtk/gtk_interface.c:760 plugins/gtk/gtk_interface.c:1066
+#: plugins/gtk/gnome_interface.c:530 plugins/gtk/gnome_interface.c:886
+#: plugins/macosx/intf_macosx.m:220 plugins/macosx/intf_controls.m:397
 msgid "Next"
 msgstr "¼¡"
 
-#: plugins/gtk/gnome_interface.c:531 plugins/gtk/gtk_interface.c:634
+#: plugins/gtk/gtk_interface.c:634 plugins/gtk/gnome_interface.c:531
 msgid "Next File"
 msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë"
 
-#: plugins/gtk/gnome_interface.c:595 plugins/gtk/gtk_interface.c:694
+#: plugins/gtk/gtk_interface.c:694 plugins/gtk/gnome_interface.c:595
 msgid "Title:"
 msgstr "¥¿¥¤¥È¥ë:"
 
-#: plugins/gtk/gnome_interface.c:638 plugins/gtk/gtk_interface.c:738
+#: plugins/gtk/gtk_interface.c:738 plugins/gtk/gnome_interface.c:638
 msgid "Chapter:"
 msgstr "¥Á¥ã¥×¥¿¡¼:"
 
-#: plugins/gtk/gnome_interface.c:674 plugins/gtk/gtk_interface.c:775
+#: plugins/gtk/gtk_interface.c:775 plugins/gtk/gnome_interface.c:674
 msgid "No server"
 msgstr "¥µ¡¼¥Ð¡¼Ìµ¤·"
 
@@ -1300,7 +1308,7 @@ msgstr "
 msgid "Channel:"
 msgstr "¥Á¥ã¥ó¥Í¥ë:  "
 
-#: plugins/gtk/gnome_interface.c:703 plugins/gtk/gtk_interface.c:804
+#: plugins/gtk/gtk_interface.c:804 plugins/gtk/gnome_interface.c:703
 msgid "Go!"
 msgstr ""
 
@@ -1308,30 +1316,31 @@ msgstr ""
 msgid "_Play"
 msgstr "ºÆÀ¸(_P)"
 
-#: plugins/gtk/gnome_interface.c:871 plugins/gtk/gtk_interface.c:1038
+#: plugins/gtk/gtk_interface.c:1038 plugins/gtk/gnome_interface.c:871
 #, fuzzy
 msgid "Toggle _Interface"
 msgstr "¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Îɽ¼¨ÀÚÂؤ¨(_I)"
 
-#: plugins/gtk/gnome_interface.c:900 plugins/gtk/gtk_interface.c:1082
+#: plugins/gtk/gtk_interface.c:1082 plugins/gtk/gnome_interface.c:900
 msgid "_Jump..."
 msgstr "¥¸¥ã¥ó¥×(_J)..."
 
-#: plugins/gtk/gnome_interface.c:907 plugins/gtk/gtk_interface.c:1091
+#: plugins/gtk/gtk_interface.c:1091 plugins/gtk/gnome_interface.c:907
+#: plugins/macosx/intf_macosx.m:226
 msgid "Program"
 msgstr "¥×¥í¥°¥é¥à"
 
-#: plugins/gtk/gnome_interface.c:914 plugins/gtk/gtk_interface.c:1101
+#: plugins/gtk/gtk_interface.c:1101 plugins/gtk/gnome_interface.c:914
 msgid "_Navigation"
 msgstr "¥Ê¥Ó¥²¡¼¥·¥ç¥ó(_N)"
 
-#: plugins/gtk/gnome_interface.c:118 plugins/gtk/gnome_interface.c:921
-#: plugins/gtk/gtk_interface.c:1113
+#: plugins/gtk/gtk_interface.c:1113 plugins/gtk/gnome_interface.c:118
+#: plugins/gtk/gnome_interface.c:921
 #, fuzzy
 msgid "_Audio"
 msgstr "½ÐÎϲ»À¼(_A)"
 
-#: plugins/gtk/gnome_interface.c:937 plugins/gtk/gtk_interface.c:1208
+#: plugins/gtk/gtk_interface.c:1208 plugins/gtk/gnome_interface.c:937
 msgid "Playlist..."
 msgstr "¥×¥ì¥¤¥ê¥¹¥È..."
 
@@ -1339,7 +1348,7 @@ msgstr "
 msgid "About"
 msgstr "VideoLAN¤Ë¤Ä¤¤¤Æ"
 
-#: plugins/gtk/gnome_interface.c:1118 plugins/gtk/gtk_interface.c:1345
+#: plugins/gtk/gtk_interface.c:1345 plugins/gtk/gnome_interface.c:1118
 #: plugins/kde/kde.cpp:123
 msgid "(C) 1996, 1997, 1998, 1999, 2000, 2001, 2002 - the VideoLAN Team"
 msgstr ""
@@ -1354,7 +1363,7 @@ msgid ""
 "http://www.videolan.org/"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1120 plugins/gtk/gtk_interface.c:1371
+#: plugins/gtk/gtk_interface.c:1371 plugins/gtk/gnome_interface.c:1120
 #: plugins/kde/kde.cpp:120
 msgid ""
 "This is the VideoLAN client, a DVD and MPEG player. It can play MPEG and "
@@ -1366,6 +1375,7 @@ msgstr ""
 #: plugins/gtk/gtk_interface.c:1386 plugins/gtk/gtk_interface.c:2058
 #: plugins/gtk/gtk_interface.c:2283 plugins/gtk/gtk_interface.c:2514
 #: plugins/gtk/gtk_interface.c:2621 plugins/gtk/gtk_preferences.c:540
+#: plugins/macosx/intf_open.m:138 plugins/macosx/intf_open.m:151
 msgid "OK"
 msgstr ""
 
@@ -1374,119 +1384,125 @@ msgstr ""
 msgid "Open Target"
 msgstr "¥¹¥È¥ê¡¼¥à¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:1224 plugins/gtk/gtk_interface.c:1503
+#: plugins/gtk/gtk_interface.c:1503 plugins/gtk/gnome_interface.c:1224
 msgid "Media Resource Locator (MRL)"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1246 plugins/gtk/gtk_interface.c:1525
+#: plugins/gtk/gtk_interface.c:1525 plugins/gtk/gnome_interface.c:1246
 #, fuzzy
 msgid "Open Target:"
 msgstr "¥¹¥È¥ê¡¼¥à¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:1266 plugins/gtk/gtk_interface.c:1545
+#: plugins/gtk/gtk_interface.c:1545 plugins/gtk/gnome_interface.c:1266
 msgid ""
 "Alternatively, you can build an MRL using one of the following predefined "
 "targets:"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1310 plugins/gtk/gtk_interface.c:1589
+#: plugins/gtk/gtk_interface.c:1589 plugins/gtk/gnome_interface.c:1310
 msgid "Browse..."
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1334 plugins/gtk/gtk_interface.c:1613
+#: plugins/gtk/gtk_interface.c:1613 plugins/gtk/gnome_interface.c:1334
 #: plugins/gtk/gtk_menu.c:904 plugins/gtk/gtk_menu.c:925
+#: plugins/macosx/intf_macosx.m:227 plugins/macosx/intf_open.m:142
 msgid "Title"
 msgstr "¥¿¥¤¥È¥ë"
 
-#: plugins/gtk/gnome_interface.c:1344 plugins/gtk/gtk_interface.c:1623
+#: plugins/gtk/gtk_interface.c:1623 plugins/gtk/gnome_interface.c:1344
 #: plugins/gtk/gtk_menu.c:799 plugins/gtk/gtk_menu.c:934
+#: plugins/macosx/intf_macosx.m:228 plugins/macosx/intf_open.m:143
 msgid "Chapter"
 msgstr "¥Á¥ã¥×¥¿¡¼"
 
-#: plugins/gtk/gnome_interface.c:1364 plugins/gtk/gtk_interface.c:1643
+#: plugins/gtk/gtk_interface.c:1643 plugins/gtk/gnome_interface.c:1364
+#: plugins/macosx/intf_open.m:140
 msgid "Disc type"
 msgstr "¥Ç¥£¥¹¥¯¤Î¼ïÎà"
 
-#: plugins/gtk/gnome_interface.c:1383 plugins/gtk/gtk_interface.c:1662
+#: plugins/gtk/gtk_interface.c:1662 plugins/gtk/gnome_interface.c:1383
 msgid "DVD"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1391 plugins/gtk/gtk_interface.c:1670
+#: plugins/gtk/gtk_interface.c:1670 plugins/gtk/gnome_interface.c:1391
 msgid "VCD"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1399 plugins/gtk/gtk_interface.c:1678
+#: plugins/gtk/gtk_interface.c:1678 plugins/gtk/gnome_interface.c:1399
 msgid "Device name"
 msgstr "¥Ç¥Ð¥¤¥¹Ì¾"
 
-#: plugins/gtk/gnome_interface.c:1445 plugins/gtk/gtk_interface.c:1724
+#: plugins/gtk/gtk_interface.c:1724 plugins/gtk/gnome_interface.c:1445
 msgid "UDP"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1455 plugins/gtk/gtk_interface.c:1734
+#: plugins/gtk/gtk_interface.c:1734 plugins/gtk/gnome_interface.c:1455
 msgid "UDP Multicast"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1465 plugins/gtk/gtk_interface.c:1744
+#: plugins/gtk/gtk_interface.c:1744 plugins/gtk/gnome_interface.c:1465
 #, fuzzy
 msgid "Channel server "
 msgstr "¥Á¥ã¥ó¥Í¥ë¥µ¡¼¥Ð¡¼:"
 
-#: plugins/gtk/gnome_interface.c:1475 plugins/gtk/gtk_interface.c:1754
+#: plugins/gtk/gtk_interface.c:1754 plugins/gtk/gnome_interface.c:1475
 msgid "HTTP"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1485 plugins/gtk/gnome_interface.c:1560
-#: plugins/gtk/gnome_interface.c:1571 plugins/gtk/gtk_interface.c:1764
-#: plugins/gtk/gtk_interface.c:1839 plugins/gtk/gtk_interface.c:1850
+#: plugins/gtk/gtk_interface.c:1764 plugins/gtk/gtk_interface.c:1839
+#: plugins/gtk/gtk_interface.c:1850 plugins/gtk/gnome_interface.c:1485
+#: plugins/gtk/gnome_interface.c:1560 plugins/gtk/gnome_interface.c:1571
+#: plugins/macosx/intf_open.m:148
 msgid "Port"
 msgstr "¥Ý¡¼¥ÈÈÖ¹æ"
 
-#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
 #: plugins/gtk/gtk_interface.c:1774 plugins/gtk/gtk_interface.c:1786
+#: plugins/gtk/gnome_interface.c:1495 plugins/gtk/gnome_interface.c:1507
+#: plugins/macosx/intf_open.m:147
 msgid "Address"
 msgstr "¥Û¥¹¥È̾/¥¢¥É¥ì¥¹"
 
-#: plugins/gtk/gnome_interface.c:1517 plugins/gtk/gtk_interface.c:1796
+#: plugins/gtk/gtk_interface.c:1796 plugins/gtk/gnome_interface.c:1517
 msgid "URL"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 #: plugins/gtk/gtk_interface.c:1906 plugins/gtk/gtk_interface.c:2385
+#: plugins/gtk/gnome_interface.c:1627 plugins/gtk/gnome_interface.c:1970
 msgid "Network"
 msgstr "¥Í¥Ã¥È¥ï¡¼¥¯"
 
-#: plugins/gtk/gnome_interface.c:1644 plugins/gtk/gtk_interface.c:1923
+#: plugins/gtk/gtk_interface.c:1923 plugins/gtk/gnome_interface.c:1644
 msgid "Symbol Rate"
 msgstr "¥·¥ó¥Ü¥ë¥ì¡¼¥È"
 
-#: plugins/gtk/gnome_interface.c:1654 plugins/gtk/gtk_interface.c:1933
+#: plugins/gtk/gtk_interface.c:1933 plugins/gtk/gnome_interface.c:1654
 msgid "Frequency"
 msgstr "¼þÇÈ¿ô"
 
-#: plugins/gtk/gnome_interface.c:1664 plugins/gtk/gtk_interface.c:1943
+#: plugins/gtk/gtk_interface.c:1943 plugins/gtk/gnome_interface.c:1664
 msgid "Polarization"
 msgstr "¶ËÀ­"
 
-#: plugins/gtk/gnome_interface.c:1684 plugins/gtk/gtk_interface.c:1963
+#: plugins/gtk/gtk_interface.c:1963 plugins/gtk/gnome_interface.c:1684
 msgid "FEC"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:1703 plugins/gtk/gtk_interface.c:1982
+#: plugins/gtk/gtk_interface.c:1982 plugins/gtk/gnome_interface.c:1703
 msgid "Vertical"
 msgstr "¿âľ"
 
-#: plugins/gtk/gnome_interface.c:1711 plugins/gtk/gtk_interface.c:1990
+#: plugins/gtk/gtk_interface.c:1990 plugins/gtk/gnome_interface.c:1711
 msgid "Horizontal"
 msgstr "¿åÊ¿"
 
-#: plugins/gtk/gnome_interface.c:1753 plugins/gtk/gtk_interface.c:2032
+#: plugins/gtk/gtk_interface.c:2032 plugins/gtk/gnome_interface.c:1753
 #, fuzzy
 msgid "Satellite"
 msgstr "±ÒÀ±ÄÌ¿®¥«¡¼¥É¤ò³«¤¯"
 
 #: plugins/gtk/gtk_interface.c:2065 plugins/gtk/gtk_interface.c:2290
 #: plugins/gtk/gtk_interface.c:2521 plugins/gtk/gtk_preferences.c:552
+#: plugins/macosx/intf_open.m:139 plugins/macosx/intf_open.m:152
 msgid "Cancel"
 msgstr "¥­¥ã¥ó¥»¥ë"
 
@@ -1503,32 +1519,32 @@ msgstr "
 msgid "Go to:"
 msgstr "¥¸¥ã¥ó¥×"
 
-#: plugins/gtk/gnome_interface.c:2294 plugins/gtk/gtk_interface.c:2233
+#: plugins/gtk/gtk_interface.c:2233 plugins/gtk/gnome_interface.c:2294
 msgid "s."
 msgstr "ÉÃ"
 
-#: plugins/gtk/gnome_interface.c:2309 plugins/gtk/gtk_interface.c:2248
+#: plugins/gtk/gtk_interface.c:2248 plugins/gtk/gnome_interface.c:2309
 msgid "m:"
 msgstr "ʬ"
 
-#: plugins/gtk/gnome_interface.c:2324 plugins/gtk/gtk_interface.c:2263
+#: plugins/gtk/gtk_interface.c:2263 plugins/gtk/gnome_interface.c:2324
 msgid "h:"
 msgstr "»þ"
 
-#: plugins/gtk/gnome_interface.c:2034 plugins/gtk/gtk_interface.c:2357
+#: plugins/gtk/gtk_interface.c:2357 plugins/gtk/gnome_interface.c:2034
 msgid "Add"
 msgstr "ÄɲÃ"
 
-#: plugins/gtk/gnome_interface.c:1977 plugins/gtk/gnome_interface.c:2118
-#: plugins/gtk/gtk_interface.c:2392
+#: plugins/gtk/gtk_interface.c:2392 plugins/gtk/gnome_interface.c:1977
+#: plugins/gtk/gnome_interface.c:2118
 msgid "Url"
 msgstr "URL"
 
-#: plugins/gtk/gnome_interface.c:2041 plugins/gtk/gtk_interface.c:2399
+#: plugins/gtk/gtk_interface.c:2399 plugins/gtk/gnome_interface.c:2041
 msgid "Delete"
 msgstr "ºï½ü"
 
-#: plugins/gtk/gnome_interface.c:1989 plugins/gtk/gtk_interface.c:2413
+#: plugins/gtk/gtk_interface.c:2413 plugins/gtk/gnome_interface.c:1989
 msgid "All"
 msgstr "¤¹¤Ù¤Æ"
 
@@ -1536,7 +1552,7 @@ msgstr "
 msgid "Selected"
 msgstr "ÁªÂòºÑ¤ß"
 
-#: plugins/gtk/gnome_interface.c:2048 plugins/gtk/gtk_interface.c:2427
+#: plugins/gtk/gtk_interface.c:2427 plugins/gtk/gnome_interface.c:2048
 msgid "Selection"
 msgstr "ÁªÂò"
 
@@ -1552,12 +1568,13 @@ msgstr ""
 msgid "_Select"
 msgstr "ÁªÂò(_S)"
 
-#: plugins/gtk/gnome_interface.c:2125 plugins/gtk/gtk_interface.c:2502
+#: plugins/gtk/gtk_interface.c:2502 plugins/gtk/gnome_interface.c:2125
 #, fuzzy
 msgid "Duration"
 msgstr "¶ËÀ­"
 
-#: plugins/gtk/gnome_interface.c:2381 plugins/gtk/gtk_interface.c:2592
+#: plugins/gtk/gtk_interface.c:2592 plugins/gtk/gnome_interface.c:2381
+#: plugins/macosx/intf_macosx.m:185 plugins/macosx/intf_macosx.m:211
 msgid "Messages"
 msgstr "¥á¥Ã¥»¡¼¥¸"
 
@@ -1610,7 +1627,7 @@ msgstr "
 msgid "Open Stream"
 msgstr "¥¹¥È¥ê¡¼¥à¤ò³«¤¯"
 
-#: plugins/gtk/gnome_interface.c:1868
+#: plugins/gtk/gnome_interface.c:1868 plugins/macosx/intf_macosx.m:195
 msgid "Open File"
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯"
 
@@ -1737,6 +1754,157 @@ msgstr ""
 msgid "MacOS X interface, sound and video module"
 msgstr ""
 
+#: plugins/macosx/intf_macosx.m:186 plugins/macosx/intf_playlist.m:70
+msgid "Close"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:188
+#, fuzzy
+msgid "About vlc"
+msgstr "VideoLAN¤Ë¤Ä¤¤¤Æ"
+
+#: plugins/macosx/intf_macosx.m:189
+msgid "Hide vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:190
+#, fuzzy
+msgid "Hide Others"
+msgstr "¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò±£¤¹(_H)"
+
+#: plugins/macosx/intf_macosx.m:191
+msgid "Show All"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:192
+msgid "Quit vlc"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:196 plugins/macosx/intf_open.m:137
+msgid "Open Disc"
+msgstr "¥Ç¥£¥¹¥¯¤ò³«¤¯"
+
+#: plugins/macosx/intf_macosx.m:197 plugins/macosx/intf_open.m:145
+msgid "Open Network"
+msgstr "¥Í¥Ã¥È¥ï¡¼¥¯¤ò³«¤¯"
+
+#: plugins/macosx/intf_macosx.m:198
+#, fuzzy
+msgid "Open Quickly..."
+msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯(_O)..."
+
+#: plugins/macosx/intf_macosx.m:199
+#, fuzzy
+msgid "Open Recent"
+msgstr "¥¹¥È¥ê¡¼¥à¤ò³«¤¯"
+
+#. Recent Items Menu
+#: plugins/macosx/intf_macosx.m:200 plugins/macosx/intf_macosx.m:755
+msgid "Clear Menu"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:202
+#, fuzzy
+msgid "Edit"
+msgstr "½ªÎ»(_x)"
+
+#: plugins/macosx/intf_macosx.m:203
+msgid "Cut"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:204
+msgid "Copy"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:205
+#, fuzzy
+msgid "Paste"
+msgstr "°ì»þÄä»ß"
+
+#: plugins/macosx/intf_macosx.m:206
+msgid "Clear"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:207
+#, fuzzy
+msgid "Select All"
+msgstr "¥Õ¥¡¥¤¥ë¤ÎÁªÂò"
+
+#: plugins/macosx/intf_macosx.m:209
+#, fuzzy
+msgid "View"
+msgstr "¥Õ¥¡¥¤¥ë(_F)"
+
+#: plugins/macosx/intf_macosx.m:213
+msgid "Controls"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:217 plugins/macosx/intf_controls.m:376
+#, fuzzy
+msgid "Faster"
+msgstr "ÁáÁ÷¤ê"
+
+#: plugins/macosx/intf_macosx.m:218 plugins/macosx/intf_controls.m:377
+#, fuzzy
+msgid "Slower"
+msgstr "¥¹¥í¡¼"
+
+#: plugins/macosx/intf_macosx.m:221
+msgid "Loop"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:222 plugins/macosx/intf_controls.m:414
+msgid "Volume Up"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:223 plugins/macosx/intf_controls.m:415
+msgid "Volume Down"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:224 plugins/macosx/intf_controls.m:419
+msgid "Mute"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:225 plugins/macosx/intf_controls.m:451
+#, fuzzy
+msgid "Fullscreen"
+msgstr "Á´²èÌ̲½(_F)"
+
+#: plugins/macosx/intf_macosx.m:229
+msgid "Language"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:230
+#, fuzzy
+msgid "Subtitles"
+msgstr "»úËë(_S)"
+
+#: plugins/macosx/intf_macosx.m:232
+msgid "Window"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:233
+msgid "Minimize"
+msgstr ""
+
+#: plugins/macosx/intf_macosx.m:234
+msgid "Bring All to Front"
+msgstr ""
+
+#: plugins/macosx/intf_open.m:141
+msgid "Starting position"
+msgstr "ºÆÀ¸³«»Ï¤Î°ÌÃÖ"
+
+#: plugins/macosx/intf_open.m:146
+#, fuzzy
+msgid "Network mode"
+msgstr "¥Í¥Ã¥È¥ï¡¼¥¯"
+
+#: plugins/macosx/intf_open.m:150
+#, fuzzy
+msgid "Open Quickly"
+msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤¯"
+
 #. ****************************************************************************
 #. * Build configuration tree.
 #. ****************************************************************************
@@ -2057,19 +2225,9 @@ msgstr ""
 msgid "XVideo extension module"
 msgstr ""
 
-#~ msgid "Starting position"
-#~ msgstr "ºÆÀ¸³«»Ï¤Î°ÌÃÖ"
-
-#, fuzzy
-#~ msgid "Network mode"
-#~ msgstr "¥Í¥Ã¥È¥ï¡¼¥¯"
-
 #~ msgid "Transponder settings"
 #~ msgstr "žÁ÷¤Ë´Ø¤¹¤ëÀßÄê"
 
-#~ msgid "Open Disc"
-#~ msgstr "¥Ç¥£¥¹¥¯¤ò³«¤¯"
-
 #~ msgid "Device name:"
 #~ msgstr "¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥¹:"
 
@@ -2098,9 +2256,6 @@ msgstr ""
 #~ msgid "Open Satellite Card"
 #~ msgstr "±ÒÀ±ÄÌ¿®¥«¡¼¥É¤ò³«¤¯"
 
-#~ msgid "Open Network"
-#~ msgstr "¥Í¥Ã¥È¥ï¡¼¥¯¤ò³«¤¯"
-
 #~ msgid "Channel server:"
 #~ msgstr "¥Á¥ã¥ó¥Í¥ë¥µ¡¼¥Ð¡¼:"
 
index 84cdd95..a393af8 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-07-12 18:49+0200\n"
+"POT-Creation-Date: 2002-07-15 03:18+0200\n"
 "PO-Revision-Date: 2002-04-20 16:58GMT\n"
 "Last-Translator: Jean-Paul Saman <jpsaman@wxs.nl>\n"
 "Language-Team: Nederlands <nl@li.org>\n"
@@ -689,12 +689,12 @@ msgid "Audio"
 msgstr ""
 
 #. Video options
-#: plugins/directx/directx.c:53 plugins/dummy/dummy.c:51 src/libvlc.h:339
+#: src/libvlc.h:339 plugins/directx/directx.c:53 plugins/dummy/dummy.c:51
 msgid "Video"
 msgstr ""
 
 #. Input options
-#: plugins/satellite/satellite.c:66 src/libvlc.h:352
+#: src/libvlc.h:352 plugins/satellite/satellite.c:66
 msgid "Input"
 msgstr ""
 
@@ -709,21 +709,21 @@ msgid "CPU"
 msgstr ""
 
 #. Playlist options
-#: plugins/gtk/gnome_interface.c:506 plugins/gtk/gnome_interface.c:2073
-#: plugins/gtk/gnome_interface.c:2098 plugins/gtk/gtk_interface.c:611
-#: plugins/gtk/gtk_interface.c:2342 src/libvlc.h:384
+#: src/libvlc.h:384 plugins/gtk/gtk_interface.c:611
+#: plugins/gtk/gtk_interface.c:2342 plugins/gtk/gnome_interface.c:506
+#: plugins/gtk/gnome_interface.c:2073 plugins/gtk/gnome_interface.c:2098
+#: plugins/macosx/intf_macosx.m:210 plugins/macosx/intf_playlist.m:69
 msgid "Playlist"
 msgstr "Speellijst"
 
 #. Misc options
-#: plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72 plugins/dsp/dsp.c:81
-#: plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
+#: src/libvlc.h:390 plugins/a52/a52.c:85 plugins/ac3_adec/ac3_adec.c:72
+#: plugins/dsp/dsp.c:81 plugins/fb/fb.c:70 plugins/filter/deinterlace.c:63
 #: plugins/filter/distort.c:55 plugins/filter/transform.c:56
-#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gnome.c:73
-#: plugins/gtk/gtk.c:71 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
+#: plugins/filter/wall.c:57 plugins/ggi/ggi.c:64 plugins/gtk/gtk.c:71
+#: plugins/gtk/gnome.c:73 plugins/mad/mad_adec.c:66 plugins/mga/xmga.c:106
 #: plugins/mpeg_vdec/video_parser.c:96 plugins/text/logger.c:86
 #: plugins/win32/win32.cpp:48 plugins/x11/x11.c:64 plugins/x11/xvideo.c:74
-#: src/libvlc.h:390
 msgid "Miscellaneous"
 msgstr "Overige"
 
@@ -1056,21 +1056,21 @@ msgstr ""
 #. ****************************************************************************
 #. * Building configuration tree
 #. ****************************************************************************
-#: plugins/gtk/gnome.c:61 plugins/gtk/gtk.c:62
+#: plugins/gtk/gtk.c:62 plugins/gtk/gnome.c:61
 #, fuzzy
 msgid "show tooltips"
 msgstr "verschuil tooltips"
 
-#: plugins/gtk/gnome.c:62 plugins/gtk/gtk.c:63
+#: plugins/gtk/gtk.c:63 plugins/gtk/gnome.c:62
 #, fuzzy
 msgid "Show tooltips for configuration options."
 msgstr "Laat geen tooltips voor configuratie opties zien."
 
-#: plugins/gtk/gnome.c:67 plugins/gtk/gtk.c:65
+#: plugins/gtk/gtk.c:65 plugins/gtk/gnome.c:67
 msgid "maximum height for the configuration windows"
 msgstr "maximum hoofte voor de configuratie schermen"
 
-#: plugins/gtk/gnome.c:69 plugins/gtk/gtk.c:67
+#: plugins/gtk/gtk.c:67 plugins/gtk/gnome.c:69
 msgid ""
 "You can set the maximum height that the configuration windows in the "
 "preferences menu will occupy."
@@ -1094,8 +1094,8 @@ msgstr ""
 msgid "Gnome interface module"
 msgstr ""
 
-#: plugins/gtk/gnome_interface.c:202 plugins/gtk/gtk_interface.c:109
-#: plugins/gtk/gtk_interface.c:1337
+#: plugins/gtk/gtk_interface.c:109 plu