]> git.sesse.net Git - vlc/commitdiff
* IPv6 multicast support, courtesy of Remco Poortinga <poortinga@telin.nl> ;
authorChristophe Massiot <massiot@videolan.org>
Sun, 9 Jun 2002 22:57:00 +0000 (22:57 +0000)
committerChristophe Massiot <massiot@videolan.org>
Sun, 9 Jun 2002 22:57:00 +0000 (22:57 +0000)
* Mac OS X icons and fixes, courtesy of Benjamin Mironer <bmironer@noos.fr>.

AUTHORS
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib
extras/MacOSX/Resources/divx.icns [new file with mode: 0644]
extras/MacOSX/Resources/generic.icns [new file with mode: 0644]
extras/MacOSX/Resources/mpeg.icns [new file with mode: 0644]
extras/MacOSX/Resources/mpeg1.icns [new file with mode: 0644]
extras/MacOSX/Resources/mpeg2.icns [new file with mode: 0644]
extras/MacOSX/Resources/mpeg4.icns [new file with mode: 0644]
extras/MacOSX/vlc.pbproj/project.pbxproj
plugins/network/ipv6.c

diff --git a/AUTHORS b/AUTHORS
index 04cfadccc0993f9c9d286f2f8c9d8a86a45983a0..e5f24177596969e972f4796f10c35a47f7368413 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -299,6 +299,10 @@ D: Many ports (Mac OS X, iPAQ, *BSD, Solaris...)
 D: documentation
 S: France
 
+N: Benjamin Mironer
+E: bmironer@noos.fr
+D: Mac OS X fixes
+
 N: Arkadiusz Miskiewicz
 E: misiek@pld.ORG.PL
 D: autoconf and Makefile patches
@@ -320,6 +324,11 @@ E: pomel@via.ecp.fr
 C: pomel
 S: France
 
+N: Remco Poortinga
+E: poortinga@telin.nl
+D: IPv6 multicast patch
+S: Netherlands
+
 N: Jean-Paul Saman
 E: jpsaman@wxs.nl
 D: libmad plug-in
index 3f218ae647b3e3c77835daa5b5d5cb0d868d7e74..11e88ca1902fb38dee4dcfa0ad59f6ecae4093a1 100644 (file)
@@ -3,13 +3,13 @@
 <plist version="0.9">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>13 255 500 426 0 0 1152 746 </string>
+       <string>28 196 500 426 0 0 1152 746 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>235</key>
                <string>401 417 350 182 0 0 1152 746 </string>
                <key>29</key>
-               <string>797 461 262 44 0 0 1152 746 </string>
+               <string>809 162 262 44 0 0 1152 746 </string>
                <key>445</key>
                <string>347 561 370 117 0 0 1152 746 </string>
                <key>460</key>
@@ -19,8 +19,8 @@
        <string>248.0</string>
        <key>IBOpenObjects</key>
        <array>
-               <integer>528</integer>
                <integer>29</integer>
+               <integer>528</integer>
        </array>
        <key>IBSystem Version</key>
        <string>5Q125</string>
index 24c78150a24393d8acf3708b50387eaf4874026c..b468ee66c10ea61f86d5fff38fcbf575392757d5 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
diff --git a/extras/MacOSX/Resources/divx.icns b/extras/MacOSX/Resources/divx.icns
new file mode 100644 (file)
index 0000000..7e2ba65
Binary files /dev/null and b/extras/MacOSX/Resources/divx.icns differ
diff --git a/extras/MacOSX/Resources/generic.icns b/extras/MacOSX/Resources/generic.icns
new file mode 100644 (file)
index 0000000..28dc564
Binary files /dev/null and b/extras/MacOSX/Resources/generic.icns differ
diff --git a/extras/MacOSX/Resources/mpeg.icns b/extras/MacOSX/Resources/mpeg.icns
new file mode 100644 (file)
index 0000000..9af347a
Binary files /dev/null and b/extras/MacOSX/Resources/mpeg.icns differ
diff --git a/extras/MacOSX/Resources/mpeg1.icns b/extras/MacOSX/Resources/mpeg1.icns
new file mode 100644 (file)
index 0000000..a09f3d0
Binary files /dev/null and b/extras/MacOSX/Resources/mpeg1.icns differ
diff --git a/extras/MacOSX/Resources/mpeg2.icns b/extras/MacOSX/Resources/mpeg2.icns
new file mode 100644 (file)
index 0000000..ae8649e
Binary files /dev/null and b/extras/MacOSX/Resources/mpeg2.icns differ
diff --git a/extras/MacOSX/Resources/mpeg4.icns b/extras/MacOSX/Resources/mpeg4.icns
new file mode 100644 (file)
index 0000000..9da18bf
Binary files /dev/null and b/extras/MacOSX/Resources/mpeg4.icns differ
index cc44d2282da435908cae823e2593d1b99101b01c..cd5d5917b62a4216bfc27458661129eb46f233e7 100644 (file)
                                F51352810170659801A80A1F,
                                F51352820170659801A80A1F,
                                F52EEB2F017E3F8C01A80A1F,
