Commit a276a98a authored by Johan Bilien's avatar Johan Bilien

Added VCD input plugin for Linux :

The Linux specific stuff is located in linux_cdrom_tools files.
For the time being, it only has title (tracks). Chapters will come if I
ever can read .vcd files.
I've modified Gnome and GTK+, not the others.
I've noticed a big bug, it segfaults at the end of a title. I will
have a look on this tomorrow.
Please be indulgent, it's my first peace of code ;-)
parent 66cf4426
...@@ -13,12 +13,12 @@ endif ...@@ -13,12 +13,12 @@ endif
# #
# All possible plugin directories, needed for make clean # All possible plugin directories, needed for make clean
# #
PLUGINS_DIR := alsa beos darwin directx dsp dummy dvd esd fb ggi glide gtk downmix idct imdct kde macosx mga motion mpeg qt sdl text x11 yuv PLUGINS_DIR := alsa beos darwin directx dsp dummy dvd esd fb ggi glide gtk downmix idct imdct kde macosx mga motion mpeg qt sdl text vcd x11 yuv
# #
# All possible plugin objects # All possible plugin objects
# #
PLUGINS_TARGETS := alsa/alsa beos/beos darwin/darwin directx/directx dsp/dsp dummy/dummy dummy/null dvd/dvd esd/esd fb/fb ggi/ggi glide/glide gtk/gnome gtk/gtk downmix/downmix downmix/downmixsse downmix/downmix3dn idct/idct idct/idctclassic idct/idctmmx idct/idctmmxext idct/idctaltivec imdct/imdct imdct/imdct3dn imdct/imdctsse kde/kde macosx/macosx macosx/macosx_qt mga/mga motion/motion motion/motionmmx motion/motionmmxext motion/motion3dnow motion/motionaltivec mpeg/es mpeg/ps mpeg/ts qt/qt sdl/sdl text/ncurses text/rc x11/x11 x11/xvideo yuv/yuv yuv/yuvmmx PLUGINS_TARGETS := alsa/alsa beos/beos darwin/darwin directx/directx dsp/dsp dummy/dummy dummy/null dvd/dvd esd/esd fb/fb ggi/ggi glide/glide gtk/gnome gtk/gtk downmix/downmix downmix/downmixsse downmix/downmix3dn idct/idct idct/idctclassic idct/idctmmx idct/idctmmxext idct/idctaltivec imdct/imdct imdct/imdct3dn imdct/imdctsse kde/kde macosx/macosx macosx/macosx_qt mga/mga motion/motion motion/motionmmx motion/motionmmxext motion/motion3dnow motion/motionaltivec mpeg/es mpeg/ps mpeg/ts qt/qt sdl/sdl text/ncurses text/rc vcd/vcd x11/x11 x11/xvideo yuv/yuv yuv/yuvmmx
# #
# C Objects # C Objects
......
This diff is collapsed.
...@@ -659,6 +659,19 @@ AC_ARG_WITH(dvdcss, ...@@ -659,6 +659,19 @@ AC_ARG_WITH(dvdcss,
LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldl" LIB_DVD_PLUGIN="${LIB_DVD_PLUGIN} -ldl"
fi ]) fi ])
dnl
dnl vcd module
dnl
AC_ARG_ENABLE(vcd,
[ --enable-vcd VCDs support (default disabled)],
[if test x$enable_vcd = xyes; then
PLUGINS="${PLUGINS} vcd"
fi])
dnl dnl
dnl dummy plugin dnl dummy plugin
dnl dnl
......
...@@ -526,7 +526,7 @@ create_intf_window (void) ...@@ -526,7 +526,7 @@ create_intf_window (void)
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0);
label21 = gtk_label_new (_("DVD ")); label21 = gtk_label_new (_("Disc"));
gtk_widget_ref (label21); gtk_widget_ref (label21);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21, gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21,
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
...@@ -561,7 +561,6 @@ create_intf_window (void) ...@@ -561,7 +561,6 @@ create_intf_window (void)
gtk_widget_show (button_title_prev); gtk_widget_show (button_title_prev);
gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL); gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL);
gtk_button_set_relief (GTK_BUTTON (button_title_prev), GTK_RELIEF_NONE);
button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT); button_title_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
gtk_widget_ref (button_title_next); gtk_widget_ref (button_title_next);
...@@ -569,7 +568,6 @@ create_intf_window (void) ...@@ -569,7 +568,6 @@ create_intf_window (void)
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (button_title_next); gtk_widget_show (button_title_next);
gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0);
gtk_button_set_relief (GTK_BUTTON (button_title_next), GTK_RELIEF_NONE);
vseparator1 = gtk_vseparator_new (); vseparator1 = gtk_vseparator_new ();
gtk_widget_ref (vseparator1); gtk_widget_ref (vseparator1);
...@@ -606,7 +604,6 @@ create_intf_window (void) ...@@ -606,7 +604,6 @@ create_intf_window (void)
gtk_widget_show (button_chapter_prev); gtk_widget_show (button_chapter_prev);
gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL); gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL);
gtk_button_set_relief (GTK_BUTTON (button_chapter_prev), GTK_RELIEF_NONE);
button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT); button_chapter_next = gnome_stock_button (GNOME_STOCK_BUTTON_NEXT);
gtk_widget_ref (button_chapter_next); gtk_widget_ref (button_chapter_next);
...@@ -615,7 +612,6 @@ create_intf_window (void) ...@@ -615,7 +612,6 @@ create_intf_window (void)
gtk_widget_show (button_chapter_next); gtk_widget_show (button_chapter_next);
gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0);
gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL); gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL);
gtk_button_set_relief (GTK_BUTTON (button_chapter_next), GTK_RELIEF_NONE);
network_box = gtk_hbox_new (TRUE, 0); network_box = gtk_hbox_new (TRUE, 0);
gtk_widget_ref (network_box); gtk_widget_ref (network_box);
...@@ -1250,7 +1246,6 @@ create_intf_disc (void) ...@@ -1250,7 +1246,6 @@ create_intf_disc (void)
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (disc_vcd); gtk_widget_show (disc_vcd);
gtk_box_pack_start (GTK_BOX (vbox4), disc_vcd, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox4), disc_vcd, FALSE, FALSE, 0);
gtk_widget_set_sensitive (disc_vcd, FALSE);
frame2 = gtk_frame_new (_("Starting position")); frame2 = gtk_frame_new (_("Starting position"));
gtk_widget_ref (frame2); gtk_widget_ref (frame2);
......
...@@ -625,7 +625,7 @@ create_intf_window (void) ...@@ -625,7 +625,7 @@ create_intf_window (void)
gtk_box_pack_start (GTK_BOX (window_vbox), dvd_box, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (window_vbox), dvd_box, TRUE, TRUE, 0);
gtk_widget_set_usize (dvd_box, 500, 24); gtk_widget_set_usize (dvd_box, 500, 24);
dvd_label = gtk_label_new (_("DVD")); dvd_label = gtk_label_new (_("Disc"));
gtk_widget_ref (dvd_label); gtk_widget_ref (dvd_label);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_label", dvd_label, gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_label", dvd_label,
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
...@@ -1455,7 +1455,6 @@ create_intf_disc (void) ...@@ -1455,7 +1455,6 @@ create_intf_disc (void)
(GtkDestroyNotify) gtk_widget_unref); (GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (disc_vcd); gtk_widget_show (disc_vcd);
gtk_box_pack_start (GTK_BOX (vbox5), disc_vcd, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox5), disc_vcd, FALSE, FALSE, 0);
gtk_widget_set_sensitive (disc_vcd, FALSE);
frame3 = gtk_frame_new (_("Starting position")); frame3 = gtk_frame_new (_("Starting position"));
gtk_widget_ref (frame3); gtk_widget_ref (frame3);
......
...@@ -640,7 +640,7 @@ ...@@ -640,7 +640,7 @@
<widget> <widget>
<class>GtkLabel</class> <class>GtkLabel</class>
<name>label21</name> <name>label21</name>
<label>DVD </label> <label>Disc</label>
<justify>GTK_JUSTIFY_CENTER</justify> <justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap> <wrap>False</wrap>
<xalign>0.5</xalign> <xalign>0.5</xalign>
...@@ -711,7 +711,7 @@ ...@@ -711,7 +711,7 @@
<last_modification_time>Sat, 19 May 2001 03:13:28 GMT</last_modification_time> <last_modification_time>Sat, 19 May 2001 03:13:28 GMT</last_modification_time>
</signal> </signal>
<stock_button>GNOME_STOCK_BUTTON_PREV</stock_button> <stock_button>GNOME_STOCK_BUTTON_PREV</stock_button>
<relief>GTK_RELIEF_NONE</relief> <relief>GTK_RELIEF_NORMAL</relief>
<child> <child>
<padding>0</padding> <padding>0</padding>
<expand>False</expand> <expand>False</expand>
...@@ -730,7 +730,7 @@ ...@@ -730,7 +730,7 @@
<last_modification_time>Sat, 19 May 2001 03:13:23 GMT</last_modification_time> <last_modification_time>Sat, 19 May 2001 03:13:23 GMT</last_modification_time>
</signal> </signal>
<stock_button>GNOME_STOCK_BUTTON_NEXT</stock_button> <stock_button>GNOME_STOCK_BUTTON_NEXT</stock_button>
<relief>GTK_RELIEF_NONE</relief> <relief>GTK_RELIEF_NORMAL</relief>
<child> <child>
<padding>0</padding> <padding>0</padding>
<expand>False</expand> <expand>False</expand>
...@@ -806,7 +806,7 @@ ...@@ -806,7 +806,7 @@
<last_modification_time>Tue, 29 May 2001 13:13:41 GMT</last_modification_time> <last_modification_time>Tue, 29 May 2001 13:13:41 GMT</last_modification_time>
</signal> </signal>
<stock_button>GNOME_STOCK_BUTTON_PREV</stock_button> <stock_button>GNOME_STOCK_BUTTON_PREV</stock_button>
<relief>GTK_RELIEF_NONE</relief> <relief>GTK_RELIEF_NORMAL</relief>
<child> <child>
<padding>0</padding> <padding>0</padding>
<expand>False</expand> <expand>False</expand>
...@@ -826,7 +826,7 @@ ...@@ -826,7 +826,7 @@
<last_modification_time>Sat, 19 May 2001 03:13:08 GMT</last_modification_time> <last_modification_time>Sat, 19 May 2001 03:13:08 GMT</last_modification_time>
</signal> </signal>
<stock_button>GNOME_STOCK_BUTTON_NEXT</stock_button> <stock_button>GNOME_STOCK_BUTTON_NEXT</stock_button>
<relief>GTK_RELIEF_NONE</relief> <relief>GTK_RELIEF_NORMAL</relief>
<child> <child>
<padding>0</padding> <padding>0</padding>
<expand>False</expand> <expand>False</expand>
...@@ -1574,7 +1574,6 @@ Henri Fallon &lt;henri@via.ecp.fr&gt; ...@@ -1574,7 +1574,6 @@ Henri Fallon &lt;henri@via.ecp.fr&gt;
<widget> <widget>
<class>GtkRadioButton</class> <class>GtkRadioButton</class>
<name>disc_vcd</name> <name>disc_vcd</name>
<sensitive>False</sensitive>
<can_focus>True</can_focus> <can_focus>True</can_focus>
<signal> <signal>
<name>toggled</name> <name>toggled</name>
......
...@@ -639,7 +639,7 @@ ...@@ -639,7 +639,7 @@
<widget> <widget>
<class>GtkLabel</class> <class>GtkLabel</class>
<name>dvd_label</name> <name>dvd_label</name>
<label>DVD</label> <label>Disc</label>
<justify>GTK_JUSTIFY_CENTER</justify> <justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap> <wrap>False</wrap>
<xalign>0.5</xalign> <xalign>0.5</xalign>
...@@ -1626,7 +1626,6 @@ Henri Fallon &lt;henri@via.ecp.fr&gt;</label> ...@@ -1626,7 +1626,6 @@ Henri Fallon &lt;henri@via.ecp.fr&gt;</label>
<widget> <widget>
<class>GtkRadioButton</class> <class>GtkRadioButton</class>
<name>disc_vcd</name> <name>disc_vcd</name>
<sensitive>False</sensitive>
<can_focus>True</can_focus> <can_focus>True</can_focus>
<signal> <signal>
<name>toggled</name> <name>toggled</name>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* decoders. * decoders.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN * Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input.c,v 1.144 2001/10/22 02:33:54 xav Exp $ * $Id: input.c,v 1.145 2001/10/23 03:06:50 jobi Exp $
* *
* Authors: Christophe Massiot <massiot@via.ecp.fr> * Authors: Christophe Massiot <massiot@via.ecp.fr>
* *
...@@ -592,6 +592,13 @@ static void FileOpen( input_thread_t * p_input ) ...@@ -592,6 +592,13 @@ static void FileOpen( input_thread_t * p_input )
psz_name += 4; psz_name += 4;
i_stat = stat( psz_name, &stat_info ); i_stat = stat( psz_name, &stat_info );
} }
else if( ( i_size > 4 )
&& !strncasecmp( psz_name, "vcd:", 4 ) )
{
/* get rid of the 'vcd:' stuff and try again */
psz_name += 4;
i_stat = stat( psz_name, &stat_info );
}
else if( ( i_size > 5 ) else if( ( i_size > 5 )
&& !strncasecmp( psz_name, "file:", 5 ) ) && !strncasecmp( psz_name, "file:", 5 ) )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment