* audio_output.h : audio output thread interface
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: audio_output.h,v 1.34 2001/05/06 04:32:02 sam Exp $
+ * $Id: audio_output.h,v 1.35 2001/05/06 18:32:30 stef Exp $
*
* Authors: Michel Kaempf <maxx@via.ecp.fr>
*
#define AOUT_FMT_U16_BE 0x00000100 /* Big endian U16 */
#define AOUT_FMT_AC3 0x00000400 /* Dolby Digital AC3 */
-
#ifdef WORDS_BIGENDIAN
#define AOUT_FMT_S16_NE AOUT_FMT_S16_BE
#else
#define AOUT_FMT_S16_NE AOUT_FMT_S16_LE
#endif
+/* Size of a frame for spdif output */
+#define SPDIF_FRAME_SIZE 6144
+
/*****************************************************************************
* Prototypes
*****************************************************************************/
/* Environment variable containing the display method */
#define INTF_METHOD_VAR "vlc_intf"
+#define INTF_METHOD_DEFAULT "gtk"
/* Environment variable used to store startup script name and default value */
#define INTF_INIT_SCRIPT_VAR "vlcrc"
/* Maximum number of channels */
#define INTF_MAX_CHANNELS 10
+/* Default search path for interface file browser */
+#define INTF_PATH_VAR "vlc_search_path"
+
/*****************************************************************************
* Input thread configuration
*****************************************************************************/
-/* Environment variable containing the display method */
+/* Environment variable containing the input method */
#define INPUT_METHOD_VAR "vlc_input"
+#define INPUT_METHOD_DEFAULT "ps"
/* XXX?? */
#define INPUT_IDLE_SLEEP ((int)(0.100*CLOCK_FREQ))
/* Maximum length of a hostname or source name */
#define INPUT_MAX_SOURCE_LENGTH 100
+/* Default network protocol */
+#define INPUT_NETWORK_PROTOCOL_VAR "vlc_network_protocol"
+#define INPUT_NETWORK_PROTOCOL_DEFAULT "ts"
+
/* Default remote server */
#define INPUT_SERVER_VAR "vlc_server"
#define INPUT_SERVER_DEFAULT "138.195.143.220"
-#define INPUT_BCAST_ADDR "138.195.143.255"
/* Default input port */
#define INPUT_PORT_VAR "vlc_server_port"
#define INPUT_PORT_DEFAULT 1234
+/* Default broadcast address */
+#define INPUT_BCAST_ADRR_VAR "vlc_broadcast_addr"
+#define INPUT_BCAST_ADDR_DEFAULT "138.195.143.255"
+
/* Broadcast mode */
#define INPUT_BROADCAST_VAR "vlc_broadcast"
#define INPUT_BROADCAST_DEFAULT 0
* mark it to be presented */
#define DEFAULT_PTS_DELAY (mtime_t)(.2*CLOCK_FREQ)
+/* DVD defaults */
#define INPUT_DVD_DEVICE_VAR "vlc_dvd_device"
#define INPUT_DVD_DEVICE_DEFAULT "/dev/dvd"
#define INPUT_CHANNEL_VAR "vlc_input_channel"
#define INPUT_SUBTITLE_VAR "vlc_input_subtitle"
+/* VCD defaults */
+#define INPUT_VVC_DEVICE_VAR "vlc_vcd_device"
+#define INPUT_VCD_DEVICE_DEFAULT "/dev/cdrom"
+
/*****************************************************************************
* Audio configuration
*****************************************************************************/
/* Environment variable containing the audio output method */
#define AOUT_METHOD_VAR "vlc_aout"
+#define AOUT_METHOD_DEFAULT "dsp"
/* Environment variable used to store dsp device name, and default value */
#define AOUT_DSP_VAR "vlc_dsp"
/* Environment variable containing the display method */
#define VOUT_METHOD_VAR "vlc_vout"
+#define VOUT_METHOD_DEFAULT "x11"
/* Environment variable containing the motion compensation method */
#define MOTION_METHOD_VAR "vlc_motion"
#define VOUT_WIDTH_DEFAULT 720
#define VOUT_HEIGHT_DEFAULT 576
+#define VOUT_DEPTH_VAR "vlc_depth"
+#define VOUT_DEPTH_DEFAULT 15
+
+#define VOUT_FULLSCREEN_VAR "vlc_fullscreen"
+#define VOUT_FULLSCREEN_DEFAULT 0
+
+#define VOUT_FULLSCREEN_DEPTH_VAR "vlc_fullscreen_depth"
+#define VOUT_FULLSCREEN_DEPTH_DEFAULT 32
+
/* Maximum width of a scaled source picture - this should be relatively high,
* since higher stream values will result in no display at all. */
#define VOUT_MAX_WIDTH 4096
#define VOUT_OVERLAY_DEFAULT 0
/* Default gamma */
-#define VOUT_GAMMA 0.
+#define VOUT_GAMMA_VAR "vlc_gamma"
+#define VOUT_GAMMA_DEFAULT 0.
/* Default fonts */
#define VOUT_DEFAULT_FONT "default8x9.psf"
#define INTF_MSG_QSIZE 64
/* Interface warnig message level */
-#define INTF_WARNING_VAR "warning_level"
+#define INTF_WARNING_VAR "vlc_warning_level"
#define INTF_WARNING_DEFAULT 12
/* Define to enable messages queues - disabling messages queue can be useful
/* Maximal number of commands which can be saved in history list */
#define INTF_CONSOLE_MAX_HISTORY 20
+/****************************************************************************
+ * Playlist defaults
+ ****************************************************************************/
+
+/* Launch on start-up */
+#define PLAYLIST_STARTUP_VAR "vlc_playlist_on_start_up"
+#define PLAYLIST_STARTUP_DEFAULT 0
+
+/* Enqueue drag'n dropped item */
+#define PLAYLIST_ENQUEUE_VAR "vlc_playlist_enqueue"
+#define PLAYLIST_ENQUEUE_DZFAULT 0
+
+/* Loop on playlist end */
+#define PLAYLIST_LOOP_VAR "vlc_playlist_loop"
+#define PLAYLIST_LOOP_DEFAULT 0
+
* thread, and destroy a previously oppenned video output thread.
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: video_output.h,v 1.59 2001/05/06 04:32:02 sam Exp $
+ * $Id: video_output.h,v 1.60 2001/05/06 18:32:30 stef Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
boolean_t b_info; /* print additional information */
boolean_t b_interface; /* render interface */
boolean_t b_scale; /* allow picture scaling */
+ boolean_t b_fullscreen; /* toogle fullscreen dusplay */
mtime_t render_time; /* last picture render time */
* -dvd_udf to find files
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: input_dvd.c,v 1.54 2001/04/29 17:57:50 stef Exp $
+ * $Id: input_dvd.c,v 1.55 2001/05/06 18:32:30 stef Exp $
*
* Author: Stéphane Borel <stef@via.ecp.fr>
*
/* reading several block once seems to cause lock-up
* when using input_ToggleES
* who wrote thez damn buggy piece of shit ??? --stef */
- p_dvd->i_block_once = 32;
- p_input->i_read_once = 128;
+ p_dvd->i_block_once = 1;//32;
+ p_input->i_read_once = 8;//128;
i = CSSTest( p_input->i_handle );
/* Reading structures initialisation */
p_input->p_method_data =
- DVDNetlistInit( 8192, 16384, 2048, DVD_LB_SIZE, p_dvd->i_block_once );
+ DVDNetlistInit( 2048, 4096, 2048, DVD_LB_SIZE, p_dvd->i_block_once );
intf_WarnMsg( 2, "dvd info: netlist initialized" );
/* Ifo allocation & initialisation */
}
/* Find start and end sectors of new cell */
+#if 1
p_dvd->i_sector = MAX(
p_dvd->p_ifo->vts.cell_inf.p_cell_map[p_dvd->i_cell].i_start_sector,
title.p_cell_play[p_dvd->i_prg_cell].i_start_sector );
p_dvd->i_end_sector = MIN(
p_dvd->p_ifo->vts.cell_inf.p_cell_map[p_dvd->i_cell].i_end_sector,
title.p_cell_play[p_dvd->i_prg_cell].i_end_sector );
+#else
+ p_dvd->i_sector = title.p_cell_play[p_dvd->i_prg_cell].i_start_sector;
+ p_dvd->i_end_sector = title.p_cell_play[p_dvd->i_prg_cell].i_end_sector;
+#endif
/*
intf_WarnMsg( 1, "cell: %d sector1: 0x%x end1: 0x%x\n"
# Objects
#
-PLUGIN_GNOME = gnome.o intf_gnome.o gnome_callbacks.o gnome_interface.o gnome_support.o
+PLUGIN_GNOME = gnome.o intf_gnome.o gnome_callbacks.o gnome_interface.o gnome_support.o gnome_playlist.o
BUILTIN_GNOME = $(PLUGIN_GNOME:%.o=BUILTIN_%.o)
ALL_OBJ = $(PLUGIN_GNOME) $(BUILTIN_GNOME)
* gnome_callbacks.c : Callbacks for the Gnome plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gnome_callbacks.c,v 1.25 2001/05/01 04:18:18 sam Exp $
+ * $Id: gnome_callbacks.c,v 1.26 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
#include "intf_playlist.h"
#include "intf_msg.h"
+#include "video.h"
+#include "video_output.h"
+#include "audio_output.h"
+
#include "gnome_callbacks.h"
+#include "gnome_playlist.h"
#include "gnome_interface.h"
#include "gnome_support.h"
#include "intf_gnome.h"
#include "main.h"
-/*****************************************************************************
- * Inline function to retrieve the interface structure
- *****************************************************************************/
-static __inline__ intf_thread_t * GetIntf( GtkWidget *item, char * psz_parent )
-{
- return( gtk_object_get_data( GTK_OBJECT( lookup_widget(item, psz_parent) ),
- "p_intf" ) );
-}
-
-
/*****************************************************************************
* Interface callbacks
*****************************************************************************
guint time,
gpointer user_data)
{
+#if 0
char *psz_text = data->data;
int i_len = strlen( psz_text );
intf_ErrMsg( "intf error: unknown dropped type");
break;
}
+#else
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET( widget ), "intf_window" );
+ int i_end = p_main->p_playlist->i_size;
+
+ GnomeDropDataReceived( p_intf, data, info, PLAYLIST_END );
+
+ if( p_intf->p_input != NULL )
+ {
+ /* FIXME: temporary hack */
+ p_intf->p_input->b_eof = 1;
+ }
+
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
+
+#endif
}
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
/* If we have never used the file selector, open it */
- if( p_intf->p_sys->p_fileopen == NULL)
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_fileopen ) )
{
p_intf->p_sys->p_fileopen = create_intf_fileopen();
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_fileopen ),
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+ /* If we have never used the file selector, open it */
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_disc ) )
+ {
+ p_intf->p_sys->p_disc = create_intf_disc();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_disc ),
+ "p_intf", p_intf );
+ }
+
gtk_widget_show( p_intf->p_sys->p_disc );
gdk_window_raise( p_intf->p_sys->p_disc->window );
}
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+ /* If we have never used the file selector, open it */
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_network ) )
+ {
+ p_intf->p_sys->p_network = create_intf_network();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_network ),
+ "p_intf", p_intf );
+ }
+
gtk_widget_show( p_intf->p_sys->p_network );
gdk_window_raise( p_intf->p_sys->p_network->window );
}
on_menubar_playlist_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+ playlist_t * p_playlist ;
+ GtkCList * p_list;
if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
{
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
"p_intf", p_intf );
}
+
+ vlc_mutex_lock( &p_main->p_playlist->change_lock );
+ if( p_main->p_playlist->i_size > 0 )
+ {
+ p_playlist = p_main->p_playlist;
+ p_list = GTK_CLIST( lookup_widget( p_intf->p_sys->p_playlist,
+ "playlist_clist" ) );
+ GnomeRebuildCList( p_list, p_playlist );
+ }
+ vlc_mutex_unlock( &p_main->p_playlist->change_lock );
+
gtk_widget_show( p_intf->p_sys->p_playlist );
gdk_window_raise( p_intf->p_sys->p_playlist->window );
}
}
+void
+on_menubar_fullscreen_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ if( p_vout_bank->i_count )
+ {
+ vlc_mutex_lock( &p_vout_bank->pp_vout[0]->change_lock );
+ if( p_vout_bank->pp_vout[0]->b_fullscreen ==
+ !GTK_CHECK_MENU_ITEM( menuitem )->active )
+ p_vout_bank->pp_vout[0]->i_changes |= VOUT_FULLSCREEN_CHANGE;
+ vlc_mutex_unlock( &p_vout_bank->pp_vout[0]->change_lock );
+ }
+}
+
+
+
void
on_menubar_title_toggle (GtkCheckMenuItem *menuitem,
gpointer user_data)
if( menuitem->active && !p_intf->p_sys->b_title_update )
{
+ gint i_title = (gint)user_data;
p_intf->p_input->pf_set_area( p_intf->p_input,
- (input_area_t*)user_data );
+ p_intf->p_input->stream.pp_areas[i_title] );
input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
intf_thread_t * p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
input_area_t * p_area = p_intf->p_input->stream.p_selected_area;
gint i_chapter = (gint)user_data;
- char psz_chapter[3];
+ char psz_chapter[5];
if( menuitem->active && !p_intf->p_sys->b_chapter_update )
{
on_menubar_preferences_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+ /* If we have never used the file selector, open it */
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_preferences ) )
+ {
+ p_intf->p_sys->p_preferences = create_intf_preferences();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_preferences ),
+ "p_intf", p_intf );
+ }
+
+ gtk_widget_show( p_intf->p_sys->p_preferences );
+ gdk_window_raise( p_intf->p_sys->p_preferences->window );
}
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
/* If we have never used the file selector, open it */
- if( p_intf->p_sys->p_fileopen == NULL)
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_fileopen ) )
{
p_intf->p_sys->p_fileopen = create_intf_fileopen();
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_fileopen ),
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ /* If we have never used the file selector, open it */
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_disc ) )
+ {
+ p_intf->p_sys->p_disc = create_intf_disc();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_disc ),
+ "p_intf", p_intf );
+ }
+
gtk_widget_show( p_intf->p_sys->p_disc );
gdk_window_raise( p_intf->p_sys->p_disc->window );
}
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ /* If we have never used the file selector, open it */
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_network ) )
+ {
+ p_intf->p_sys->p_network = create_intf_network();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_network ),
+ "p_intf", p_intf );
+ }
+
gtk_widget_show( p_intf->p_sys->p_network );
gdk_window_raise( p_intf->p_sys->p_network->window );
}
on_toolbar_stop_clicked (GtkButton *button,
gpointer user_data)
{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ if( p_intf->p_input != NULL )
+ {
+ p_vout_bank->pp_vout[0]->b_die = 1;
+ p_aout_bank->pp_aout[0]->b_die = 1;
+ p_intf->p_input->b_die = 1;
+ }
}
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
"p_intf", p_intf );
}
- gtk_widget_show( p_intf->p_sys->p_playlist );
- gdk_window_raise( p_intf->p_sys->p_playlist->window );
+
+ if( GTK_WIDGET_VISIBLE( p_intf->p_sys->p_playlist ) )
+ {
+ gtk_widget_hide( p_intf->p_sys->p_playlist );
+ }
+ else
+ {
+ GtkCList * p_clist;
+
+ p_clist = GTK_CLIST( gtk_object_get_data(
+ GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ GnomeRebuildCList( p_clist , p_main->p_playlist );
+ gtk_widget_show( p_intf->p_sys->p_playlist );
+ gdk_window_raise( p_intf->p_sys->p_playlist->window );
+ }
}
}
+void
+on_popup_back_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
void
on_popup_pause_activate (GtkMenuItem *menuitem,
gpointer user_data)
}
+void
+on_popup_fullscreen_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ if( p_vout_bank->i_count )
+ {
+ vlc_mutex_lock( &p_vout_bank->pp_vout[0]->change_lock );
+ if( p_vout_bank->pp_vout[0]->b_fullscreen ==
+ !GTK_CHECK_MENU_ITEM( menuitem )->active )
+ p_vout_bank->pp_vout[0]->i_changes |= VOUT_FULLSCREEN_CHANGE;
+ vlc_mutex_unlock( &p_vout_bank->pp_vout[0]->change_lock );
+ }
+}
+
+
void
on_popup_audio_toggle (GtkCheckMenuItem *menuitem,
gpointer user_data)
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
/* If we have never used the file selector, open it */
- if( p_intf->p_sys->p_fileopen == NULL)
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_fileopen ) )
{
p_intf->p_sys->p_fileopen = create_intf_fileopen();
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_fileopen ),
}
-/*****************************************************************************
- * Fileopen callbacks
- *****************************************************************************
- * The following callbacks are related to the file requester.
- *****************************************************************************/
void
-on_intf_fileopen_destroy (GtkObject *object,
+on_popup_stop_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(object), "intf_fileopen" );
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
- p_intf->p_sys->p_fileopen = NULL;
+ if( p_intf->p_input != NULL )
+ {
+ p_intf->p_input->b_die = 1;
+ }
}
void
-on_fileopen_ok_clicked (GtkButton *button,
+on_popup_playlist_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_fileopen" );
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
- GtkWidget *filesel;
- gchar *filename;
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
+ {
+ p_intf->p_sys->p_playlist = create_intf_playlist();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
+ "p_intf", p_intf );
+ }
+ gtk_widget_show( p_intf->p_sys->p_playlist );
+ gdk_window_raise( p_intf->p_sys->p_playlist->window );
+}
- filesel = gtk_widget_get_toplevel (GTK_WIDGET (button));
- gtk_widget_hide (filesel);
- filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
- intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, (char*)filename );
+void
+on_popup_jump_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
- /* Select added item and switch to file interface */
- if( p_intf->p_input != NULL )
- p_intf->p_input->b_eof = 1;
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_jump ) )
+ {
+ p_intf->p_sys->p_jump = create_intf_jump();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_jump ),
+ "p_intf", p_intf );
+ }
-// p_intf->p_sys->b_mode_changed = 1;
+ gtk_widget_show( p_intf->p_sys->p_jump );
+ gdk_window_raise( p_intf->p_sys->p_jump->window );
}
void
-on_fileopen_cancel_clicked (GtkButton *button,
+on_popup_preferences_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
+
+ gtk_widget_show( p_intf->p_sys->p_preferences );
+ gdk_window_raise( p_intf->p_sys->p_preferences->window );
+
}
/*****************************************************************************
- * Playlist callbacks
+ * Fileopen callbacks
*****************************************************************************
- * The following callbacks are related to the playlist.
+ * The following callbacks are related to the file requester.
*****************************************************************************/
void
-on_intf_playlist_destroy (GtkObject *object,
+on_intf_fileopen_destroy (GtkObject *object,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(object), "intf_playlist" );
-
- p_intf->p_sys->p_playlist = NULL;
+ gtk_widget_hide( GTK_WIDGET( object ) );
}
void
-on_playlist_ok_clicked (GtkButton *button,
+on_fileopen_ok_clicked (GtkButton *button,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_playlist" );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(button), "intf_fileopen" );
+ GtkCList * p_playlist_clist;
+ GtkWidget * p_filesel;
+ gchar * psz_filename;
+ int i_end = p_main->p_playlist->i_size;
+
+ p_filesel = gtk_widget_get_toplevel( GTK_WIDGET(button) );
+ gtk_widget_hide( p_filesel );
+ psz_filename =
+ gtk_file_selection_get_filename( GTK_FILE_SELECTION( p_filesel ) );
+
+ intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, (char*)psz_filename );
+
+ /* catch the GTK CList */
+ p_playlist_clist = GTK_CLIST( gtk_object_get_data(
+ GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ /* update the display */
+ GnomeRebuildCList( p_playlist_clist, p_main->p_playlist );
+
+ /* Select added item and switch to file interface */
+ if( p_intf->p_input != NULL )
+ {
+ p_intf->p_input->b_eof = 1;
+ }
- gtk_widget_hide( p_intf->p_sys->p_playlist );
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
}
void
-on_playlist_close_clicked (GtkButton *button,
+on_fileopen_cancel_clicked (GtkButton *button,
gpointer user_data)
{
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
-
/*****************************************************************************
* Module manager callbacks
*****************************************************************************
on_disc_ok_clicked (GtkButton *button,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_disc" );
- char *psz_device, *psz_source, *psz_method;
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(button), "intf_disc" );
+ GtkCList * p_playlist_clist;
+ char * psz_device, *psz_source, *psz_method;
+ int i_end = p_main->p_playlist->i_size;
+ gtk_widget_hide( p_intf->p_sys->p_disc );
psz_device = gtk_entry_get_text( GTK_ENTRY( lookup_widget(
GTK_WIDGET(button), "disc_name" ) ) );
intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, psz_source );
free( psz_source );
+ /* catch the GTK CList */
+ p_playlist_clist = GTK_CLIST( gtk_object_get_data(
+ GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ /* update the display */
+ GnomeRebuildCList( p_playlist_clist, p_main->p_playlist );
+
/* Select added item and switch to DVD interface */
- intf_PlaylistJumpto( p_main->p_playlist, p_main->p_playlist->i_size-2 );
if( p_intf->p_input != NULL )
+ {
p_intf->p_input->b_eof = 1;
-// p_intf->p_sys->b_mode_changed = 1;
+ }
- gtk_widget_hide( p_intf->p_sys->p_disc );
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
}
on_network_ok_clicked (GtkButton *button,
gpointer user_data)
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_network" );
- char *psz_source, *psz_server, *psz_protocol;
- unsigned int i_port;
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(button), "intf_network" );
+ GtkCList * p_playlist_clist;
+ char * psz_source, *psz_server, *psz_protocol;
+ unsigned int i_port;
+ boolean_t b_broadcast;
+ int i_end = p_main->p_playlist->i_size;
+ gtk_widget_hide( p_intf->p_sys->p_network );
psz_server = gtk_entry_get_text( GTK_ENTRY( lookup_widget(
GTK_WIDGET(button), "network_server" ) ) );
intf_ErrMsg( "intf error: invalid port %i", i_port );
}
- /* Allocate room for "protocol://server:port" */
- psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */
- + strlen( psz_server ) + 1 /* ":" */
- + 5 /* 0-65535 */ + 1 /* "\0" */ );
- if( psz_source == NULL )
+ /* do we have a broadcast address */
+ b_broadcast = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(
+ lookup_widget( GTK_WIDGET(button), "broadcast_check" ) ) );
+ if( b_broadcast )
{
- return;
+ char * psz_broadcast;
+ psz_broadcast = gtk_entry_get_text( GTK_ENTRY( lookup_widget(
+ GTK_WIDGET(button), "network_broadcast" ) ) );
+ /* Allocate room for "protocol://server:port" */
+ psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */
+ + strlen( psz_server ) + 1 /* ":" */
+ + 5 /* 0-65535 */
+ + strlen( psz_broadcast ) + 2 /* "::" */
+ + 1 /* "\0" */ );
+ if( psz_source == NULL )
+ {
+ return;
+ }
+
+ /* Build source name and add it to playlist */
+ sprintf( psz_source, "%s://%s:%i::%s", psz_protocol,
+ psz_server,
+ i_port,
+ psz_broadcast );
}
-
- /* Build source name and add it to playlist */
- sprintf( psz_source, "%s://%s:%i", psz_protocol, psz_server, i_port );
+ else
+ {
+ /* Allocate room for "protocol://server:port" */
+ psz_source = malloc( strlen( psz_protocol ) + 3 /* "://" */
+ + strlen( psz_server ) + 1 /* ":" */
+ + 5 /* 0-65535 */ + 1 /* "\0" */ );
+ if( psz_source == NULL )
+ {
+ return;
+ }
+
+ /* Build source name and add it to playlist */
+ sprintf( psz_source, "%s://%s:%i", psz_protocol, psz_server, i_port );
+ }
+
intf_PlaylistAdd( p_main->p_playlist, PLAYLIST_END, psz_source );
free( psz_source );
+ /* catch the GTK CList */
+ p_playlist_clist = GTK_CLIST( gtk_object_get_data(
+ GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ /* update the display */
+ GnomeRebuildCList( p_playlist_clist, p_main->p_playlist );
+
/* Select added item and switch to network interface */
- intf_PlaylistJumpto( p_main->p_playlist, p_main->p_playlist->i_size-2 );
if( p_intf->p_input != NULL )
+ {
p_intf->p_input->b_eof = 1;
-// p_intf->p_sys->b_mode_changed = 1;
+ }
- gtk_widget_hide( p_intf->p_sys->p_network );
+ intf_PlaylistJumpto( p_main->p_playlist, i_end - 1 );
}
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
+
+void
+on_broadcast_check_toggled (GtkToggleButton *togglebutton,
+ gpointer user_data)
+{
+ GtkWidget * p_network;
+
+ p_network = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) );
+ gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ),
+ "network_broadcast_combo" ),
+ gtk_toggle_button_get_active( togglebutton ) );
+ gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_network ),
+ "network_broadcast" ),
+ gtk_toggle_button_get_active( togglebutton ) );
+}
+
+
+/****************************************************************************
+ * Jump window
+ ****************************************************************************
+ * Those callback are received from the jump window that allow to select
+ * an arbitrary position of the stream.
+ ****************************************************************************/
+void
+on_jump_ok_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+void
+on_jump_apply_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_jump_cancel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+/****************************************************************************
+ * Preferences window callbacks
+ ****************************************************************************/
+void
+on_preferences_ok_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+void
+on_preferences_apply_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_preferences_cancel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
* gnome_callbacks.h : Callbacks for the Gnome plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gnome_callbacks.h,v 1.15 2001/04/22 00:08:26 stef Exp $
+ * $Id: gnome_callbacks.h,v 1.16 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
on_popup_about_activate (GtkMenuItem *menuitem,
gpointer user_data);
-void
-on_intf_playlist_destroy (GtkObject *object,
- gpointer user_data);
-
-void
-on_playlist_close_clicked (GtkButton *button,
- gpointer user_data);
-
void
on_popup_slow_activate (GtkMenuItem *menuitem,
gpointer user_data);
on_modules_cancel_clicked (GtkButton *button,
gpointer user_data);
-void
-on_intf_playlist_destroy (GtkObject *object,
- gpointer user_data);
-
-void
-on_playlist_ok_clicked (GtkButton *button,
- gpointer user_data);
-
void
on_menubar_modules_activate (GtkMenuItem *menuitem,
gpointer user_data);
void
on_popup_angle_toggle (GtkCheckMenuItem *menuitem,
gpointer user_data);
+
+void
+on_popup_stop_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_popup_jump_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_popup_preferences_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_broadcast_check_toggled (GtkToggleButton *togglebutton,
+ gpointer user_data);
+
+void
+on_jump_ok_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_jump_apply_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_jump_cancel_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_popup_playlist_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_preferences_ok_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_preferences_apply_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_preferences_cancel_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_menubar_fullscreen_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_popup_fullscreen_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_close_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_intf_playlist_destroy (GtkObject *object,
+ gpointer user_data);
+
+void
+on_intf_playlist_destroy (GtkObject *object,
+ gpointer user_data);
+
+void
+on_playlist_ok_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_playlist_disc_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_file_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_network_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_url_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_crop_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_invert_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_select_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+gboolean
+on_playlist_clist_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer user_data);
+
+void
+on_playlist_clist_drag_data_received (GtkWidget *widget,
+ GdkDragContext *drag_context,
+ gint x,
+ gint y,
+ GtkSelectionData *data,
+ guint info,
+ guint time,
+ gpointer user_data);
+
+gboolean
+on_playlist_clist_drag_motion (GtkWidget *widget,
+ GdkDragContext *drag_context,
+ gint x,
+ gint y,
+ guint time,
+ gpointer user_data);
+
+
+
+void
+on_playlist_delete_all_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_delete_item_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_playlist_ok_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_playlist_apply_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_playlist_cancel_clicked (GtkButton *button,
+ gpointer user_data);
+
+void
+on_popup_back_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
static GnomeUIInfo menubar_view_menu_uiinfo[] =
{
+ {
+ GNOME_APP_UI_TOGGLEITEM, N_("_Fullscreen"),
+ NULL,
+ (gpointer) on_menubar_fullscreen_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_SEPARATOR,
{
GNOME_APP_UI_ITEM, N_("_Title"),
N_("Choose title"),
GtkWidget *toolbar_playlist;
GtkWidget *toolbar_prev;
GtkWidget *toolbar_next;
- GtkWidget *vbox2;
- GtkWidget *hbox4;
- GtkWidget *label_date;
- GtkWidget *label_status;
- GtkWidget *label_bar;
+ GtkWidget *vbox8;
+ GtkWidget *slider_handlebox;
+ GtkWidget *slider_frame;
GtkWidget *slider;
GtkWidget *file_box;
- GtkWidget *label_file;
+ GtkWidget *label_status;
GtkWidget *dvd_box;
+ GtkWidget *label21;
GtkWidget *title_chapter_box;
GtkWidget *label19;
GtkWidget *label_title;
GtkWidget *button_title_prev;
GtkWidget *button_title_next;
+ GtkWidget *vseparator1;
GtkWidget *dvd_chapter_box;
GtkWidget *label20;
GtkWidget *label_chapter;
GtkWidget *button_chapter_prev;
GtkWidget *button_chapter_next;
GtkWidget *network_box;
+ GtkWidget *network_address_label;
GtkWidget *network_channel_box;
GtkWidget *label_network;
GtkObject *network_spinbutton_adj;
intf_window = gnome_app_new ("VideoLAN Client", _("VideoLAN Client"));
gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window);
+ gtk_window_set_policy (GTK_WINDOW (intf_window), FALSE, TRUE, TRUE);
dockitem = GNOME_APP (intf_window)->dock;
gtk_widget_ref (dockitem);
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_ref (menubar_view_menu_uiinfo[0].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title",
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen",
menubar_view_menu_uiinfo[0].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (menubar_view_menu_uiinfo[0].widget, FALSE);
gtk_widget_ref (menubar_view_menu_uiinfo[1].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter",
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator9",
menubar_view_menu_uiinfo[1].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (menubar_view_menu_uiinfo[1].widget, FALSE);
gtk_widget_ref (menubar_view_menu_uiinfo[2].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_angle",
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title",
menubar_view_menu_uiinfo[2].widget,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_set_sensitive (menubar_view_menu_uiinfo[2].widget, FALSE);
gtk_widget_ref (menubar_view_menu_uiinfo[3].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7",
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter",
menubar_view_menu_uiinfo[3].widget,
(GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (menubar_view_menu_uiinfo[3].widget, FALSE);
gtk_widget_ref (menubar_view_menu_uiinfo[4].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_angle",
menubar_view_menu_uiinfo[4].widget,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_set_sensitive (menubar_view_menu_uiinfo[4].widget, FALSE);
gtk_widget_ref (menubar_view_menu_uiinfo[5].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7",
menubar_view_menu_uiinfo[5].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (menubar_view_menu_uiinfo[5].widget, FALSE);
+
+ gtk_widget_ref (menubar_view_menu_uiinfo[6].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist",
+ menubar_view_menu_uiinfo[6].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (menubar_view_menu_uiinfo[7].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules",
+ menubar_view_menu_uiinfo[7].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (menubar_view_menu_uiinfo[7].widget, FALSE);
gtk_widget_ref (menubar_uiinfo[2].widget);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings",
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences",
menubar_settings_menu_uiinfo[3].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (menubar_settings_menu_uiinfo[3].widget, FALSE);
gtk_widget_ref (menubar_uiinfo[3].widget);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help",
toolbar_file = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
- _("Open"),
+ _("File"),
_("Open a File"), NULL,
tmp_toolbar_icon, NULL, NULL);
gtk_widget_ref (toolbar_file);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_play);
+ gtk_widget_set_sensitive (toolbar_play, FALSE);
tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM);
toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_pause);
+ gtk_widget_set_sensitive (toolbar_pause, FALSE);
tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP);
toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_slow);
+ gtk_widget_set_sensitive (toolbar_slow, FALSE);
tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER);
toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_fast);
+ gtk_widget_set_sensitive (toolbar_fast, FALSE);
gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_playlist);
- gtk_widget_set_sensitive (toolbar_playlist, FALSE);
tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST);
toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_next);
- vbox2 = gtk_vbox_new (FALSE, 0);
- gtk_widget_ref (vbox2);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox2", vbox2,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (vbox2);
- gnome_app_set_contents (GNOME_APP (intf_window), vbox2);
-
- hbox4 = gtk_hbox_new (TRUE, 0);
- gtk_widget_ref (hbox4);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "hbox4", hbox4,
+ vbox8 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (vbox8);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox8", vbox8,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (hbox4);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox4, TRUE, TRUE, 0);
- gtk_widget_set_usize (hbox4, 650, -2);
+ gtk_widget_show (vbox8);
+ gnome_app_set_contents (GNOME_APP (intf_window), vbox8);
- label_date = gtk_label_new (_("-:--:--"));
- gtk_widget_ref (label_date);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_date", label_date,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_date);
- gtk_box_pack_start (GTK_BOX (hbox4), label_date, FALSE, FALSE, 0);
-
- label_status = gtk_label_new (_("Status: foo"));
- gtk_widget_ref (label_status);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
+ slider_handlebox = gtk_handle_box_new ();
+ gtk_widget_ref (slider_handlebox);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_handlebox", slider_handlebox,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_status);
- gtk_box_pack_start (GTK_BOX (hbox4), label_status, FALSE, FALSE, 0);
- gtk_widget_set_usize (label_status, 350, -2);
+ gtk_box_pack_start (GTK_BOX (vbox8), slider_handlebox, TRUE, TRUE, 0);
- label_bar = gtk_label_new (_("Bar: baz"));
- gtk_widget_ref (label_bar);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_bar", label_bar,
+ slider_frame = gtk_frame_new (_("-:--:--"));
+ gtk_widget_ref (slider_frame);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_bar);
- gtk_box_pack_start (GTK_BOX (hbox4), label_bar, FALSE, FALSE, 0);
+ gtk_widget_show (slider_frame);
+ gtk_container_add (GTK_CONTAINER (slider_handlebox), slider_frame);
+ gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5);
slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
gtk_widget_ref (slider);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (slider);
- gtk_box_pack_start (GTK_BOX (vbox2), slider, TRUE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER (slider_frame), slider);
+ gtk_widget_set_usize (slider, 500, 15);
gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
gtk_scale_set_digits (GTK_SCALE (slider), 3);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (file_box);
- gtk_box_pack_start (GTK_BOX (vbox2), file_box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox8), file_box, TRUE, TRUE, 0);
+ gtk_widget_set_usize (file_box, 500, 24);
- label_file = gtk_label_new (_("Vlc File Mode"));
- gtk_widget_ref (label_file);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_file", label_file,
+ label_status = gtk_label_new (_("Playlist empty"));
+ gtk_widget_ref (label_status);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_file);
- gtk_box_pack_start (GTK_BOX (file_box), label_file, TRUE, TRUE, 0);
- gtk_widget_set_usize (label_file, -2, 24);
+ gtk_widget_show (label_status);
+ gtk_box_pack_start (GTK_BOX (file_box), label_status, TRUE, TRUE, 0);
dvd_box = gtk_hbox_new (FALSE, 0);
gtk_widget_ref (dvd_box);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_box_pack_start (GTK_BOX (vbox2), dvd_box, TRUE, TRUE, 0);
- gtk_widget_set_usize (dvd_box, -2, 24);
+ gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0);
+ gtk_widget_set_usize (dvd_box, 500, 24);
+
+ label21 = gtk_label_new (_("DVD "));
+ gtk_widget_ref (label21);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label21);
+ gtk_box_pack_start (GTK_BOX (dvd_box), label21, TRUE, FALSE, 0);
title_chapter_box = gtk_hbox_new (FALSE, 10);
gtk_widget_ref (title_chapter_box);
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 ();
+ gtk_widget_ref (vseparator1);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "vseparator1", vseparator1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vseparator1);
+ gtk_box_pack_start (GTK_BOX (dvd_box), vseparator1, FALSE, FALSE, 0);
+
dvd_chapter_box = gtk_hbox_new (FALSE, 10);
gtk_widget_ref (dvd_chapter_box);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_chapter_box", dvd_chapter_box,
gtk_widget_show (label20);
gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label20, FALSE, FALSE, 0);
- label_chapter = gtk_label_new (_("--"));
+ label_chapter = gtk_label_new (_("---"));
gtk_widget_ref (label_chapter);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_chapter", label_chapter,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_ref (network_box);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_box_pack_start (GTK_BOX (vbox2), network_box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox8), network_box, FALSE, FALSE, 0);
+ gtk_widget_set_usize (network_box, 500, 24);
+
+ network_address_label = gtk_label_new (_("No server"));
+ gtk_widget_ref (network_address_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_address_label", network_address_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (network_address_label);
+ gtk_box_pack_start (GTK_BOX (network_box), network_address_label, FALSE, FALSE, 0);
network_channel_box = gtk_hbox_new (FALSE, 0);
gtk_widget_ref (network_channel_box);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_channel_box", network_channel_box,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (network_channel_box);
- gtk_box_pack_start (GTK_BOX (network_box), network_channel_box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (network_box), network_channel_box, FALSE, FALSE, 0);
label_network = gtk_label_new (_("Network Channel:"));
gtk_widget_ref (label_network);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_network", label_network,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label_network);
- gtk_box_pack_start (GTK_BOX (network_channel_box), label_network, TRUE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (network_channel_box), label_network, TRUE, FALSE, 5);
network_spinbutton_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);
network_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (network_spinbutton_adj), 1, 0);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_spinbutton", network_spinbutton,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (network_spinbutton);
- gtk_box_pack_start (GTK_BOX (network_channel_box), network_spinbutton, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (network_channel_box), network_spinbutton, FALSE, TRUE, 5);
gtk_widget_set_sensitive (network_spinbutton, FALSE);
- appbar = gnome_appbar_new (TRUE, TRUE, GNOME_PREFERENCES_NEVER);
+ appbar = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_NEVER);
gtk_widget_ref (appbar);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (appbar);
gnome_app_set_statusbar (GNOME_APP (intf_window), appbar);
+ gtk_widget_set_usize (appbar, 500, -2);
gtk_signal_connect (GTK_OBJECT (intf_window), "destroy",
GTK_SIGNAL_FUNC (on_intf_window_destroy),
static GnomeUIInfo intf_popup_uiinfo[] =
{
{
- GNOME_APP_UI_ITEM, N_("_Play"),
+ GNOME_APP_UI_ITEM, N_("Play"),
NULL,
(gpointer) on_popup_play_activate, NULL, NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
0, (GdkModifierType) 0, NULL
},
+ {
+ GNOME_APP_UI_ITEM, N_("Stop"),
+ NULL,
+ (gpointer) on_popup_stop_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_STOP,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("Back"),
+ NULL,
+ (gpointer) on_popup_back_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BACK,
+ 0, (GdkModifierType) 0, NULL
+ },
{
GNOME_APP_UI_ITEM, N_("Slow"),
NULL,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_SEPARATOR,
+ {
+ GNOME_APP_UI_TOGGLEITEM, N_("_Fullscreen"),
+ N_("Toggle fullscreen mode"),
+ (gpointer) on_popup_fullscreen_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_SEPARATOR,
+ {
+ GNOME_APP_UI_ITEM, N_("_Jump"),
+ N_("Got directly so specified point"),
+ (gpointer) on_popup_jump_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_JUMP_TO,
+ 0, (GdkModifierType) 0, NULL
+ },
{
GNOME_APP_UI_ITEM, N_("_Navigation"),
N_("Navigate through titles and chapters"),
(gpointer) NULL, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
+ GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_SEARCH,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Audio"),
N_("Select audio channel"),
(gpointer) NULL, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
+ GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_VOLUME,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Subtitles"),
N_("Select subtitle channel"),
(gpointer) NULL, NULL, NULL,
- GNOME_APP_PIXMAP_NONE, NULL,
+ GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FONT,
0, (GdkModifierType) 0, NULL
},
+ GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_MENU_FILE_TREE (popup_file_menu_uiinfo),
+ {
+ GNOME_APP_UI_ITEM, N_("Playlist..."),
+ NULL,
+ (gpointer) on_popup_playlist_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_MENU_PREFERENCES_ITEM (on_popup_preferences_activate, NULL),
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_MENU_EXIT_ITEM (on_popup_exit_activate, NULL),
GNOMEUIINFO_END
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_ref (intf_popup_uiinfo[2].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_stop",
intf_popup_uiinfo[2].widget,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_ref (intf_popup_uiinfo[3].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_back",
intf_popup_uiinfo[3].widget,
(GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (intf_popup_uiinfo[3].widget, FALSE);
gtk_widget_ref (intf_popup_uiinfo[4].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow",
intf_popup_uiinfo[4].widget,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_ref (intf_popup_uiinfo[5].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast",
intf_popup_uiinfo[5].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (intf_popup_uiinfo[5].widget, FALSE);
gtk_widget_ref (intf_popup_uiinfo[6].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_angle",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3",
intf_popup_uiinfo[6].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (intf_popup_uiinfo[6].widget, FALSE);
gtk_widget_ref (intf_popup_uiinfo[7].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fullscreen",
intf_popup_uiinfo[7].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (intf_popup_uiinfo[7].widget, FALSE);
gtk_widget_ref (intf_popup_uiinfo[8].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subtitle",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator8",
intf_popup_uiinfo[8].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_set_sensitive (intf_popup_uiinfo[8].widget, FALSE);
gtk_widget_ref (intf_popup_uiinfo[9].widget);
- gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file",
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_jump",
intf_popup_uiinfo[9].widget,
(GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_ref (intf_popup_uiinfo[10].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation",
+ intf_popup_uiinfo[10].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (intf_popup_uiinfo[10].widget, FALSE);
+
+ gtk_widget_ref (intf_popup_uiinfo[11].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_angle",
+ intf_popup_uiinfo[11].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (intf_popup_uiinfo[11].widget, FALSE);
+
+ gtk_widget_ref (intf_popup_uiinfo[12].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio",
+ intf_popup_uiinfo[12].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (intf_popup_uiinfo[12].widget, FALSE);
+
+ gtk_widget_ref (intf_popup_uiinfo[13].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subtitle",
+ intf_popup_uiinfo[13].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_set_sensitive (intf_popup_uiinfo[13].widget, FALSE);
+
+ gtk_widget_ref (intf_popup_uiinfo[14].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator13",
+ intf_popup_uiinfo[14].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (intf_popup_uiinfo[15].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file",
+ intf_popup_uiinfo[15].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
gtk_widget_ref (popup_file_menu_uiinfo[0].widget);
gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open",
popup_file_menu_uiinfo[0].widget,
popup_file_menu_uiinfo[4].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_ref (intf_popup_uiinfo[10].widget);
+ gtk_widget_ref (intf_popup_uiinfo[16].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_playlist",
+ intf_popup_uiinfo[16].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (intf_popup_uiinfo[17].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_preferences",
+ intf_popup_uiinfo[17].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (intf_popup_uiinfo[18].widget);
gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2",
- intf_popup_uiinfo[10].widget,
+ intf_popup_uiinfo[18].widget,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_ref (intf_popup_uiinfo[11].widget);
+ gtk_widget_ref (intf_popup_uiinfo[19].widget);
gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit",
- intf_popup_uiinfo[11].widget,
+ intf_popup_uiinfo[19].widget,
(GtkDestroyNotify) gtk_widget_unref);
return intf_popup;
return intf_modules;
}
-GtkWidget*
-create_intf_playlist (void)
-{
- GtkWidget *intf_playlist;
- GtkWidget *dialog_vbox2;
- GtkWidget *label11;
- GtkWidget *scrolledwindow3;
- GtkWidget *clist2;
- GtkWidget *label8;
- GtkWidget *label9;
- GtkWidget *label10;
- GtkWidget *dialog_action_area2;
- GtkWidget *playlist_ok;
-
- intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
- gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
-
- dialog_vbox2 = GNOME_DIALOG (intf_playlist)->vbox;
- gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_vbox2", dialog_vbox2);
- gtk_widget_show (dialog_vbox2);
-
- label11 = gtk_label_new (_("Sorry, the playlist isn't functional yet. Please retry in a later version."));
- gtk_widget_ref (label11);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label11", label11,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label11);
- gtk_box_pack_start (GTK_BOX (dialog_vbox2), label11, FALSE, FALSE, 0);
-
- scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_ref (scrolledwindow3);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow3", scrolledwindow3,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (scrolledwindow3);
- gtk_box_pack_start (GTK_BOX (dialog_vbox2), scrolledwindow3, TRUE, TRUE, 0);
-
- clist2 = gtk_clist_new (3);
- gtk_widget_ref (clist2);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "clist2", clist2,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (clist2);
- gtk_container_add (GTK_CONTAINER (scrolledwindow3), clist2);
- gtk_clist_set_column_width (GTK_CLIST (clist2), 0, 211);
- gtk_clist_set_column_width (GTK_CLIST (clist2), 1, 49);
- gtk_clist_set_column_width (GTK_CLIST (clist2), 2, 35);
- gtk_clist_column_titles_hide (GTK_CLIST (clist2));
-
- label8 = gtk_label_new (_("Name"));
- gtk_widget_ref (label8);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label8", label8,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label8);
- gtk_clist_set_column_widget (GTK_CLIST (clist2), 0, label8);
-
- label9 = gtk_label_new (_("Type"));
- gtk_widget_ref (label9);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label9", label9,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label9);
- gtk_clist_set_column_widget (GTK_CLIST (clist2), 1, label9);
-
- label10 = gtk_label_new (_("Length"));
- gtk_widget_ref (label10);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label10", label10,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label10);
- gtk_clist_set_column_widget (GTK_CLIST (clist2), 2, label10);
-
- dialog_action_area2 = GNOME_DIALOG (intf_playlist)->action_area;
- gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_action_area2", dialog_action_area2);
- gtk_widget_show (dialog_action_area2);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_END);
- gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area2), 8);
-
- gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
- playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
- gtk_widget_ref (playlist_ok);
- gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (playlist_ok);
- GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
-
- gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy",
- GTK_SIGNAL_FUNC (on_intf_playlist_destroy),
- NULL);
- gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
- GTK_SIGNAL_FUNC (on_playlist_ok_clicked),
- NULL);
-
- return intf_playlist;
-}
-
GtkWidget*
create_intf_disc (void)
{
GtkWidget *label18;
GtkObject *network_port_adj;
GtkWidget *network_port;
+ GtkWidget *broadcast_check;
+ GtkWidget *network_broadcast_combo;
+ GtkWidget *network_broadcast;
+ GtkWidget *network_server_combo;
GtkWidget *network_server;
GtkWidget *hbuttonbox1;
GtkWidget *network_ok;
GtkWidget *network_cancel;
+ GtkTooltips *tooltips;
+
+ tooltips = gtk_tooltips_new ();
intf_network = gnome_dialog_new (_("Network Stream"), NULL);
gtk_object_set_data (GTK_OBJECT (intf_network), "intf_network", intf_network);
gtk_widget_show (frame4);
gtk_box_pack_start (GTK_BOX (hbox3), frame4, TRUE, TRUE, 0);
- table2 = gtk_table_new (2, 2, FALSE);
+ table2 = gtk_table_new (3, 2, FALSE);
gtk_widget_ref (table2);
gtk_object_set_data_full (GTK_OBJECT (intf_network), "table2", table2,
(GtkDestroyNotify) gtk_widget_unref);
gtk_table_attach (GTK_TABLE (table2), network_port, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
+ gtk_tooltips_set_tip (tooltips, network_port, _("Port of the stream server"), NULL);
+
+ broadcast_check = gtk_check_button_new_with_label (_("Broadcast"));
+ gtk_widget_ref (broadcast_check);
+ gtk_object_set_data_full (GTK_OBJECT (intf_network), "broadcast_check", broadcast_check,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (broadcast_check);
+ gtk_table_attach (GTK_TABLE (table2), broadcast_check, 0, 1, 2, 3,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
- network_server = gtk_entry_new ();
+ network_broadcast_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (network_broadcast_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_broadcast_combo", network_broadcast_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (network_broadcast_combo);
+ gtk_table_attach (GTK_TABLE (table2), network_broadcast_combo, 1, 2, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+
+ network_broadcast = gnome_entry_gtk_entry (GNOME_ENTRY (network_broadcast_combo));
+ gtk_widget_ref (network_broadcast);
+ gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_broadcast", network_broadcast,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (network_broadcast);
+ gtk_widget_set_sensitive (network_broadcast, FALSE);
+
+ network_server_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (network_server_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server_combo", network_server_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (network_server_combo);
+ gtk_table_attach (GTK_TABLE (table2), network_server_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+
+ network_server = gnome_entry_gtk_entry (GNOME_ENTRY (network_server_combo));
gtk_widget_ref (network_server);
gtk_object_set_data_full (GTK_OBJECT (intf_network), "network_server", network_server,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (network_server);
- gtk_table_attach (GTK_TABLE (table2), network_server, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
gtk_entry_set_text (GTK_ENTRY (network_server), _("vls"));
hbuttonbox1 = GNOME_DIALOG (intf_network)->action_area;
gtk_widget_show (network_cancel);
GTK_WIDGET_SET_FLAGS (network_cancel, GTK_CAN_DEFAULT);
+ gtk_signal_connect (GTK_OBJECT (broadcast_check), "toggled",
+ GTK_SIGNAL_FUNC (on_broadcast_check_toggled),
+ NULL);
gtk_signal_connect (GTK_OBJECT (network_ok), "clicked",
GTK_SIGNAL_FUNC (on_network_ok_clicked),
NULL);
GTK_SIGNAL_FUNC (on_network_cancel_clicked),
NULL);
+ gtk_object_set_data (GTK_OBJECT (intf_network), "tooltips", tooltips);
+
return intf_network;
}
+static GnomeUIInfo playlist_add_menu_uiinfo[] =
+{
+ {
+ GNOME_APP_UI_ITEM, N_("Disc"),
+ NULL,
+ (gpointer) on_playlist_disc_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("File"),
+ NULL,
+ (gpointer) on_playlist_file_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("Network"),
+ NULL,
+ (gpointer) on_playlist_network_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("Url"),
+ NULL,
+ (gpointer) on_playlist_url_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_END
+};
+
+static GnomeUIInfo playlist_delete_menu_uiinfo[] =
+{
+ {
+ GNOME_APP_UI_ITEM, N_("All"),
+ NULL,
+ (gpointer) on_playlist_delete_all_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("Item"),
+ NULL,
+ (gpointer) on_playlist_delete_item_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_END
+};
+
+static GnomeUIInfo playlist_selection_menu_uiinfo[] =
+{
+ {
+ GNOME_APP_UI_ITEM, N_("Crop"),
+ NULL,
+ (gpointer) on_playlist_crop_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("Invert"),
+ NULL,
+ (gpointer) on_playlist_invert_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_ITEM, N_("Select"),
+ NULL,
+ (gpointer) on_playlist_select_activate, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_END
+};
+
+static GnomeUIInfo playlist_menubar_uiinfo[] =
+{
+ {
+ GNOME_APP_UI_SUBTREE, N_("Add"),
+ NULL,
+ playlist_add_menu_uiinfo, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_SUBTREE, N_("Delete"),
+ NULL,
+ playlist_delete_menu_uiinfo, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ {
+ GNOME_APP_UI_SUBTREE, N_("Selection"),
+ NULL,
+ playlist_selection_menu_uiinfo, NULL, NULL,
+ GNOME_APP_PIXMAP_NONE, NULL,
+ 0, (GdkModifierType) 0, NULL
+ },
+ GNOMEUIINFO_END
+};
+
+GtkWidget*
+create_intf_playlist (void)
+{
+ GtkWidget *intf_playlist;
+ GtkWidget *playlist_vbox;
+ GtkWidget *playlist_scrolledwindow;
+ GtkWidget *playlist_viewport;
+ GtkWidget *playlist_frame;
+ GtkWidget *playlist_clist;
+ GtkWidget *playlist_label_url;
+ GtkWidget *playlist_label_duration;
+ GtkWidget *playlist_menubar;
+ GtkWidget *playlist_action;
+ GtkWidget *playlist_ok;
+ GtkWidget *playlist_cancel;
+
+ intf_playlist = gnome_dialog_new (_("Playlist"), NULL);
+ gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist);
+ gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 400, 300);
+ gtk_window_set_policy (GTK_WINDOW (intf_playlist), TRUE, TRUE, FALSE);
+
+ playlist_vbox = GNOME_DIALOG (intf_playlist)->vbox;
+ gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_vbox", playlist_vbox);
+ gtk_widget_show (playlist_vbox);
+
+ playlist_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_ref (playlist_scrolledwindow);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_scrolledwindow", playlist_scrolledwindow,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_scrolledwindow);
+ gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_scrolledwindow, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (playlist_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+ playlist_viewport = gtk_viewport_new (NULL, NULL);
+ gtk_widget_ref (playlist_viewport);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_viewport", playlist_viewport,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_viewport);
+ gtk_container_add (GTK_CONTAINER (playlist_scrolledwindow), playlist_viewport);
+
+ playlist_frame = gtk_frame_new (_("Playlist"));
+ gtk_widget_ref (playlist_frame);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_frame", playlist_frame,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_frame);
+ gtk_container_add (GTK_CONTAINER (playlist_viewport), playlist_frame);
+ gtk_frame_set_label_align (GTK_FRAME (playlist_frame), 0.05, 0.5);
+
+ playlist_clist = gtk_clist_new (2);
+ gtk_widget_ref (playlist_clist);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_clist);
+ gtk_container_add (GTK_CONTAINER (playlist_frame), playlist_clist);
+ gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 287);
+ gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 70);
+ gtk_clist_column_titles_show (GTK_CLIST (playlist_clist));
+
+ playlist_label_url = gtk_label_new (_("Url"));
+ gtk_widget_ref (playlist_label_url);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_url", playlist_label_url,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_label_url);
+ gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, playlist_label_url);
+
+ playlist_label_duration = gtk_label_new (_("Duration"));
+ gtk_widget_ref (playlist_label_duration);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_duration", playlist_label_duration,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_label_duration);
+ gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, playlist_label_duration);
+
+ playlist_menubar = gtk_menu_bar_new ();
+ gtk_widget_ref (playlist_menubar);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_menubar", playlist_menubar,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_menubar);
+ gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_menubar, FALSE, FALSE, 0);
+ gnome_app_fill_menu (GTK_MENU_SHELL (playlist_menubar), playlist_menubar_uiinfo,
+ NULL, FALSE, 0);
+
+ gtk_widget_ref (playlist_menubar_uiinfo[0].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add",
+ playlist_menubar_uiinfo[0].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_add_menu_uiinfo[0].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_disc",
+ playlist_add_menu_uiinfo[0].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_add_menu_uiinfo[1].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_file",
+ playlist_add_menu_uiinfo[1].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_add_menu_uiinfo[2].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_network",
+ playlist_add_menu_uiinfo[2].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_add_menu_uiinfo[3].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_url",
+ playlist_add_menu_uiinfo[3].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_menubar_uiinfo[1].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete",
+ playlist_menubar_uiinfo[1].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_delete_menu_uiinfo[0].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_all",
+ playlist_delete_menu_uiinfo[0].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_delete_menu_uiinfo[1].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playmist_delete_item",
+ playlist_delete_menu_uiinfo[1].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_menubar_uiinfo[2].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection",
+ playlist_menubar_uiinfo[2].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_selection_menu_uiinfo[0].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_crop",
+ playlist_selection_menu_uiinfo[0].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_selection_menu_uiinfo[1].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_invert",
+ playlist_selection_menu_uiinfo[1].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ gtk_widget_ref (playlist_selection_menu_uiinfo[2].widget);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_select",
+ playlist_selection_menu_uiinfo[2].widget,
+ (GtkDestroyNotify) gtk_widget_unref);
+
+ playlist_action = GNOME_DIALOG (intf_playlist)->action_area;
+ gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_action", playlist_action);
+ gtk_widget_show (playlist_action);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (playlist_action), GTK_BUTTONBOX_END);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (playlist_action), 8);
+ gtk_button_box_set_child_size (GTK_BUTTON_BOX (playlist_action), 100, 38);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK);
+ playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
+ gtk_widget_ref (playlist_ok);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_ok);
+ GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_CANCEL);
+ playlist_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data);
+ gtk_widget_ref (playlist_cancel);
+ gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_cancel", playlist_cancel,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_cancel);
+ GTK_WIDGET_SET_FLAGS (playlist_cancel, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (playlist_clist), "event",
+ GTK_SIGNAL_FUNC (on_playlist_clist_event),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received",
+ GTK_SIGNAL_FUNC (on_playlist_clist_drag_data_received),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion",
+ GTK_SIGNAL_FUNC (on_playlist_clist_drag_motion),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked",
+ GTK_SIGNAL_FUNC (on_playlist_ok_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (playlist_cancel), "clicked",
+ GTK_SIGNAL_FUNC (on_playlist_cancel_clicked),
+ NULL);
+
+ return intf_playlist;
+}
+
+GtkWidget*
+create_intf_jump (void)
+{
+ GtkWidget *intf_jump;
+ GtkWidget *jump_vbox;
+ GtkWidget *jump_frame;
+ GtkWidget *jump_box;
+ GtkObject *jump_second_spinbutton_adj;
+ GtkWidget *jump_second_spinbutton;
+ GtkWidget *jump_label1;
+ GtkObject *jump_minute_spinbutton_adj;
+ GtkWidget *jump_minute_spinbutton;
+ GtkWidget *jump_label2;
+ GtkObject *jump_hour_spinbutton_adj;
+ GtkWidget *jump_hour_spinbutton;
+ GtkWidget *jump_action;
+ GtkWidget *jump_ok;
+ GtkWidget *jump_cancel;
+
+ intf_jump = gnome_dialog_new (NULL, NULL);
+ gtk_object_set_data (GTK_OBJECT (intf_jump), "intf_jump", intf_jump);
+ gtk_window_set_policy (GTK_WINDOW (intf_jump), FALSE, FALSE, FALSE);
+
+ jump_vbox = GNOME_DIALOG (intf_jump)->vbox;
+ gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_vbox", jump_vbox);
+ gtk_widget_show (jump_vbox);
+
+ jump_frame = gtk_frame_new (_("Jump to:"));
+ gtk_widget_ref (jump_frame);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_frame", jump_frame,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_frame);
+ gtk_box_pack_start (GTK_BOX (jump_vbox), jump_frame, FALSE, FALSE, 0);
+ gtk_frame_set_label_align (GTK_FRAME (jump_frame), 0.05, 0.5);
+
+ jump_box = gtk_hbox_new (FALSE, 0);
+ gtk_widget_ref (jump_box);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_box", jump_box,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_box);
+ gtk_container_add (GTK_CONTAINER (jump_frame), jump_box);
+
+ jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
+ jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0);
+ gtk_widget_ref (jump_second_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_second_spinbutton);
+ gtk_box_pack_end (GTK_BOX (jump_box), jump_second_spinbutton, FALSE, FALSE, 5);
+
+ jump_label1 = gtk_label_new (_(":"));
+ gtk_widget_ref (jump_label1);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label1", jump_label1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_label1);
+ gtk_box_pack_end (GTK_BOX (jump_box), jump_label1, FALSE, FALSE, 5);
+
+ jump_minute_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 10);
+ jump_minute_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_minute_spinbutton_adj), 1, 0);
+ gtk_widget_ref (jump_minute_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_spinbutton", jump_minute_spinbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_minute_spinbutton);
+ gtk_box_pack_end (GTK_BOX (jump_box), jump_minute_spinbutton, FALSE, FALSE, 5);
+
+ jump_label2 = gtk_label_new (_(":"));
+ gtk_widget_ref (jump_label2);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label2", jump_label2,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_label2);
+ gtk_box_pack_end (GTK_BOX (jump_box), jump_label2, FALSE, FALSE, 5);
+
+ jump_hour_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 10, 10);
+ jump_hour_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_hour_spinbutton_adj), 1, 0);
+ gtk_widget_ref (jump_hour_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_spinbutton", jump_hour_spinbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_hour_spinbutton);
+ gtk_box_pack_end (GTK_BOX (jump_box), jump_hour_spinbutton, FALSE, FALSE, 5);
+
+ jump_action = GNOME_DIALOG (intf_jump)->action_area;
+ gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_action", jump_action);
+ gtk_widget_show (jump_action);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (jump_action), GTK_BUTTONBOX_END);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (jump_action), 8);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_OK);
+ jump_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
+ gtk_widget_ref (jump_ok);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_ok", jump_ok,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_ok);
+ GTK_WIDGET_SET_FLAGS (jump_ok, GTK_CAN_DEFAULT);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_CANCEL);
+ jump_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data);
+ gtk_widget_ref (jump_cancel);
+ gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_cancel", jump_cancel,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (jump_cancel);
+ GTK_WIDGET_SET_FLAGS (jump_cancel, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (jump_ok), "clicked",
+ GTK_SIGNAL_FUNC (on_jump_ok_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (jump_cancel), "clicked",
+ GTK_SIGNAL_FUNC (on_jump_cancel_clicked),
+ NULL);
+
+ return intf_jump;
+}
+
+GtkWidget*
+create_intf_preferences (void)
+{
+ GtkWidget *intf_preferences;
+ GtkWidget *preferences_vbox;
+ GtkWidget *preferences_frame;
+ GtkWidget *preferences_notebook;
+ GtkWidget *preferences_file_table;
+ GtkWidget *preferences_file_combo;
+ GtkWidget *preferences_file_entry;
+ GtkWidget *preferences_file_path_label;
+ GtkWidget *preferences_file;
+ GtkWidget *preferences_disc_table;
+ GtkWidget *preferences_disc_dvd_combo;
+ GtkWidget *preferences_disc_dvd_entry;
+ GtkWidget *preferences_file_vcd_combo;
+ GtkWidget *preferences_disc_vcd_entry;
+ GtkWidget *preferences_disc_dvd_label;
+ GtkWidget *preferences_disc_vcd_label;
+ GtkWidget *preferences_disc;
+ GtkWidget *preferences_network_table;
+ GtkWidget *preferences_network_server_label;
+ GtkObject *preferences_network_port_spinbutton_adj;
+ GtkWidget *preferences_network_port_spinbutton;
+ GtkWidget *preferences_network_broadcast_label;
+ GtkWidget *preferences_network_port_label;
+ GtkWidget *preferences_network_server_combo;
+ GtkWidget *preferences_network_server_entry;
+ GtkWidget *preferences_network_broadcast_combo;
+ GtkWidget *preferences_network_broadcast_entry;
+ GtkWidget *preferences_network_broadcast_check_button;
+ GSList *preferences_network_protocol_group_group = NULL;
+ GtkWidget *preferences_network_ts_radiobutton;
+ GtkWidget *preferences_network_rtp_radiobutton;
+ GtkWidget *preferences_network_http_radiobutton;
+ GtkWidget *preferences_network_protocol_label;
+ GtkWidget *preferences_network;
+ GtkWidget *preferences_network_interface_table;
+ GtkWidget *preferences_interface_label;
+ GtkWidget *preferences_network_interface_combo;
+ GtkWidget *preferences_network_interface_entry;
+ GtkWidget *preferences_interface;
+ GtkWidget *preferences_video_table;
+ GtkWidget *preferences_video_output_label;
+ GtkWidget *preferences_video_height;
+ GtkObject *preferences_video_height_spinbutton_adj;
+ GtkWidget *preferences_video_height_spinbutton;
+ GtkObject *preferences_video_width_spinbutton_adj;
+ GtkWidget *preferences_video_width_spinbutton;
+ GtkWidget *preferences_video_width_label;
+ GtkWidget *preferences_video_output_combo;
+ GtkWidget *preferences_video_output_entry;
+ GtkWidget *preferences_video_depth;
+ GtkWidget *preferences_video_depth_optionmenu;
+ GtkWidget *preferences_video_depth_optionmenu_menu;
+ GtkWidget *glade_menuitem;
+ GtkWidget *preferences_video_fullscreen_depth;
+ GtkWidget *preferences_video_fullscreen_depth_optionmenu;
+ GtkWidget *preferences_video_fullscreen_depth_optionmenu_menu;
+ GtkWidget *preferences_video_fullscreen_checkbutton;
+ GtkWidget *preferences_video_grayscale_checkbutton;
+ GtkWidget *preferences_video_gamma_label;
+ GtkObject *spinbutton4_adj;
+ GtkWidget *spinbutton4;
+ GtkWidget *preferences_video;
+ GtkWidget *preference_audio_table;
+ GtkWidget *preferences_audio_spdif_checkbutton;
+ GtkWidget *preferences_audio_output_label;
+ GtkWidget *preferences_audio_output_combo;
+ GtkWidget *preferences_audio_output_entry;
+ GtkWidget *preferences_audio_frequency_label;
+ GtkWidget *preferences_audio_frequency_optionmenu;
+ GtkWidget *preferences_audio_frequency_optionmenu_menu;
+ GtkWidget *preferences_audio_quality_label;
+ GtkWidget *preferences_audio_quality_optionmenu;
+ GtkWidget *preferences_audio_quality_optionmenu_menu;
+ GtkWidget *preferences_audio_channels_label;
+ GtkWidget *preferences_audio_channels_optionmenu;
+ GtkWidget *preferences_audio_channels_optionmenu_menu;
+ GtkWidget *preferences_audio;
+ GtkWidget *preference_playlist_table;
+ GtkWidget *preferences_playlist_launch_on_startup_checkbutton;
+ GtkWidget *preferences_playlist_loop_checkbutton;
+ GtkWidget *playlist_enqueue_as_default_checkbutton;
+ GtkWidget *preferences_playlist;
+ GtkWidget *preferences_misc_table;
+ GtkWidget *preferences_misc_associated_filesframe;
+ GtkWidget *preferences_misc_associated_files_vbox;
+ GtkWidget *preferences_misc_mpeg_checkbutton;
+ GtkWidget *preferences_misc_mp2_checkbutton;
+ GtkWidget *preferences_misc_vob_checkbutton;
+ GtkWidget *preferences_misc_ts_checkbutton;
+ GtkWidget *preferences_misc;
+ GtkWidget *preferences_dialog;
+ GtkWidget *preferences_ok;
+ GtkWidget *preferences_apply;
+ GtkWidget *preferences_cancel;
+
+ intf_preferences = gnome_dialog_new (_("Preferences"), NULL);
+ gtk_object_set_data (GTK_OBJECT (intf_preferences), "intf_preferences", intf_preferences);
+ gtk_window_set_default_size (GTK_WINDOW (intf_preferences), 450, 350);
+ gtk_window_set_policy (GTK_WINDOW (intf_preferences), TRUE, TRUE, FALSE);
+
+ preferences_vbox = GNOME_DIALOG (intf_preferences)->vbox;
+ gtk_object_set_data (GTK_OBJECT (intf_preferences), "preferences_vbox", preferences_vbox);
+ gtk_widget_show (preferences_vbox);
+
+ preferences_frame = gtk_frame_new (_("Preferences"));
+ gtk_widget_ref (preferences_frame);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_frame", preferences_frame,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_frame);
+ gtk_box_pack_start (GTK_BOX (preferences_vbox), preferences_frame, TRUE, TRUE, 0);
+ gtk_frame_set_label_align (GTK_FRAME (preferences_frame), 0.05, 0.5);
+
+ preferences_notebook = gtk_notebook_new ();
+ gtk_widget_ref (preferences_notebook);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_notebook", preferences_notebook,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_notebook);
+ gtk_container_add (GTK_CONTAINER (preferences_frame), preferences_notebook);
+
+ preferences_file_table = gtk_table_new (1, 2, FALSE);
+ gtk_widget_ref (preferences_file_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_table", preferences_file_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_file_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_file_table);
+
+ preferences_file_combo = gnome_file_entry_new (NULL, NULL);
+ gtk_widget_ref (preferences_file_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_combo", preferences_file_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_file_combo);
+ gtk_table_attach (GTK_TABLE (preferences_file_table), preferences_file_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_file_entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (preferences_file_combo));
+ gtk_widget_ref (preferences_file_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_entry", preferences_file_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_file_entry);
+
+ preferences_file_path_label = gtk_label_new (_("Default path: "));
+ gtk_widget_ref (preferences_file_path_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_path_label", preferences_file_path_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_file_path_label);
+ gtk_table_attach (GTK_TABLE (preferences_file_table), preferences_file_path_label, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_file_path_label), 0, 0.5);
+
+ preferences_file = gtk_label_new (_("File"));
+ gtk_widget_ref (preferences_file);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file", preferences_file,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_file);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 0), preferences_file);
+
+ preferences_disc_table = gtk_table_new (2, 2, FALSE);
+ gtk_widget_ref (preferences_disc_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_table", preferences_disc_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_disc_table);
+
+ preferences_disc_dvd_combo = gnome_file_entry_new (NULL, NULL);
+ gtk_widget_ref (preferences_disc_dvd_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_dvd_combo", preferences_disc_dvd_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc_dvd_combo);
+ gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_disc_dvd_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_disc_dvd_entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (preferences_disc_dvd_combo));
+ gtk_widget_ref (preferences_disc_dvd_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_dvd_entry", preferences_disc_dvd_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc_dvd_entry);
+
+ preferences_file_vcd_combo = gnome_file_entry_new (NULL, NULL);
+ gtk_widget_ref (preferences_file_vcd_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_file_vcd_combo", preferences_file_vcd_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_file_vcd_combo);
+ gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_file_vcd_combo, 1, 2, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_disc_vcd_entry = gnome_file_entry_gtk_entry (GNOME_FILE_ENTRY (preferences_file_vcd_combo));
+ gtk_widget_ref (preferences_disc_vcd_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_vcd_entry", preferences_disc_vcd_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc_vcd_entry);
+
+ preferences_disc_dvd_label = gtk_label_new (_("Default DVD path: "));
+ gtk_widget_ref (preferences_disc_dvd_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_dvd_label", preferences_disc_dvd_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc_dvd_label);
+ gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_disc_dvd_label, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_disc_dvd_label), 0, 0.5);
+
+ preferences_disc_vcd_label = gtk_label_new (_("Default VCD path: "));
+ gtk_widget_ref (preferences_disc_vcd_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc_vcd_label", preferences_disc_vcd_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc_vcd_label);
+ gtk_table_attach (GTK_TABLE (preferences_disc_table), preferences_disc_vcd_label, 0, 1, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_disc_vcd_label), 0, 0.5);
+
+ preferences_disc = gtk_label_new (_("Disc"));
+ gtk_widget_ref (preferences_disc);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_disc", preferences_disc,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_disc);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 1), preferences_disc);
+
+ preferences_network_table = gtk_table_new (7, 2, FALSE);
+ gtk_widget_ref (preferences_network_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_table", preferences_network_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_network_table);
+
+ preferences_network_server_label = gtk_label_new (_("Default server: "));
+ gtk_widget_ref (preferences_network_server_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_server_label", preferences_network_server_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_server_label);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_server_label, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_network_server_label), 0, 0.5);
+
+ preferences_network_port_spinbutton_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
+ preferences_network_port_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_network_port_spinbutton_adj), 1, 0);
+ gtk_widget_ref (preferences_network_port_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_port_spinbutton", preferences_network_port_spinbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_port_spinbutton);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_port_spinbutton, 1, 2, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_network_broadcast_label = gtk_label_new (_("Broadcast address: "));
+ gtk_widget_ref (preferences_network_broadcast_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_label", preferences_network_broadcast_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_broadcast_label);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_broadcast_label, 0, 1, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_network_broadcast_label), 0, 0.5);
+
+ preferences_network_port_label = gtk_label_new (_("Default port: "));
+ gtk_widget_ref (preferences_network_port_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_port_label", preferences_network_port_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_port_label);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_port_label, 0, 1, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_network_port_label), 0, 0.5);
+
+ preferences_network_server_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (preferences_network_server_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_server_combo", preferences_network_server_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_server_combo);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_server_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_network_server_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_network_server_combo));
+ gtk_widget_ref (preferences_network_server_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_server_entry", preferences_network_server_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_server_entry);
+ gtk_entry_set_text (GTK_ENTRY (preferences_network_server_entry), _("vls"));
+
+ preferences_network_broadcast_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (preferences_network_broadcast_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_combo", preferences_network_broadcast_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_broadcast_combo);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_broadcast_combo, 1, 2, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_network_broadcast_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_network_broadcast_combo));
+ gtk_widget_ref (preferences_network_broadcast_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_entry", preferences_network_broadcast_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_broadcast_entry);
+
+ preferences_network_broadcast_check_button = gtk_check_button_new_with_label (_("Broadcast mode"));
+ gtk_widget_ref (preferences_network_broadcast_check_button);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_broadcast_check_button", preferences_network_broadcast_check_button,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_broadcast_check_button);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_broadcast_check_button, 0, 1, 3, 4,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_network_ts_radiobutton = gtk_radio_button_new_with_label (preferences_network_protocol_group_group, _("TS"));
+ preferences_network_protocol_group_group = gtk_radio_button_group (GTK_RADIO_BUTTON (preferences_network_ts_radiobutton));
+ gtk_widget_ref (preferences_network_ts_radiobutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_ts_radiobutton", preferences_network_ts_radiobutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_ts_radiobutton);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_ts_radiobutton, 1, 2, 4, 5,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (GTK_SHRINK), 0, 0);
+
+ preferences_network_rtp_radiobutton = gtk_radio_button_new_with_label (preferences_network_protocol_group_group, _("RTP"));
+ preferences_network_protocol_group_group = gtk_radio_button_group (GTK_RADIO_BUTTON (preferences_network_rtp_radiobutton));
+ gtk_widget_ref (preferences_network_rtp_radiobutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_rtp_radiobutton", preferences_network_rtp_radiobutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_rtp_radiobutton);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_rtp_radiobutton, 1, 2, 5, 6,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (GTK_SHRINK), 0, 0);
+
+ preferences_network_http_radiobutton = gtk_radio_button_new_with_label (preferences_network_protocol_group_group, _("HTTP"));
+ preferences_network_protocol_group_group = gtk_radio_button_group (GTK_RADIO_BUTTON (preferences_network_http_radiobutton));
+ gtk_widget_ref (preferences_network_http_radiobutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_http_radiobutton", preferences_network_http_radiobutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_http_radiobutton);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_http_radiobutton, 1, 2, 6, 7,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (GTK_SHRINK), 0, 0);
+
+ preferences_network_protocol_label = gtk_label_new (_("Default protocol: "));
+ gtk_widget_ref (preferences_network_protocol_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_protocol_label", preferences_network_protocol_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_protocol_label);
+ gtk_table_attach (GTK_TABLE (preferences_network_table), preferences_network_protocol_label, 0, 1, 4, 7,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_network_protocol_label), 0, 0.5);
+
+ preferences_network = gtk_label_new (_("Network"));
+ gtk_widget_ref (preferences_network);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network", preferences_network,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 2), preferences_network);
+
+ preferences_network_interface_table = gtk_table_new (1, 2, FALSE);
+ gtk_widget_ref (preferences_network_interface_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_interface_table", preferences_network_interface_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_interface_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_network_interface_table);
+
+ preferences_interface_label = gtk_label_new (_("Default interface: "));
+ gtk_widget_ref (preferences_interface_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_interface_label", preferences_interface_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_interface_label);
+ gtk_table_attach (GTK_TABLE (preferences_network_interface_table), preferences_interface_label, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_interface_label), 0, 0.5);
+
+ preferences_network_interface_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (preferences_network_interface_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_interface_combo", preferences_network_interface_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_interface_combo);
+ gtk_table_attach (GTK_TABLE (preferences_network_interface_table), preferences_network_interface_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_network_interface_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_network_interface_combo));
+ gtk_widget_ref (preferences_network_interface_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_network_interface_entry", preferences_network_interface_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_network_interface_entry);
+
+ preferences_interface = gtk_label_new (_("Interface"));
+ gtk_widget_ref (preferences_interface);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_interface", preferences_interface,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_interface);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 3), preferences_interface);
+
+ preferences_video_table = gtk_table_new (7, 2, FALSE);
+ gtk_widget_ref (preferences_video_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_table", preferences_video_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_video_table);
+
+ preferences_video_output_label = gtk_label_new (_("Default output: "));
+ gtk_widget_ref (preferences_video_output_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_output_label", preferences_video_output_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_output_label);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_output_label, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_video_output_label), 0, 0.5);
+
+ preferences_video_height = gtk_label_new (_("Default height: "));
+ gtk_widget_ref (preferences_video_height);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_height", preferences_video_height,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_height);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_height, 0, 1, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_video_height), 0, 0.5);
+
+ preferences_video_height_spinbutton_adj = gtk_adjustment_new (576, 0, 1600, 1, 10, 10);
+ preferences_video_height_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_video_height_spinbutton_adj), 1, 0);
+ gtk_widget_ref (preferences_video_height_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_height_spinbutton", preferences_video_height_spinbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_height_spinbutton);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_height_spinbutton, 1, 2, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_video_width_spinbutton_adj = gtk_adjustment_new (720, 100, 1600, 1, 10, 10);
+ preferences_video_width_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (preferences_video_width_spinbutton_adj), 1, 0);
+ gtk_widget_ref (preferences_video_width_spinbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_width_spinbutton", preferences_video_width_spinbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_width_spinbutton);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_width_spinbutton, 1, 2, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_video_width_label = gtk_label_new (_("Default width: "));
+ gtk_widget_ref (preferences_video_width_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_width_label", preferences_video_width_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_width_label);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_width_label, 0, 1, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_video_width_label), 0, 0.5);
+
+ preferences_video_output_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (preferences_video_output_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_output_combo", preferences_video_output_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_output_combo);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_output_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_video_output_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_video_output_combo));
+ gtk_widget_ref (preferences_video_output_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_output_entry", preferences_video_output_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_output_entry);
+
+ preferences_video_depth = gtk_label_new (_("Default depth:"));
+ gtk_widget_ref (preferences_video_depth);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_depth", preferences_video_depth,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_depth);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_depth, 0, 1, 3, 4,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_video_depth), 0, 0.5);
+
+ preferences_video_depth_optionmenu = gtk_option_menu_new ();
+ gtk_widget_ref (preferences_video_depth_optionmenu);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_depth_optionmenu", preferences_video_depth_optionmenu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_depth_optionmenu);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_depth_optionmenu, 1, 2, 3, 4,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ preferences_video_depth_optionmenu_menu = gtk_menu_new ();
+ glade_menuitem = gtk_menu_item_new_with_label (_("15 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_video_depth_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("16 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_video_depth_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("32 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_video_depth_optionmenu_menu), glade_menuitem);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_video_depth_optionmenu), preferences_video_depth_optionmenu_menu);
+ gtk_option_menu_set_history (GTK_OPTION_MENU (preferences_video_depth_optionmenu), 1);
+
+ preferences_video_fullscreen_depth = gtk_label_new (_("Fullscreen depth:"));
+ gtk_widget_ref (preferences_video_fullscreen_depth);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_fullscreen_depth", preferences_video_fullscreen_depth,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_fullscreen_depth);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_fullscreen_depth, 0, 1, 4, 5,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_video_fullscreen_depth), 0, 0.5);
+
+ preferences_video_fullscreen_depth_optionmenu = gtk_option_menu_new ();
+ gtk_widget_ref (preferences_video_fullscreen_depth_optionmenu);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_fullscreen_depth_optionmenu", preferences_video_fullscreen_depth_optionmenu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_fullscreen_depth_optionmenu);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_fullscreen_depth_optionmenu, 1, 2, 4, 5,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+ preferences_video_fullscreen_depth_optionmenu_menu = gtk_menu_new ();
+ glade_menuitem = gtk_menu_item_new_with_label (_("15 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_video_fullscreen_depth_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("16 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_video_fullscreen_depth_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("32 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_video_fullscreen_depth_optionmenu_menu), glade_menuitem);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_video_fullscreen_depth_optionmenu), preferences_video_fullscreen_depth_optionmenu_menu);
+ gtk_option_menu_set_history (GTK_OPTION_MENU (preferences_video_fullscreen_depth_optionmenu), 2);
+
+ preferences_video_fullscreen_checkbutton = gtk_check_button_new_with_label (_("Fullscreen on play"));
+ gtk_widget_ref (preferences_video_fullscreen_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_fullscreen_checkbutton", preferences_video_fullscreen_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_fullscreen_checkbutton);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_fullscreen_checkbutton, 0, 1, 6, 7,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_video_grayscale_checkbutton = gtk_check_button_new_with_label (_("Grayscale"));
+ gtk_widget_ref (preferences_video_grayscale_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_grayscale_checkbutton", preferences_video_grayscale_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_grayscale_checkbutton);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_grayscale_checkbutton, 1, 2, 6, 7,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_video_gamma_label = gtk_label_new (_("Gamma:"));
+ gtk_widget_ref (preferences_video_gamma_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video_gamma_label", preferences_video_gamma_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video_gamma_label);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), preferences_video_gamma_label, 0, 1, 5, 6,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_video_gamma_label), 0, 0.5);
+
+ spinbutton4_adj = gtk_adjustment_new (0, 0, 5, 0.1, 10, 10);
+ spinbutton4 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton4_adj), 1, 1);
+ gtk_widget_ref (spinbutton4);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "spinbutton4", spinbutton4,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (spinbutton4);
+ gtk_table_attach (GTK_TABLE (preferences_video_table), spinbutton4, 1, 2, 5, 6,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+
+ preferences_video = gtk_label_new (_("Video"));
+ gtk_widget_ref (preferences_video);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_video", preferences_video,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_video);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 4), preferences_video);
+
+ preference_audio_table = gtk_table_new (5, 2, FALSE);
+ gtk_widget_ref (preference_audio_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preference_audio_table", preference_audio_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preference_audio_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preference_audio_table);
+
+ preferences_audio_spdif_checkbutton = gtk_check_button_new_with_label (_("Spdif output"));
+ gtk_widget_ref (preferences_audio_spdif_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_spdif_checkbutton", preferences_audio_spdif_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_spdif_checkbutton);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_spdif_checkbutton, 0, 2, 4, 5,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_audio_output_label = gtk_label_new (_("Default output: "));
+ gtk_widget_ref (preferences_audio_output_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_output_label", preferences_audio_output_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_output_label);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_output_label, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_audio_output_label), 0, 0.5);
+
+ preferences_audio_output_combo = gnome_entry_new (NULL);
+ gtk_widget_ref (preferences_audio_output_combo);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_output_combo", preferences_audio_output_combo,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_output_combo);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_output_combo, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_audio_output_entry = gnome_entry_gtk_entry (GNOME_ENTRY (preferences_audio_output_combo));
+ gtk_widget_ref (preferences_audio_output_entry);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_output_entry", preferences_audio_output_entry,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_output_entry);
+
+ preferences_audio_frequency_label = gtk_label_new (_("Frequency: "));
+ gtk_widget_ref (preferences_audio_frequency_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_frequency_label", preferences_audio_frequency_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_frequency_label);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_frequency_label, 0, 1, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_audio_frequency_label), 0, 0.5);
+
+ preferences_audio_frequency_optionmenu = gtk_option_menu_new ();
+ gtk_widget_ref (preferences_audio_frequency_optionmenu);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_frequency_optionmenu", preferences_audio_frequency_optionmenu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_frequency_optionmenu);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_frequency_optionmenu, 1, 2, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ preferences_audio_frequency_optionmenu_menu = gtk_menu_new ();
+ glade_menuitem = gtk_menu_item_new_with_label (_("48000 Hz"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("44100 Hz"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("32000 Hz"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("22050 Hz"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_frequency_optionmenu_menu), glade_menuitem);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_audio_frequency_optionmenu), preferences_audio_frequency_optionmenu_menu);
+
+ preferences_audio_quality_label = gtk_label_new (_("Quality: "));
+ gtk_widget_ref (preferences_audio_quality_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_quality_label", preferences_audio_quality_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_quality_label);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_quality_label, 0, 1, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_audio_quality_label), 0, 0.5);
+
+ preferences_audio_quality_optionmenu = gtk_option_menu_new ();
+ gtk_widget_ref (preferences_audio_quality_optionmenu);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_quality_optionmenu", preferences_audio_quality_optionmenu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_quality_optionmenu);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_quality_optionmenu, 1, 2, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ preferences_audio_quality_optionmenu_menu = gtk_menu_new ();
+ glade_menuitem = gtk_menu_item_new_with_label (_("16 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_quality_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("8 bits"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_quality_optionmenu_menu), glade_menuitem);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_audio_quality_optionmenu), preferences_audio_quality_optionmenu_menu);
+
+ preferences_audio_channels_label = gtk_label_new (_("Channels: "));
+ gtk_widget_ref (preferences_audio_channels_label);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_channels_label", preferences_audio_channels_label,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_channels_label);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_channels_label, 0, 1, 3, 4,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (preferences_audio_channels_label), 0, 0.5);
+
+ preferences_audio_channels_optionmenu = gtk_option_menu_new ();
+ gtk_widget_ref (preferences_audio_channels_optionmenu);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio_channels_optionmenu", preferences_audio_channels_optionmenu,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio_channels_optionmenu);
+ gtk_table_attach (GTK_TABLE (preference_audio_table), preferences_audio_channels_optionmenu, 1, 2, 3, 4,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 0, 0);
+ preferences_audio_channels_optionmenu_menu = gtk_menu_new ();
+ glade_menuitem = gtk_menu_item_new_with_label (_("Mono"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_channels_optionmenu_menu), glade_menuitem);
+ glade_menuitem = gtk_menu_item_new_with_label (_("Stereo"));
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (preferences_audio_channels_optionmenu_menu), glade_menuitem);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (preferences_audio_channels_optionmenu), preferences_audio_channels_optionmenu_menu);
+ gtk_option_menu_set_history (GTK_OPTION_MENU (preferences_audio_channels_optionmenu), 1);
+
+ preferences_audio = gtk_label_new (_("Audio"));
+ gtk_widget_ref (preferences_audio);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_audio", preferences_audio,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_audio);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 5), preferences_audio);
+
+ preference_playlist_table = gtk_table_new (3, 1, FALSE);
+ gtk_widget_ref (preference_playlist_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preference_playlist_table", preference_playlist_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preference_playlist_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preference_playlist_table);
+
+ preferences_playlist_launch_on_startup_checkbutton = gtk_check_button_new_with_label (_("Launch on startup"));
+ gtk_widget_ref (preferences_playlist_launch_on_startup_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist_launch_on_startup_checkbutton", preferences_playlist_launch_on_startup_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_playlist_launch_on_startup_checkbutton);
+ gtk_table_attach (GTK_TABLE (preference_playlist_table), preferences_playlist_launch_on_startup_checkbutton, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_playlist_loop_checkbutton = gtk_check_button_new_with_label (_("Loop on playlist end"));
+ gtk_widget_ref (preferences_playlist_loop_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist_loop_checkbutton", preferences_playlist_loop_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_playlist_loop_checkbutton);
+ gtk_table_attach (GTK_TABLE (preference_playlist_table), preferences_playlist_loop_checkbutton, 0, 1, 2, 3,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ playlist_enqueue_as_default_checkbutton = gtk_check_button_new_with_label (_("Enqueue as default"));
+ gtk_widget_ref (playlist_enqueue_as_default_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "playlist_enqueue_as_default_checkbutton", playlist_enqueue_as_default_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (playlist_enqueue_as_default_checkbutton);
+ gtk_table_attach (GTK_TABLE (preference_playlist_table), playlist_enqueue_as_default_checkbutton, 0, 1, 1, 2,
+ (GtkAttachOptions) (GTK_EXPAND),
+ (GtkAttachOptions) (GTK_EXPAND), 0, 0);
+
+ preferences_playlist = gtk_label_new (_("Playlist"));
+ gtk_widget_ref (preferences_playlist);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_playlist", preferences_playlist,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_playlist);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 6), preferences_playlist);
+
+ preferences_misc_table = gtk_table_new (1, 1, FALSE);
+ gtk_widget_ref (preferences_misc_table);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_table", preferences_misc_table,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_table);
+ gtk_container_add (GTK_CONTAINER (preferences_notebook), preferences_misc_table);
+
+ preferences_misc_associated_filesframe = gtk_frame_new (_("Files associated with vlc"));
+ gtk_widget_ref (preferences_misc_associated_filesframe);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_associated_filesframe", preferences_misc_associated_filesframe,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_associated_filesframe);
+ gtk_table_attach (GTK_TABLE (preferences_misc_table), preferences_misc_associated_filesframe, 0, 1, 0, 1,
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+ (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+ gtk_widget_set_sensitive (preferences_misc_associated_filesframe, FALSE);
+ gtk_frame_set_label_align (GTK_FRAME (preferences_misc_associated_filesframe), 0.05, 0.5);
+
+ preferences_misc_associated_files_vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_ref (preferences_misc_associated_files_vbox);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_associated_files_vbox", preferences_misc_associated_files_vbox,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_associated_files_vbox);
+ gtk_container_add (GTK_CONTAINER (preferences_misc_associated_filesframe), preferences_misc_associated_files_vbox);
+
+ preferences_misc_mpeg_checkbutton = gtk_check_button_new_with_label (_("mpeg"));
+ gtk_widget_ref (preferences_misc_mpeg_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_mpeg_checkbutton", preferences_misc_mpeg_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_mpeg_checkbutton);
+ gtk_box_pack_start (GTK_BOX (preferences_misc_associated_files_vbox), preferences_misc_mpeg_checkbutton, FALSE, FALSE, 0);
+
+ preferences_misc_mp2_checkbutton = gtk_check_button_new_with_label (_("mp2"));
+ gtk_widget_ref (preferences_misc_mp2_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_mp2_checkbutton", preferences_misc_mp2_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_mp2_checkbutton);
+ gtk_box_pack_start (GTK_BOX (preferences_misc_associated_files_vbox), preferences_misc_mp2_checkbutton, FALSE, FALSE, 0);
+
+ preferences_misc_vob_checkbutton = gtk_check_button_new_with_label (_("vob"));
+ gtk_widget_ref (preferences_misc_vob_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_vob_checkbutton", preferences_misc_vob_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_vob_checkbutton);
+ gtk_box_pack_start (GTK_BOX (preferences_misc_associated_files_vbox), preferences_misc_vob_checkbutton, FALSE, FALSE, 0);
+
+ preferences_misc_ts_checkbutton = gtk_check_button_new_with_label (_("ts"));
+ gtk_widget_ref (preferences_misc_ts_checkbutton);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc_ts_checkbutton", preferences_misc_ts_checkbutton,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc_ts_checkbutton);
+ gtk_box_pack_start (GTK_BOX (preferences_misc_associated_files_vbox), preferences_misc_ts_checkbutton, FALSE, FALSE, 0);
+
+ preferences_misc = gtk_label_new (_("Misc"));
+ gtk_widget_ref (preferences_misc);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_misc", preferences_misc,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_misc);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (preferences_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (preferences_notebook), 7), preferences_misc);
+
+ preferences_dialog = GNOME_DIALOG (intf_preferences)->action_area;
+ gtk_object_set_data (GTK_OBJECT (intf_preferences), "preferences_dialog", preferences_dialog);
+ gtk_widget_show (preferences_dialog);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (preferences_dialog), GTK_BUTTONBOX_END);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (preferences_dialog), 8);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_preferences), GNOME_STOCK_BUTTON_OK);
+ preferences_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_preferences)->buttons)->data);
+ gtk_widget_ref (preferences_ok);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_ok", preferences_ok,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_ok);
+ GTK_WIDGET_SET_FLAGS (preferences_ok, GTK_CAN_DEFAULT);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_preferences), GNOME_STOCK_BUTTON_APPLY);
+ preferences_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_preferences)->buttons)->data);
+ gtk_widget_ref (preferences_apply);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_apply", preferences_apply,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_apply);
+ GTK_WIDGET_SET_FLAGS (preferences_apply, GTK_CAN_DEFAULT);
+
+ gnome_dialog_append_button (GNOME_DIALOG (intf_preferences), GNOME_STOCK_BUTTON_CANCEL);
+ preferences_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_preferences)->buttons)->data);
+ gtk_widget_ref (preferences_cancel);
+ gtk_object_set_data_full (GTK_OBJECT (intf_preferences), "preferences_cancel", preferences_cancel,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (preferences_cancel);
+ GTK_WIDGET_SET_FLAGS (preferences_cancel, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (preferences_ok), "clicked",
+ GTK_SIGNAL_FUNC (on_preferences_ok_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (preferences_apply), "clicked",
+ GTK_SIGNAL_FUNC (on_preferences_apply_clicked),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (preferences_cancel), "clicked",
+ GTK_SIGNAL_FUNC (on_preferences_cancel_clicked),
+ NULL);
+
+ return intf_preferences;
+}
+
GtkWidget* create_intf_about (void);
GtkWidget* create_intf_fileopen (void);
GtkWidget* create_intf_modules (void);
-GtkWidget* create_intf_playlist (void);
GtkWidget* create_intf_disc (void);
GtkWidget* create_intf_network (void);
+GtkWidget* create_intf_playlist (void);
+GtkWidget* create_intf_jump (void);
+GtkWidget* create_intf_preferences (void);
* intf_gnome.c: Gnome interface
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_gnome.c,v 1.35 2001/05/01 15:12:22 sam Exp $
+ * $Id: intf_gnome.c,v 1.36 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
#include "interface.h"
#include "intf_playlist.h"
+#include "video.h"
+#include "video_output.h"
+
#include "gnome_callbacks.h"
+#include "gnome_playlist.h"
#include "gnome_interface.h"
#include "gnome_support.h"
#include "intf_gnome.h"
static gint GnomeManage ( gpointer p_data );
static gint GnomeLanguageMenus( gpointer, GtkWidget *, es_descriptor_t *, gint,
void (*pf_toggle)(GtkCheckMenuItem *, gpointer) );
-static gint GnomeChapterMenu ( gpointer, GtkWidget *,
- void (*pf_toggle)(GtkCheckMenuItem *, gpointer) );
-static gint GnomeAngleMenu ( gpointer, GtkWidget *,
- void (*pf_toggle)(GtkCheckMenuItem *, gpointer) );
static gint GnomeTitleMenu ( gpointer, GtkWidget *,
void (*pf_toggle)(GtkCheckMenuItem *, gpointer) );
static gint GnomeSetupMenu ( intf_thread_t * p_intf );
static void GnomeDisplayDate ( GtkAdjustment *p_adj );
-static gint GnomeDiscModeManage( intf_thread_t * p_intf );
-static gint GnomeFileModeManage( intf_thread_t * p_intf );
-static gint GnomeNetworkModeManage( intf_thread_t * p_intf );
+static gint GnomeModeManage ( intf_thread_t * p_intf );
/*****************************************************************************
* g_atexit: kludge to avoid the Gnome thread to segfault at exit
/* Create some useful widgets that will certainly be used */
p_intf->p_sys->p_window = create_intf_window( );
p_intf->p_sys->p_popup = create_intf_popup( );
- p_intf->p_sys->p_disc = create_intf_disc( );
- p_intf->p_sys->p_network = create_intf_network( );
+ p_intf->p_sys->p_playlist = create_intf_playlist();
/* Set the title of the main window */
gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window),
gtk_drag_dest_set( GTK_WIDGET( p_intf->p_sys->p_window ),
GTK_DEST_DEFAULT_ALL, target_table,
1, GDK_ACTION_COPY );
+ /* Accept file drops on the playlist window */
+ gtk_drag_dest_set( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_playlist ), "playlist_clist") ),
+ GTK_DEST_DEFAULT_ALL, target_table,
+ 1, GDK_ACTION_COPY );
/* Get the interface labels */
+ p_intf->p_sys->p_slider_frame = gtk_object_get_data(
+ GTK_OBJECT( p_intf->p_sys->p_window ), "slider_frame" );
#define P_LABEL( name ) GTK_LABEL( gtk_object_get_data( \
GTK_OBJECT( p_intf->p_sys->p_window ), name ) )
- p_intf->p_sys->p_label_date = P_LABEL( "label_date" );
- p_intf->p_sys->p_label_status = P_LABEL( "label_status" );
p_intf->p_sys->p_label_title = P_LABEL( "label_title" );
p_intf->p_sys->p_label_chapter = P_LABEL( "label_chapter" );
#undef P_LABEL
/* We don't create these ones yet because we perhaps won't need them */
p_intf->p_sys->p_about = NULL;
- p_intf->p_sys->p_playlist = NULL;
p_intf->p_sys->p_modules = NULL;
p_intf->p_sys->p_fileopen = NULL;
+ p_intf->p_sys->p_disc = NULL;
+ p_intf->p_sys->p_network = NULL;
+ p_intf->p_sys->p_preferences = NULL;
+ p_intf->p_sys->p_jump = NULL;
/* Store p_intf to keep an eye on it */
gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window),
gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_popup),
"p_intf", p_intf );
- gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_disc),
- "p_intf", p_intf );
-
- gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_network),
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
"p_intf", p_intf );
gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_adj),
p_intf->b_menu_change = 0;
}
- if( p_intf->p_input != NULL )
+ /* update the playlist */
+ GnomePlayListManage( p_intf );
+
+ if( p_intf->p_input != NULL && !p_intf->b_die/*&& !p_intf->p_input->b_die*/ )
{
- GtkWidget * p_slider;
float newvalue;
// vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
/* New input or stream map change */
if( p_intf->p_input->stream.b_changed || p_intf->p_sys->b_mode_changed )
{
- switch( p_intf->p_input->stream.i_method & 0xf0 )
- {
- case INPUT_METHOD_FILE:
- GnomeFileModeManage( p_intf );
- break;
- case INPUT_METHOD_DISC:
- GnomeDiscModeManage( p_intf );
- break;
- case INPUT_METHOD_NETWORK:
- GnomeNetworkModeManage( p_intf );
- break;
- default:
- intf_ErrMsg( "intf error: can't determine input method" );
- break;
- }
- p_slider = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "slider" ) );
-
- if( p_intf->p_input->stream.b_seekable )
- {
- gtk_widget_show( GTK_WIDGET( p_slider ) );
- }
- else
- {
- gtk_widget_hide( GTK_WIDGET( p_slider ) );
- }
-
- /* get ready for menu regeneration */
- p_intf->p_sys->b_title_update = 1;
- p_intf->p_sys->b_chapter_update = 1;
- p_intf->p_sys->b_angle_update = 1;
- p_intf->p_sys->b_audio_update = 1;
- p_intf->p_sys->b_spu_update = 1;
- p_intf->p_sys->i_part = 0;
-
- p_intf->p_input->stream.b_changed = 0;
- p_intf->p_sys->b_mode_changed = 0;
- intf_WarnMsg( 2,
- "intf info: menus refreshed as stream has changed" );
-
+ GnomeModeManage( p_intf );
}
// vlc_mutex_unlock( &p_intf->p_input->stream.stream_lock );
#undef p_intf
}
+/*****************************************************************************
+ * GnomeRadioMenu: update interactive menus of the interface
+ *****************************************************************************
+ * Sets up menus with information from input
+ * Warning: since this function is designed to be called by management
+ * function, the interface lock has to be taken
+ *****************************************************************************/
+static gint GnomeRadioMenu( intf_thread_t * p_intf,
+ GtkWidget * p_root, GSList * p_menu_group,
+ char * psz_item_name,
+ int i_nb, int i_selected,
+ void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) )
+{
+ char psz_name[ GNOME_MENU_LABEL_SIZE ];
+ GtkWidget * p_menu;
+ GtkWidget * p_submenu;
+ GtkWidget * p_item_group;
+ GtkWidget * p_item;
+ GtkWidget * p_item_selected;
+ GSList * p_group;
+ gint i_item;
+
+ /* temporary hack to avoid blank menu when an open menu is removed */
+ if( GTK_MENU_ITEM(p_root)->submenu != NULL )
+ {
+ gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) );
+ }
+ /* removes previous menu */
+ gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) );
+ gtk_widget_set_sensitive( p_root, FALSE );
+
+ p_item_group = NULL;
+ p_submenu = NULL;
+ p_item_selected = NULL;
+ p_group = p_menu_group;
+
+ p_menu = gtk_menu_new();
+
+ for( i_item = 0 ; i_item < i_nb ; i_item++ )
+ {
+ /* we group chapters in packets of ten for small screens */
+ if( ( i_item % 10 == 0 ) && ( i_nb > 20 ) )
+ {
+ if( i_item != 0 )
+ {
+ gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ),
+ p_submenu );
+ gtk_menu_append( GTK_MENU( p_menu ), p_item_group );
+ }
+
+ snprintf( psz_name, GNOME_MENU_LABEL_SIZE,
+ "%d - %d", i_item + 1, i_item + 10);
+ psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
+ p_item_group = gtk_menu_item_new_with_label( psz_name );
+ gtk_widget_show( p_item_group );
+ p_submenu = gtk_menu_new();
+ }
+
+ snprintf( psz_name, GNOME_MENU_LABEL_SIZE, "%s %d",
+ psz_item_name, i_item + 1 );
+ psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
+
+ p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name );
+ p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) );
+
+ if( i_selected == i_item + 1 )
+ {
+ p_item_selected = p_item;
+ }
+
+ gtk_widget_show( p_item );
+
+ /* setup signal hanling */
+ gtk_signal_connect( GTK_OBJECT( p_item ),
+ "toggled",
+ GTK_SIGNAL_FUNC( pf_toggle ),
+ (gpointer)(i_item + 1) );
+
+ if( i_nb > 20 )
+ {
+ gtk_menu_append( GTK_MENU( p_submenu ), p_item );
+ }
+ else
+ {
+ gtk_menu_append( GTK_MENU( p_menu ), p_item );
+ }
+ }
+
+ if( i_nb > 20 )
+ {
+ gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ), p_submenu );
+ gtk_menu_append( GTK_MENU( p_menu ), p_item_group );
+ }
+
+ /* link the new menu to the title menu item */
+ gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu );
+
+ /* toggle currently selected chapter */
+ if( p_item_selected != NULL )
+ {
+ gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_selected ),
+ TRUE );
+ }
+
+ /* be sure that menu is sensitive, if there are several items */
+ if( i_nb > 0 )
+ {
+ gtk_widget_set_sensitive( p_root, TRUE );
+ }
+
+ return TRUE;
+}
+
/*****************************************************************************
* GnomeLanguageMenus: update interactive menus of the interface
*****************************************************************************
/* cast */
p_intf = (intf_thread_t *)p_data;
+ /* temporary hack to avoid blank menu when an open menu is removed */
+ if( GTK_MENU_ITEM(p_root)->submenu != NULL )
+ {
+ gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) );
+ }
/* removes previous menu */
gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) );
gtk_widget_set_sensitive( p_root, FALSE );
p_menu = gtk_menu_new();
/* special case for "off" item */
- snprintf( psz_name, GNOME_MENU_LABEL_SIZE, "Off" );
+ snprintf( psz_name, GNOME_MENU_LABEL_SIZE, "None" );
psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name );
return TRUE;
}
-
-/*****************************************************************************
- * GnomeAngleMenu: generate angle menu for current title
- *****************************************************************************/
-static gint GnomeAngleMenu( gpointer p_data, GtkWidget * p_angle,
- void(*pf_toggle)( GtkCheckMenuItem *, gpointer ) )
-{
- intf_thread_t * p_intf;
- char psz_name[ GNOME_MENU_LABEL_SIZE ];
- GtkWidget * p_angle_menu;
- GSList * p_angle_group;
- GtkWidget * p_item;
- GtkWidget * p_item_active;
- gint i_angle;
-
- /* cast */
- p_intf = (intf_thread_t*)p_data;
-
- /* removes previous menu */
- gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_angle ) );
- gtk_widget_set_sensitive( p_angle, FALSE );
-
- p_angle_menu = gtk_menu_new();;
- p_angle_group = NULL;
- p_item = NULL;
- p_item_active = NULL;
-
- for( i_angle = 0 ;
- i_angle < p_intf->p_input->stream.p_selected_area->i_angle_nb ;
- i_angle++ )
- {
- snprintf( psz_name, GNOME_MENU_LABEL_SIZE, "Angle %d", i_angle + 1 );
- psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
-
- p_item = gtk_radio_menu_item_new_with_label( p_angle_group,
- psz_name );
- p_angle_group =
- gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) );
-
- if( p_intf->p_input->stream.p_selected_area->i_angle ==
- ( i_angle + 1 ) )
- {
- p_item_active = p_item;
- }
-
- gtk_widget_show( p_item );
-
- /* setup signal hanling */
- gtk_signal_connect( GTK_OBJECT( p_item ),
- "toggled",
- GTK_SIGNAL_FUNC( pf_toggle ),
- (gpointer)(i_angle + 1) );
-
- gtk_menu_append( GTK_MENU( p_angle_menu ), p_item );
- }
-
- gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_angle ), p_angle_menu );
-
- if( p_item_active != NULL )
- {
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ),
- TRUE );
- }
-
- /* be sure that menu is sensitive if non empty */
- if( p_intf->p_input->stream.p_selected_area->i_angle_nb > 1 )
- {
- gtk_widget_set_sensitive( p_angle, TRUE );
- }
-
- return TRUE;
-}
-
-/*****************************************************************************
- * GnomeChapterMenu: generate chapter menu for current title
- *****************************************************************************/
-static gint GnomeChapterMenu( gpointer p_data, GtkWidget * p_chapter,
- void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) )
-{
- intf_thread_t * p_intf;
- char psz_name[ GNOME_MENU_LABEL_SIZE ];
- GtkWidget * p_chapter_menu;
- GtkWidget * p_chapter_submenu;
- GtkWidget * p_menu_item;
- GtkWidget * p_item;
- GtkWidget * p_item_selected;
- GSList * p_chapter_group;
- gint i_title;
- gint i_chapter;
- gint i_nb;
-
- /* Cast */
- p_intf = (intf_thread_t*)p_data;
-
- /* Removes previous menu */
- gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_chapter ) );
- gtk_widget_set_sensitive( p_chapter, FALSE );
-
- p_chapter_submenu = NULL;
- p_chapter_group = NULL;
- p_item_selected = NULL;
- p_menu_item = NULL;
-
- i_title = p_intf->p_input->stream.p_selected_area->i_id;
- p_chapter_menu = gtk_menu_new();
- i_nb = p_intf->p_input->stream.pp_areas[i_title]->i_part_nb;
-
- for( i_chapter = 0 ; i_chapter < i_nb ; i_chapter++ )
- {
- /* we group chapters in packets of ten for small screens */
- if( ( i_chapter % 10 == 0 ) && ( i_nb > 20 ) )
- {
- if( i_chapter != 0 )
- {
- gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_menu_item ),
- p_chapter_submenu );
- gtk_menu_append( GTK_MENU( p_chapter_menu ), p_menu_item );
- }
-
- snprintf( psz_name, GNOME_MENU_LABEL_SIZE,
- "%d - %d", i_chapter + 1, i_chapter + 10);
- psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
- p_menu_item = gtk_menu_item_new_with_label( psz_name );
- gtk_widget_show( p_menu_item );
- p_chapter_submenu = gtk_menu_new();
- }
-
- snprintf( psz_name, GNOME_MENU_LABEL_SIZE,
- "Chapter %d", i_chapter + 1 );
- psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
-
- p_item = gtk_radio_menu_item_new_with_label( p_chapter_group,
- psz_name );
- p_chapter_group =
- gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) );
-
- if( p_intf->p_input->stream.pp_areas[i_title]->i_part
- == i_chapter + 1 )
- {
- p_item_selected = p_item;
- }
-
- gtk_widget_show( p_item );
-
- /* setup signal hanling */
- gtk_signal_connect( GTK_OBJECT( p_item ),
- "toggled",
- GTK_SIGNAL_FUNC( pf_toggle ),
- (gpointer)(i_chapter + 1) );
-
- if( i_nb > 20 )
- {
- gtk_menu_append( GTK_MENU( p_chapter_submenu ), p_item );
- }
- else
- {
- gtk_menu_append( GTK_MENU( p_chapter_menu ), p_item );
- }
- }
-
- if( i_nb > 20 )
- {
- gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_menu_item ),
- p_chapter_submenu );
- gtk_menu_append( GTK_MENU( p_chapter_menu ), p_menu_item );
- }
-
- /* link the new menu to the title menu item */
- gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_chapter ),
- p_chapter_menu );
-
- /* toggle currently selected chapter */
- if( p_item_selected != NULL )
- {
- gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_selected ),
- TRUE );
- }
-
- /* be sure that chapter menu is sensitive, if there are several items */
- if( p_intf->p_input->stream.pp_areas[i_title]->i_part_nb > 1 )
- {
- gtk_widget_set_sensitive( p_chapter, TRUE );
- }
-
- return TRUE;
-}
-
+#if 1
/*****************************************************************************
* GnomeTitleMenu: sets menus for titles and chapters selection
*****************************************************************************
/* cast */
p_intf = (intf_thread_t*)p_data;
+ /* temporary hack to avoid blank menu when an open menu is removed */
+ if( GTK_MENU_ITEM(p_navigation)->submenu != NULL )
+ {
+ gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_navigation)->submenu ) );
+ }
/* removes previous menu */
gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_navigation ) );
gtk_widget_set_sensitive( p_navigation, FALSE );
snprintf( psz_name, GNOME_MENU_LABEL_SIZE, "Title %d (%d)", i_title,
p_intf->p_input->stream.pp_areas[i_title]->i_part_nb );
psz_name[ GNOME_MENU_LABEL_SIZE - 1 ] = '\0';
-
+#if 0
if( pf_toggle == on_menubar_title_toggle )
{
p_title_item = gtk_radio_menu_item_new_with_label( p_title_group,
}
}
else
+#endif
{
-
p_title_item = gtk_menu_item_new_with_label( psz_name );
+
+#if 1
p_chapter_menu = gtk_menu_new();
i_chapter_nb =
p_intf->p_input->stream.pp_areas[i_title]->i_part_nb;
/* be sure that menu is sensitive */
gtk_widget_set_sensitive( p_navigation, TRUE );
}
+#else
+ GnomeRadioMenu( p_intf, p_title_item, p_chapter_group, "Chapter",
+ p_intf->p_input->stream.pp_areas[i_title]->i_part_nb,
+ i_title * 100,
+ p_intf->p_input->stream.p_selected_area->i_part +
+ p_intf->p_input->stream.p_selected_area->i_id *100,
+ pf_toggle );
+
+#endif
}
gtk_widget_show( p_title_item );
gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ),
TRUE );
}
+#if 0
+ if( p_intf->p_input->stream.i_area_nb > 1 )
+ {
+ /* be sure that menu is sensitive */
+ gtk_widget_set_sensitive( p_navigation, TRUE );
+ }
+#endif
return TRUE;
}
-
+#endif
/*****************************************************************************
* GnomeSetupMenu: function that generates title/chapter/audio/subpic
* menus with help from preceding functions
p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "menubar_title" ) );
- GnomeTitleMenu( p_intf, p_menubar_menu, on_menubar_title_toggle );
+ GnomeRadioMenu( p_intf, p_menubar_menu, NULL, "Title",
+ p_intf->p_input->stream.i_area_nb - 1,
+ p_intf->p_input->stream.p_selected_area->i_id,
+ on_menubar_title_toggle );
snprintf( psz_title, 4, "%d",
p_intf->p_input->stream.p_selected_area->i_id );
p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_popup ), "popup_navigation" ) );
GnomeTitleMenu( p_intf, p_popup_menu, on_popup_navigation_toggle );
-
+#if 0
+ GnomeRadioMenu( p_intf, p_menubar_menu, NULL, "Title",
+ p_intf->p_input->stream.i_area_nb - 1,
+ p_intf->p_input->stream.p_selected_area->i_id,
+ on_menubar_chapter_toggle );
+#endif
+
p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "menubar_chapter" ) );
- GnomeChapterMenu( p_intf, p_menubar_menu, on_menubar_chapter_toggle );
+ GnomeRadioMenu( p_intf, p_menubar_menu, NULL, "Chapter",
+ p_intf->p_input->stream.p_selected_area->i_part_nb,
+ p_intf->p_input->stream.p_selected_area->i_part,
+ on_menubar_chapter_toggle );
+
snprintf( psz_chapter, 4, "%d",
p_intf->p_input->stream.p_selected_area->i_part );
{
p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "menubar_angle" ) );
- GnomeAngleMenu( p_intf, p_menubar_menu, on_menubar_angle_toggle );
+ GnomeRadioMenu( p_intf, p_menubar_menu, NULL, "Angle",
+ p_intf->p_input->stream.p_selected_area->i_angle_nb,
+ p_intf->p_input->stream.p_selected_area->i_angle,
+ on_menubar_angle_toggle );
p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_popup ), "popup_angle" ) );
- GnomeAngleMenu( p_intf, p_popup_menu, on_popup_angle_toggle );
+ GnomeRadioMenu( p_intf, p_popup_menu, NULL, "Angle",
+ p_intf->p_input->stream.p_selected_area->i_angle_nb,
+ p_intf->p_input->stream.p_selected_area->i_angle,
+ on_popup_angle_toggle );
p_intf->p_sys->b_angle_update = 0;
}
p_intf->p_sys->b_spu_update = 0;
}
+ /* handle fullscreen check items */
+ if( p_vout_bank->i_count )
+ {
+ p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_window ), "menubar_fullscreen" ) );
+
+ p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_popup ), "popup_fullscreen" ) );
+
+ gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_menubar_menu ),
+ p_vout_bank->pp_vout[0]->b_fullscreen );
+ gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_popup_menu ),
+ p_vout_bank->pp_vout[0]->b_fullscreen );
+
+ }
+
return TRUE;
}
vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
- gtk_label_set_text( p_intf->p_sys->p_label_date,
+ gtk_frame_set_label( GTK_FRAME( p_intf->p_sys->p_slider_frame ),
input_OffsetToTime( p_intf->p_input, psz_time,
( p_area->i_size * p_adj->value ) / 100 ) );
/*****************************************************************************
- * GnomeDiscModeManage
+ * GnomeModeManage
*****************************************************************************/
-static gint GnomeDiscModeManage( intf_thread_t * p_intf )
+static gint GnomeModeManage( intf_thread_t * p_intf )
{
GtkWidget * p_dvd_box;
GtkWidget * p_file_box;
GtkWidget * p_network_box;
+ GtkWidget * p_slider;
+ GtkWidget * p_label;
+ boolean_t b_control;
+#define GETWIDGET( ptr, name ) GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( \
+ p_intf->p_sys->ptr ) , ( name ) ) )
+ /* hide all boxes */
p_file_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "file_box" ) );
gtk_widget_hide( GTK_WIDGET( p_file_box ) );
p_intf->p_sys->p_window ), "network_box" ) );
gtk_widget_hide( GTK_WIDGET( p_network_box ) );
- p_dvd_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "dvd_box" ) );
- gtk_widget_show( GTK_WIDGET( p_dvd_box ) );
-
- gtk_label_set_text( p_intf->p_sys->p_label_status,
- "Status: playing DVD" );
-
- return TRUE;
-}
-
-/*****************************************************************************
- * GnomeFileModeManage
- *****************************************************************************/
-static gint GnomeFileModeManage( intf_thread_t * p_intf )
-{
- GtkWidget * p_dvd_box;
- GtkWidget * p_file_box;
- GtkWidget * p_network_box;
- char * psz_name;
-
- p_network_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "network_box" ) );
- gtk_widget_hide( GTK_WIDGET( p_network_box ) );
-
- p_dvd_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "dvd_box" ) );
- gtk_widget_hide( GTK_WIDGET( p_dvd_box ) );
-
- p_file_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "file_box" ) );
- gtk_widget_show( GTK_WIDGET( p_file_box ) );
-
-#if 1
-// psz_name = malloc( 16 + strlen( p_intf->p_input->p_source ) );
-// sprintf( psz_name, "Status: playing %s", p_intf->p_input->p_source );
-
- psz_name = strdup( p_intf->p_input->p_source );
-
- gtk_label_set_text( p_intf->p_sys->p_label_status, psz_name );
-
- free( psz_name );
-#else
- gtk_label_set_text( p_intf->p_sys->p_label_status,
- "Status: foo" );
-#endif
-
- return TRUE;
-}
-
-/*****************************************************************************
- * GnomeNetworkModeManage
- *****************************************************************************/
-static gint GnomeNetworkModeManage( intf_thread_t * p_intf )
-{
- GtkWidget * p_dvd_box;
- GtkWidget * p_file_box;
- GtkWidget * p_network_box;
-
p_dvd_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
p_intf->p_sys->p_window ), "dvd_box" ) );
gtk_widget_hide( GTK_WIDGET( p_dvd_box ) );
- p_file_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "file_box" ) );
- gtk_widget_hide( GTK_WIDGET( p_file_box ) );
+ /* show the box related to current input mode */
+ switch( p_intf->p_input->stream.i_method & 0xf0 )
+ {
+ case INPUT_METHOD_FILE:
+ gtk_widget_show( GTK_WIDGET( p_file_box ) );
+ p_label = gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_window ),
+ "label_status" );
+ gtk_label_set_text( GTK_LABEL( p_label ),
+ p_intf->p_input->p_source );
+ break;
+ case INPUT_METHOD_DISC:
+ gtk_widget_show( GTK_WIDGET( p_dvd_box ) );
+ break;
+ case INPUT_METHOD_NETWORK:
+ gtk_widget_show( GTK_WIDGET( p_network_box ) );
+ p_label = gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_window ),
+ "network_address_label" );
+ gtk_label_set_text( GTK_LABEL( p_label ),
+ p_intf->p_input->p_source );
+ break;
+ default:
+ intf_ErrMsg( "intf error: can't determine input method" );
+ break;
+ }
- p_network_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_window ), "network_box" ) );
- gtk_widget_show( GTK_WIDGET( p_network_box ) );
+ p_slider = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT(
+ p_intf->p_sys->p_window ), "slider_handlebox" ) );
- gtk_label_set_text( p_intf->p_sys->p_label_status,
- "Status: waiting for stream" );
+ /* slider for seekable streams */
+ if( p_intf->p_input->stream.b_seekable )
+ {
+ gtk_widget_show( GTK_WIDGET( p_slider ) );
+ }
+ else
+ {
+ gtk_widget_hide( GTK_WIDGET( p_slider ) );
+ }
+ /* control buttons for free pace streams */
+ b_control = p_intf->p_input->stream.b_pace_control;
+ gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_back"), FALSE );
+ gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_stop"), FALSE );
+ gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_play"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_pause"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_slow"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_fast"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_back"), FALSE );
+ gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_stop"), FALSE );
+ gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_play"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_pause"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_slow"), b_control );
+ gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_fast"), b_control );
+
+ /* get ready for menu regeneration */
+ p_intf->p_sys->b_title_update = 1;
+ p_intf->p_sys->b_chapter_update = 1;
+ p_intf->p_sys->b_angle_update = 1;
+ p_intf->p_sys->b_audio_update = 1;
+ p_intf->p_sys->b_spu_update = 1;
+ p_intf->p_sys->i_part = 0;
+
+ p_intf->p_input->stream.b_changed = 0;
+ p_intf->p_sys->b_mode_changed = 0;
+ intf_WarnMsg( 2,
+ "intf info: menus refreshed as stream has changed" );
+
+#undef GETWIDGET
return TRUE;
}
<modal>False</modal>
<allow_shrink>False</allow_shrink>
<allow_grow>True</allow_grow>
- <auto_shrink>False</auto_shrink>
+ <auto_shrink>True</auto_shrink>
<enable_layout_config>True</enable_layout_config>
<widget>
<widget>
<class>GtkMenuBar</class>
<name>menubar</name>
+ <border_width>2</border_width>
+ <width>500</width>
+ <height>32</height>
<shadow_type>GTK_SHADOW_NONE</shadow_type>
<widget>
<class>GtkMenu</class>
<name>menubar_view_menu</name>
+ <widget>
+ <class>GtkCheckMenuItem</class>
+ <name>menubar_fullscreen</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_menubar_fullscreen_activate</handler>
+ <last_modification_time>Wed, 02 May 2001 23:35:36 GMT</last_modification_time>
+ </signal>
+ <label>_Fullscreen</label>
+ <active>False</active>
+ <always_show_toggle>True</always_show_toggle>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator9</name>
+ <right_justify>False</right_justify>
+ </widget>
+
<widget>
<class>GtkMenuItem</class>
<name>menubar_title</name>
<widget>
<class>GtkPixmapMenuItem</class>
<name>menubar_playlist</name>
- <sensitive>False</sensitive>
<tooltip>Open the playlist window</tooltip>
<signal>
<name>activate</name>
<widget>
<class>GtkPixmapMenuItem</class>
<name>menubar_preferences</name>
- <sensitive>False</sensitive>
<signal>
<name>activate</name>
<handler>on_menubar_preferences_activate</handler>
<widget>
<class>GnomeDockItem</class>
<name>dockitem_toolbar</name>
+ <border_width>2</border_width>
<placement>GNOME_DOCK_TOP</placement>
<band>1</band>
<position>0</position>
<handler>on_toolbar_open_clicked</handler>
<last_modification_time>Sun, 04 Mar 2001 21:01:24 GMT</last_modification_time>
</signal>
- <label>Open</label>
+ <label>File</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_OPEN</stock_pixmap>
</widget>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
<name>toolbar_play</name>
+ <sensitive>False</sensitive>
<tooltip>Play Stream</tooltip>
<signal>
<name>clicked</name>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
<name>toolbar_pause</name>
+ <sensitive>False</sensitive>
<tooltip>Pause Stream</tooltip>
<signal>
<name>clicked</name>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
<name>toolbar_slow</name>
+ <sensitive>False</sensitive>
<tooltip>Play Slower</tooltip>
<signal>
<name>clicked</name>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
<name>toolbar_fast</name>
+ <sensitive>False</sensitive>
<tooltip>Play Faster</tooltip>
<signal>
<name>clicked</name>
<class>GtkButton</class>
<child_name>Toolbar:button</child_name>
<name>toolbar_playlist</name>
- <sensitive>False</sensitive>
<tooltip>Open Playlist</tooltip>
<signal>
<name>clicked</name>
<widget>
<class>GtkVBox</class>
<child_name>GnomeDock:contents</child_name>
- <name>vbox2</name>
+ <name>vbox8</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<widget>
- <class>GtkHBox</class>
- <name>hbox4</name>
- <width>650</width>
- <homogeneous>True</homogeneous>
- <spacing>0</spacing>
+ <class>GtkHandleBox</class>
+ <name>slider_handlebox</name>
+ <visible>False</visible>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+ <handle_position>GTK_POS_LEFT</handle_position>
+ <snap_edge>GTK_POS_TOP</snap_edge>
<child>
<padding>0</padding>
<expand>True</expand>
</child>
<widget>
- <class>GtkLabel</class>
- <name>label_date</name>
+ <class>GtkFrame</class>
+ <name>slider_frame</name>
<label>-:--:--</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
- </widget>
-
- <widget>
- <class>GtkLabel</class>
- <name>label_status</name>
- <width>350</width>
- <label>Status: foo</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
- </widget>
+ <label_xalign>0.05</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
- <widget>
- <class>GtkLabel</class>
- <name>label_bar</name>
- <label>Bar: baz</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
+ <widget>
+ <class>GtkHScale</class>
+ <name>slider</name>
+ <width>500</width>
+ <height>15</height>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>button_press_event</name>
+ <handler>on_slider_button_press_event</handler>
+ <last_modification_time>Wed, 14 Mar 2001 13:46:55 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>button_release_event</name>
+ <handler>on_slider_button_release_event</handler>
+ <last_modification_time>Wed, 14 Mar 2001 13:46:59 GMT</last_modification_time>
+ </signal>
+ <draw_value>False</draw_value>
+ <value_pos>GTK_POS_TOP</value_pos>
+ <digits>3</digits>
+ <policy>GTK_UPDATE_CONTINUOUS</policy>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>1</step>
+ <page>6.25</page>
+ <page_size>0</page_size>
+ </widget>
</widget>
</widget>
- <widget>
- <class>GtkHScale</class>
- <name>slider</name>
- <can_focus>True</can_focus>
- <signal>
- <name>button_press_event</name>
- <handler>on_slider_button_press_event</handler>
- <last_modification_time>Wed, 14 Mar 2001 13:46:55 GMT</last_modification_time>
- </signal>
- <signal>
- <name>button_release_event</name>
- <handler>on_slider_button_release_event</handler>
- <last_modification_time>Wed, 14 Mar 2001 13:46:59 GMT</last_modification_time>
- </signal>
- <draw_value>False</draw_value>
- <value_pos>GTK_POS_TOP</value_pos>
- <digits>3</digits>
- <policy>GTK_UPDATE_CONTINUOUS</policy>
- <value>0</value>
- <lower>0</lower>
- <upper>100</upper>
- <step>1</step>
- <page>6.25</page>
- <page_size>0</page_size>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
- </widget>
-
<widget>
<class>GtkHBox</class>
<name>file_box</name>
+ <width>500</width>
+ <height>24</height>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<widget>
<class>GtkLabel</class>
- <name>label_file</name>
- <height>24</height>
- <label>Vlc File Mode</label>
+ <name>label_status</name>
+ <label>Playlist empty</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<widget>
<class>GtkHBox</class>
<name>dvd_box</name>
+ <width>500</width>
<height>24</height>
<visible>False</visible>
<homogeneous>False</homogeneous>
<fill>True</fill>
</child>
+ <widget>
+ <class>GtkLabel</class>
+ <name>label21</name>
+ <label>DVD </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
<widget>
<class>GtkHBox</class>
<name>title_chapter_box</name>
</widget>
</widget>
+ <widget>
+ <class>GtkVSeparator</class>
+ <name>vseparator1</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
<widget>
<class>GtkHBox</class>
<name>dvd_chapter_box</name>
<widget>
<class>GtkLabel</class>
<name>label_chapter</name>
- <label>--</label>
+ <label>---</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<widget>
<class>GtkHBox</class>
<name>network_box</name>
+ <width>500</width>
+ <height>24</height>
<visible>False</visible>
<homogeneous>True</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
+ <expand>False</expand>
+ <fill>False</fill>
</child>
<widget>
- <class>Placeholder</class>
- </widget>
-
- <widget>
- <class>Placeholder</class>
+ <class>GtkLabel</class>
+ <name>network_address_label</name>
+ <label>No server</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
</widget>
<widget>
<class>GtkHBox</class>
<name>network_channel_box</name>
+ <visible>False</visible>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
+ <expand>False</expand>
+ <fill>False</fill>
</child>
<widget>
<xpad>0</xpad>
<ypad>0</ypad>
<child>
- <padding>0</padding>
+ <padding>5</padding>
<expand>True</expand>
<fill>False</fill>
</child>
<page>10</page>
<page_size>10</page_size>
<child>
- <padding>0</padding>
+ <padding>5</padding>
<expand>False</expand>
<fill>True</fill>
</child>
<class>GnomeAppBar</class>
<child_name>GnomeApp:appbar</child_name>
<name>appbar</name>
- <has_progress>True</has_progress>
+ <width>500</width>
+ <has_progress>False</has_progress>
<has_status>True</has_status>
<child>
<padding>0</padding>
<handler>on_popup_play_activate</handler>
<last_modification_time>Sun, 11 Feb 2001 16:52:11 GMT</last_modification_time>
</signal>
- <label>_Play</label>
+ <label>Play</label>
<right_justify>False</right_justify>
<stock_icon>GNOME_STOCK_MENU_FORWARD</stock_icon>
</widget>
<stock_icon>GNOME_STOCK_MENU_BOTTOM</stock_icon>
</widget>
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>popup_stop</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_popup_stop_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 22:18:09 GMT</last_modification_time>
+ </signal>
+ <label>Stop</label>
+ <right_justify>False</right_justify>
+ <stock_icon>GNOME_STOCK_MENU_STOP</stock_icon>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>popup_back</name>
+ <sensitive>False</sensitive>
+ <signal>
+ <name>activate</name>
+ <handler>on_popup_back_activate</handler>
+ <last_modification_time>Sun, 06 May 2001 15:33:13 GMT</last_modification_time>
+ </signal>
+ <label>Back</label>
+ <right_justify>False</right_justify>
+ <stock_icon>GNOME_STOCK_MENU_BACK</stock_icon>
+ </widget>
+
<widget>
<class>GtkPixmapMenuItem</class>
<name>popup_slow</name>
<right_justify>False</right_justify>
</widget>
+ <widget>
+ <class>GtkCheckMenuItem</class>
+ <name>popup_fullscreen</name>
+ <tooltip>Toggle fullscreen mode</tooltip>
+ <signal>
+ <name>activate</name>
+ <handler>on_popup_fullscreen_activate</handler>
+ <last_modification_time>Wed, 02 May 2001 23:36:07 GMT</last_modification_time>
+ </signal>
+ <label>_Fullscreen</label>
+ <active>False</active>
+ <always_show_toggle>True</always_show_toggle>
+ </widget>
+
<widget>
<class>GtkMenuItem</class>
+ <name>separator8</name>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>popup_jump</name>
+ <tooltip>Got directly so specified point</tooltip>
+ <signal>
+ <name>activate</name>
+ <handler>on_popup_jump_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 22:22:49 GMT</last_modification_time>
+ </signal>
+ <label>_Jump</label>
+ <right_justify>False</right_justify>
+ <stock_icon>GNOME_STOCK_MENU_JUMP_TO</stock_icon>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
<name>popup_navigation</name>
<sensitive>False</sensitive>
<tooltip>Navigate through titles and chapters</tooltip>
<label>_Navigation</label>
<right_justify>False</right_justify>
+ <stock_icon>GNOME_STOCK_MENU_SEARCH</stock_icon>
</widget>
<widget>
</widget>
<widget>
- <class>GtkMenuItem</class>
+ <class>GtkPixmapMenuItem</class>
<name>popup_audio</name>
<sensitive>False</sensitive>
<tooltip>Select audio channel</tooltip>
<label>_Audio</label>
<right_justify>False</right_justify>
+ <stock_icon>GNOME_STOCK_MENU_VOLUME</stock_icon>
</widget>
<widget>
- <class>GtkMenuItem</class>
+ <class>GtkPixmapMenuItem</class>
<name>popup_subtitle</name>
<sensitive>False</sensitive>
<tooltip>Select subtitle channel</tooltip>
<label>_Subtitles</label>
<right_justify>False</right_justify>
+ <stock_icon>GNOME_STOCK_MENU_FONT</stock_icon>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator13</name>
+ <right_justify>False</right_justify>
</widget>
<widget>
</widget>
</widget>
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>popup_playlist</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_popup_playlist_activate</handler>
+ <last_modification_time>Wed, 02 May 2001 14:16:23 GMT</last_modification_time>
+ </signal>
+ <label>Playlist...</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkPixmapMenuItem</class>
+ <name>popup_preferences</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_popup_preferences_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 22:17:08 GMT</last_modification_time>
+ </signal>
+ <stock_item>GNOMEUIINFO_MENU_PREFERENCES_ITEM</stock_item>
+ </widget>
+
<widget>
<class>GtkMenuItem</class>
<name>separator2</name>
<widget>
<class>GnomeDialog</class>
- <name>intf_playlist</name>
- <signal>
- <name>destroy</name>
- <handler>on_intf_playlist_destroy</handler>
- <last_modification_time>Tue, 13 Feb 2001 09:18:45 GMT</last_modification_time>
- </signal>
- <title>Playlist</title>
+ <name>intf_disc</name>
+ <title>Open Disc</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
- <modal>False</modal>
+ <modal>True</modal>
<allow_shrink>False</allow_shrink>
- <allow_grow>True</allow_grow>
+ <allow_grow>False</allow_grow>
<auto_shrink>False</auto_shrink>
<auto_close>False</auto_close>
<hide_on_close>False</hide_on_close>
<widget>
<class>GtkVBox</class>
<child_name>GnomeDialog:vbox</child_name>
- <name>dialog-vbox2</name>
+ <name>dialog-vbox4</name>
<homogeneous>False</homogeneous>
<spacing>8</spacing>
<child>
<widget>
<class>GtkHButtonBox</class>
<child_name>GnomeDialog:action_area</child_name>
- <name>dialog-action_area2</name>
+ <name>dialog-action_area4</name>
<layout_style>GTK_BUTTONBOX_END</layout_style>
<spacing>8</spacing>
<child_min_width>85</child_min_width>
<widget>
<class>GtkButton</class>
- <name>playlist_ok</name>
+ <name>disc_ok</name>
<can_default>True</can_default>
<can_focus>True</can_focus>
<signal>
<name>clicked</name>
- <handler>on_playlist_ok_clicked</handler>
- <last_modification_time>Tue, 13 Feb 2001 09:20:38 GMT</last_modification_time>
+ <handler>on_disc_ok_clicked</handler>
+ <last_modification_time>Sun, 04 Mar 2001 01:33:55 GMT</last_modification_time>
</signal>
<stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
</widget>
- </widget>
- <widget>
- <class>GtkLabel</class>
- <name>label11</name>
- <label>Sorry, the playlist isn't functional yet. Please retry in a later version.</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
+ <widget>
+ <class>GtkButton</class>
+ <name>disc_cancel</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_disc_cancel_clicked</handler>
+ <last_modification_time>Sun, 04 Mar 2001 01:33:50 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
+ </widget>
</widget>
<widget>
- <class>GtkScrolledWindow</class>
- <name>scrolledwindow3</name>
- <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy>
- <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
- <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
- <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkCList</class>
- <name>clist2</name>
- <can_focus>True</can_focus>
- <columns>3</columns>
- <column_widths>211,49,35</column_widths>
- <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
- <show_titles>False</show_titles>
- <shadow_type>GTK_SHADOW_IN</shadow_type>
-
- <widget>
- <class>GtkLabel</class>
- <child_name>CList:title</child_name>
- <name>label8</name>
- <label>Name</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- </widget>
-
- <widget>
- <class>GtkLabel</class>
- <child_name>CList:title</child_name>
- <name>label9</name>
- <label>Type</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- </widget>
-
- <widget>
- <class>GtkLabel</class>
- <child_name>CList:title</child_name>
- <name>label10</name>
- <label>Length</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- </widget>
- </widget>
- </widget>
- </widget>
-</widget>
-
-<widget>
- <class>GnomeDialog</class>
- <name>intf_disc</name>
- <title>Open Disc</title>
- <type>GTK_WINDOW_TOPLEVEL</type>
- <position>GTK_WIN_POS_NONE</position>
- <modal>True</modal>
- <allow_shrink>False</allow_shrink>
- <allow_grow>False</allow_grow>
- <auto_shrink>False</auto_shrink>
- <auto_close>False</auto_close>
- <hide_on_close>False</hide_on_close>
-
- <widget>
- <class>GtkVBox</class>
- <child_name>GnomeDialog:vbox</child_name>
- <name>dialog-vbox4</name>
- <homogeneous>False</homogeneous>
- <spacing>8</spacing>
- <child>
- <padding>4</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
-
- <widget>
- <class>GtkHButtonBox</class>
- <child_name>GnomeDialog:action_area</child_name>
- <name>dialog-action_area4</name>
- <layout_style>GTK_BUTTONBOX_END</layout_style>
- <spacing>8</spacing>
- <child_min_width>85</child_min_width>
- <child_min_height>27</child_min_height>
- <child_ipad_x>7</child_ipad_x>
- <child_ipad_y>0</child_ipad_y>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>True</fill>
- <pack>GTK_PACK_END</pack>
- </child>
-
- <widget>
- <class>GtkButton</class>
- <name>disc_ok</name>
- <can_default>True</can_default>
- <can_focus>True</can_focus>
- <signal>
- <name>clicked</name>
- <handler>on_disc_ok_clicked</handler>
- <last_modification_time>Sun, 04 Mar 2001 01:33:55 GMT</last_modification_time>
- </signal>
- <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
- </widget>
-
- <widget>
- <class>GtkButton</class>
- <name>disc_cancel</name>
- <can_default>True</can_default>
- <can_focus>True</can_focus>
- <signal>
- <name>clicked</name>
- <handler>on_disc_cancel_clicked</handler>
- <last_modification_time>Sun, 04 Mar 2001 01:33:50 GMT</last_modification_time>
- </signal>
- <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
- </widget>
- </widget>
-
- <widget>
- <class>GtkHBox</class>
- <name>hbox2</name>
- <homogeneous>False</homogeneous>
- <spacing>5</spacing>
+ <class>GtkHBox</class>
+ <name>hbox2</name>
+ <homogeneous>False</homogeneous>
+ <spacing>5</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
<class>GtkTable</class>
<name>table2</name>
<border_width>5</border_width>
- <rows>2</rows>
+ <rows>3</rows>
<columns>2</columns>
<homogeneous>False</homogeneous>
<row_spacing>5</row_spacing>
<widget>
<class>GtkSpinButton</class>
<name>network_port</name>
+ <tooltip>Port of the stream server</tooltip>
<can_focus>True</can_focus>
<climb_rate>1</climb_rate>
<digits>0</digits>
</widget>
<widget>
- <class>GtkEntry</class>
- <name>network_server</name>
+ <class>GtkCheckButton</class>
+ <name>broadcast_check</name>
<can_focus>True</can_focus>
- <editable>True</editable>
- <text_visible>True</text_visible>
- <text_max_length>0</text_max_length>
- <text>vls</text>
+ <signal>
+ <name>toggled</name>
+ <handler>on_broadcast_check_toggled</handler>
+ <last_modification_time>Wed, 02 May 2001 00:28:21 GMT</last_modification_time>
+ </signal>
+ <label>Broadcast</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>network_broadcast_combo</name>
+ <max_saved>10</max_saved>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>network_broadcast</name>
+ <sensitive>False</sensitive>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>network_server_combo</name>
+ <max_saved>10</max_saved>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>network_server</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text>vls</text>
+ </widget>
</widget>
</widget>
</widget>
</widget>
</widget>
+<widget>
+ <class>GnomeDialog</class>
+ <name>intf_playlist</name>
+ <title>Playlist</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <default_width>400</default_width>
+ <default_height>300</default_height>
+ <allow_shrink>True</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>playlist_vbox</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>playlist_action</name>
+ <layout_style>GTK_BUTTONBOX_END</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>100</child_min_width>
+ <child_min_height>38</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>playlist_ok</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_playlist_ok_clicked</handler>
+ <last_modification_time>Sun, 06 May 2001 04:14:54 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>playlist_cancel</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_playlist_cancel_clicked</handler>
+ <last_modification_time>Sun, 06 May 2001 03:41:33 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkScrolledWindow</class>
+ <name>playlist_scrolledwindow</name>
+ <hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy>
+ <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy>
+ <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
+ <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkViewport</class>
+ <name>playlist_viewport</name>
+ <shadow_type>GTK_SHADOW_IN</shadow_type>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>playlist_frame</name>
+ <label>Playlist</label>
+ <label_xalign>0.05</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+
+ <widget>
+ <class>GtkCList</class>
+ <name>playlist_clist</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>event</name>
+ <handler>on_playlist_clist_event</handler>
+ <last_modification_time>Tue, 01 May 2001 22:13:12 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>drag_data_received</name>
+ <handler>on_playlist_clist_drag_data_received</handler>
+ <last_modification_time>Tue, 01 May 2001 22:13:32 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>drag_motion</name>
+ <handler>on_playlist_clist_drag_motion</handler>
+ <last_modification_time>Tue, 01 May 2001 22:13:52 GMT</last_modification_time>
+ </signal>
+ <columns>2</columns>
+ <column_widths>287,70</column_widths>
+ <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
+ <show_titles>True</show_titles>
+ <shadow_type>GTK_SHADOW_IN</shadow_type>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>CList:title</child_name>
+ <name>playlist_label_url</name>
+ <label>Url</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>CList:title</child_name>
+ <name>playlist_label_duration</name>
+ <label>Duration</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuBar</class>
+ <name>playlist_menubar</name>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_add</name>
+ <label>Add</label>
+ <right_justify>False</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>playlist_add_menu</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_add_disc</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_disc_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 19:07:11 GMT</last_modification_time>
+ </signal>
+ <label>Disc</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_add_file</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_file_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 19:07:11 GMT</last_modification_time>
+ </signal>
+ <label>File</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_add_network</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_network_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 19:07:11 GMT</last_modification_time>
+ </signal>
+ <label>Network</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_add_url</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_url_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 19:07:11 GMT</last_modification_time>
+ </signal>
+ <label>Url</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_delete</name>
+ <label>Delete</label>
+ <right_justify>False</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>playlist_delete_menu</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_delete_all</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_delete_all_activate</handler>
+ <last_modification_time>Sun, 06 May 2001 01:51:40 GMT</last_modification_time>
+ </signal>
+ <label>All</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playmist_delete_item</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_delete_item_activate</handler>
+ <last_modification_time>Sun, 06 May 2001 01:51:28 GMT</last_modification_time>
+ </signal>
+ <label>Item</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_selection</name>
+ <label>Selection</label>
+ <right_justify>False</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>playlist_selection_menu</name>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_selection_crop</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_crop_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 18:47:42 GMT</last_modification_time>
+ </signal>
+ <label>Crop</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_selection_invert</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_invert_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 18:47:42 GMT</last_modification_time>
+ </signal>
+ <label>Invert</label>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>playlist_selection_select</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_playlist_select_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 18:47:42 GMT</last_modification_time>
+ </signal>
+ <label>Select</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>intf_jump</name>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>False</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>jump_vbox</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>jump_action</name>
+ <layout_style>GTK_BUTTONBOX_END</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>jump_ok</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_jump_ok_clicked</handler>
+ <last_modification_time>Wed, 02 May 2001 02:20:21 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>jump_cancel</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_jump_cancel_clicked</handler>
+ <last_modification_time>Wed, 02 May 2001 02:20:54 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>jump_frame</name>
+ <label>Jump to:</label>
+ <label_xalign>0.05</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkHBox</class>
+ <name>jump_box</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>jump_second_spinbutton</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <padding>5</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>jump_label1</name>
+ <label>:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>5</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>jump_minute_spinbutton</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>59</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <padding>5</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>jump_label2</name>
+ <label>:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <padding>5</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>jump_hour_spinbutton</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>10</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <padding>5</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+<widget>
+ <class>GnomeDialog</class>
+ <name>intf_preferences</name>
+ <title>Preferences</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <default_width>450</default_width>
+ <default_height>350</default_height>
+ <allow_shrink>True</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+ <auto_close>False</auto_close>
+ <hide_on_close>False</hide_on_close>
+
+ <widget>
+ <class>GtkVBox</class>
+ <child_name>GnomeDialog:vbox</child_name>
+ <name>preferences_vbox</name>
+ <homogeneous>False</homogeneous>
+ <spacing>8</spacing>
+ <child>
+ <padding>4</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkHButtonBox</class>
+ <child_name>GnomeDialog:action_area</child_name>
+ <name>preferences_dialog</name>
+ <layout_style>GTK_BUTTONBOX_END</layout_style>
+ <spacing>8</spacing>
+ <child_min_width>85</child_min_width>
+ <child_min_height>27</child_min_height>
+ <child_ipad_x>7</child_ipad_x>
+ <child_ipad_y>0</child_ipad_y>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>True</fill>
+ <pack>GTK_PACK_END</pack>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>preferences_ok</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_preferences_ok_clicked</handler>
+ <last_modification_time>Wed, 02 May 2001 17:04:42 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>preferences_apply</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_preferences_apply_clicked</handler>
+ <last_modification_time>Wed, 02 May 2001 17:04:50 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_APPLY</stock_button>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>preferences_cancel</name>
+ <can_default>True</can_default>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_preferences_cancel_clicked</handler>
+ <last_modification_time>Wed, 02 May 2001 17:05:00 GMT</last_modification_time>
+ </signal>
+ <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>preferences_frame</name>
+ <label>Preferences</label>
+ <label_xalign>0.05</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkNotebook</class>
+ <name>preferences_notebook</name>
+ <can_focus>True</can_focus>
+ <show_tabs>True</show_tabs>
+ <show_border>True</show_border>
+ <tab_pos>GTK_POS_TOP</tab_pos>
+ <scrollable>False</scrollable>
+ <tab_hborder>2</tab_hborder>
+ <tab_vborder>2</tab_vborder>
+ <popup_enable>False</popup_enable>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preferences_file_table</name>
+ <rows>1</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GnomeFileEntry</class>
+ <name>preferences_file_combo</name>
+ <max_saved>10</max_saved>
+ <directory>False</directory>
+ <modal>False</modal>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_file_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_file_path_label</name>
+ <label>Default path: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_file</name>
+ <label>File</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preferences_disc_table</name>
+ <rows>2</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GnomeFileEntry</class>
+ <name>preferences_disc_dvd_combo</name>
+ <max_saved>10</max_saved>
+ <directory>False</directory>
+ <modal>False</modal>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_disc_dvd_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeFileEntry</class>
+ <name>preferences_file_vcd_combo</name>
+ <max_saved>10</max_saved>
+ <directory>False</directory>
+ <modal>False</modal>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_disc_vcd_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_disc_dvd_label</name>
+ <label>Default DVD path: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_disc_vcd_label</name>
+ <label>Default VCD path: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_disc</name>
+ <label>Disc</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preferences_network_table</name>
+ <rows>7</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_network_server_label</name>
+ <label>Default server: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>preferences_network_port_spinbutton</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>1234</value>
+ <lower>0</lower>
+ <upper>65535</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_network_broadcast_label</name>
+ <label>Broadcast address: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_network_port_label</name>
+ <label>Default port: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>preferences_network_server_combo</name>
+ <max_saved>10</max_saved>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_network_server_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text>vls</text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>preferences_network_broadcast_combo</name>
+ <max_saved>10</max_saved>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_network_broadcast_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_network_broadcast_check_button</name>
+ <can_focus>True</can_focus>
+ <label>Broadcast mode</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>3</top_attach>
+ <bottom_attach>4</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>preferences_network_ts_radiobutton</name>
+ <can_focus>True</can_focus>
+ <label>TS</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>preferences_network_protocol_group</group>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>4</top_attach>
+ <bottom_attach>5</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>True</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>preferences_network_rtp_radiobutton</name>
+ <can_focus>True</can_focus>
+ <label>RTP</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>preferences_network_protocol_group</group>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>5</top_attach>
+ <bottom_attach>6</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>True</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkRadioButton</class>
+ <name>preferences_network_http_radiobutton</name>
+ <can_focus>True</can_focus>
+ <label>HTTP</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <group>preferences_network_protocol_group</group>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>6</top_attach>
+ <bottom_attach>7</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>True</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_network_protocol_label</name>
+ <label>Default protocol: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>4</top_attach>
+ <bottom_attach>7</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>True</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_network</name>
+ <label>Network</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preferences_network_interface_table</name>
+ <rows>1</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_interface_label</name>
+ <label>Default interface: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>preferences_network_interface_combo</name>
+ <max_saved>10</max_saved>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_network_interface_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_interface</name>
+ <label>Interface</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preferences_video_table</name>
+ <rows>7</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_video_output_label</name>
+ <label>Default output: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_video_height</name>
+ <label>Default height: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>preferences_video_height_spinbutton</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>576</value>
+ <lower>0</lower>
+ <upper>1600</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>preferences_video_width_spinbutton</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>0</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>720</value>
+ <lower>100</lower>
+ <upper>1600</upper>
+ <step>1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_video_width_label</name>
+ <label>Default width: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>preferences_video_output_combo</name>
+ <max_saved>10</max_saved>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_video_output_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_video_depth</name>
+ <label>Default depth:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>3</top_attach>
+ <bottom_attach>4</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>preferences_video_depth_optionmenu</name>
+ <can_focus>True</can_focus>
+ <items>15 bits
+16 bits
+32 bits
+</items>
+ <initial_choice>1</initial_choice>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>3</top_attach>
+ <bottom_attach>4</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_video_fullscreen_depth</name>
+ <label>Fullscreen depth:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>4</top_attach>
+ <bottom_attach>5</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>preferences_video_fullscreen_depth_optionmenu</name>
+ <can_focus>True</can_focus>
+ <items>15 bits
+16 bits
+32 bits
+</items>
+ <initial_choice>2</initial_choice>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>4</top_attach>
+ <bottom_attach>5</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>True</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_video_fullscreen_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>Fullscreen on play</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>6</top_attach>
+ <bottom_attach>7</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_video_grayscale_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>Grayscale</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>6</top_attach>
+ <bottom_attach>7</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_video_gamma_label</name>
+ <label>Gamma:</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>5</top_attach>
+ <bottom_attach>6</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkSpinButton</class>
+ <name>spinbutton4</name>
+ <can_focus>True</can_focus>
+ <climb_rate>1</climb_rate>
+ <digits>1</digits>
+ <numeric>False</numeric>
+ <update_policy>GTK_UPDATE_ALWAYS</update_policy>
+ <snap>False</snap>
+ <wrap>False</wrap>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>5</upper>
+ <step>0.1</step>
+ <page>10</page>
+ <page_size>10</page_size>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>5</top_attach>
+ <bottom_attach>6</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_video</name>
+ <label>Video</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preference_audio_table</name>
+ <rows>5</rows>
+ <columns>2</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_audio_spdif_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>Spdif output</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>4</top_attach>
+ <bottom_attach>5</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_audio_output_label</name>
+ <label>Default output: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GnomeEntry</class>
+ <name>preferences_audio_output_combo</name>
+ <max_saved>10</max_saved>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+
+ <widget>
+ <class>GtkEntry</class>
+ <child_name>GnomeEntry:entry</child_name>
+ <name>preferences_audio_output_entry</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text></text>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_audio_frequency_label</name>
+ <label>Frequency: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>preferences_audio_frequency_optionmenu</name>
+ <can_focus>True</can_focus>
+ <items>48000 Hz
+44100 Hz
+32000 Hz
+22050 Hz
+</items>
+ <initial_choice>0</initial_choice>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_audio_quality_label</name>
+ <label>Quality: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>preferences_audio_quality_optionmenu</name>
+ <can_focus>True</can_focus>
+ <items>16 bits
+8 bits
+</items>
+ <initial_choice>0</initial_choice>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <name>preferences_audio_channels_label</name>
+ <label>Channels: </label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>3</top_attach>
+ <bottom_attach>4</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkOptionMenu</class>
+ <name>preferences_audio_channels_optionmenu</name>
+ <can_focus>True</can_focus>
+ <items>Mono
+Stereo
+</items>
+ <initial_choice>1</initial_choice>
+ <child>
+ <left_attach>1</left_attach>
+ <right_attach>2</right_attach>
+ <top_attach>3</top_attach>
+ <bottom_attach>4</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>False</xexpand>
+ <yexpand>False</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_audio</name>
+ <label>Audio</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preference_playlist_table</name>
+ <rows>3</rows>
+ <columns>1</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_playlist_launch_on_startup_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>Launch on startup</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_playlist_loop_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>Loop on playlist end</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>2</top_attach>
+ <bottom_attach>3</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>playlist_enqueue_as default_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>Enqueue as default</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>1</top_attach>
+ <bottom_attach>2</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>False</xfill>
+ <yfill>False</yfill>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_playlist</name>
+ <label>Playlist</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkTable</class>
+ <name>preferences_misc_table</name>
+ <rows>1</rows>
+ <columns>1</columns>
+ <homogeneous>False</homogeneous>
+ <row_spacing>0</row_spacing>
+ <column_spacing>0</column_spacing>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>preferences_misc_associated_filesframe</name>
+ <sensitive>False</sensitive>
+ <label>Files associated with vlc</label>
+ <label_xalign>0.05</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+ <child>
+ <left_attach>0</left_attach>
+ <right_attach>1</right_attach>
+ <top_attach>0</top_attach>
+ <bottom_attach>1</bottom_attach>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <xexpand>True</xexpand>
+ <yexpand>True</yexpand>
+ <xshrink>False</xshrink>
+ <yshrink>False</yshrink>
+ <xfill>True</xfill>
+ <yfill>True</yfill>
+ </child>
+
+ <widget>
+ <class>GtkVBox</class>
+ <name>preferences_misc_associated_files_vbox</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_misc_mpeg_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>mpeg</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_misc_mp2_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>mp2</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_misc_vob_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>vob</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>preferences_misc_ts_checkbutton</name>
+ <can_focus>True</can_focus>
+ <label>ts</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>Notebook:tab</child_name>
+ <name>preferences_misc</name>
+ <label>Misc</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
</GTK-Interface>
* intf_gnome.h: private Gnome interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_gnome.h,v 1.9 2001/05/01 15:12:22 sam Exp $
+ * $Id: intf_gnome.h,v 1.10 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
*****************************************************************************/
#define GNOME_MENU_LABEL_SIZE 64
+/*****************************************************************************
+ * Inline function to retrieve the interface structure
+ *****************************************************************************/
+static __inline__ intf_thread_t * GetIntf( GtkWidget *item, char * psz_parent )
+{
+ return( gtk_object_get_data( GTK_OBJECT( lookup_widget(item, psz_parent) ),
+ "p_intf" ) );
+}
+
+
+
+
/*****************************************************************************
* intf_sys_t: description and status of Gnome interface
*****************************************************************************/
GtkWidget * p_fileopen; /* file open window */
GtkWidget * p_disc; /* disc selection window */
GtkWidget * p_network; /* network stream window */
+ GtkWidget * p_preferences; /* preferences window */
+ GtkWidget * p_jump; /* jump window */
/* The slider */
+ GtkFrame * p_slider_frame;
GtkAdjustment * p_adj; /* slider adjustment object */
float f_adj_oldvalue; /* previous value */
/* The window labels */
- GtkLabel * p_label_date;
- GtkLabel * p_label_status;
GtkLabel * p_label_title;
GtkLabel * p_label_chapter;
+ /* Playlist management */
+ int i_list_timeout;
+ int i_playing; /* playlist selected item */
+
/* input mode management */
boolean_t b_mode_changed;
gint i_intf_mode; /* interface mode: file, net, disc */
- gint i_part; /* current chapter */
+ gint i_part; /* current chapter */
/* XXX: Ugly kludge, see intf_gnome.c */
void ( *pf_gtk_callback ) ( void );
void ( *pf_gdk_callback ) ( void );
} intf_sys_t;
-
* gtk_callbacks.c : Callbacks for the Gtk+ plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_callbacks.c,v 1.15 2001/04/28 03:36:25 sam Exp $
+ * $Id: gtk_callbacks.c,v 1.16 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
return FALSE;
}
+
+void
+on_menubar_fullscreen_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_menubar_angle_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+
+}
+
on_slider_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data);
+
+void
+on_menubar_fullscreen_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
+
+void
+on_menubar_angle_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
GtkWidget *menubar_view;
GtkWidget *menubar_view_menu;
GtkAccelGroup *menubar_view_menu_accels;
+ GtkWidget *menubar_fullscreen;
+ GtkWidget *separator13;
GtkWidget *menubar_title;
GtkWidget *menubar_chapter;
+ GtkWidget *menubar_angle;
GtkWidget *separator11;
GtkWidget *menubar_playlist;
GtkWidget *menubar_modules;
GtkWidget *toolbar_playlist;
GtkWidget *toolbar_prev;
GtkWidget *toolbar_next;
- GtkWidget *hbox7;
- GtkWidget *label_date;
- GtkWidget *label_status;
- GtkWidget *label_bar;
+ GtkWidget *slider_frame;
GtkWidget *slider;
GtkWidget *intf_statusbar;
GtkAccelGroup *accel_group;
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_file)->child),
_("_File"));
gtk_widget_add_accelerator (menubar_file, "activate_item", accel_group,
- tmp_key, GDK_MOD1_MASK, 0);
+ tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0);
gtk_widget_ref (menubar_file);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file", menubar_file,
(GtkDestroyNotify) gtk_widget_unref);
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_view)->child),
_("_View"));
gtk_widget_add_accelerator (menubar_view, "activate_item", accel_group,
- tmp_key, GDK_MOD1_MASK, 0);
+ tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0);
gtk_widget_ref (menubar_view);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view", menubar_view,
(GtkDestroyNotify) gtk_widget_unref);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_view), menubar_view_menu);
menubar_view_menu_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menubar_view_menu));
+ menubar_fullscreen = gtk_check_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_fullscreen)->child),
+ _("_Fullscreen"));
+ gtk_widget_add_accelerator (menubar_fullscreen, "activate_item", menubar_view_menu_accels,
+ tmp_key, 0, 0);
+ gtk_widget_ref (menubar_fullscreen);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen", menubar_fullscreen,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (menubar_fullscreen);
+ gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_fullscreen);
+ gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (menubar_fullscreen), TRUE);
+
+ separator13 = gtk_menu_item_new ();
+ gtk_widget_ref (separator13);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator13", separator13,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (separator13);
+ gtk_container_add (GTK_CONTAINER (menubar_view_menu), separator13);
+ gtk_widget_set_sensitive (separator13, FALSE);
+
menubar_title = gtk_menu_item_new_with_label ("");
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_title)->child),
_("_Title"));
gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_chapter);
gtk_widget_set_sensitive (menubar_chapter, FALSE);
+ menubar_angle = gtk_menu_item_new_with_label ("");
+ tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_angle)->child),
+ _("An_gle"));
+ gtk_widget_add_accelerator (menubar_angle, "activate_item", menubar_view_menu_accels,
+ tmp_key, 0, 0);
+ gtk_widget_ref (menubar_angle);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_angle", menubar_angle,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (menubar_angle);
+ gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_angle);
+
separator11 = gtk_menu_item_new ();
gtk_widget_ref (separator11);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator11", separator11,
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_settings)->child),
_("_Settings"));
gtk_widget_add_accelerator (menubar_settings, "activate_item", accel_group,
- tmp_key, GDK_MOD1_MASK, 0);
+ tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0);
gtk_widget_ref (menubar_settings);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings", menubar_settings,
(GtkDestroyNotify) gtk_widget_unref);
tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_help)->child),
_("_Help"));
gtk_widget_add_accelerator (menubar_help, "activate_item", accel_group,
- tmp_key, GDK_MOD1_MASK, 0);
+ tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0);
gtk_widget_ref (menubar_help);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help", menubar_help,
(GtkDestroyNotify) gtk_widget_unref);
toolbar_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar),
GTK_TOOLBAR_CHILD_BUTTON,
NULL,
- _("Open"),
+ _("File"),
_("Open a File"), NULL,
NULL, NULL, NULL);
gtk_widget_ref (toolbar_open);
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (toolbar_next);
- hbox7 = gtk_hbox_new (TRUE, 0);
- gtk_widget_ref (hbox7);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "hbox7", hbox7,
+ slider_frame = gtk_frame_new (_("-:--:--"));
+ gtk_widget_ref (slider_frame);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame,
(GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (hbox7);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox7, TRUE, TRUE, 0);
-
- label_date = gtk_label_new (_("-:--:--"));
- gtk_widget_ref (label_date);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_date", label_date,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_date);
- gtk_box_pack_start (GTK_BOX (hbox7), label_date, FALSE, FALSE, 0);
-
- label_status = gtk_label_new (_("Status: foo"));
- gtk_widget_ref (label_status);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_status);
- gtk_box_pack_start (GTK_BOX (hbox7), label_status, FALSE, FALSE, 0);
-
- label_bar = gtk_label_new (_("Bar: baz"));
- gtk_widget_ref (label_bar);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_bar", label_bar,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (label_bar);
- gtk_box_pack_start (GTK_BOX (hbox7), label_bar, FALSE, FALSE, 0);
+ gtk_widget_show (slider_frame);
+ gtk_box_pack_start (GTK_BOX (vbox2), slider_frame, TRUE, TRUE, 0);
+ gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5);
slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
gtk_widget_ref (slider);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (slider);
- gtk_box_pack_start (GTK_BOX (vbox2), slider, TRUE, TRUE, 0);
+ gtk_container_add (GTK_CONTAINER (slider_frame), slider);
gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE);
gtk_scale_set_digits (GTK_SCALE (slider), 3);
gtk_signal_connect (GTK_OBJECT (menubar_exit), "activate",
GTK_SIGNAL_FUNC (on_menubar_exit_activate),
NULL);
+ gtk_signal_connect (GTK_OBJECT (menubar_fullscreen), "activate",
+ GTK_SIGNAL_FUNC (on_menubar_fullscreen_activate),
+ NULL);
+ gtk_signal_connect (GTK_OBJECT (menubar_angle), "activate",
+ GTK_SIGNAL_FUNC (on_menubar_angle_activate),
+ NULL);
gtk_signal_connect (GTK_OBJECT (menubar_playlist), "activate",
GTK_SIGNAL_FUNC (on_menubar_playlist_activate),
NULL);
* intf_gtk.c: Gtk+ interface
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_gtk.c,v 1.15 2001/05/01 15:12:22 sam Exp $
+ * $Id: intf_gtk.c,v 1.16 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
1, GDK_ACTION_COPY );
/* Get the interface labels */
- #define P_LABEL( name ) GTK_LABEL( gtk_object_get_data( \
- GTK_OBJECT( p_intf->p_sys->p_window ), name ) )
- p_intf->p_sys->p_label_date = P_LABEL( "label_date" );
- p_intf->p_sys->p_label_status = P_LABEL( "label_status" );
- #undef P_LABEL
+ p_intf->p_sys->p_slider_frame = GTK_FRAME( gtk_object_get_data(
+ GTK_OBJECT(p_intf->p_sys->p_window ), "slider_frame" ) );
/* Connect the date display to the slider */
#define P_SLIDER GTK_RANGE( gtk_object_get_data( \
{
#define p_intf ((intf_thread_t *)p_data)
- GtkPlayListManage( p_data );
+ GtkPlayListManage( p_data );
vlc_mutex_lock( &p_intf->change_lock );
vlc_mutex_lock( &p_intf->p_input->stream.stream_lock );
- gtk_label_set_text( p_intf->p_sys->p_label_date,
+ gtk_frame_set_label( p_intf->p_sys->p_slider_frame,
input_OffsetToTime( p_intf->p_input, psz_time,
( p_area->i_size * p_adj->value ) / 100 ) );
<class>GtkMenu</class>
<name>menubar_view_menu</name>
+ <widget>
+ <class>GtkCheckMenuItem</class>
+ <name>menubar_fullscreen</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_menubar_fullscreen_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 04:08:56 GMT</last_modification_time>
+ </signal>
+ <label>_Fullscreen</label>
+ <active>False</active>
+ <always_show_toggle>True</always_show_toggle>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator13</name>
+ <right_justify>False</right_justify>
+ </widget>
+
<widget>
<class>GtkMenuItem</class>
<name>menubar_title</name>
<right_justify>False</right_justify>
</widget>
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>menubar_angle</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_menubar_angle_activate</handler>
+ <last_modification_time>Tue, 01 May 2001 04:10:28 GMT</last_modification_time>
+ </signal>
+ <label>An_gle</label>
+ <right_justify>False</right_justify>
+ </widget>
+
<widget>
<class>GtkMenuItem</class>
<name>separator11</name>
<handler>on_toolbar_open_clicked</handler>
<last_modification_time>Sun, 04 Mar 2001 21:01:03 GMT</last_modification_time>
</signal>
- <label>Open</label>
+ <label>File</label>
</widget>
<widget>
</widget>
<widget>
- <class>GtkHBox</class>
- <name>hbox7</name>
- <homogeneous>True</homogeneous>
- <spacing>0</spacing>
+ <class>GtkHandleBox</class>
+ <name>handlebox3</name>
+ <shadow_type>GTK_SHADOW_OUT</shadow_type>
+ <handle_position>GTK_POS_LEFT</handle_position>
+ <snap_edge>GTK_POS_TOP</snap_edge>
<child>
<padding>0</padding>
<expand>True</expand>
</child>
<widget>
- <class>GtkLabel</class>
- <name>label_date</name>
+ <class>GtkFrame</class>
+ <name>slider_frame</name>
+ <visible>False</visible>
<label>-:--:--</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
- </widget>
+ <label_xalign>0.05</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
- <widget>
- <class>GtkLabel</class>
- <name>label_status</name>
- <label>Status: foo</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
+ <widget>
+ <class>GtkHScale</class>
+ <name>slider</name>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>button_release_event</name>
+ <handler>on_slider_button_release_event</handler>
+ <last_modification_time>Wed, 14 Mar 2001 15:58:36 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>button_press_event</name>
+ <handler>on_slider_button_press_event</handler>
+ <last_modification_time>Wed, 14 Mar 2001 15:58:42 GMT</last_modification_time>
+ </signal>
+ <draw_value>False</draw_value>
+ <value_pos>GTK_POS_TOP</value_pos>
+ <digits>3</digits>
+ <policy>GTK_UPDATE_CONTINUOUS</policy>
+ <value>0</value>
+ <lower>0</lower>
+ <upper>100</upper>
+ <step>1</step>
+ <page>6.25</page>
+ <page_size>0</page_size>
+ </widget>
</widget>
+ </widget>
- <widget>
- <class>GtkLabel</class>
- <name>label_bar</name>
- <label>Bar: baz</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
- <child>
- <padding>0</padding>
- <expand>False</expand>
- <fill>False</fill>
- </child>
- </widget>
+ <widget>
+ <class>Placeholder</class>
</widget>
<widget>
- <class>GtkHScale</class>
- <name>slider</name>
- <can_focus>True</can_focus>
- <signal>
- <name>button_release_event</name>
- <handler>on_slider_button_release_event</handler>
- <last_modification_time>Wed, 14 Mar 2001 15:58:36 GMT</last_modification_time>
- </signal>
- <signal>
- <name>button_press_event</name>
- <handler>on_slider_button_press_event</handler>
- <last_modification_time>Wed, 14 Mar 2001 15:58:42 GMT</last_modification_time>
- </signal>
- <draw_value>False</draw_value>
- <value_pos>GTK_POS_TOP</value_pos>
- <digits>3</digits>
- <policy>GTK_UPDATE_CONTINUOUS</policy>
- <value>0</value>
- <lower>0</lower>
- <upper>100</upper>
- <step>1</step>
- <page>6.25</page>
- <page_size>0</page_size>
- <child>
- <padding>0</padding>
- <expand>True</expand>
- <fill>True</fill>
- </child>
+ <class>Placeholder</class>
+ </widget>
+
+ <widget>
+ <class>Placeholder</class>
</widget>
<widget>
* intf_gtk.h: private Gtk+ interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_gtk.h,v 1.2 2001/05/01 15:12:22 sam Exp $
+ * $Id: intf_gtk.h,v 1.3 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
GtkWidget * p_network; /* network stream window */
/* The slider */
+ GtkFrame * p_slider_frame;
GtkAdjustment * p_adj; /* slider adjustment object */
float f_adj_oldvalue; /* previous value */
- /* The window labels */
- GtkLabel * p_label_date;
- GtkLabel * p_label_status;
-
/* XXX: Ugly kludge, see intf_gnome.c */
void ( *pf_gtk_callback ) ( void );
void ( *pf_gdk_callback ) ( void );
* input_ts.c: TS demux and netlist management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: input_ts.c,v 1.16 2001/04/28 03:36:25 sam Exp $
+ * $Id: input_ts.c,v 1.17 2001/05/06 18:32:30 stef Exp $
*
* Authors: Henri Fallon <henri@videolan.org>
*
/* input method type */
/* FIXME: should test if you have network or file here */
p_input->stream.i_method = INPUT_METHOD_NETWORK;
+ p_input->stream.p_selected_area->i_tell = 0;
/* Init */
p_stream_data = (stream_ts_data_t *)p_input->stream.p_demux_data;
"0x%.2x, should be 0x47)",
pp_packets[i_loop]->p_buffer[0] );
}
+
+ p_input->stream.p_selected_area->i_tell += i_read;
}
return 0;
}
* vout_sdl.c: SDL video output display method
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vout_sdl.c,v 1.48 2001/04/28 03:36:25 sam Exp $
+ * $Id: vout_sdl.c,v 1.49 2001/05/06 18:32:30 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Pierre Baillet <oct@zoy.org>
SDL_Surface * p_display; /* display device */
SDL_Overlay * p_overlay; /* overlay device */
- boolean_t b_fullscreen;
boolean_t b_overlay;
boolean_t b_cursor;
boolean_t b_reopen_display;
p_vout->p_sys->b_cursor_autohidden = 0;
p_vout->p_sys->i_lastmoved = mdate();
- p_vout->p_sys->b_fullscreen = main_GetIntVariable( VOUT_FULLSCREEN_VAR,
+ p_vout->b_fullscreen = main_GetIntVariable( VOUT_FULLSCREEN_VAR,
VOUT_FULLSCREEN_DEFAULT );
p_vout->p_sys->b_overlay = main_GetIntVariable( VOUT_OVERLAY_VAR,
VOUT_OVERLAY_DEFAULT );
*/
if( p_vout->i_changes & VOUT_FULLSCREEN_CHANGE )
{
- p_vout->p_sys->b_fullscreen = ! p_vout->p_sys->b_fullscreen;
+ p_vout->b_fullscreen = ! p_vout->b_fullscreen;
SDL_WM_ToggleFullScreen(p_vout->p_sys->p_display);
/* init flags and cursor */
flags = SDL_ANYFORMAT | SDL_HWPALETTE;
- if( p_vout->p_sys->b_fullscreen )
+ if( p_vout->b_fullscreen )
{
flags |= SDL_FULLSCREEN;
}
* vout_x11.c: X11 video output display method
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vout_x11.c,v 1.22 2001/04/28 03:36:25 sam Exp $
+ * $Id: vout_x11.c,v 1.23 2001/05/06 18:32:30 stef Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
/* Mouse pointer properties */
boolean_t b_mouse; /* is the mouse pointer displayed ? */
- /* Displaying fullscreen */
- boolean_t b_fullscreen;
-
} vout_sys_t;
/* Fullscreen needs to be able to hide the wm decorations */
}
p_vout->p_sys->i_screen = DefaultScreen( p_vout->p_sys->p_display );
- p_vout->p_sys->b_fullscreen
+ p_vout->b_fullscreen
= main_GetIntVariable( VOUT_FULLSCREEN_VAR, VOUT_FULLSCREEN_DEFAULT );
/* Spawn base window - this window will include the video output window,
{
XEvent xevent; /* X11 event */
boolean_t b_resized; /* window has been resized */
- boolean_t b_gofullscreen; /* user wants full-screen */
char i_key; /* ISO Latin-1 key */
KeySym x_key_symbol;
* output window's size changed, MapNotify and UnmapNotify to know if the
* window is mapped (and if the display is useful), and ClientMessages
* to intercept window destruction requests */
- b_resized = 0;
- b_gofullscreen = 0;
+ b_resized = 0;
while( XCheckWindowEvent( p_vout->p_sys->p_display, p_vout->p_sys->window,
StructureNotifyMask | KeyPressMask |
ButtonPressMask | ButtonReleaseMask |
break;
case 'f':
case 'F':
- b_gofullscreen = 1;
+ p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
break;
case '0':
network_ChannelJoin( 0 );
}
}
- if ( b_gofullscreen )
+ if ( p_vout->i_changes & VOUT_FULLSCREEN_CHANGE )
{
char *psz_display;
/* Open display, unsing 'vlc_display' or the DISPLAY
intf_DbgMsg( "vout: changing full-screen status" );
- p_vout->p_sys->b_fullscreen = !p_vout->p_sys->b_fullscreen;
+ p_vout->b_fullscreen = !p_vout->b_fullscreen;
+ p_vout->i_changes &= ~VOUT_FULLSCREEN_CHANGE;
/* Get rid of the old window */
XUnmapWindow( p_vout->p_sys->p_display, p_vout->p_sys->window );
boolean_t b_map_notify;
/* If we're full screen, we're full screen! */
- if( p_vout->p_sys->b_fullscreen )
+ if( p_vout->b_fullscreen )
{
p_vout->p_sys->i_width = DisplayWidth( p_vout->p_sys->p_display,
p_vout->p_sys->i_screen );
CWBackingStore | CWBackPixel | CWEventMask,
&xwindow_attributes );
- if ( p_vout->p_sys->b_fullscreen )
+ if ( p_vout->b_fullscreen )
{
prop = XInternAtom(p_vout->p_sys->p_display, "_MOTIF_WM_HINTS", False);
mwmhints.flags = MWM_HINTS_DECORATIONS;
CWColormap, &xwindow_attributes );
}
- if( p_vout->p_sys->b_fullscreen )
+ if( p_vout->b_fullscreen )
{
XSetInputFocus( p_vout->p_sys->p_display, p_vout->p_sys->window,
RevertToNone, CurrentTime );
* vout_xvideo.c: Xvideo video output display method
*****************************************************************************
* Copyright (C) 1998, 1999, 2000, 2001 VideoLAN
- * $Id: vout_xvideo.c,v 1.13 2001/05/01 04:18:18 sam Exp $
+ * $Id: vout_xvideo.c,v 1.14 2001/05/06 18:32:30 stef Exp $
*
* Authors: Shane Harper <shanegh@optusnet.com.au>
* Vincent Seguin <seguin@via.ecp.fr>
boolean_t b_mouse_pointer_visible;
mtime_t i_time_mouse_last_moved; /* used to auto-hide pointer*/
- /* Displaying fullscreen */
- boolean_t b_fullscreen;
-
} vout_sys_t;
/* Fullscreen needs to be able to hide the wm decorations */
}
p_vout->p_sys->i_screen = DefaultScreen( p_vout->p_sys->p_display );
- p_vout->p_sys->b_fullscreen
+ p_vout->b_fullscreen
= main_GetIntVariable( VOUT_FULLSCREEN_VAR, VOUT_FULLSCREEN_DEFAULT );
if( !XVideoCheckForXv( p_vout->p_sys->p_display ) )
static int vout_Manage( vout_thread_t *p_vout )
{
XEvent xevent; /* X11 event */
- boolean_t b_toggle_fullscreen; /* user wants full-screen */
char i_key; /* ISO Latin-1 key */
KeySym x_key_symbol;
- b_toggle_fullscreen = 0;
-
/* Handle X11 events: ConfigureNotify events are parsed to know if the
* output window's size changed, MapNotify and UnmapNotify to know if the
* window is mapped (and if the display is useful), and ClientMessages
break;
case 'f':
case 'F':
- b_toggle_fullscreen = 1;
+ p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
break;
case '0':
network_ChannelJoin( 0 );
}
}
- if ( b_toggle_fullscreen )
+ if ( p_vout->i_changes & VOUT_FULLSCREEN_CHANGE )
{
intf_DbgMsg( "vout: changing full-screen status" );
- p_vout->p_sys->b_fullscreen = !p_vout->p_sys->b_fullscreen;
+ p_vout->b_fullscreen = !p_vout->b_fullscreen;
/* Get rid of the old window */
XVideoDestroyWindow( p_vout );
/* Set main window's size */
/* If we're full screen, we're full screen! */
- if( p_vout->p_sys->b_fullscreen )
+ if( p_vout->b_fullscreen )
{
p_vout->p_sys->i_window_width = DisplayWidth( p_vout->p_sys->p_display,
p_vout->p_sys->i_screen );
CWBackPixel | CWEventMask,
&xwindow_attributes );
- if ( p_vout->p_sys->b_fullscreen )
+ if ( p_vout->b_fullscreen )
{
prop = XInternAtom(p_vout->p_sys->p_display, "_MOTIF_WM_HINTS", False);
mwmhints.flags = MWM_HINTS_DECORATIONS;
ButtonPressMask | ButtonReleaseMask |
PointerMotionMask );
- if( p_vout->p_sys->b_fullscreen )
+ if( p_vout->b_fullscreen )
{
XSetInputFocus( p_vout->p_sys->p_display, p_vout->p_sys->window,
RevertToNone, CurrentTime );
* ac3_iec958.c: ac3 to spdif converter
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: ac3_iec958.c,v 1.3 2001/05/06 04:32:02 sam Exp $
+ * $Id: ac3_iec958.c,v 1.4 2001/05/06 18:32:30 stef Exp $
*
* Authors: Stéphane Borel <stef@via.ecp.fr>
* Juha Yrjola <jyrjola@cc.hut.fi>
****************************************************************************/
void ac3_iec958_build_burst( ac3_spdif_thread_t *p_spdif )
{
- const u8 p_sync[4] = { 0x72, 0xF8, 0x1F, 0x4E };
+ const u8 p_sync[6] = { 0x72, 0xF8, 0x1F, 0x4E, 0x01, 0x00 };
int i_length = p_spdif->ac3_info.i_frame_size;
#ifndef HAVE_SWAB
/* Skip the first byte if i_length is odd */
#endif
/* Add the spdif headers */
- memcpy( p_spdif->p_iec, p_sync, 4 );
- p_spdif->p_iec[4] = i_length ? 0x01 : 0x00;
- p_spdif->p_iec[5] = 0x00;
+ memcpy( p_spdif->p_iec, p_sync, 6 );
p_spdif->p_iec[6] = ( i_length * 8 ) & 0xFF;
p_spdif->p_iec[7] = ( ( i_length * 8 ) >> 8 ) & 0xFF;
* ac3_spdif.c: ac3 pass-through to external decoder with enabled soundcard
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: ac3_spdif.c,v 1.3 2001/05/06 04:32:02 sam Exp $
+ * $Id: ac3_spdif.c,v 1.4 2001/05/06 18:32:30 stef Exp $
*
* Authors: Stéphane Borel <stef@via.ecp.fr>
* Juha Yrjola <jyrjola@cc.hut.fi>
return -1;
}
- intf_WarnMsg( 1, "spdif: aout fifo created" );
+ intf_WarnMsg( 1, "spdif: aout fifo #%d created",
+ p_spdif->p_aout_fifo->i_fifo );
/* Check stream properties */
if( ac3_iec958_parse_syncinfo( p_spdif ) < 0 )
GetChunk( &p_spdif->bit_stream, p_spdif->p_ac3 + sizeof(sync_frame_t),
p_spdif->ac3_info.i_frame_size - sizeof(sync_frame_t) );
-
- vlc_cond_signal( &p_spdif->p_aout_fifo->data_wait );
return 0;
}
ac3_iec958_build_burst( p_spdif );
vlc_mutex_lock (&p_spdif->p_aout_fifo->data_lock);
-
p_spdif->p_aout_fifo->l_end_frame =
(p_spdif->p_aout_fifo->l_end_frame + 1 ) & AOUT_FIFO_SIZE;
-
vlc_mutex_unlock (&p_spdif->p_aout_fifo->data_lock);
- /* Find syncword */
+ /* Find syncword again in case of stream discontinuity */
while( ShowBits( &p_spdif->bit_stream, 16 ) != 0xb77 )
{
RemoveBits( &p_spdif->bit_stream, 8 );
* ac3_spdif.h: header for ac3 pass-through
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: ac3_spdif.h,v 1.2 2001/05/01 04:18:18 sam Exp $
+ * $Id: ac3_spdif.h,v 1.3 2001/05/06 18:32:30 stef Exp $
*
* Authors: Stéphane Borel <stef@via.ecp.fr>
*
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
****************************************************************************/
-#define SPDIF_FRAME_SIZE 6144
-
typedef struct ac3_info_s
{
int i_bit_rate;
* aout_ext-dec.c : exported fifo management functions
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
- * $Id: aout_ext-dec.c,v 1.2 2001/05/06 04:32:02 sam Exp $
+ * $Id: aout_ext-dec.c,v 1.3 2001/05/06 18:32:30 stef Exp $
*
* Authors: Michel Kaempf <maxx@via.ecp.fr>
*
case AOUT_ADEC_MONO_FIFO:
case AOUT_ADEC_STEREO_FIFO:
+ case AOUT_ADEC_SPDIF_FIFO:
p_aout->fifo[i_fifo].b_die = 0;
p_aout->fifo[i_fifo].i_channels = i_channels;
case AOUT_ADEC_MONO_FIFO:
case AOUT_ADEC_STEREO_FIFO:
+ case AOUT_ADEC_SPDIF_FIFO:
free( p_fifo->buffer );
free( p_fifo->date );
* aout_spdif: ac3 passthrough output
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: aout_spdif.c,v 1.2 2001/05/06 04:32:02 sam Exp $
+ * $Id: aout_spdif.c,v 1.3 2001/05/06 18:32:30 stef Exp $
*
* Authors: Michel Kaempf <maxx@via.ecp.fr>
* Stéphane Borel <stef@via.ecp.fr>
#include "audio_output.h"
#include "aout_common.h"
-/* temporary blank until I've found how to build
- * a real blank iec958 data frame */
-static u8 pi_spdif_blank [] =
-{
- 0x72, 0xf8, 0x1f, 0x4e, 0x01, 0x00, 0x00, 0x30,
- 0x77, 0x0b, 0x07, 0x04, 0x40, 0x1c, 0xfc, 0xe1,
- 0xcb, 0x01, 0x7d, 0x80, 0xb2, 0xfe, 0x40, 0xe8,
- 0x06, 0x75, 0x84, 0x07, 0x14, 0x04, 0x0e, 0x14,
- 0x84, 0x83, 0x56, 0xd5, 0xbe, 0x52, 0xad, 0x5b,
- 0x27, 0xf4, 0x9f, 0xcf, 0xdf, 0x3f, 0x95, 0x6a,
- 0x86, 0x3d, 0xba, 0xa6, 0xb0, 0x67, 0xbe, 0xa1,
- 0xfd, 0x52, 0x9a, 0xd2, 0xb5, 0xcf, 0x7d, 0x5a,
- 0xf2, 0x4d, 0x4f, 0x5a, 0xf6, 0xbd, 0xfa, 0x95,
- 0xe9, 0x57, 0x3e, 0x95, 0xe9, 0x54, 0x77, 0x4d,
- 0x9e, 0x4a, 0x54, 0xd7, 0x15, 0xf6, 0xb0, 0x77,
- 0x3e, 0xdd, 0xab, 0x4c, 0xcf, 0xde, 0xc2, 0x6b,
- 0x96, 0x86, 0xf5, 0x93, 0xa1, 0x35, 0xad, 0x56,
- 0xeb, 0x5d, 0x4f, 0xea, 0xa6, 0x9d, 0xfa, 0x4a,
- 0xa7, 0x13, 0x7f, 0xe8, 0xfd, 0xb8, 0xf2, 0xf3,
- 0x9e, 0x2f, 0x73, 0xd7, 0xeb, 0x4d, 0xce, 0xf7,
- 0xa2, 0xa9, 0x0d, 0x49, 0xe7, 0x53, 0x9e, 0xcf,
- 0x7b, 0xd7, 0xfb, 0x5f, 0xab, 0x95, 0x54, 0x43,
- 0xbb, 0xf6, 0xd5, 0x9a, 0x3e, 0xdf, 0x5e, 0x73,
- 0xa7, 0x92, 0x9e, 0xca, 0x86, 0xd6, 0x33, 0xf9,
- 0x2f, 0xa7, 0xef, 0xfe, 0x28, 0xef, 0xfc, 0x3f,
- 0xf3, 0xf9, 0xcf, 0xe7, 0x20, 0x9f, 0xa8, 0x07,
- 0x00, 0x63, 0xb6, 0xd6, 0x6d, 0x0d, 0xe7, 0xa0,
- 0xd0, 0xc1, 0x1a, 0xb1, 0x35, 0xd8, 0x23, 0x47,
- 0xa5, 0x62, 0x96, 0x41, 0xd7, 0x9c, 0xe3, 0x59,
- 0x60, 0x9b, 0x15, 0xdb, 0xab, 0x03, 0x6a, 0x73,
- 0xc5, 0xd6, 0x5b, 0x8d, 0xe6, 0x5a, 0xed, 0xc0,
- 0x6c, 0x23, 0x2a, 0xb9, 0x65, 0xa7, 0xd6, 0x54,
- 0xb6, 0xb1, 0x15, 0x6c, 0x31, 0x55, 0x6d, 0xad,
- 0x07, 0x97, 0xb3, 0x11, 0x81, 0xb6, 0x14, 0x71,
- 0xd4, 0xe6, 0xda, 0xb6, 0xa8, 0x35, 0x09, 0x36,
- 0xe2, 0x85, 0x11, 0x45, 0x83, 0xad, 0x6a, 0x32,
- 0x67, 0xe1, 0xad, 0x35, 0x1b, 0xc9, 0x5a, 0x9b,
- 0x60, 0x06, 0x00, 0xf8, 0x05, 0x00, 0x00, 0x3c,
- 0x26, 0x12, 0x72, 0x05, 0xad, 0x94, 0x14, 0x8e,
- 0x07, 0x5e, 0xfb, 0x13, 0x91, 0x53, 0x83, 0x71,
- 0xad, 0x52, 0x0a, 0x87, 0xba, 0x3a, 0xf7, 0x38,
- 0x1a, 0xef, 0xa4, 0x65, 0x2e, 0x4b, 0x75, 0xeb,
- 0x52, 0x32, 0xc4, 0xaa, 0xe8, 0x83, 0xf8, 0x85,
- 0x51, 0x1d, 0x6f, 0x59, 0xea, 0xe3, 0x85, 0x07,
- 0x19, 0xb1, 0x9f, 0x6e, 0x36, 0x6a, 0x1a, 0x71,
- 0xa7, 0xec, 0x56, 0xed, 0xc8, 0x1b, 0xb6, 0xc3,
- 0xfd, 0xd0, 0x98, 0xd2, 0xa3, 0xf3, 0x5a, 0xfc,
- 0x1c, 0x5d, 0x60, 0x21, 0xc7, 0xf0, 0x08, 0x1e,
- 0x03, 0x90, 0xb1, 0xd4, 0x31, 0x18, 0xbc, 0x27,
- 0xb1, 0x6c, 0x8a, 0xf3, 0xe5, 0x68, 0x7a, 0x18,
- 0x29, 0xf0, 0xeb, 0x78, 0xdf, 0xe1, 0x3f, 0xf3,
- 0x67, 0x1b, 0xd4, 0x67, 0x20, 0x80, 0x0b, 0xb5,
- 0x6e, 0xef, 0x45, 0xbd, 0xac, 0x48, 0xe0, 0x5e,
- 0x3c, 0x6b, 0x3d, 0x7a, 0x7f, 0x38, 0xbd, 0xf1,
- 0xd3, 0x8f, 0xbf, 0xa1, 0x98, 0x50, 0xa0, 0x6a,
- 0x33, 0x5a, 0xc6, 0x2e, 0xfc, 0x8f, 0x8f, 0xcc,
- 0x58, 0xcf, 0x57, 0x22, 0xa6, 0xf7, 0x82, 0x14,
- 0x47, 0xea, 0x70, 0x81, 0x89, 0x86, 0x29, 0xb8,
- 0x83, 0xae, 0xd8, 0x5a, 0x4d, 0xb7, 0x0a, 0x24,
- 0xb5, 0xd6, 0x63, 0x4d, 0x46, 0x58, 0x79, 0xc5,
- 0x5b, 0x66, 0x2a, 0x68, 0x5b, 0x6b, 0xb9, 0x63,
- 0x6d, 0xad, 0x64, 0x92, 0xb1, 0xdb, 0xb3, 0xad,
- 0x46, 0x58, 0xcd, 0xb6, 0x48, 0x73, 0x35, 0xd6,
- 0x85, 0xc8, 0xf7, 0x68, 0xed, 0x88, 0x1a, 0x8b,
- 0x35, 0xd6, 0x23, 0xad, 0x06, 0x9b, 0x80, 0x91,
- 0x14, 0x23, 0x5a, 0x1c, 0xa9, 0x46, 0x4d, 0xb9,
- 0x8e, 0x6c, 0xa3, 0xc3, 0x5a, 0x0b, 0x5d, 0xa6,
- 0x6b, 0xad, 0xdb, 0x60, 0x26, 0x24, 0x8a, 0xb4,
- 0x20, 0x69, 0xb0, 0xd6, 0x1b, 0x2c, 0xa2, 0x60,
- 0x80, 0x0f, 0x00, 0x00, 0xe0, 0x53, 0xb4, 0x09,
- 0x0a, 0x78, 0xe4, 0xff, 0x13, 0x71, 0x56, 0xfd,
- 0x41, 0x08, 0xd7, 0x97, 0xb1, 0x43, 0x76, 0xe5,
- 0x02, 0x29, 0x40, 0xdc, 0xb2, 0xbe, 0x24, 0x72,
- 0x7e, 0xca, 0x30, 0x9d, 0x25, 0x92, 0x51, 0x73,
- 0x24, 0xfc, 0x96, 0xca, 0x5a, 0xee, 0xed, 0xf8,
- 0x65, 0x8e, 0x83, 0x94, 0xc2, 0xc2, 0x27, 0xd3,
- 0x50, 0xb1, 0xe7, 0xca, 0xcd, 0x1f, 0xd0, 0x51,
- 0x96, 0x34, 0xd0, 0x9d, 0x6a, 0xf5, 0x17, 0x45,
- 0x66, 0x48, 0x51, 0xdd, 0x69, 0x53, 0xac, 0xdc,
- 0xb1, 0xfc, 0x38, 0x79, 0x1b, 0x2a, 0xc1, 0xc8,
- 0x66, 0x01, 0xb5, 0xa1, 0x10, 0x89, 0x83, 0x59,
- 0xd6, 0xa6, 0x99, 0x66, 0x97, 0x60, 0xa4, 0x5e,
- 0x90, 0xdc, 0xf3, 0xb7, 0xa0, 0xc0, 0x54, 0xc8,
- 0xc5, 0x72, 0xf4, 0x65, 0x3c, 0xb9, 0x82, 0xa6,
- 0xa4, 0x99, 0x4b, 0xa0, 0x3b, 0xfa, 0x3f, 0x29,
- 0xfe, 0x00, 0x29, 0x77, 0xcc, 0xd3, 0x7a, 0x20,
- 0xc2, 0x38, 0xbe, 0xba, 0xdf, 0x35, 0x03, 0xbc,
- 0x01, 0xd1, 0x99, 0x5a, 0x65, 0x10, 0x2b, 0xac,
- 0xca, 0xf9, 0x0a, 0x87, 0x6e, 0x73, 0xe2, 0x20,
- 0x2e, 0x83, 0xe2, 0x4f, 0x32, 0x43, 0x6d, 0xb3,
- 0xb5, 0x36, 0x6b, 0xa5, 0xd6, 0x5a, 0xaa, 0xdd,
- 0x48, 0x6b, 0xb4, 0x76, 0x70, 0xea, 0x02, 0x63,
- 0xb6, 0x69, 0x06, 0xdb, 0x83, 0xb8, 0x6c, 0x60,
- 0x91, 0xa6, 0xa1, 0x47, 0x5a, 0x6b, 0x39, 0xdb,
- 0x69, 0xad, 0xd6, 0x18, 0x4a, 0xa9, 0x6c, 0x23,
- 0x88, 0x84, 0x36, 0xef, 0xe5, 0xda, 0xca, 0xba,
- 0x42, 0x70, 0xb1, 0xd6, 0x69, 0x8d, 0xc8, 0xda,
- 0x99, 0x29, 0x2e, 0xb7, 0x5c, 0x2e, 0xdd, 0xc6,
- 0x22, 0x99, 0x28, 0x5e, 0x4a, 0x41, 0x88, 0x6a,
- 0xa8, 0xe6, 0x7a, 0x90, 0x6a, 0x78, 0xd6, 0x9a,
- 0x84, 0x35, 0x86, 0x83, 0x36, 0x76, 0x40, 0x04,
- 0x00, 0xf8, 0x05, 0x00, 0x00, 0x40, 0x92, 0xee,
- 0x7b, 0xa1, 0xc8, 0xcf, 0x0b, 0x55, 0x6b, 0x30,
- 0xb5, 0x7b, 0x55, 0x72, 0x58, 0x74, 0x69, 0xf9,
- 0xd6, 0x9f, 0x89, 0x21, 0x0d, 0x5b, 0x90, 0x48,
- 0xde, 0x08, 0x65, 0xd4, 0x2b, 0x08, 0xe1, 0x22,
- 0xd0, 0xbd, 0xe9, 0x93, 0xb1, 0x80, 0x59, 0x83,
- 0xaa, 0xb7, 0x13, 0x57, 0x9f, 0xbf, 0xf8, 0x6c,
- 0x6d, 0xf9, 0xe6, 0x22, 0xf5, 0xc7, 0xc0, 0xdc,
- 0x17, 0x84, 0x63, 0xf8, 0xb3, 0x94, 0xb1, 0xd5,
- 0xa9, 0x56, 0x87, 0xd4, 0xd8, 0x2a, 0xc8, 0x56,
- 0x23, 0x70, 0x52, 0xb8, 0x66, 0x8b, 0x06, 0x5f,
- 0x84, 0xd5, 0xc6, 0xa6, 0x5a, 0xb1, 0x6f, 0xef,
- 0xcd, 0x7f, 0xe2, 0x9a, 0xb9, 0x9f, 0xff, 0x08,
- 0xff, 0x73, 0xa7, 0x99, 0x7f, 0x57, 0xb7, 0xa8,
- 0x19, 0xad, 0x11, 0x9c, 0xad, 0xd5, 0x97, 0xd3,
- 0x1a, 0x2e, 0x25, 0xa9, 0x42, 0x1d, 0x9e, 0x82,
- 0x05, 0xfa, 0xe0, 0xbf, 0x40, 0x2b, 0xce, 0xba,
- 0xd7, 0x0d, 0x44, 0xdb, 0xa7, 0x00, 0x27, 0x7d,
- 0x91, 0x66, 0x51, 0xfe, 0x75, 0xa0, 0xa4, 0xc4,
- 0x33, 0x0b, 0x04, 0x2c, 0xa8, 0x07, 0x4c, 0x94,
- 0xba, 0xf4, 0x60, 0x61, 0x41, 0x34, 0xb6, 0xc6,
- 0x6b, 0xad, 0xc3, 0x18, 0xa4, 0x91, 0x5a, 0x6b,
- 0xc1, 0xa6, 0x69, 0xa4, 0xda, 0x5a, 0xd7, 0xb2,
- 0x93, 0x68, 0x36, 0xad, 0x19, 0x73, 0x4a, 0x1b,
- 0x63, 0x6e, 0x3b, 0x4e, 0xb5, 0x66, 0x5c, 0xa9,
- 0x36, 0x6c, 0x89, 0xb4, 0x54, 0x73, 0x36, 0xd5,
- 0xa6, 0xc6, 0xf6, 0x31, 0x44, 0x8d, 0x5a, 0x53,
- 0x58, 0xdb, 0x9b, 0x6a, 0xe2, 0x62, 0xcd, 0x36,
- 0xa3, 0x22, 0x1b, 0x63, 0xc5, 0x35, 0xad, 0xb0,
- 0x75, 0xb0, 0xa3, 0xa5, 0x5a, 0x73, 0x35, 0xa7,
- 0x69, 0xad, 0x0b, 0x0f, 0xd5, 0xc0, 0xcd, 0x36,
- 0x5a, 0x6b, 0x39, 0xa6, 0x2b, 0xab, 0xf4, 0x5b,
- 0x80, 0x0f, 0x00, 0x00, 0xe0, 0x53, 0x6e, 0x14,
- 0xd2, 0xf1, 0xc9, 0x82, 0x52, 0xf6, 0xdc, 0xc4,
- 0x5a, 0xe1, 0x6e, 0x28, 0xfe, 0x30, 0xa3, 0xbb,
- 0x56, 0x83, 0x82, 0x4c, 0x37, 0xf6, 0x12, 0x29,
- 0xd7, 0x87, 0x38, 0x1f, 0xec, 0x55, 0xfa, 0x1c,
- 0xcc, 0x1e, 0x5e, 0x30, 0x2d, 0x00, 0x4a, 0x67,
- 0x45, 0x38, 0xe4, 0xcf, 0xeb, 0x44, 0x32, 0x78,
- 0x34, 0xa4, 0x1b, 0x0e, 0x35, 0x34, 0x63, 0xdf,
- 0xa6, 0xb2, 0x92, 0xba, 0xfc, 0x7d, 0x4d, 0xad,
- 0xad, 0x53, 0xba, 0xe5, 0x30, 0x52, 0xbf, 0x31,
- 0x39, 0x57, 0x42, 0x9f, 0xc0, 0x80, 0x89, 0x1c,
- 0x39, 0xed, 0x7b, 0xb7, 0x1c, 0x5a, 0xfc, 0x9d,
- 0xbe, 0xe5, 0x14, 0x7e, 0xd5, 0xad, 0xc8, 0x65,
- 0xb7, 0x70, 0x3e, 0x83, 0x1a, 0x6c, 0x3c, 0xc4,
- 0x35, 0x9e, 0xc8, 0x36, 0xdc, 0xa4, 0x09, 0xc9,
- 0x07, 0x1e, 0xe3, 0x68, 0x0b, 0x88, 0x5e, 0x24,
- 0x9e, 0x00, 0x7e, 0x09, 0xd6, 0xc5, 0x2b, 0x06,
- 0x89, 0xb5, 0x8a, 0x48, 0x0d, 0xae, 0x81, 0x9e,
- 0x18, 0xad, 0x36, 0xf6, 0xa1, 0xf0, 0x70, 0x7d,
- 0x1d, 0x57, 0x53, 0x02, 0xe1, 0xbd, 0xc7, 0xf2,
- 0x85, 0x43, 0xf1, 0xdc, 0xdf, 0x06, 0x18, 0xb3,
- 0x2a, 0xc7, 0x2b, 0x0d, 0xd6, 0x18, 0xad, 0xbd,
- 0x9a, 0x82, 0x35, 0x5b, 0x73, 0xad, 0xcc, 0x5a,
- 0xb6, 0xb5, 0x1b, 0xd5, 0x70, 0xb5, 0x94, 0xb2,
- 0xd8, 0x46, 0x15, 0xf9, 0x5a, 0x8c, 0xd9, 0xd6,
- 0x25, 0xad, 0xf4, 0x9a, 0xad, 0xa9, 0x48, 0x6b,
- 0xd6, 0x8b, 0xc4, 0xca, 0x02, 0xdd, 0xc4, 0x3a,
- 0x1a, 0x81, 0x92, 0xc6, 0x1b, 0xcd, 0xe7, 0x5a,
- 0xb6, 0x31, 0xad, 0x31, 0x32, 0xb4, 0x9d, 0xd6,
- 0x10, 0x07, 0xa4, 0x91, 0xad, 0xd9, 0x9a, 0x62,
- 0xb5, 0xd6, 0x82, 0xad, 0x83, 0x4d, 0x62, 0x49,
- 0xad, 0x29, 0x9a, 0x6d, 0x29, 0xa7, 0x60, 0xbd,
- 0x00, 0xf8, 0x05, 0x00, 0x00, 0x3a, 0xec, 0x5b,
- 0x6c, 0xeb, 0x2f, 0x28, 0xed, 0x61, 0x82, 0x7e,
- 0xee, 0x10, 0x49, 0x40, 0xd0, 0xda, 0xe3, 0x4a,
- 0xf7, 0x9f, 0xac, 0x7f, 0xbf, 0x3c, 0x08, 0xbe,
- 0x86, 0x93, 0x57, 0xe7, 0xb2, 0x84, 0xf7, 0xda,
- 0xa1, 0xf0, 0x4a, 0x76, 0xb0, 0xb7, 0xae, 0x9e,
- 0x40, 0xb6, 0x84, 0x2f, 0xb4, 0xd0, 0x2d, 0x08,
- 0x6a, 0xe5, 0x06, 0x0e, 0xc0, 0xd2, 0x74, 0x1c,
- 0x1a, 0x7b, 0xd3, 0x16, 0xd7, 0xbc, 0x83, 0xd8,
- 0x53, 0x78, 0xe4, 0x46, 0xf2, 0x8f, 0x59, 0x3d,
- 0x14, 0xde, 0x3e, 0x9f, 0x16, 0x49, 0xf8, 0x49,
- 0x5d, 0xad, 0xe3, 0x1c, 0x44, 0xeb, 0x5e, 0xfd,
- 0x2d, 0xe1, 0xcc, 0xc4, 0x79, 0x73, 0x8d, 0x58,
- 0x87, 0x7e, 0x00, 0x94, 0xb6, 0xe4, 0x85, 0x5c,
- 0x67, 0x84, 0x7a, 0x8d, 0xfb, 0x3f, 0x43, 0x06,
- 0xd0, 0xf3, 0x3d, 0xac, 0x46, 0x80, 0xcb, 0x5a,
- 0xc1, 0xc9, 0x49, 0xf5, 0x9d, 0xaa, 0x18, 0x57,
- 0x38, 0x07, 0x9b, 0x65, 0xf8, 0xbd, 0x2f, 0xfa,
- 0x3a, 0xad, 0x34, 0xfc, 0x5c, 0xb7, 0x0f, 0x47,
- 0xc2, 0xba, 0x19, 0xba, 0xca, 0x99, 0xb5, 0x3a,
- 0xd2, 0x2e, 0x26, 0x89, 0xcd, 0xb5, 0x54, 0x8b,
- 0x35, 0x43, 0x6b, 0xca, 0x1b, 0x4e, 0x8d, 0x58,
- 0x5b, 0x53, 0x05, 0x36, 0xb9, 0xa2, 0x69, 0x1a,
- 0x6b, 0x4d, 0x42, 0x5c, 0xa7, 0xaa, 0x4f, 0x39,
- 0xd7, 0x7a, 0x6a, 0x29, 0x61, 0x6b, 0x36, 0x0b,
- 0xb3, 0x0d, 0x62, 0x5b, 0xab, 0xd9, 0x91, 0x3c,
- 0x6d, 0x44, 0x63, 0x84, 0xc6, 0x48, 0x75, 0xb2,
- 0x48, 0x6d, 0xd9, 0xd6, 0x64, 0xcd, 0x82, 0x1c,
- 0xa2, 0xa8, 0xca, 0x29, 0x16, 0x4a, 0xd2, 0x8d,
- 0x6b, 0x29, 0xc7, 0x1a, 0xcd, 0x35, 0x5a, 0x74,
- 0x54, 0xa7, 0x29, 0x42, 0x6b, 0xb6, 0xa8, 0x9a,
- 0xa1, 0x31, 0x03, 0x81, 0x00, 0x96, 0x2a, 0x60,
-};
+#define BLANK_FRAME_MAX 1000
/*****************************************************************************
* aout_SpdifThread: audio output thread that sends raw spdif data
* to an external decoder
*****************************************************************************
- * This output thread is quite specific as it can only handle one fifo.
- * Now fifo #0 is hardcoded, but when the output is launched by the decoder,
- * we'll be able to associate the related fifo to this output.
+ * This output thread is quite specific as it can only handle one fifo now.
*
- * Note: all this is wrong: spdif can demux up to 8 ac3 streams, and can
- * even take care of time stamps (cf ac3 spec).
+ * Note: spdif can demux up to 8 ac3 streams, and can even take
+ * care of time stamps (cf ac3 spec).
*****************************************************************************/
void aout_SpdifThread( aout_thread_t * p_aout )
{
- u8 * pi_blank;
- boolean_t b_have_data;
- mtime_t date;
+ u8 pi_spdif_blank [9] =
+ { 0x72, 0xf8, 0x1f, 0x4e, 0x01, 0x00, 0x08, 0x00, 0x77 };
+ u8 pi_blank[SPDIF_FRAME_SIZE];
+ int i_fifo;
+ int i_frame;
+ int i_blank;
- /* when the output is launched from the decoder,
- * we won't have to use a hardcoded value for frame size */
- pi_blank = malloc( 6144/*p_aout->fifo[0].l_frame_size*/ );
+ /* get a blank frame ready */
memset( pi_blank, 0, sizeof(pi_blank) );
memcpy( pi_blank, pi_spdif_blank, sizeof(pi_spdif_blank) );
+
+ intf_WarnMsg( 1, "aout info: starting spdif output loop" );
+
+ /* variable used to compute the nnumber of blank frames since the
+ * last significant frame */
+ i_blank = 0;
- /* the thread wait until there is some data is aout fifo */
- vlc_mutex_lock( &p_aout->fifo[0].data_lock);
- vlc_cond_wait( &p_aout->fifo[0].data_wait,
- &p_aout->fifo[0].data_lock);
- vlc_mutex_unlock (&p_aout->fifo[0].data_lock);
-
- date = mdate();
while( !p_aout->b_die )
{
- /* we leave some time for aout fifo to fill */
- msleep( 20000 );
+ /* we leave some time for aout fifo to fill and not to stress
+ * the external decoder too much */
+ msleep( 10000 );
- vlc_mutex_lock( &p_aout->fifo[0].data_lock );
- b_have_data = !AOUT_FIFO_ISEMPTY( p_aout->fifo[0] );
- vlc_mutex_unlock (&p_aout->fifo[0].data_lock);
+ /* variable to check that we send data to the decoder
+ * once per loop at least */
+ i_frame = 0;
- if( b_have_data )
+ /* FIXME: find a way to hnadle the locks here */
+ for( i_fifo = 0 ; i_fifo < AOUT_MAX_FIFOS ; i_fifo++ )
{
- /* play spdif frame to the external decoder */
- date = mdate();
- p_aout->pf_play( p_aout,
- p_aout->fifo[0].buffer +
- p_aout->fifo[0].l_frame_size *
- p_aout->fifo[0].l_start_frame,
- p_aout->fifo[0].l_frame_size );
-
- vlc_mutex_lock( &p_aout->fifo[0].data_lock);
- p_aout->fifo[0].l_start_frame =
- (p_aout->fifo[0].l_start_frame + 1 ) & AOUT_FIFO_SIZE;
- vlc_mutex_unlock (&p_aout->fifo[0].data_lock);
+ /* the loop read each fifo so that we can change the stream
+ * on the fly but mulitplexing is not handled yet so
+ * the sound will be broken is more than one fifo has data */
+ /* TODO: write the muliplexer :) */
+ if( p_aout->fifo[i_fifo].i_type == AOUT_ADEC_SPDIF_FIFO )
+ {
+// vlc_mutex_lock( &p_aout->fifo[i_fifo].data_lock );
+ if( p_aout->fifo[i_fifo].b_die )
+ {
+// vlc_mutex_unlock( &p_aout->fifo[i_fifo].data_lock );
+ aout_FreeFifo( &p_aout->fifo[i_fifo] );
+ }
+ else if( !AOUT_FIFO_ISEMPTY( p_aout->fifo[i_fifo] ) )
+ {
+ vlc_mutex_unlock( &p_aout->fifo[i_fifo].data_lock );
+ /* play spdif frame to the external decoder */
+ p_aout->pf_play( p_aout,
+ p_aout->fifo[i_fifo].buffer +
+ p_aout->fifo[i_fifo].l_start_frame*
+ SPDIF_FRAME_SIZE,
+ p_aout->fifo[i_fifo].l_frame_size );
+
+// vlc_mutex_lock( &p_aout->fifo[i_fifo].data_lock );
+ p_aout->fifo[i_fifo].l_start_frame =
+ (p_aout->fifo[i_fifo].l_start_frame + 1 )
+ & AOUT_FIFO_SIZE;
+// vlc_mutex_unlock( &p_aout->fifo[i_fifo].data_lock );
+
+ i_frame++;
+ i_blank = 0;
+ }
+ }
}
- else
+ if( !i_frame )
{
- intf_WarnMsg( 2, "spdif warning: waiting (%lld)",
- p_aout->fifo[0].date[p_aout->fifo[0].l_start_frame-1] - date );
-
- date = mdate();
/* insert blank frame for stream continuity to
* the external decoder */
- p_aout->pf_play( p_aout, pi_blank, p_aout->fifo[0].l_frame_size );
+ p_aout->pf_play( p_aout, pi_blank, SPDIF_FRAME_SIZE );
+
+ /* we kill the output if we don't have any stream */
+ if( ++i_blank > BLANK_FRAME_MAX )
+ {
+ p_aout->b_die = 1;
+ }
}
}
+
+ intf_WarnMsg( 2, "aout info: exiting spdif loop" );
return;
}
* decoders.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: input.c,v 1.105 2001/05/01 12:22:18 sam Exp $
+ * $Id: input.c,v 1.106 2001/05/06 18:32:30 stef Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
void input_NetworkOpen( input_thread_t * p_input )
{
char *psz_server = NULL;
+ char *psz_broadcast = NULL;
int i_port = 0;
int i_opt;
struct sockaddr_in sock;
- char * psz_broadcast;
-
- /* Are we broadcasting ? */
- psz_broadcast = main_GetPszVariable( INPUT_BROADCAST_VAR, NULL );
/* Get the remote server */
if( p_input->p_source != NULL )
*psz_port = '\0';
psz_port++;
- i_port = atoi( psz_port );
+ psz_broadcast = psz_port;
+ while( *psz_broadcast && *psz_broadcast != ':' )
+ {
+ psz_broadcast++;
+ }
+
+ if( *psz_broadcast )
+ {
+ *psz_broadcast = '\0';
+ psz_broadcast++;
+ while( *psz_broadcast && *psz_broadcast == ':' )
+ {
+ psz_broadcast++;
+ }
+ }
+ else
+ {
+ psz_broadcast = NULL;
+ }
+
+ /* port before broadcast address */
+ if( *psz_port != ':' )
+ {
+ i_port = atoi( psz_port );
+ }
}
}
else
{
i_port = main_GetIntVariable( INPUT_PORT_VAR, INPUT_PORT_DEFAULT );
}
-
+
+ if( psz_broadcast == NULL )
+ {
+ /* Are we broadcasting ? */
+ psz_broadcast = main_GetPszVariable( INPUT_BROADCAST_VAR, NULL );
+ }
+
+ intf_WarnMsg( 2, "input: server: %s port: %d broadcast: %s",
+ psz_server, i_port, psz_broadcast );
+
/* Open a SOCK_DGRAM (UDP) socket, in the AF_INET domain, automatic (0)
* protocol */
p_input->i_handle = socket( AF_INET, SOCK_DGRAM, 0 );
* thread, and destroy a previously oppened video output thread.
*****************************************************************************
* Copyright (C) 2000 VideoLAN
- * $Id: video_output.c,v 1.123 2001/05/06 04:32:02 sam Exp $
+ * $Id: video_output.c,v 1.124 2001/05/06 18:32:30 stef Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
*
p_vout->i_height = main_GetIntVariable( VOUT_HEIGHT_VAR,
VOUT_HEIGHT_DEFAULT );
p_vout->i_bytes_per_line = p_vout->i_width * 2;
- p_vout->i_screen_depth = 15;
+ p_vout->i_screen_depth = main_GetIntVariable( VOUT_DEPTH_VAR,
+ VOUT_DEPTH_DEFAULT );
p_vout->i_bytes_per_pixel = 2;
- p_vout->f_gamma = VOUT_GAMMA;
+ p_vout->f_gamma = VOUT_GAMMA_DEFAULT; // FIXME: replace with
+ // variable
p_vout->b_need_render = 1;
p_vout->b_YCbr = 0;
p_vout->b_info = 0;
p_vout->b_interface = 0;
p_vout->b_scale = 1;
+ p_vout->b_fullscreen = main_GetIntVariable( VOUT_FULLSCREEN_VAR,
+ VOUT_FULLSCREEN_DEFAULT );
intf_WarnMsg( 1, "wished configuration: %dx%d, %d/%d bpp (%d Bpl)",
p_vout->i_width, p_vout->i_height, p_vout->i_screen_depth,