]> git.sesse.net Git - vlc/blobdiff - modules/gui/gtk/open.c
* all: don't use input_OffsetToTime anymore.
[vlc] / modules / gui / gtk / open.c
index 7acc6f1d6a21c92868ce1c096f4fc0257a95de93..6ae7c9497d7b887784e849cebd6ae5532a227307 100644 (file)
@@ -2,9 +2,9 @@
  * gtk_open.c : functions to handle file/disc/network open widgets.
  *****************************************************************************
  * Copyright (C) 2000, 2001, 2003 VideoLAN
- * $Id: open.c,v 1.19 2003/12/12 22:46:25 rocky Exp $
+ * $Id$
  *
- * Authors: Samuel Hocevar <sam@zoy.org>
+ * Authors: Sam Hocevar <sam@zoy.org>
  *          Stéphane Borel <stef@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
 #include "playlist.h"
 #include "common.h"
 
+#ifdef HAVE_CDDAX
+#define CDDA_MRL "cddax://"
+#else
+#define CDDA_MRL "cdda://"
+#endif
+
+#ifdef HAVE_VCDX
+#define VCD_MRL "vcdx://"
+#else
+#define VCD_MRL "vcdx://"
+#endif
+
 static void GtkOpenShow( intf_thread_t *, int );
 
 static void GtkFileOpenChanged    ( GtkWidget *, gpointer );
@@ -141,26 +153,26 @@ void GtkDiscOpenDvd( GtkToggleButton * togglebutton, gpointer user_data )
     intf_thread_t * p_intf = GtkGetIntf( togglebutton );
     char *psz_device;
 
-    if( togglebutton->active ) 
+    if( togglebutton->active )
     {
-       if ( (psz_device = config_GetPsz( p_intf, "dvd" )) )
+        if ( (psz_device = config_GetPsz( p_intf, "dvd" )) )
         {
-          gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ) , TRUE);
+           gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ) , TRUE);
 
-          gtk_entry_set_text(
+           gtk_entry_set_text(
             GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton),
                                       "disc_name" ) ), psz_device );
-          free( psz_device );
-       }
-       else
-       {
-         gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ), FALSE );
-       }
-       GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data );
+           free( psz_device );
+        }
+        else
+        {
+          gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ), FALSE );
+        }
+        GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data );
     }
     else
     {
-       gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ), FALSE );
+        gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ), FALSE );
     }
 }
 
@@ -169,16 +181,20 @@ void GtkDiscOpenVcd( GtkToggleButton * togglebutton, gpointer user_data )
     intf_thread_t * p_intf = GtkGetIntf( togglebutton );
     char *psz_device;
 
-    if( togglebutton->active ) 
+    if( togglebutton->active )
       {
-       if ( (psz_device = config_GetPsz( p_intf, "vcd" )) )
-        {
-          gtk_entry_set_text(
+        if ( (psz_device = config_GetPsz( p_intf, "vcd" )) )
+         {
+           gtk_entry_set_text(
             GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton),
                                       "disc_name" ) ), psz_device );
-          free( psz_device );
-        }
-       GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data );
+           free( psz_device );
+         } else {
+            gtk_entry_set_text(
+            GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton),
+                                      "disc_name" ) ), "" );
+         }
+        GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data );
       }
 }
 
@@ -187,16 +203,20 @@ void GtkDiscOpenCDDA( GtkToggleButton * togglebutton, gpointer user_data )
     intf_thread_t * p_intf = GtkGetIntf( togglebutton );
     char *psz_device;
 
-    if( togglebutton->active ) 
+    if( togglebutton->active )
       {
-       if ( (psz_device = config_GetPsz( p_intf, "cd-audio" )) )
+        if ( (psz_device = config_GetPsz( p_intf, "cd-audio" )) )
         {
           gtk_entry_set_text(
             GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton),
                                       "disc_name" ) ), psz_device );
           free( psz_device );
