]> git.sesse.net Git - vlc/blobdiff - modules/access/vcd/vcd.c
Qt4 - Pref: start to track functionnalities missing. Directory still segfaults..
[vlc] / modules / access / vcd / vcd.c
index c6bdbab11e556cc9489564e468ce90f43e9d6e0d..430c67ff4fd82dd630496149a932b753bd15feea 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * vcd.c : VCD input module for vlc
  *****************************************************************************
- * Copyright (C) 2000-2004 VideoLAN
+ * Copyright (C) 2000-2004 the VideoLAN team
  * $Id$
  *
  * Author: Johan Bilien <jobi@via.ecp.fr>
@@ -18,7 +18,7 @@
  *
  * 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.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 /*****************************************************************************
@@ -27,7 +27,8 @@
 #include <stdlib.h>
 
 #include <vlc/vlc.h>
-#include <vlc/input.h>
+#include <vlc_input.h>
+#include <vlc_access.h>
 
 #include "cdrom.h"
 
@@ -39,10 +40,11 @@ static void Close( vlc_object_t * );
 
 #define CACHING_TEXT N_("Caching value in ms")
 #define CACHING_LONGTEXT N_( \
-    "Allows you to modify the default caching value for cdda streams. This " \
-    "value should be set in milliseconds units." )
+    "Caching value for VCDs. This " \
+    "value should be set in milliseconds." )
 
 vlc_module_begin();
+    set_shortname( _("VCD"));
     set_description( _("VCD input") );
     set_capability( "access2", 60 );
     set_callbacks( Open, Close );
@@ -123,10 +125,14 @@ static int Open( vlc_object_t *p_this )
         }
     }
 
+#ifdef WIN32
+    if( psz_dup[0] && psz_dup[1] == ':' &&
+        psz_dup[2] == '\\' && psz_dup[3] == '\0' ) psz_dup[2] = '\0';
+#endif
+
     /* Open VCD */
     if( !(vcddev = ioctl_Open( p_this, psz_dup )) )
     {
-        msg_Warn( p_access, "could not open %s", psz_dup );
         free( psz_dup );
         return VLC_EGENERIC;
     }
@@ -168,8 +174,8 @@ static int Open( vlc_object_t *p_this )
     {
         input_title_t *t = p_sys->title[i] = vlc_input_title_New();
 
-        fprintf( stderr, "title[%d] start=%d\n", i, p_sys->p_sectors[1+i] );
-        fprintf( stderr, "title[%d] end=%d\n", i, p_sys->p_sectors[i+2] );
+        msg_Dbg( p_access, "title[%d] start=%d\n", i, p_sys->p_sectors[1+i] );
+        msg_Dbg( p_access, "title[%d] end=%d\n", i, p_sys->p_sectors[i+2] );
 
         t->i_size = ( p_sys->p_sectors[i+2] - p_sys->p_sectors[i+1] ) *
                     (int64_t)VCD_DATA_SIZE;
@@ -429,6 +435,9 @@ static int Seek( access_t *p_access, int64_t i_pos )
         p_access->info.i_seekpoint = i_seekpoint;
     }
 
+    /* Reset eof */
+    p_access->info.b_eof = VLC_FALSE;
+
     return VLC_SUCCESS;
 }
 
@@ -491,3 +500,4 @@ static int EntryPoints( access_t *p_access )
 
     return VLC_SUCCESS;
 }
+