+                               F5C6804202B407B701B7B2C9,
+                               F5C6804302B407B701B7B2C9,
+                               F5C6804402B407B701B7B2C9,
+                               F5C6804502B407B701B7B2C9,
+                               F5C6804602B407B701B7B2C9,
+                               F5C6804702B407B701B7B2C9,
                        );
                        isa = PBXGroup;
                        path = Resources;
                <dict>
                        <key>CFBundleTypeExtensions</key>
                        <array>
-                               <string>VOB</string>
+                               <string>vob</string>
                        </array>
                        <key>CFBundleTypeIconFile</key>
                        <string>vlc.icns</string>
                        <key>CFBundleTypeName</key>
-                       <string>VOB File (DVD)</string>
+                       <string>VOB File (DVD Video)</string>
                        <key>CFBundleTypeRole</key>
                        <string>Viewer</string>
                </dict>
                        <key>CFBundleTypeIconFile</key>
                        <string>vlc.icns</string>
                        <key>CFBundleTypeName</key>
-                       <string>MPEG file</string>
+                       <string>MPEG File</string>
                        <key>CFBundleTypeRole</key>
                        <string>Viewer</string>
                </dict>
                        <key>CFBundleTypeExtensions</key>
                        <array>
                                <string>avi</string>
-                               <string>asf</string>
                        </array>
                        <key>CFBundleTypeIconFile</key>
-                       <string>vlc.icns</string>
+                       <string>divx.icns</string>
+                       <key>CFBundleTypeName</key>
+                       <string>DivX File</string>
+                       <key>CFBundleTypeRole</key>
+                       <string>Viewer</string>
+               </dict>
+               <dict>
+                       <key>CFBundleTypeExtensions</key>
+                       <array>
+                               <string>m1v</string>
+                       </array>
+                       <key>CFBundleTypeIconFile</key>
+                       <string>mpeg1.icns</string>
                        <key>CFBundleTypeName</key>
-                       <string>DivX</string>
+                       <string>MPEG-1 Video File</string>
+                       <key>CFBundleTypeRole</key>
+                       <string>Viewer</string>
+               </dict>
+               <dict>
+                       <key>CFBundleTypeExtensions</key>
+                       <array>
+                               <string>m2v</string>
+                       </array>
+                       <key>CFBundleTypeIconFile</key>
+                       <string>mpeg2.icns</string>
+                       <key>CFBundleTypeName</key>
+                       <string>MPEG-2 Video File</string>
                        <key>CFBundleTypeRole</key>
                        <string>Viewer</string>
                </dict>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>0.4.0</string>
+       <string>0.4.2</string>
        <key>CFBundleSignature</key>
        <string>VLC#</string>
        <key>CFBundleVersion</key>
-       <string>0.4.0</string>
+       <string>0.4.2</string>
        <key>NSMainNibFile</key>
        <string>MainMenu</string>
        <key>NSPrincipalClass</key>
                                F52EEB2A017E3F0701A80A1F,
                                F52EEB2B017E3F0701A80A1F,
                                F52EEB30017E3F8C01A80A1F,
+                               F5C6804802B407B701B7B2C9,
+                               F5C6804902B407B701B7B2C9,
+                               F5C6804A02B407B701B7B2C9,
+                               F5C6804B02B407B701B7B2C9,
+                               F5C6804C02B407B701B7B2C9,
+                               F5C6804D02B407B701B7B2C9,
                        );
                        isa = PBXResourcesBuildPhase;
                        name = "Bundle Resources";
                        settings = {
                        };
                };