-       }
-       GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data );
+        } else {
+          gtk_entry_set_text(
+            GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton),
+                                      "disc_name" ) ), "" );
+        }
+        GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data );
       }
 }
 
@@ -204,15 +224,17 @@ static void GtkDiscOpenChanged( GtkWidget * button, gpointer user_data )
 {
     intf_thread_t * p_intf = GtkGetIntf( button );
     GString * p_target = g_string_new( "" );
-    GtkWidget * p_open;
+    GtkWidget * p_open = gtk_widget_get_toplevel( GTK_WIDGET (button) );
     vlc_bool_t b_menus = VLC_FALSE;
     vlc_bool_t b_chapter_menu = VLC_TRUE;
-
-    p_open = gtk_widget_get_toplevel( GTK_WIDGET (button) );
+    GtkWidget *p_label = gtk_object_get_data( GTK_OBJECT( p_open ),
+                                              "disc_title_label" );
 
     if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
                                           "disc_dvd" ) )->active )
     {
+        gtk_label_set_text( GTK_LABEL( p_label ), _("Title") );
+
         b_menus = GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
                                                "disc_dvd_use_menu" ) )->active;
 
@@ -224,79 +246,72 @@ static void GtkDiscOpenChanged( GtkWidget * button, gpointer user_data )
         {
             g_string_append( p_target, "dvdsimple://" );
         }
-       
-       g_string_append( p_target,
-                        gtk_entry_get_text( GTK_ENTRY( lookup_widget(
+
+        g_string_append( p_target,
+                         gtk_entry_get_text( GTK_ENTRY( lookup_widget(
                                      GTK_WIDGET(button), "disc_name" ) ) ) );
 
-       if( !b_menus )
-         {
-           g_string_sprintfa( p_target, "@%i:%i",
-                              gtk_spin_button_get_value_as_int(
+        if( !b_menus )
+          {
+            g_string_sprintfa( p_target, "@%i:%i",
+                               gtk_spin_button_get_value_as_int(
                                 GTK_SPIN_BUTTON( lookup_widget(
                                     GTK_WIDGET(button), "disc_title" ) ) ),
                                gtk_spin_button_get_value_as_int(
                                 GTK_SPIN_BUTTON( lookup_widget(
                                     GTK_WIDGET(button), "disc_chapter" ) ) ) );
-         }
+          }
     }
     else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
                                                "disc_vcd" ) )->active )
     {
-#ifdef HAVE_VCDX
         int i = gtk_spin_button_get_value_as_int(
                            GTK_SPIN_BUTTON( lookup_widget(
-                          GTK_WIDGET(button), "disc_title" ) ) );
-       
-        g_string_append( p_target, "vcdx://" );
-       g_string_append( p_target,
-                        gtk_entry_get_text( GTK_ENTRY( lookup_widget(
+                           GTK_WIDGET(button), "disc_title" ) ) );
+
+#ifdef HAVE_VCDX
+        int i_pbc = config_GetInt( p_intf, "vcdx-PBC"  );
+
+        gtk_label_set_text( GTK_LABEL( p_label ),
+                            i_pbc ? _("PBC LID") : _("Entry") );
+
+        g_string_append( p_target, VCD_MRL );
+        g_string_append( p_target,
+                         gtk_entry_get_text( GTK_ENTRY( lookup_widget(
                          GTK_WIDGET(button), "disc_name" ) ) ) );
 
-       if ( i ) 
-         g_string_sprintfa( p_target, "@%c%d",
-                            config_GetInt( p_intf, "vcdx-PBC"  )
-                            ? 'P' : 'E', i );
-       
+        if ( i )
+          g_string_sprintfa( p_target, "@%c%d", i_pbc ? 'P' : 'E', i );
+
 #else
-        g_string_append( p_target, "vcd://" );
-        g_string_sprintfa( p_target, "@%d",
-                           gtk_spin_button_get_value_as_int(
-                           GTK_SPIN_BUTTON( lookup_widget(
-                           GTK_WIDGET(button), "disc_title" ) ) ) );
-#endif
+        gtk_label_set_text( GTK_LABEL( p_label ), _("Track") );
+        g_string_append( p_target, VCD_MRL );
+        g_string_sprintfa( p_target, "@%d", i );
+#endif /* HAVE_VCDX */
+        b_chapter_menu = VLC_FALSE;
     }
 
     else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button),
                                                "disc_cdda" ) )->active )
     {
-#ifdef HAVE_CDDAX
         int i = gtk_spin_button_get_value_as_int(
                            GTK_SPIN_BUTTON( lookup_widget(
-                          GTK_WIDGET(button), "disc_title" ) ) );
-
-        g_string_append( p_target, "cddax://" );
-       g_string_append( p_target,
-                     gtk_entry_get_text( GTK_ENTRY( lookup_widget(
-                                     GTK_WIDGET(button), "disc_name" ) ) ) );
+                           GTK_WIDGET(button), "disc_title" ) ) );
 
