]> git.sesse.net Git - vlc/blobdiff - plugins/dvd/dvd.c
*Fixed demux plugin selection.
[vlc] / plugins / dvd / dvd.c
index 1445f2e63a2a3675100d4ed5af82fad1955cb0f6..3cf50189e4ef025496d464489ce5c6831b74928f 100644 (file)
@@ -2,7 +2,7 @@
  * dvd.c : DVD input module for vlc
  *****************************************************************************
  * Copyright (C) 2000-2001 VideoLAN
- * $Id: dvd.c,v 1.15 2001/11/28 15:08:05 massiot Exp $
+ * $Id: dvd.c,v 1.25 2002/03/05 18:17:52 stef Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
-#define MODULE_NAME dvd
-#include "modules_inner.h"
-
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include "defs.h"
-
 #include <stdlib.h>                                      /* malloc(), free() */
 #include <string.h>                                              /* strdup() */
 
+#include <videolan/vlc.h>
+
 #ifdef GOD_DAMN_DMCA
 #   include <dlfcn.h>
 #   include "dummy_dvdcss.h"
 #endif
 
-#include "config.h"
-#include "common.h"                                     /* boolean_t, byte_t */
-#include "intf_msg.h"
-#include "threads.h"
-#include "mtime.h"
-
-#include "modules.h"
-#include "modules_export.h"
-
 /*****************************************************************************
  * Capabilities defined in the other files.
  *****************************************************************************/
-void _M( input_getfunctions )( function_list_t * p_function_list );
+void _M( access_getfunctions)( function_list_t * p_function_list );
+void _M( demux_getfunctions)( function_list_t * p_function_list );
 
 /*****************************************************************************
  * Local prototypes.
@@ -64,22 +53,29 @@ static void UnprobeLibDVDCSS( void );
  * Build configuration tree.
  *****************************************************************************/
 MODULE_CONFIG_START
-ADD_WINDOW( "Configuration for DVD module" )
-    ADD_COMMENT( "foobar !" )
+ADD_CATEGORY_HINT( "[dvd:][device][@raw_device][@[title][,[chapter][,angle]]]", NULL )
 MODULE_CONFIG_STOP
 
 MODULE_INIT_START
-    p_module->i_capabilities = MODULE_CAPABILITY_NULL
-                                | MODULE_CAPABILITY_INPUT;
-#ifdef GOD_DAMN_DMCA
-    p_module->psz_longname = "DVD input module, uses libdvdcss if present";
+    ADD_CAPABILITY( DEMUX, 200 )
+#ifndef WIN32
+#  ifdef GOD_DAMN_DMCA
+    SET_DESCRIPTION( "DVD input module, uses libdvdcss if present" )
+    ADD_CAPABILITY( ACCESS, 90 )
+#  else
+    SET_DESCRIPTION( "DVD input module, linked with libdvdcss" )
+    ADD_CAPABILITY( ACCESS, 100 )
+#  endif
 #else
-    p_module->psz_longname = "DVD input module, linked with libdvdcss";
+    SET_DESCRIPTION( "DVD input module" )
+    ADD_CAPABILITY( ACCESS, 0 )
 #endif
+    ADD_SHORTCUT( "dvd" )
 MODULE_INIT_STOP
 
 MODULE_ACTIVATE_START
-    _M( input_getfunctions )( &p_module->p_functions->input );
+    _M( access_getfunctions)( &p_module->p_functions->access );
+    _M( demux_getfunctions)( &p_module->p_functions->demux );
 #ifdef GOD_DAMN_DMCA
     ProbeLibDVDCSS();
 #endif
@@ -131,18 +127,18 @@ static void ProbeLibDVDCSS( void )
     }
     else
     {
-        dvdcss_open = dlsym( p_libdvdcss, "dvdcss_open" );
-        dvdcss_close = dlsym( p_libdvdcss, "dvdcss_close" );
-        dvdcss_title = dlsym( p_libdvdcss, "dvdcss_title" );
-        dvdcss_seek = dlsym( p_libdvdcss, "dvdcss_seek" );
-        dvdcss_read = dlsym( p_libdvdcss, "dvdcss_read" );
-        dvdcss_readv = dlsym( p_libdvdcss, "dvdcss_readv" );
-        dvdcss_error = dlsym( p_libdvdcss, "dvdcss_error" );
-
-        if( dvdcss_open == NULL || dvdcss_close == NULL
-             || dvdcss_title == NULL || dvdcss_seek == NULL
-             || dvdcss_read == NULL || dvdcss_readv == NULL
-             || dvdcss_error == NULL )
+        ____dvdcss_open = dlsym( p_libdvdcss, "dvdcss_open" );
+        ____dvdcss_close = dlsym( p_libdvdcss, "dvdcss_close" );
+        ____dvdcss_title = dlsym( p_libdvdcss, "dvdcss_title" );
+        ____dvdcss_seek = dlsym( p_libdvdcss, "dvdcss_seek" );
+        ____dvdcss_read = dlsym( p_libdvdcss, "dvdcss_read" );
+        ____dvdcss_readv = dlsym( p_libdvdcss, "dvdcss_readv" );
+        ____dvdcss_error = dlsym( p_libdvdcss, "dvdcss_error" );
+
+        if( ____dvdcss_open == NULL || ____dvdcss_close == NULL
+             || ____dvdcss_title == NULL || ____dvdcss_seek == NULL
+             || ____dvdcss_read == NULL || ____dvdcss_readv == NULL
+             || ____dvdcss_error == NULL )
         {
             intf_ErrMsg( "dvd warning: missing symbols in libdvdcss.so.1, "
                          "this shouldn't happen !" );
@@ -160,13 +156,13 @@ static void ProbeLibDVDCSS( void )
         intf_ErrMsg( "dvd warning: get libdvdcss at "
                      "http://www.videolan.org/libdvdcss/" );
 
-        dvdcss_open = dummy_dvdcss_open;
-        dvdcss_close = dummy_dvdcss_close;
-        dvdcss_title = dummy_dvdcss_title;
-        dvdcss_seek = dummy_dvdcss_seek;
-        dvdcss_read = dummy_dvdcss_read;
-        dvdcss_readv = dummy_dvdcss_readv;
-        dvdcss_error = dummy_dvdcss_error;
+        ____dvdcss_open = dummy_dvdcss_open;
+        ____dvdcss_close = dummy_dvdcss_close;
+        ____dvdcss_title = dummy_dvdcss_title;
+        ____dvdcss_seek = dummy_dvdcss_seek;
+        ____dvdcss_read = dummy_dvdcss_read;
+        ____dvdcss_readv = dummy_dvdcss_readv;
+        ____dvdcss_error = dummy_dvdcss_error;
     }
 }