+               F5C6804202B407B701B7B2C9 = {
+                       isa = PBXFileReference;
+                       path = divx.icns;
+                       refType = 4;
+               };
+               F5C6804302B407B701B7B2C9 = {
+                       isa = PBXFileReference;
+                       path = mpeg2.icns;
+                       refType = 4;
+               };
+               F5C6804402B407B701B7B2C9 = {
+                       isa = PBXFileReference;
+                       path = mpeg.icns;
+                       refType = 4;
+               };
+               F5C6804502B407B701B7B2C9 = {
+                       isa = PBXFileReference;
+                       path = generic.icns;
+                       refType = 4;
+               };
+               F5C6804602B407B701B7B2C9 = {
+                       isa = PBXFileReference;
+                       path = mpeg1.icns;
+                       refType = 4;
+               };
+               F5C6804702B407B701B7B2C9 = {
+                       isa = PBXFileReference;
+                       path = mpeg4.icns;
+                       refType = 4;
+               };
+               F5C6804802B407B701B7B2C9 = {
+                       fileRef = F5C6804202B407B701B7B2C9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5C6804902B407B701B7B2C9 = {
+                       fileRef = F5C6804302B407B701B7B2C9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5C6804A02B407B701B7B2C9 = {
+                       fileRef = F5C6804402B407B701B7B2C9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5C6804B02B407B701B7B2C9 = {
+                       fileRef = F5C6804502B407B701B7B2C9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5C6804C02B407B701B7B2C9 = {
+                       fileRef = F5C6804602B407B701B7B2C9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
+               F5C6804D02B407B701B7B2C9 = {
+                       fileRef = F5C6804702B407B701B7B2C9;
+                       isa = PBXBuildFile;
+                       settings = {
+                       };
+               };
 //F50
 //F51
 //F52
index d138b2b97920d340bb7da4b3f71b17ea8e1255c3..c9f7aa10f310a8a2b3e9ba3a423cbbc55699f060 100644 (file)
@@ -2,10 +2,11 @@
  * ipv6.c: IPv6 network abstraction layer
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: ipv6.c,v 1.10 2002/06/01 16:45:34 sam Exp $
+ * $Id: ipv6.c,v 1.11 2002/06/09 22:57:00 massiot Exp $
  *
  * Authors: Alexis Guillard <alexis.guillard@bt.com>
  *          Christophe Massiot <massiot@via.ecp.fr>
+ *          Remco Poortinga <poortinga@telin.nl>
  *
  * 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
@@ -103,6 +104,8 @@ static void getfunctions( function_list_t * p_function_list )
 static int BuildAddr( struct sockaddr_in6 * p_socket,
                       char * psz_address, int i_port )
 {
+    char * psz_multicast_interface = "";
+
 #if defined(WIN32)
     /* Try to get getaddrinfo() and freeaddrinfo() from wship6.dll */
     typedef int (CALLBACK * GETADDRINFO) ( const char *nodename,
@@ -143,6 +146,17 @@ static int BuildAddr( struct sockaddr_in6 * p_socket,
               && psz_address[strlen(psz_address) - 1] == ']' )
     {
         psz_address++;
+        /* see if there is an interface name in there... */
+        if( (psz_multicast_interface = strchr(psz_address, '%')) != NULL )
+        {
+            *psz_multicast_interface = '\0';
+            psz_multicast_interface++;
+            intf_WarnMsg( 3, "Interface name specified: \"%s\"",
+                          psz_multicast_interface );
+            /* now convert that interface name to an index */
+            p_socket->sin6_scope_id = if_nametoindex(psz_multicast_interface);
+            intf_WarnMsg( 3, " = #%i\n", p_socket->sin6_scope_id );
+        }
         psz_address[strlen(psz_address) - 1] = '\0' ;
 
 #if !defined( WIN32 )
@@ -307,7 +321,22 @@ static int OpenUDP( vlc_object_t * p_this, network_socket_t * p_socket )
     }
  
     /* Join the multicast group if the socket is a multicast address */
-    /* FIXME: To be written */
+    if( IN6_IS_ADDR_MULTICAST(&sock.sin6_addr) )
+    {
+        struct ipv6_mreq     imr;
+        int                  res;
+
+        imr.ipv6mr_interface = sock.sin6_scope_id;
+        imr.ipv6mr_multiaddr = sock.sin6_addr;
+        res = setsockopt(i_handle, IPPROTO_IPV6, IPV6_JOIN_GROUP, &imr,
+                         sizeof(imr));
+
+        if( res == -1 )
+        {
+            intf_ErrMsg( "ipv6 error: setsockopt JOIN_GROUP failed" );
+        }
+    }
+
 
     if( *psz_server_addr )
     {