-       if ( i ) 
-         g_string_sprintfa( p_target, "@T%i",
-                             gtk_spin_button_get_value_as_int(
-                             GTK_SPIN_BUTTON( lookup_widget(
-                            GTK_WIDGET(button), "disc_title" ) ) ) );
+        gtk_label_set_text( GTK_LABEL( p_label ), _("Track") );
+        b_chapter_menu = VLC_FALSE;
 
-#else
-        g_string_append( p_target, "cdda://" );
-       g_string_append( p_target,
+        g_string_append( p_target, CDDA_MRL );
+        g_string_append( p_target,
                      gtk_entry_get_text( GTK_ENTRY( lookup_widget(
                                      GTK_WIDGET(button), "disc_name" ) ) ) );
-        g_string_sprintfa( p_target, "@%i:%i",
-                           gtk_spin_button_get_value_as_int(
-                           GTK_SPIN_BUTTON( lookup_widget(
-                          GTK_WIDGET(button), "disc_title" ) ) ) );
+#ifdef HAVE_CDDAX
+        if ( i )
+          g_string_sprintfa( p_target, "@T%i", i );
+#else
+        g_string_sprintfa( p_target, "@%i", i );
+
 #endif
-       b_chapter_menu = VLC_FALSE;
     }
 
     gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ),
@@ -540,7 +555,7 @@ static void GtkOpenShow( intf_thread_t *p_intf, int i_page )
                          "p_intf", p_intf );
 
     /* FileOpen stuff */
-    psz_var = config_GetPsz( p_intf, "search-path" );
+    psz_var = config_GetPsz( p_intf, MODULE_STRING"-search-path" );
     if( psz_var )
     {
         gtk_file_selection_set_filename( GTK_FILE_SELECTION(
@@ -567,6 +582,7 @@ static void GtkOpenShow( intf_thread_t *p_intf, int i_page )
         GTK_OBJECT( p_intf->p_sys->p_open ), "network_http_url" ) ),
         "http://" );
 
+#ifdef HAVE_SATELLITE
     /* Satellite stuff */
     psz_var = config_GetPsz( p_intf, "frequency" );
     if( psz_var )
@@ -585,6 +601,7 @@ static void GtkOpenShow( intf_thread_t *p_intf, int i_page )
             psz_var );
         free( psz_var );
     }
+#endif /*HAVE_SATELITE*/
 
     /* subtitle stuff */
     /* hide hbox_subtitle */
@@ -633,7 +650,7 @@ void GtkOpenOk( GtkButton * button, gpointer user_data )
 
     psz_target = gtk_entry_get_text( GTK_ENTRY( lookup_widget(
                                        GTK_WIDGET(button), "entry_open" ) ) );
-    playlist_Add( p_playlist, (char*)psz_target, 0, 0,
+    playlist_Add( p_playlist, (char*)psz_target, (char*)psz_target,
                   PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
 
     /* catch the GTK CList */