0.5.0
Not released yet
+ * ./src/playlist/playlist.c: lots of playlist behaviour enhancements.
+ * ./src/misc/objects.c: we do not hang on attempt to destroy an object with
+ a non-zero reference count, but we still complain.
+ * ./plugins/gtk/gtk_control.c, plugins/gtk/gtk_playlist.c: most controls such
+ as play, pause, stop, next, fast etc. work again.
+ * ./plugins/gtk/gnome_*: got rid of lots of useless wrappers which were a
+ workaround for a bug in Glade. Instead, bootstrap.sh does the Glade fixes.
+ * ./plugins/ffmpeg/ffmpeg.c: if there is already a video output with the
+ appropriate properties, we use it.
+ * ./Makefile: minor fix for the BeOS' make-package (icon loss).
+ * ./plugins/spudec/spu_decoder.c: release vout when we close spudec.
+ * ./plugins/ac3_spdif/ac3_spdif.c: only report initiliazation error when it
+ is really an error.
+ * ./include/video_output.h: added mouse coordinates to vout struct.
+ * ./plugins/mpeg_vdec/video_parser.c: check that p_vpar->p_vout is available
+ before detaching it.
* ./plugins/gtk/gtk_callbacks.c: fixed a segfault when switching to
fullscreen from the popup menu.
* ./src/interface/interface.c: interfaces are no longer attached only to
#! /bin/sh
## bootstrap.sh file for vlc, the VideoLAN Client
-## $Id: bootstrap.sh,v 1.3 2002/06/01 17:11:41 sam Exp $
+## $Id: bootstrap.sh,v 1.4 2002/06/07 14:30:40 sam Exp $
##
## Authors: Samuel Hocevar <sam@zoy.org>
| sed 's#_("--")#"--"#' \
| sed 's#_("/dev/dvd")#"/dev/dvd"#' \
| sed 's#_(\("./."\))#\1#' \
+ | sed 's/_GLADE_SUX_\([^,]*\), NULL/, "\1"/' \
>> /tmp/$$.$file.bak
mv -f /tmp/$$.$file.bak plugins/gtk/$file
fi
* vlc_playlist.h : Playlist functions
*****************************************************************************
* Copyright (C) 1999, 2000, 2001, 2002 VideoLAN
- * $Id: playlist.h,v 1.5 2002/06/04 00:11:12 sam Exp $
+ * $Id: playlist.h,v 1.6 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
{
VLC_COMMON_MEMBERS
- /* Thread properties and lock */
- vlc_mutex_t change_lock;
-
int i_index; /* current index */
+ int i_status;
int i_size; /* total size */
- playlist_item_t ** pp_items;
- int i_status;
+ playlist_item_t ** pp_items;
input_thread_t * p_input;
};
/* Used by playlist_Add */
-#define PLAYLIST_START 0
+#define PLAYLIST_INSERT 0x0001
+#define PLAYLIST_REPLACE 0x0002
+#define PLAYLIST_APPEND 0x0004
+#define PLAYLIST_GO 0x0008
+
#define PLAYLIST_END -1
/* Playlist parsing mode */
#define playlist_Goto(p,i) playlist_Command(p,PLAYLIST_GOTO,i)
VLC_EXPORT( void, playlist_Command, ( playlist_t *, int, int ) );
-VLC_EXPORT( int, playlist_Add, ( playlist_t *, int, const char * ) );
+VLC_EXPORT( int, playlist_Add, ( playlist_t *, const char *, int, int ) );
VLC_EXPORT( int, playlist_Delete, ( playlist_t *, int ) );
* vlc.h: global header for vlc
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: vlc.h,v 1.2 2002/06/02 13:38:03 gbazin Exp $
+ * $Id: vlc.h,v 1.3 2002/06/07 14:30:40 sam Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
vlc_error_t vlc_destroy ( vlc_t * );
vlc_error_t vlc_add_intf ( vlc_t *, char *, vlc_bool_t );
-vlc_error_t vlc_add_target ( vlc_t *, char * );
+vlc_error_t vlc_add_target ( vlc_t *, char *, int, int );
vlc_status_t vlc_status ( vlc_t * );
* vlc_objects.h: vlc_object_t definition.
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: vlc_objects.h,v 1.2 2002/06/02 09:03:53 sam Exp $
+ * $Id: vlc_objects.h,v 1.3 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
#define VLC_OBJECT_MODULE (-2)
#define VLC_OBJECT_INTF (-3)
#define VLC_OBJECT_PLAYLIST (-4)
-#define VLC_OBJECT_INPUT (-5)
-#define VLC_OBJECT_DECODER (-6)
-#define VLC_OBJECT_VOUT (-7)
-#define VLC_OBJECT_AOUT (-8)
+#define VLC_OBJECT_ITEM (-5)
+#define VLC_OBJECT_INPUT (-6)
+#define VLC_OBJECT_DECODER (-7)
+#define VLC_OBJECT_VOUT (-8)
+#define VLC_OBJECT_AOUT (-9)
#define VLC_OBJECT_PRIVATE (-666)
/* Object search mode */
int (* __network_ChannelJoin_inner) ( vlc_object_t *, int ) ;
int (* __network_ChannelCreate_inner) ( vlc_object_t * ) ;
void (* playlist_Command_inner) ( playlist_t *, int, int ) ;
- int (* playlist_Add_inner) ( playlist_t *, int, const char * ) ;
+ int (* playlist_Add_inner) ( playlist_t *, const char *, int, int ) ;
int (* playlist_Delete_inner) ( playlist_t *, int ) ;
vout_thread_t * (* __vout_CreateThread_inner) ( vlc_object_t *, int, int, u32, int ) ;
void (* vout_DestroyThread_inner) ( vout_thread_t * ) ;
* avi.c : AVI file Stream input module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: avi.c,v 1.21 2002/06/01 12:31:58 sam Exp $
+ * $Id: avi.c,v 1.22 2002/06/07 14:30:40 sam Exp $
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
return( -1 );
}
p_input->stream.p_selected_program = p_input->stream.pp_programs[0];
- p_input->stream.p_new_program = p_input->stream.pp_programs[0] ;
p_input->stream.i_mux_rate = p_avi_demux->avih.i_maxbytespersec / 50;
vlc_mutex_unlock( &p_input->stream.stream_lock );
* ffmpeg.c: video decoder using ffmpeg library
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: ffmpeg.c,v 1.12 2002/06/01 18:04:48 sam Exp $
+ * $Id: ffmpeg.c,v 1.13 2002/06/07 14:30:40 sam Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
p_vdec->psz_namecodec );
}
- /* create vout */
- p_vdec->p_vout = vout_CreateThread( p_vdec->p_fifo,
- p_vdec->format.i_width,
- p_vdec->format.i_height,
- FOURCC_I420,
- VOUT_ASPECT_FACTOR * p_vdec->format.i_width /
- p_vdec->format.i_height );
-
+ /* Spawn a video output if there is none. First we look for our children,
+ * then we look for any other vout that might be available. */
+ p_vdec->p_vout = vlc_object_find( p_vdec->p_fifo, VLC_OBJECT_VOUT,
+ FIND_CHILD );
if( p_vdec->p_vout == NULL )
{
- msg_Err( p_vdec->p_fifo, "cannot open vout, aborting" );
- avcodec_close( p_vdec->p_context );
- msg_Dbg( p_vdec->p_fifo, "ffmpeg codec (%s) stopped",
- p_vdec->psz_namecodec );
- return -1;
+ p_vdec->p_vout = vlc_object_find( p_vdec->p_fifo, VLC_OBJECT_VOUT,
+ FIND_ANYWHERE );
+ }
+
+ if( p_vdec->p_vout )
+ {
+ if( p_vdec->p_vout->render.i_width != p_vdec->format.i_width
+ || p_vdec->p_vout->render.i_height != p_vdec->format.i_height
+ || p_vdec->p_vout->render.i_chroma != FOURCC_I420
+ || p_vdec->p_vout->render.i_aspect != VOUT_ASPECT_FACTOR
+ * p_vdec->format.i_width / p_vdec->format.i_height )
+ {
+ /* We are not interested in this format, close this vout */
+ vlc_object_detach_all( p_vdec->p_vout );
+ vlc_object_release( p_vdec->p_vout );
+ vout_DestroyThread( p_vdec->p_vout );
+ p_vdec->p_vout = NULL;
+ }
+ else
+ {
+ /* This video output is cool! Hijack it. */
+ vlc_object_detach_all( p_vdec->p_vout );
+ vlc_object_attach( p_vdec->p_vout, p_vdec->p_fifo );
+ vlc_object_release( p_vdec->p_vout );
+ }
}
- vlc_object_yield( p_vdec->p_vout );
+ if( p_vdec->p_vout == NULL )
+ {
+ msg_Dbg( p_vdec->p_fifo, "no vout present, spawning one" );
+
+ p_vdec->p_vout = vout_CreateThread( p_vdec->p_fifo,
+ p_vdec->format.i_width,
+ p_vdec->format.i_height,
+ FOURCC_I420,
+ VOUT_ASPECT_FACTOR * p_vdec->format.i_width /
+ p_vdec->format.i_height );
+
+ /* Everything failed */
+ if( p_vdec->p_vout == NULL )
+ {
+ msg_Err( p_vdec->p_fifo, "cannot open vout, aborting" );
+ avcodec_close( p_vdec->p_context );
+ p_vdec->p_fifo->b_error = 1;
+ return -1;
+ }
+ }
return( 0 );
}
p_vdec->psz_namecodec );
}
- vlc_object_release( p_vdec->p_vout );
- vout_DestroyThread( p_vdec->p_vout );
+ if( p_vdec->p_vout != NULL )
+ {
+ /* We are about to die. Reattach video output to p_vlc. */
+ vlc_object_detach( p_vdec->p_vout, p_vdec->p_fifo );
+ vlc_object_attach( p_vdec->p_vout, p_vdec->p_fifo->p_vlc );
+ }
free( p_vdec );
}
* gnome.c : Gnome plugin for vlc
*****************************************************************************
* Copyright (C) 2000 VideoLAN
- * $Id: gnome.c,v 1.26 2002/06/02 09:03:54 sam Exp $
+ * $Id: gnome.c,v 1.27 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
*****************************************************************************/
static void intf_Close( intf_thread_t *p_intf )
{
+ if( p_intf->p_sys->p_input )
+ {
+ vlc_object_release( p_intf->p_sys->p_input );
+ }
+
msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );
/* Destroy structure */
/* 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_playlist = create_intf_playlist();
+ p_intf->p_sys->p_playwin = create_intf_playlist();
p_intf->p_sys->p_messages = create_intf_messages();
/* Set the title of the main window */
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") ),
+ p_intf->p_sys->p_playwin ), "playlist_clist") ),
GTK_DEST_DEFAULT_ALL, target_table,
1, GDK_ACTION_COPY );
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_playlist ),
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playwin ),
"p_intf", p_intf );
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_messages ),
<tooltip>Open a File</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarFileOpenActivate</handler>
+ <handler>GtkFileOpenShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:27:02 GMT</last_modification_time>
</signal>
<label>_Open File...</label>
<tooltip>Open a DVD or VCD</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarDiscOpenActivate</handler>
+ <handler>GtkDiscOpenShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:27:10 GMT</last_modification_time>
</signal>
<label>Open _Disc...</label>
<tooltip>Select a Network Stream</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarNetworkOpenActivate</handler>
+ <handler>GtkNetworkOpenShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Fri, 21 Dec 2001 13:11:28 GMT</last_modification_time>
</signal>
<label>_Network Stream...</label>
<tooltip>Eject disc</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarDiscEjectActivate</handler>
+ <handler>GtkDiscEject_GLADE_SUX_intf_window</handler>
<last_modification_time>Fri, 21 Dec 2001 13:11:28 GMT</last_modification_time>
</signal>
<label>_Eject Disc</label>
<name>menubar_exit</name>
<signal>
<name>activate</name>
- <handler>GnomeMenubarExitActivate</handler>
+ <handler>GtkExit_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:27:52 GMT</last_modification_time>
</signal>
<stock_item>GNOMEUIINFO_MENU_EXIT_ITEM</stock_item>
<name>menubar_hide_interface</name>
<signal>
<name>activate</name>
- <handler>GnomeMenubarWindowToggleActivate</handler>
+ <handler>GtkWindowToggle_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:28:06 GMT</last_modification_time>
</signal>
<label>_Hide interface</label>
<name>menubar_fullscreen</name>
<signal>
<name>activate</name>
- <handler>GnomeMenubarFullscreenActivate</handler>
+ <handler>GtkFullscreen_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:28:15 GMT</last_modification_time>
</signal>
<label>_Fullscreen</label>
<tooltip>Open the playlist window</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarPlaylistActivate</handler>
+ <handler>GtkPlaylistShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:28:41 GMT</last_modification_time>
</signal>
<label>_Playlist...</label>
<tooltip>Open the module manager</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarModulesActivate</handler>
+ <handler>GtkModulesShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:28:53 GMT</last_modification_time>
</signal>
<label>_Modules...</label>
<tooltip>Open the messages window</tooltip>
<signal>
<name>activate</name>
- <handler>GnomeMenubarMessagesActivate</handler>
+ <handler>GtkMessagesShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Wed, 20 Feb 2002 05:43:55 GMT</last_modification_time>
</signal>
<label>Messages...</label>
<name>menubar_preferences</name>
<signal>
<name>activate</name>
- <handler>GnomeMenubarPreferencesActivate</handler>
+ <handler>GtkPreferencesShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:29:03 GMT</last_modification_time>
</signal>
<stock_item>GNOMEUIINFO_MENU_PREFERENCES_ITEM</stock_item>
<name>menubar_about</name>
<signal>
<name>activate</name>
- <handler>GnomeMenubarAboutActivate</handler>
+ <handler>GtkAboutShow_GLADE_SUX_intf_window</handler>
<last_modification_time>Sat, 19 May 2001 16:29:19 GMT</last_modification_time>
</signal>
<stock_item>GNOMEUIINFO_MENU_ABOUT_ITEM</stock_item>
<name>toolbar_file</name>
<tooltip>Open a File</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkFileOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:14:43 GMT</last_modification_time>
<name>toolbar_disc</name>
<tooltip>Open a DVD or VCD</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkDiscOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:14:38 GMT</last_modification_time>
<name>toolbar_network</name>
<tooltip>Select a Network Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkNetworkOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:14:33 GMT</last_modification_time>
<name>toolbar_sat</name>
<tooltip>Open a Satellite Card</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkSatOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 25 Mar 2002 01:02:49 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Go Backward</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlBack</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:14:27 GMT</last_modification_time>
<name>toolbar_stop</name>
<tooltip>Stop Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlStop</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:14:22 GMT</last_modification_time>
<name>toolbar_eject</name>
<tooltip>Eject disc</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkDiscEject</handler>
<data>"intf_window"</data>
<last_modification_time>Fri, 21 Dec 2001 15:24:18 GMT</last_modification_time>
<name>toolbar_play</name>
<tooltip>Play Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlPlay</handler>
<data>"intf_window"</data>
- <last_modification_time>Sat, 19 May 2001 03:14:17 GMT</last_modification_time>
+ <last_modification_time>Wed, 05 Jun 2002 15:10:19 GMT</last_modification_time>
</signal>
<label>Play</label>
<stock_pixmap>GNOME_STOCK_PIXMAP_FORWARD</stock_pixmap>
<sensitive>False</sensitive>
<tooltip>Pause Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlPause</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:14:05 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Play Slower</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlSlow</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:13:58 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Play Faster</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlFast</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:13:53 GMT</last_modification_time>
<name>toolbar_playlist</name>
<tooltip>Open Playlist</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkPlaylistShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:13:48 GMT</last_modification_time>
<name>toolbar_prev</name>
<tooltip>Previous File</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkPlaylistPrev</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:13:44 GMT</last_modification_time>
<name>toolbar_next</name>
<tooltip>Next File</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkPlaylistNext</handler>
<data>"intf_window"</data>
<last_modification_time>Sat, 19 May 2001 03:13:40 GMT</last_modification_time>
<name>popup_play</name>
<signal>
<name>activate</name>
- <handler>GnomePopupPlayActivate</handler>
+ <handler>GtkControlPlay_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:16:58 GMT</last_modification_time>
</signal>
<name>popup_pause</name>
<signal>
<name>activate</name>
- <handler>GnomePopupPauseActivate</handler>
+ <handler>GtkControlPause_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:17:31 GMT</last_modification_time>
</signal>
<name>popup_stop</name>
<signal>
<name>activate</name>
- <handler>GnomePopupStopActivate</handler>
+ <handler>GtkControlStop_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:18:10 GMT</last_modification_time>
</signal>
<sensitive>False</sensitive>
<signal>
<name>activate</name>
- <handler>GnomePopupBackActivate</handler>
+ <handler>GtkControlBack_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:18:21 GMT</last_modification_time>
</signal>
<name>popup_slow</name>
<signal>
<name>activate</name>
- <handler>GnomePopupSlowActivate</handler>
+ <handler>GtkControlSlow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:18:29 GMT</last_modification_time>
</signal>
<name>popup_fast</name>
<signal>
<name>activate</name>
- <handler>GnomePopupFastActivate</handler>
+ <handler>GtkControlFast_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:18:37 GMT</last_modification_time>
</signal>
<name>popup_interface_toggle</name>
<signal>
<name>activate</name>
- <handler>GnomePopupWindowToggleActivate</handler>
+ <handler>GtkWindowToggle_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:18:51 GMT</last_modification_time>
</signal>
<tooltip>Toggle fullscreen mode</tooltip>
<signal>
<name>activate</name>
- <handler>GnomePopupFullscreenActivate</handler>
+ <handler>GtkFullscreen_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:19:07 GMT</last_modification_time>
</signal>
<name>popup_next</name>
<signal>
<name>activate</name>
- <handler>GnomePopupNextActivate</handler>
+ <handler>GtkPlaylistNext_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:19:18 GMT</last_modification_time>
</signal>
<name>popup_prev</name>
<signal>
<name>activate</name>
- <handler>GnomePopupPrevActivate</handler>
+ <handler>GtkPlaylistPrev_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:19:26 GMT</last_modification_time>
</signal>
<tooltip>Got directly so specified point</tooltip>
<signal>
<name>activate</name>
- <handler>GnomePopupJumpActivate</handler>
+ <handler>GtkJumpShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:34:46 GMT</last_modification_time>
</signal>
<tooltip>Open a File</tooltip>
<signal>
<name>activate</name>
- <handler>GnomePopupFileOpenActivate</handler>
+ <handler>GtkFileOpenShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:20:08 GMT</last_modification_time>
</signal>
<tooltip>Open a DVD or VCD</tooltip>
<signal>
<name>activate</name>
- <handler>GnomePopupDiscOpenActivate</handler>
+ <handler>GtkDiscOpenShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:20:44 GMT</last_modification_time>
</signal>
<tooltip>Select a Network Stream</tooltip>
<signal>
<name>activate</name>
- <handler>GnomePopupNetworkOpenActivate</handler>
+ <handler>GtkNetworkOpenShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:20:54 GMT</last_modification_time>
</signal>
<name>popup_about</name>
<signal>
<name>activate</name>
- <handler>GnomePopupAboutActivate</handler>
+ <handler>GtkAboutShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:21:02 GMT</last_modification_time>
</signal>
<name>popup_playlist</name>
<signal>
<name>activate</name>
- <handler>GnomePopupPlaylistActivate</handler>
+ <handler>GtkPlaylistShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:21:14 GMT</last_modification_time>
</signal>
<name>popup_preferences</name>
<signal>
<name>activate</name>
- <handler>GnomePopupPreferencesActivate</handler>
+ <handler>GtkPreferencesShow_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:21:25 GMT</last_modification_time>
</signal>
<name>popup_exit</name>
<signal>
<name>activate</name>
- <handler>GnomePopupExitActivate</handler>
+ <handler>GtkExit_GLADE_SUX_intf_popup</handler>
<data>"intf_popup"</data>
<last_modification_time>Sat, 19 May 2001 16:21:45 GMT</last_modification_time>
</signal>
<name>playlist_add_disc</name>
<signal>
<name>activate</name>
- <handler>GnomePlaylistDiscOpenActivate</handler>
+ <handler>GtkDiscOpenShow_GLADE_SUX_intf_playlist</handler>
<data>"intf_playlist"</data>
<last_modification_time>Sat, 19 May 2001 16:22:26 GMT</last_modification_time>
</signal>
<name>playlist_add_file</name>
<signal>
<name>activate</name>
- <handler>GnomePlaylistFileOpenActivate</handler>
+ <handler>GtkFileOpenShow_GLADE_SUX_intf_playlist</handler>
<data>"intf_playlist"</data>
<last_modification_time>Sat, 19 May 2001 16:22:37 GMT</last_modification_time>
</signal>
<name>playlist_add_network</name>
<signal>
<name>activate</name>
- <handler>GnomePlaylistNetworkOpenActivate</handler>
+ <handler>GtkNetworkOpenShow_GLADE_SUX_intf_playlist</handler>
<data>"intf_playlist"</data>
<last_modification_time>Sat, 19 May 2001 16:22:52 GMT</last_modification_time>
</signal>
* gnome_callbacks.c : GNOME-specific callbacks.
*****************************************************************************
* Copyright (C) 2000, 2001, 2002 VideoLAN
- * $Id: gnome_callbacks.c,v 1.11 2002/06/04 20:33:25 sam Exp $
+ * $Id: gnome_callbacks.c,v 1.12 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
*****************************************************************************/
/*****************************************************************************
- * Preamble
+ * This file is not needed: everything is in gtk_callbacks.c
*****************************************************************************/
-#include <vlc/vlc.h>
-#include <vlc/intf.h>
-
-#include "gnome_callbacks.h"
-#include "gnome_interface.h"
-#include "gnome_support.h"
-
-#include <gnome.h>
-
-/*
- * These wrappers are made necessary by a bug in glade that seems not
- * to put user_data in c source of menuitems.
- */
-
-void
-GnomeMenubarFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkFileOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkDiscOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkNetworkOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-void
-GnomeMenubarDiscEjectActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkDiscEject( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-void
-GnomeMenubarExitActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkExit( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarWindowToggleActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkWindowToggle( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarFullscreenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkFullscreen( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarPlaylistActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkPlaylistShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarModulesActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkModulesShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomeMenubarPreferencesActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkPreferencesActivate( menuitem, "intf_window" );
-}
-
-
-void
-GnomeMenubarAboutActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkAboutShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-
-void
-GnomePopupPlayActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlPlay( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupPauseActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlPause( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupStopActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlStop( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupBackActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlBack( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupSlowActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlSlow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupFastActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlFast( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupWindowToggleActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkWindowToggle( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupFullscreenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkFullscreen( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupNextActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkPlaylistNext( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupPrevActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkPlaylistPrev( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkFileOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkDiscOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkNetworkOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupAboutActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkAboutShow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupPlaylistActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkPlaylistShow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePopupPreferencesActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkPreferencesActivate( menuitem, "intf_popup" );
-}
-
-
-void
-GnomePopupExitActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkExit( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomePlaylistDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkDiscOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_playlist" );
-}
-
-
-void
-GnomePlaylistFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkFileOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_playlist" );
-}
-
-
-void
-GnomePlaylistNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkNetworkOpenShow( GTK_WIDGET( menuitem ), NULL, "intf_playlist" );
-}
-
-
-void
-GnomePopupJumpActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkJumpShow( GTK_WIDGET( menuitem ), NULL, "intf_popup" );
-}
-
-
-void
-GnomeMenubarMessagesActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkMessagesShow( GTK_WIDGET( menuitem ), NULL, "intf_window" );
-}
-
-#include <gnome.h>
-
#include "gtk_callbacks.h"
-
-void
-GnomeMenubarFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarDiscEjectActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarExitActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarWindowToggleActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarFullscreenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarPlaylistActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarModulesActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarPreferencesActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomeMenubarAboutActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupPlayActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupPauseActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupStopActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupBackActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupSlowActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupFastActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupWindowToggleActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupFullscreenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupNextActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupPrevActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupAboutActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupPlaylistActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupPreferencesActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupExitActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePlaylistDiscOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePlaylistFileOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePlaylistNetworkOpenActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GnomePopupJumpActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-void
-GtkNetworkJoin (GtkEditable *editable,
- gpointer user_data);
-
-void
-GtkChannelGo (GtkButton *button,
- gpointer user_data);
-
-void
-GtkNetworkOpenBroadcast (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GtkNetworkOpenChannel (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-
-void
-GnomeMenubarMessagesActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
-gboolean
-GtkSatOpenShow (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-void
-GtkSatOpenOk (GtkButton *button,
- gpointer user_data);
-
-void
-GtkSatOpenCancel (GtkButton *button,
- gpointer user_data);
-
-void
-GnomeNetworkOpenUDP (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GnomeNetworkOpenMulticast (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GnomeNetworkOpenChannel (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GnomeNetworkOpenHTTP (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GtkNetworkOpenUDP (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GtkNetworkOpenMulticast (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GtkNetworkOpenChannel (GtkToggleButton *togglebutton,
- gpointer user_data);
-
-void
-GtkNetworkOpenHTTP (GtkToggleButton *togglebutton,
- gpointer user_data);
{
GNOME_APP_UI_ITEM, N_("_Open File..."),
N_("Open a File"),
- (gpointer) GnomeMenubarFileOpenActivate, NULL, NULL,
+ (gpointer) GtkFileOpenShow, "intf_window", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Open _Disc..."),
N_("Open a DVD or VCD"),
- (gpointer) GnomeMenubarDiscOpenActivate, NULL, NULL,
+ (gpointer) GtkDiscOpenShow, "intf_window", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Network Stream..."),
N_("Select a Network Stream"),
- (gpointer) GnomeMenubarNetworkOpenActivate, NULL, NULL,
+ (gpointer) GtkNetworkOpenShow, "intf_window", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Eject Disc"),
N_("Eject disc"),
- (gpointer) GnomeMenubarDiscEjectActivate, NULL, NULL,
+ (gpointer) GtkDiscEject, "intf_window", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TOP,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_MENU_EXIT_ITEM (GnomeMenubarExitActivate, NULL),
+ GNOMEUIINFO_MENU_EXIT_ITEM (GtkExit, "intf_window"),
GNOMEUIINFO_END
};
{
GNOME_APP_UI_ITEM, N_("_Hide interface"),
NULL,
- (gpointer) GnomeMenubarWindowToggleActivate, NULL, NULL,
+ (gpointer) GtkWindowToggle, "intf_window", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Fullscreen"),
NULL,
- (gpointer) GnomeMenubarFullscreenActivate, NULL, NULL,
+ (gpointer) GtkFullscreen, "intf_window", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Playlist..."),
N_("Open the playlist window"),
- (gpointer) GnomeMenubarPlaylistActivate, NULL, NULL,
+ (gpointer) GtkPlaylistShow, "intf_window", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Modules..."),
N_("Open the module manager"),
- (gpointer) GnomeMenubarModulesActivate, NULL, NULL,
+ (gpointer) GtkModulesShow, "intf_window", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Messages..."),
N_("Open the messages window"),
- (gpointer) GnomeMenubarMessagesActivate, NULL, NULL,
+ (gpointer) GtkMessagesShow, "intf_window", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_MENU_PREFERENCES_ITEM (GnomeMenubarPreferencesActivate, NULL),
+ GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, "intf_window"),
GNOMEUIINFO_END
};
static GnomeUIInfo menubar_help_menu_uiinfo[] =
{
- GNOMEUIINFO_MENU_ABOUT_ITEM (GnomeMenubarAboutActivate, NULL),
+ GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, "intf_window"),
GNOMEUIINFO_END
};
GTK_SIGNAL_FUNC (GtkWindowDrag),
"intf_window");
gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo);
- gtk_signal_connect (GTK_OBJECT (toolbar_file), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_file), "clicked",
GTK_SIGNAL_FUNC (GtkFileOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_disc), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
GTK_SIGNAL_FUNC (GtkDiscOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_network), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked",
GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_sat), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_sat), "clicked",
GTK_SIGNAL_FUNC (GtkSatOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_back), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
GTK_SIGNAL_FUNC (GtkControlBack),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_stop), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
GTK_SIGNAL_FUNC (GtkControlStop),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_eject), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_eject), "clicked",
GTK_SIGNAL_FUNC (GtkDiscEject),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_play), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
GTK_SIGNAL_FUNC (GtkControlPlay),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_pause), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
GTK_SIGNAL_FUNC (GtkControlPause),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_slow), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
GTK_SIGNAL_FUNC (GtkControlSlow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_fast), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
GTK_SIGNAL_FUNC (GtkControlFast),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
GTK_SIGNAL_FUNC (GtkPlaylistShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_prev), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
GTK_SIGNAL_FUNC (GtkPlaylistPrev),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_next), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
GTK_SIGNAL_FUNC (GtkPlaylistNext),
"intf_window");
gtk_signal_connect (GTK_OBJECT (slider), "button_press_event",
{
GNOME_APP_UI_ITEM, N_("_Open File..."),
N_("Open a File"),
- (gpointer) GnomePopupFileOpenActivate, NULL, NULL,
+ (gpointer) GtkFileOpenShow, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Open _Disc..."),
N_("Open a DVD or VCD"),
- (gpointer) GnomePopupDiscOpenActivate, NULL, NULL,
+ (gpointer) GtkDiscOpenShow, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Network Stream..."),
N_("Select a Network Stream"),
- (gpointer) GnomePopupNetworkOpenActivate, NULL, NULL,
+ (gpointer) GtkNetworkOpenShow, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH,
0, (GdkModifierType) 0, NULL
},
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_MENU_ABOUT_ITEM (GnomePopupAboutActivate, NULL),
+ GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, "intf_popup"),
GNOMEUIINFO_END
};
{
GNOME_APP_UI_ITEM, N_("Play"),
NULL,
- (gpointer) GnomePopupPlayActivate, NULL, NULL,
+ (gpointer) GtkControlPlay, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Pause"),
NULL,
- (gpointer) GnomePopupPauseActivate, NULL, NULL,
+ (gpointer) GtkControlPause, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Stop"),
NULL,
- (gpointer) GnomePopupStopActivate, NULL, NULL,
+ (gpointer) GtkControlStop, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_STOP,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Back"),
NULL,
- (gpointer) GnomePopupBackActivate, NULL, NULL,
+ (gpointer) GtkControlBack, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BACK,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Slow"),
NULL,
- (gpointer) GnomePopupSlowActivate, NULL, NULL,
+ (gpointer) GtkControlSlow, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Fast"),
NULL,
- (gpointer) GnomePopupFastActivate, NULL, NULL,
+ (gpointer) GtkControlFast, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Toggle _Interface"),
NULL,
- (gpointer) GnomePopupWindowToggleActivate, NULL, NULL,
+ (gpointer) GtkWindowToggle, "intf_popup", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Fullscreen"),
N_("Toggle fullscreen mode"),
- (gpointer) GnomePopupFullscreenActivate, NULL, NULL,
+ (gpointer) GtkFullscreen, "intf_popup", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Next"),
NULL,
- (gpointer) GnomePopupNextActivate, NULL, NULL,
+ (gpointer) GtkPlaylistNext, "intf_popup", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Prev"),
NULL,
- (gpointer) GnomePopupPrevActivate, NULL, NULL,
+ (gpointer) GtkPlaylistPrev, "intf_popup", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("_Jump..."),
N_("Got directly so specified point"),
- (gpointer) GnomePopupJumpActivate, NULL, NULL,
+ (gpointer) GtkJumpShow, "intf_popup", NULL,
GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_JUMP_TO,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Playlist..."),
NULL,
- (gpointer) GnomePopupPlaylistActivate, NULL, NULL,
+ (gpointer) GtkPlaylistShow, "intf_popup", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
- GNOMEUIINFO_MENU_PREFERENCES_ITEM (GnomePopupPreferencesActivate, NULL),
+ GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, "intf_popup"),
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_MENU_EXIT_ITEM (GnomePopupExitActivate, NULL),
+ GNOMEUIINFO_MENU_EXIT_ITEM (GtkExit, "intf_popup"),
GNOMEUIINFO_END
};
{
GNOME_APP_UI_ITEM, N_("Disc"),
NULL,
- (gpointer) GnomePlaylistDiscOpenActivate, NULL, NULL,
+ (gpointer) GtkDiscOpenShow, "intf_playlist", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("File"),
NULL,
- (gpointer) GnomePlaylistFileOpenActivate, NULL, NULL,
+ (gpointer) GtkFileOpenShow, "intf_playlist", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
{
GNOME_APP_UI_ITEM, N_("Network"),
NULL,
- (gpointer) GnomePlaylistNetworkOpenActivate, NULL, NULL,
+ (gpointer) GtkNetworkOpenShow, "intf_playlist", NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, (GdkModifierType) 0, NULL
},
* gtk.c : Gtk+ plugin for vlc
*****************************************************************************
* Copyright (C) 2000-2001 VideoLAN
- * $Id: gtk.c,v 1.26 2002/06/02 09:03:54 sam Exp $
+ * $Id: gtk.c,v 1.27 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
*****************************************************************************/
static void intf_Close( intf_thread_t *p_intf )
{
+ if( p_intf->p_sys->p_input )
+ {
+ vlc_object_release( p_intf->p_sys->p_input );
+ }
+
msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub );
/* Destroy structure */
/* 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_playlist = create_intf_playlist();
+ p_intf->p_sys->p_playwin = create_intf_playlist();
p_intf->p_sys->p_messages = create_intf_messages();
p_intf->p_sys->p_tooltips = gtk_tooltips_new();
1, GDK_ACTION_COPY );
/* Accept file drops on the playlist window */
- gtk_drag_dest_set( GTK_WIDGET( lookup_widget( p_intf->p_sys->p_playlist,
+ gtk_drag_dest_set( GTK_WIDGET( lookup_widget( p_intf->p_sys->p_playwin,
"playlist_clist") ),
GTK_DEST_DEFAULT_ALL, target_table,
1, GDK_ACTION_COPY );
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_playlist ),
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playwin ),
"p_intf", p_intf );
gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_messages ),
GtkPlayListManage( p_data );
/* Update the input */
- if( p_intf->p_sys->p_input != NULL )
- {
- if( p_intf->p_sys->p_input->b_dead )
- {
- vlc_object_release( p_intf->p_sys->p_input );
- p_intf->p_sys->p_input = NULL;
- }
- }
-
if( p_intf->p_sys->p_input == NULL )
{
p_intf->p_sys->p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT,
FIND_ANYWHERE );
}
+ else if( p_intf->p_sys->p_input->b_dead )
+ {
+ vlc_object_release( p_intf->p_sys->p_input );
+ p_intf->p_sys->p_input = NULL;
+ }
if( p_intf->p_sys->p_input )
{
</accelerator>
<signal>
<name>activate</name>
- <handler>GtkFileOpenActivate</handler>
+ <handler>GtkFileOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:27:36 GMT</last_modification_time>
</signal>
</accelerator>
<signal>
<name>activate</name>
- <handler>GtkDiscOpenActivate</handler>
+ <handler>GtkDiscOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:27:47 GMT</last_modification_time>
</signal>
</accelerator>
<signal>
<name>activate</name>
- <handler>GtkNetworkOpenActivate</handler>
+ <handler>GtkNetworkOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:28:06 GMT</last_modification_time>
</signal>
<tooltip>Eject disc</tooltip>
<signal>
<name>activate</name>
- <handler>GtkEjectDiscActivate</handler>
+ <handler>GtkDiscEject</handler>
<data>"intf_window"</data>
<last_modification_time>Fri, 21 Dec 2001 12:51:34 GMT</last_modification_time>
</signal>
</accelerator>
<signal>
<name>activate</name>
- <handler>GtkExitActivate</handler>
+ <handler>GtkExit</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:28:20 GMT</last_modification_time>
</signal>
<tooltip>Hide the main interface window</tooltip>
<signal>
<name>activate</name>
- <handler>GtkWindowToggleActivate</handler>
+ <handler>GtkWindowToggle</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:32:49 GMT</last_modification_time>
</signal>
<name>menubar_fullscreen</name>
<signal>
<name>activate</name>
- <handler>GtkFullscreenActivate</handler>
+ <handler>GtkFullscreen</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:29:21 GMT</last_modification_time>
</signal>
<tooltip>Open the playlist window</tooltip>
<signal>
<name>activate</name>
- <handler>GtkPlaylistActivate</handler>
+ <handler>GtkPlaylistShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:29:34 GMT</last_modification_time>
</signal>
<tooltip>Open the module manager</tooltip>
<signal>
<name>activate</name>
- <handler>GtkModulesActivate</handler>
+ <handler>GtkModulesShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:29:44 GMT</last_modification_time>
</signal>
<tooltip>Open the messages window</tooltip>
<signal>
<name>activate</name>
- <handler>GtkMessagesActivate</handler>
+ <handler>GtkMessagesShow</handler>
<data>"intf_window"</data>
<last_modification_time>Tue, 19 Feb 2002 02:03:47 GMT</last_modification_time>
</signal>
<tooltip>Configure the application</tooltip>
<signal>
<name>activate</name>
- <handler>GtkPreferencesActivate</handler>
+ <handler>GtkPreferencesShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:30:02 GMT</last_modification_time>
</signal>
<tooltip>About this application</tooltip>
<signal>
<name>activate</name>
- <handler>GtkAboutActivate</handler>
+ <handler>GtkAboutShow</handler>
<data>"intf_window"</data>
<last_modification_time>Mon, 14 May 2001 21:30:15 GMT</last_modification_time>
</signal>
<name>toolbar_open</name>
<tooltip>Open a File</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkFileOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:10:21 GMT</last_modification_time>
<name>toolbar_disc</name>
<tooltip>Open a DVD or VCD</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkDiscOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:10:30 GMT</last_modification_time>
<name>toolbar_network</name>
<tooltip>Select a Network Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkNetworkOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:10:37 GMT</last_modification_time>
<name>toolbar_sat</name>
<tooltip>Open a Satellite Card</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkSatOpenShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 24 Mar 2002 15:08:57 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Go Backward</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlBack</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:10:47 GMT</last_modification_time>
<name>toolbar_stop</name>
<tooltip>Stop Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlStop</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:10:57 GMT</last_modification_time>
<child_name>Toolbar:button</child_name>
<name>toolbar_eject</name>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkDiscEject</handler>
<data>"intf_window"</data>
<last_modification_time>Fri, 21 Dec 2001 15:33:26 GMT</last_modification_time>
<name>toolbar_play</name>
<tooltip>Play Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlPlay</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:06 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Pause Stream</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlPause</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:13 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Play Slower</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlSlow</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:20 GMT</last_modification_time>
<sensitive>False</sensitive>
<tooltip>Play Faster</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkControlFast</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:31 GMT</last_modification_time>
<name>toolbar_playlist</name>
<tooltip>Open Playlist</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkPlaylistShow</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:38 GMT</last_modification_time>
<name>toolbar_prev</name>
<tooltip>Previous File</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkPlaylistPrev</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:45 GMT</last_modification_time>
<name>toolbar_next</name>
<tooltip>Next File</tooltip>
<signal>
- <name>button_press_event</name>
+ <name>clicked</name>
<handler>GtkPlaylistNext</handler>
<data>"intf_window"</data>
<last_modification_time>Sun, 13 May 2001 15:11:58 GMT</last_modification_time>
<name>popup_play</name>
<signal>
<name>activate</name>
- <handler>GtkPlayActivate</handler>
+ <handler>GtkControlPlay</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:43 GMT</last_modification_time>
</signal>
<sensitive>False</sensitive>
<signal>
<name>activate</name>
- <handler>GtkPauseActivate</handler>
+ <handler>GtkControlPause</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:37 GMT</last_modification_time>
</signal>
<name>popup_stop</name>
<signal>
<name>activate</name>
- <handler>GtKStopActivate</handler>
+ <handler>GtkControlStop</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:29 GMT</last_modification_time>
</signal>
<sensitive>False</sensitive>
<signal>
<name>activate</name>
- <handler>GtkBackActivate</handler>
+ <handler>GtkControlBack</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:21 GMT</last_modification_time>
</signal>
<sensitive>False</sensitive>
<signal>
<name>activate</name>
- <handler>GtkSlowActivate</handler>
+ <handler>GtkControlSlow</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:15 GMT</last_modification_time>
</signal>
<sensitive>False</sensitive>
<signal>
<name>activate</name>
- <handler>GtkFastActivate</handler>
+ <handler>GtkControlFast</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:07 GMT</last_modification_time>
</signal>
<name>popup_interface_toggle</name>
<signal>
<name>activate</name>
- <handler>GtkWindowToggleActivate</handler>
+ <handler>GtkWindowToggle</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:53:00 GMT</last_modification_time>
</signal>
<name>popup_fullscreen</name>
<signal>
<name>activate</name>
- <handler>GtkFullscreenActivate</handler>
+ <handler>GtkFullscreen</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:52:38 GMT</last_modification_time>
</signal>
<name>popup_next</name>
<signal>
<name>activate</name>
- <handler>GtkNextActivate</handler>
+ <handler>GtkPlaylistNext</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:52:31 GMT</last_modification_time>
</signal>
<name>popup_prev</name>
<signal>
<name>activate</name>
- <handler>GtkPrevActivate</handler>
+ <handler>GtkPlaylistPrev</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:52:23 GMT</last_modification_time>
</signal>
<name>popup_jump</name>
<signal>
<name>activate</name>
- <handler>GtkJumpActivate</handler>
+ <handler>GtkJumpShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:52:13 GMT</last_modification_time>
</signal>
<tooltip>Open a File</tooltip>
<signal>
<name>activate</name>
- <handler>GtkFileOpenActivate</handler>
+ <handler>GtkFileOpenShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Mon, 14 May 2001 21:33:55 GMT</last_modification_time>
</signal>
<tooltip>Open a DVD or VCD</tooltip>
<signal>
<name>activate</name>
- <handler>GtkDiscOpenActivate</handler>
+ <handler>GtkDiscOpenShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Mon, 14 May 2001 21:34:09 GMT</last_modification_time>
</signal>
<tooltip>Select a Network Stream</tooltip>
<signal>
<name>activate</name>
- <handler>GtkNetworkOpenActivate</handler>
+ <handler>GtkNetworkOpenShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Mon, 14 May 2001 21:34:23 GMT</last_modification_time>
</signal>
<name>popup_about</name>
<signal>
<name>activate</name>
- <handler>GtkAboutActivate</handler>
+ <handler>GtkAboutShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Mon, 14 May 2001 21:34:54 GMT</last_modification_time>
</signal>
<name>popup_playlist</name>
<signal>
<name>activate</name>
- <handler>GtkPlaylistActivate</handler>
+ <handler>GtkPlaylistShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:51:55 GMT</last_modification_time>
</signal>
<name>popup_preferences</name>
<signal>
<name>activate</name>
- <handler>GtkPreferencesActivate</handler>
+ <handler>GtkPreferencesShow</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:51:46 GMT</last_modification_time>
</signal>
<name>popup_exit</name>
<signal>
<name>activate</name>
- <handler>GtkExitActivate</handler>
+ <handler>GtkExit</handler>
<data>"intf_popup"</data>
<last_modification_time>Tue, 15 May 2001 13:52:03 GMT</last_modification_time>
</signal>
<name>playlist_add_disc</name>
<signal>
<name>activate</name>
- <handler>GtkDiscOpenActivate</handler>
+ <handler>GtkDiscOpenShow</handler>
<data>"intf_playlist"</data>
<last_modification_time>Mon, 14 May 2001 21:59:32 GMT</last_modification_time>
</signal>
<name>playlist_add_file</name>
<signal>
<name>activate</name>
- <handler>GtkFileOpenActivate</handler>
+ <handler>GtkFileOpenShow</handler>
<data>"intf_playlist"</data>
<last_modification_time>Mon, 14 May 2001 21:59:48 GMT</last_modification_time>
</signal>
<name>playlist_add_network</name>
<signal>
<name>activate</name>
- <handler>GtkNetworkOpenActivate</handler>
+ <handler>GtkNetworkOpenShow</handler>
<data>"intf_playlist"</data>
<last_modification_time>Mon, 14 May 2001 22:00:03 GMT</last_modification_time>
</signal>
* gtk_callbacks.c : Callbacks for the Gtk+ plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_callbacks.c,v 1.43 2002/06/04 20:33:25 sam Exp $
+ * $Id: gtk_callbacks.c,v 1.44 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
*/
gboolean GtkExit( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
GdkEvent *event,
gpointer user_data )
{
- GtkExit( GTK_WIDGET( widget ), NULL, user_data );
+ GtkExit( GTK_WIDGET( widget ), user_data );
return TRUE;
}
gboolean GtkWindowToggle( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
}
gboolean GtkFullscreen( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
guint time,
gpointer user_data)
{
-#if 0 /* PLAYLIST TARASS */
intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
- int end = p_intf->p_vlc->p_playlist->i_size;
GtkDropDataReceived( p_intf, data, info, PLAYLIST_END );
-
- if( p_intf->p_sys->p_input != NULL )
- {
- /* FIXME: temporary hack */
- p_intf->p_sys->p_input->b_eof = 1;
- }
-
- intf_PlaylistJumpto( p_intf->p_vlc->p_playlist, end-1 );
-#endif
}
GtkSetupMenus( p_intf );
vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock );
}
-
- vlc_object_release( p_intf->p_sys->p_input );
}
GtkSetupMenus( p_intf );
vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock );
}
-
}
****************************************************************************/
gboolean GtkAboutShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
****************************************************************************/
gboolean GtkJumpShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
intf_thread_t * p_intf = GetIntf( GTK_WIDGET( button ), (char*)user_data );
int i_hours, i_minutes, i_seconds;
+ if( p_intf->p_sys->p_input == NULL )
+ {
+ return;
+ }
+
#define GET_VALUE( name ) \
gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( gtk_object_get_data( \
GTK_OBJECT( p_intf->p_sys->p_jump ), name ) ) )
i_seconds = GET_VALUE( "jump_second_spinbutton" );
#undef GET_VALUE
- input_Seek( p_intf, i_seconds + 60 * i_minutes + 3600 * i_hours,
- INPUT_SEEK_SECONDS | INPUT_SEEK_SET );
+ input_Seek( p_intf->p_sys->p_input,
+ i_seconds + 60 * i_minutes + 3600 * i_hours,
+ INPUT_SEEK_SECONDS | INPUT_SEEK_SET );
-#if 0 /* PLAYLIST TARASS */
- p_intf->p_vlc->p_playlist->b_stopped = 0;
-#endif
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
-
-/****************************************************************************
- * Callbacks for menuitems
- ****************************************************************************/
-void GtkExitActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkExit( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkFullscreenActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkFullscreen( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkWindowToggleActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkWindowToggle( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkAboutActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkAboutShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkJumpActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkJumpShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkMessagesActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkMessagesShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
/****************************************************************************
* Callbacks for disc ejection
****************************************************************************/
-gboolean GtkDiscEject ( GtkWidget *widget, GdkEventButton *event,
- gpointer user_data )
+gboolean GtkDiscEject ( GtkWidget *widget, gpointer user_data )
{
#if 0 /* PLAYLIST TARASS */
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
return TRUE;
}
-void GtkEjectDiscActivate ( GtkMenuItem *menuitem, gpointer user_data )
-{
- GtkDiscEject( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
/****************************************************************************
* Messages window
****************************************************************************/
gboolean GtkMessagesShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data)
{
static GdkColor black = { 0, 0x0000, 0x0000, 0x0000 };
* gtk_callbacks.h : Callbacks for the gtk plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_callbacks.h,v 1.19 2002/05/18 02:12:20 ipkiss Exp $
+ * $Id: gtk_callbacks.h,v 1.20 2002/06/07 14:30:40 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* main window callbacks: specific prototypes are in headers listed before
*****************************************************************************/
-gboolean GtkExit ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkWindowToggle ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkFullscreen ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkExit ( GtkWidget *, gpointer );
+gboolean GtkWindowToggle ( GtkWidget *, gpointer );
+gboolean GtkFullscreen ( GtkWidget *, gpointer );
gboolean GtkSliderRelease ( GtkWidget *, GdkEventButton *, gpointer );
gboolean GtkSliderPress ( GtkWidget *, GdkEventButton *, gpointer );
gboolean GtkWindowDelete ( GtkWidget * widget, GdkEvent *, gpointer );
-gboolean GtkJumpShow ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkAboutShow ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkMessagesShow ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkJumpShow ( GtkWidget *, gpointer );
+gboolean GtkAboutShow ( GtkWidget *, gpointer );
+gboolean GtkMessagesShow ( GtkWidget *, gpointer );
void GtkTitlePrev ( GtkButton * button, gpointer );
void GtkTitleNext ( GtkButton * button, gpointer );
void GtkChapterPrev ( GtkButton *, gpointer );
guint , guint, gpointer );
void GtkJumpOk ( GtkButton * button, gpointer );
void GtkJumpCancel ( GtkButton * button, gpointer user_data );
-void GtkExitActivate ( GtkMenuItem *, gpointer );
-void GtkWindowToggleActivate( GtkMenuItem *, gpointer );
-void GtkFullscreenActivate ( GtkMenuItem *, gpointer );
-void GtkAboutActivate ( GtkMenuItem *, gpointer );
-void GtkJumpActivate ( GtkMenuItem *, gpointer );
void GtkNetworkJoin ( GtkEditable *, gpointer );
void GtkChannelGo ( GtkButton *, gpointer );
void GtkNetworkOpenChannel ( GtkToggleButton *, gpointer );
-void
-GtkEjectDiscActivate (GtkMenuItem *menuitem,
- gpointer user_data);
-
gboolean
GtkDiscEject (GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data);
-
-void
-GtkMessagesActivate (GtkMenuItem *menuitem,
gpointer user_data);
void
gboolean
GtkSatOpenShow (GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data);
void
* gtk_common.h: private Gtk+ interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_common.h,v 1.9 2002/06/01 12:31:59 sam Exp $
+ * $Id: gtk_common.h,v 1.10 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
/* windows and widgets */
GtkWidget * p_window; /* main window */
GtkWidget * p_popup; /* popup menu */
- GtkWidget * p_playlist; /* playlist */
+ GtkWidget * p_playwin; /* playlist */
GtkWidget * p_modules; /* module manager */
GtkWidget * p_about; /* about window */
GtkWidget * p_fileopen; /* file open window */
* gtk_control.c : functions to handle stream control buttons.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_control.c,v 1.11 2002/06/02 09:03:54 sam Exp $
+ * $Id: gtk_control.c,v 1.12 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* by other callbacks
****************************************************************************/
gboolean GtkControlBack( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
return FALSE;
gboolean GtkControlStop( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
- playlist_t *p_playlist;
-
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
-
- if( p_playlist )
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+ FIND_ANYWHERE );
+ if( p_playlist == NULL )
{
- playlist_Stop( p_playlist );
- vlc_object_release( p_playlist );
+ return FALSE;
}
+ playlist_Stop( p_playlist );
+ vlc_object_release( p_playlist );
+
return TRUE;
}
gboolean GtkControlPlay( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
- playlist_t *p_playlist;
-
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+ FIND_ANYWHERE );
+ if( p_playlist == NULL )
+ {
+ GtkFileOpenShow( widget, user_data );
+ return TRUE;
+ }
- if( p_playlist )
+ /* If the playlist is empty, open a file requester instead */
+ vlc_mutex_lock( &p_playlist->object_lock );
+ if( p_playlist->i_size )
{
+ vlc_mutex_unlock( &p_playlist->object_lock );
playlist_Play( p_playlist );
vlc_object_release( p_playlist );
}
-
-#if 0 /* FIXME: deal with this */
+ else
{
- vlc_mutex_unlock( &p_intf->p_vlc->p_playlist->change_lock );
- GtkFileOpenShow( widget, event, user_data );
+ vlc_mutex_unlock( &p_playlist->object_lock );
+ vlc_object_release( p_playlist );
+ GtkFileOpenShow( widget, user_data );
}
-#endif
return TRUE;
}
gboolean GtkControlPause( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
- playlist_t *p_playlist;
-
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
- if( p_playlist )
+ if( p_intf->p_sys->p_input == NULL )
{
- playlist_Pause( p_playlist );
- vlc_object_release( p_playlist );
+ return FALSE;
}
+ input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_PAUSE );
+
return TRUE;
}
gboolean GtkControlSlow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
- playlist_t *p_playlist;
-
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
-#if 0
- if( p_playlist )
+ if( p_intf->p_sys->p_input == NULL )
{
- playlist_Slow( p_playlist );
- vlc_object_release( p_playlist );
+ return FALSE;
}
-#endif
+
+ input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_SLOWER );
return TRUE;
}
gboolean GtkControlFast( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
- playlist_t *p_playlist;
-
- p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
-#if 0
- if( p_playlist )
+ if( p_intf->p_sys->p_input == NULL )
{
- playlist_Fast( p_playlist );
- vlc_object_release( p_playlist );
+ return FALSE;
}
-#endif
-
- return TRUE;
-}
+ input_SetStatus( p_intf->p_sys->p_input, INPUT_STATUS_FASTER );
-/****************************************************************************
- * Control callbacks for menuitems
- ****************************************************************************
- * We have different callaback for menuitem since we must use the
- * activate signal toi popdown the menu automatically
- ****************************************************************************/
-void GtkPlayActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkControlPlay( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkPauseActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkControlPause( GTK_WIDGET( menuitem ), NULL, user_data );
-
-}
-
-
-void
-GtKStopActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlStop( GTK_WIDGET( menuitem ), NULL, user_data );
-
-}
-
-
-void
-GtkBackActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlBack( GTK_WIDGET( menuitem ), NULL, user_data );
-
-}
-
-
-void
-GtkSlowActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlSlow( GTK_WIDGET( menuitem ), NULL, user_data );
-
-}
-
-
-void
-GtkFastActivate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
- GtkControlFast( GTK_WIDGET( menuitem ), NULL, user_data );
+ return TRUE;
}
-
* gtk_control.h: prototypes for control functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_control.h,v 1.1 2001/05/15 01:01:44 stef Exp $
+ * $Id: gtk_control.h,v 1.2 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-gboolean GtkControlBack ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkControlStop ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkControlPlay ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkControlPause( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkControlSlow ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkControlFast ( GtkWidget *, GdkEventButton *, gpointer );
-void GtkPlayActivate ( GtkMenuItem *, gpointer );
-void GtkPauseActivate ( GtkMenuItem *, gpointer );
-void GtKStopActivate ( GtkMenuItem *, gpointer );
-void GtkBackActivate ( GtkMenuItem *, gpointer );
-void GtkSlowActivate ( GtkMenuItem *, gpointer );
-void GtkFastActivate ( GtkMenuItem *, gpointer );
+gboolean GtkControlBack ( GtkWidget *, gpointer );
+gboolean GtkControlStop ( GtkWidget *, gpointer );
+gboolean GtkControlPlay ( GtkWidget *, gpointer );
+gboolean GtkControlPause( GtkWidget *, gpointer );
+gboolean GtkControlSlow ( GtkWidget *, gpointer );
+gboolean GtkControlFast ( GtkWidget *, gpointer );
GTK_SIGNAL_FUNC (GtkWindowDelete),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_open), "activate",
- GTK_SIGNAL_FUNC (GtkFileOpenActivate),
+ GTK_SIGNAL_FUNC (GtkFileOpenShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_disc), "activate",
- GTK_SIGNAL_FUNC (GtkDiscOpenActivate),
+ GTK_SIGNAL_FUNC (GtkDiscOpenShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_network), "activate",
- GTK_SIGNAL_FUNC (GtkNetworkOpenActivate),
+ GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_eject), "activate",
- GTK_SIGNAL_FUNC (GtkEjectDiscActivate),
+ GTK_SIGNAL_FUNC (GtkDiscEject),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_exit), "activate",
- GTK_SIGNAL_FUNC (GtkExitActivate),
+ GTK_SIGNAL_FUNC (GtkExit),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_interface_hide), "activate",
- GTK_SIGNAL_FUNC (GtkWindowToggleActivate),
+ GTK_SIGNAL_FUNC (GtkWindowToggle),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_fullscreen), "activate",
- GTK_SIGNAL_FUNC (GtkFullscreenActivate),
+ GTK_SIGNAL_FUNC (GtkFullscreen),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_playlist), "activate",
- GTK_SIGNAL_FUNC (GtkPlaylistActivate),
+ GTK_SIGNAL_FUNC (GtkPlaylistShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_modules), "activate",
- GTK_SIGNAL_FUNC (GtkModulesActivate),
+ GTK_SIGNAL_FUNC (GtkModulesShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_messages), "activate",
- GTK_SIGNAL_FUNC (GtkMessagesActivate),
+ GTK_SIGNAL_FUNC (GtkMessagesShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_preferences), "activate",
- GTK_SIGNAL_FUNC (GtkPreferencesActivate),
+ GTK_SIGNAL_FUNC (GtkPreferencesShow),
"intf_window");
gtk_signal_connect (GTK_OBJECT (menubar_about), "activate",
- GTK_SIGNAL_FUNC (GtkAboutActivate),
+ GTK_SIGNAL_FUNC (GtkAboutShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_open), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_open), "clicked",
GTK_SIGNAL_FUNC (GtkFileOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_disc), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked",
GTK_SIGNAL_FUNC (GtkDiscOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_network), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked",
GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_sat), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_sat), "clicked",
GTK_SIGNAL_FUNC (GtkSatOpenShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_back), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked",
GTK_SIGNAL_FUNC (GtkControlBack),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_stop), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked",
GTK_SIGNAL_FUNC (GtkControlStop),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_eject), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_eject), "clicked",
GTK_SIGNAL_FUNC (GtkDiscEject),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_play), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked",
GTK_SIGNAL_FUNC (GtkControlPlay),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_pause), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked",
GTK_SIGNAL_FUNC (GtkControlPause),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_slow), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked",
GTK_SIGNAL_FUNC (GtkControlSlow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_fast), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked",
GTK_SIGNAL_FUNC (GtkControlFast),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked",
GTK_SIGNAL_FUNC (GtkPlaylistShow),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_prev), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked",
GTK_SIGNAL_FUNC (GtkPlaylistPrev),
"intf_window");
- gtk_signal_connect (GTK_OBJECT (toolbar_next), "button_press_event",
+ gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked",
GTK_SIGNAL_FUNC (GtkPlaylistNext),
"intf_window");
gtk_signal_connect (GTK_OBJECT (slider), "button_release_event",
gtk_container_add (GTK_CONTAINER (intf_popup), popup_exit);
gtk_signal_connect (GTK_OBJECT (popup_play), "activate",
- GTK_SIGNAL_FUNC (GtkPlayActivate),
+ GTK_SIGNAL_FUNC (GtkControlPlay),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_pause), "activate",
- GTK_SIGNAL_FUNC (GtkPauseActivate),
+ GTK_SIGNAL_FUNC (GtkControlPause),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_stop), "activate",
- GTK_SIGNAL_FUNC (GtKStopActivate),
+ GTK_SIGNAL_FUNC (GtkControlStop),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_back), "activate",
- GTK_SIGNAL_FUNC (GtkBackActivate),
+ GTK_SIGNAL_FUNC (GtkControlBack),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_slow), "activate",
- GTK_SIGNAL_FUNC (GtkSlowActivate),
+ GTK_SIGNAL_FUNC (GtkControlSlow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_fast), "activate",
- GTK_SIGNAL_FUNC (GtkFastActivate),
+ GTK_SIGNAL_FUNC (GtkControlFast),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_interface_toggle), "activate",
- GTK_SIGNAL_FUNC (GtkWindowToggleActivate),
+ GTK_SIGNAL_FUNC (GtkWindowToggle),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_fullscreen), "activate",
- GTK_SIGNAL_FUNC (GtkFullscreenActivate),
+ GTK_SIGNAL_FUNC (GtkFullscreen),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_next), "activate",
- GTK_SIGNAL_FUNC (GtkNextActivate),
+ GTK_SIGNAL_FUNC (GtkPlaylistNext),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_prev), "activate",
- GTK_SIGNAL_FUNC (GtkPrevActivate),
+ GTK_SIGNAL_FUNC (GtkPlaylistPrev),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_jump), "activate",
- GTK_SIGNAL_FUNC (GtkJumpActivate),
+ GTK_SIGNAL_FUNC (GtkJumpShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_file), "activate",
- GTK_SIGNAL_FUNC (GtkFileOpenActivate),
+ GTK_SIGNAL_FUNC (GtkFileOpenShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_disc), "activate",
- GTK_SIGNAL_FUNC (GtkDiscOpenActivate),
+ GTK_SIGNAL_FUNC (GtkDiscOpenShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_network), "activate",
- GTK_SIGNAL_FUNC (GtkNetworkOpenActivate),
+ GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_about), "activate",
- GTK_SIGNAL_FUNC (GtkAboutActivate),
+ GTK_SIGNAL_FUNC (GtkAboutShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_playlist), "activate",
- GTK_SIGNAL_FUNC (GtkPlaylistActivate),
+ GTK_SIGNAL_FUNC (GtkPlaylistShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_preferences), "activate",
- GTK_SIGNAL_FUNC (GtkPreferencesActivate),
+ GTK_SIGNAL_FUNC (GtkPreferencesShow),
"intf_popup");
gtk_signal_connect (GTK_OBJECT (popup_exit), "activate",
- GTK_SIGNAL_FUNC (GtkExitActivate),
+ GTK_SIGNAL_FUNC (GtkExit),
"intf_popup");
gtk_object_set_data (GTK_OBJECT (intf_popup), "tooltips", tooltips);
GTK_SIGNAL_FUNC (gtk_widget_hide),
NULL);
gtk_signal_connect (GTK_OBJECT (playlist_add_disc), "activate",
- GTK_SIGNAL_FUNC (GtkDiscOpenActivate),
+ GTK_SIGNAL_FUNC (GtkDiscOpenShow),
"intf_playlist");
gtk_signal_connect (GTK_OBJECT (playlist_add_file), "activate",
- GTK_SIGNAL_FUNC (GtkFileOpenActivate),
+ GTK_SIGNAL_FUNC (GtkFileOpenShow),
"intf_playlist");
gtk_signal_connect (GTK_OBJECT (playlist_add_network), "activate",
- GTK_SIGNAL_FUNC (GtkNetworkOpenActivate),
+ GTK_SIGNAL_FUNC (GtkNetworkOpenShow),
"intf_playlist");
gtk_signal_connect (GTK_OBJECT (playlist_add_url), "activate",
GTK_SIGNAL_FUNC (GtkPlaylistAddUrl),
* gtk_modules.c : functions to build modules configuration boxes.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_modules.c,v 1.8 2002/06/01 12:31:59 sam Exp $
+ * $Id: gtk_modules.c,v 1.9 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
#include "gtk_common.h"
gboolean GtkModulesShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
gtk_widget_hide( p_intf->p_sys->p_modules );
}
-/****************************************************************************
- * Callbacks for menuitems
- ****************************************************************************/
-void GtkModulesActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkModulesShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
* gtk_modules.h: prototypes for modules functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_modules.h,v 1.2 2001/05/15 14:49:48 stef Exp $
+ * $Id: gtk_modules.h,v 1.3 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-gboolean GtkModulesShow ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkModulesShow ( GtkWidget *, gpointer );
void GtkModulesCancel ( GtkButton * button, gpointer );
-void GtkModulesActivate( GtkMenuItem * menuitem, gpointer );
+
* gtk_open.c : functions to handle file/disc/network open widgets.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_open.c,v 1.27 2002/06/02 09:03:54 sam Exp $
+ * $Id: gtk_open.c,v 1.28 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* The following callbacks are related to the file requester.
*****************************************************************************/
gboolean GtkFileOpenShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
/* add the new file to the interface playlist */
psz_filename =
gtk_file_selection_get_filename( GTK_FILE_SELECTION( p_filesel ) );
- playlist_Add( p_playlist, 0, (char*)psz_filename );
+ playlist_Add( p_playlist, (char*)psz_filename,
+ PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
/* catch the GTK CList */
p_playlist_clist = GTK_CLIST( gtk_object_get_data(
- GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* update the plugin display */
GtkRebuildCList( p_playlist_clist, p_playlist );
vlc_object_release( p_playlist );
- /* end current item, select added item */
-#if 0
- if( p_intf->p_vlc->p_input_bank->pp_input[0] != NULL )
- {
- p_intf->p_vlc->p_input_bank->pp_input[0]->b_eof = 1;
- }
-
- intf_PlaylistJumpto( p_intf->p_vlc->p_playlist, i_end - 1 );
-#endif
}
/*****************************************************************************
* The following callbacks are related to the disc manager.
*****************************************************************************/
gboolean GtkDiscOpenShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
/* Build source name and add it to playlist */
sprintf( psz_source, "%s:%s@%d,%d",
psz_method, psz_device, i_title, i_chapter );
- playlist_Add( p_playlist, 0, psz_source );
+ playlist_Add( p_playlist, psz_source,
+ PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
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" ) );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* update the display */
GtkRebuildCList( p_playlist_clist, p_playlist );
- /* stop current item, select added item */
-#if 0
- if( p_intf->p_vlc->p_input_bank->pp_input[0] != NULL )
- {
- p_intf->p_vlc->p_input_bank->pp_input[0]->b_eof = 1;
- }
-
- intf_PlaylistJumpto( p_intf->p_vlc->p_playlist, i_end - 1 );
-#endif
-
vlc_object_release( p_playlist );
}
* The following callbacks are related to the network stream manager.
*****************************************************************************/
gboolean GtkNetworkOpenShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
/* Build source name and add it to playlist */
sprintf( psz_source, "udp:@:%i", i_port );
-
- playlist_Add( p_playlist, 0, psz_source );
+ playlist_Add( p_playlist, psz_source,
+ PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
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" ) );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* update the display */
GtkRebuildCList( p_playlist_clist, p_playlist );
-
-#if 0
- intf_PlaylistJumpto( p_playlist, i_end - 1 );
-#endif
}
/* UDP Multicast */
/* Build source name and add it to playlist */
sprintf( psz_source, "udp:@%s:%i", psz_address, i_port );
-
- playlist_Add( p_playlist, 0, psz_source );
+ playlist_Add( p_playlist, psz_source,
+ PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
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" ) );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* update the display */
GtkRebuildCList( p_playlist_clist, p_playlist );
-
-#if 0
- intf_PlaylistJumpto( p_playlist, i_end - 1 );
-#endif
}
/* Channel server */
/* Build source name and add it to playlist */
sprintf( psz_source, "http://%s", psz_address );
-
- playlist_Add( p_playlist, 0, psz_source );
+ playlist_Add( p_playlist, psz_source,
+ PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
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" ) );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* update the display */
GtkRebuildCList( p_playlist_clist, p_playlist );
-
-#if 0
- intf_PlaylistJumpto( p_playlist, i_end - 1 );
-#endif
}
/* This shouldn't occur */
* The following callbacks are related to the satellite card manager.
*****************************************************************************/
gboolean GtkSatOpenShow( GtkWidget *widget,
- GdkEventButton *event,
- gpointer user_data)
+ gpointer user_data)
{
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
/* Build source name and add it to playlist */
sprintf( psz_source, "%s:%d,%d,%d,%d",
"satellite", i_freq, b_pol, i_fec, i_srate );
- playlist_Add( p_playlist, 0, psz_source );
+ playlist_Add( p_playlist, psz_source,
+ PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END );
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" ) );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* update the display */
GtkRebuildCList( p_playlist_clist, p_playlist );
- /* stop current item, select added item */
-#if 0
- if( p_intf->p_vlc->p_input_bank->pp_input[0] != NULL )
- {
- p_intf->p_vlc->p_input_bank->pp_input[0]->b_eof = 1;
- }
-
- intf_PlaylistJumpto( p_intf->p_vlc->p_playlist, i_end - 1 );
-#endif
-
vlc_object_release( p_playlist );
}
gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
}
-/****************************************************************************
- * Callbacks for menuitem
- ****************************************************************************/
-void GtkFileOpenActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkFileOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkDiscOpenActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkDiscOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkNetworkOpenActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkNetworkOpenShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
* gtk_open.h: prototypes for open functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_open.h,v 1.3 2001/05/30 23:02:04 stef Exp $
+ * $Id: gtk_open.h,v 1.4 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-gboolean GtkFileOpenShow ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkFileOpenShow ( GtkWidget *, gpointer );
void GtkFileOpenCancel ( GtkButton *, gpointer );
void GtkFileOpenOk ( GtkButton *, gpointer );
-gboolean GtkDiscOpenShow ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkDiscOpenShow ( GtkWidget *, gpointer );
void GtkDiscOpenDvd ( GtkToggleButton *, gpointer );
void GtkDiscOpenVcd ( GtkToggleButton *, gpointer );
void GtkDiscOpenOk ( GtkButton *, gpointer );
void GtkDiscOpenCancel ( GtkButton *, gpointer );
-gboolean GtkNetworkOpenShow ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkNetworkOpenShow ( GtkWidget *, gpointer );
void GtkNetworkOpenOk ( GtkButton *, gpointer );
void GtkNetworkOpenCancel ( GtkButton *, gpointer );
void GtkNetworkOpenBroadcast( GtkToggleButton *, gpointer );
void GtkNetworkOpenChannel ( GtkToggleButton *, gpointer );
-void GtkFileOpenActivate ( GtkMenuItem *, gpointer );
-void GtkDiscOpenActivate ( GtkMenuItem *, gpointer );
-void GtkNetworkOpenActivate ( GtkMenuItem *, gpointer );
* gtk_playlist.c : Interface for the playlist dialog
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: gtk_playlist.c,v 1.32 2002/06/01 12:31:59 sam Exp $
+ * $Id: gtk_playlist.c,v 1.33 2002/06/07 14:30:41 sam Exp $
*
* Authors: Pierre Baillet <oct@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Playlist window management
****************************************************************************/
gboolean GtkPlaylistShow( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
-#if 0 /* PLAYLIST TARASS */
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ playlist_t *p_playlist;
- if( GTK_WIDGET_VISIBLE( p_intf->p_sys->p_playlist ) )
+ p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
+ if( p_playlist == NULL )
{
- gtk_widget_hide( p_intf->p_sys->p_playlist );
+ return FALSE;
+ }
+
+ if( GTK_WIDGET_VISIBLE( p_intf->p_sys->p_playwin ) )
+ {
+ gtk_widget_hide( p_intf->p_sys->p_playwin );
}
else
{
GtkCList * p_clist;
p_clist = GTK_CLIST( gtk_object_get_data(
- GTK_OBJECT( p_intf->p_sys->p_playlist ), "playlist_clist" ) );
- GtkRebuildCList( p_clist , p_intf->p_vlc->p_playlist );
- gtk_widget_show( p_intf->p_sys->p_playlist );
- gdk_window_raise( p_intf->p_sys->p_playlist->window );
+ GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) );
+ GtkRebuildCList( p_clist , p_playlist );
+ gtk_widget_show( p_intf->p_sys->p_playwin );
+ gdk_window_raise( p_intf->p_sys->p_playwin->window );
}
-#endif
+
+ vlc_object_release( p_playlist );
return TRUE;
}
gboolean GtkPlaylistPrev( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data )
{
-#if 0 /* PLAYLIST TARASS */
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ playlist_t *p_playlist;
+
+ p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
- if( p_intf->p_sys->p_input != NULL )
+ if( p_playlist )
{
- /* FIXME: temporary hack */
- intf_PlaylistPrev( p_intf->p_vlc->p_playlist );
- intf_PlaylistPrev( p_intf->p_vlc->p_playlist );
- p_intf->p_sys->p_input->b_eof = 1;
+ playlist_Prev( p_playlist );
+ vlc_object_release( p_playlist );
}
-#endif
return TRUE;
}
gboolean GtkPlaylistNext( GtkWidget *widget,
- GdkEventButton *event,
gpointer user_data)
{
-#if 0 /* PLAYLIST TARASS */
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ playlist_t *p_playlist;
+
+ p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );
- if( p_intf->p_sys->p_input != NULL )
+ if( p_playlist )
{
- /* FIXME: temporary hack */
- p_intf->p_sys->p_input->b_eof = 1;
+ playlist_Next( p_playlist );
+ vlc_object_release( p_playlist );
}
-#endif
return TRUE;
}
-/****************************************************************************
- * Menu callbacks for playlist functions
- ****************************************************************************/
-void GtkPlaylistActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkPlaylistShow( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkNextActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkPlaylistNext( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
-void GtkPrevActivate( GtkMenuItem * menuitem, gpointer user_data )
-{
- GtkPlaylistPrev( GTK_WIDGET( menuitem ), NULL, user_data );
-}
-
-
/****************************************************************************
* Playlist core functions
****************************************************************************/
vlc_mutex_lock( &p_intf->change_lock );
p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* I use UNDOCUMENTED features to retrieve the selection... */
p_selection = p_clist->selection;
vlc_mutex_lock( &p_intf->change_lock );
p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ p_intf->p_sys->p_playwin ), "playlist_clist" ) );
/* have to copy the selection to an int *
I wasn't able to copy the g_list to another g_list
GdkEvent * event,
gpointer user_data)
{
-#if 0 /* PLAYLIST TARASS */
- intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ intf_thread_t * p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
+ playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+ FIND_ANYWHERE );
+ if( p_playlist == NULL )
+ {
+ return FALSE;
+ }
if( ( event->button ).type == GDK_2BUTTON_PRESS )
{
gint i_col;
p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ p_intf->p_sys->p_playwin ), "playlist_clist" ) );
if( gtk_clist_get_selection_info( p_clist, (event->button).x,
(event->button).y, &i_row, &i_col ) == 1 )
{
- /* clicked is in range. */
- if( p_intf->p_sys->p_input != NULL )
- {
- /* FIXME: temporary hack */
- p_intf->p_sys->p_input->b_eof = 1;
- }
-
- intf_PlaylistJumpto( p_intf->p_vlc->p_playlist, i_row - 1 );
+ playlist_Goto( p_playlist, i_row );
}
+
+ vlc_object_release( p_playlist );
return TRUE;
}
-#endif
+ vlc_object_release( p_playlist );
return FALSE;
}
int i_end = p_intf->p_vlc->p_playlist->i_size;
p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ p_intf->p_sys->p_playwin ), "playlist_clist" ) );
if( gtk_clist_get_selection_info( p_clist, x, y, &i_row, &i_col ) == 1 )
{
p_intf = GetIntf( GTK_WIDGET(widget), (char*)user_data );
p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ p_intf->p_sys->p_playwin ), "playlist_clist" ) );
if( !GTK_WIDGET_TOPLEVEL(widget) )
{
- gdk_window_raise( p_intf->p_sys->p_playlist->window );
+ gdk_window_raise( p_intf->p_sys->p_playwin->window );
}
color.red = 0xffff;
GtkAppendList( p_playlist, i_position, p_files );
/* get the CList and rebuild it. */
- p_clist = GTK_CLIST( lookup_widget( p_intf->p_sys->p_playlist,
+ p_clist = GTK_CLIST( lookup_widget( p_intf->p_sys->p_playwin,
"playlist_clist" ) );
GtkRebuildCList( p_clist , p_playlist );
/* statis timeouted function */
void GtkPlayListManage( intf_thread_t * p_intf )
{
-#if 0 /* PLAYLIST TARASS */
- /* this thing really sucks for now :( */
+ playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
+ FIND_ANYWHERE );
+ GtkCList * p_clist;
- /* TODO speak more with interface/intf_playlist.c */
+ if( p_playlist == NULL )
+ {
+ return;
+ }
- playlist_t * p_playlist = p_intf->p_vlc->p_playlist ;
- GtkCList * p_clist;
+ /* this thing really sucks for now :( */
- if( GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
+ /* TODO speak more with interface/intf_playlist.c */
+ if( GTK_IS_WIDGET( p_intf->p_sys->p_playwin ) )
{
p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT(
- p_intf->p_sys->p_playlist ), "playlist_clist" ) );
+ p_intf->p_sys->p_playwin ), "playlist_clist" ) );
- vlc_mutex_lock( &p_playlist->change_lock );
+ vlc_mutex_lock( &p_playlist->object_lock );
if( p_intf->p_sys->i_playing != p_playlist->i_index )
{
p_intf->p_sys->i_playing = p_playlist->i_index;
}
- vlc_mutex_unlock( &p_playlist->change_lock );
+ vlc_mutex_unlock( &p_playlist->object_lock );
}
-#endif
+
+ vlc_object_release( p_playlist );
}
void GtkRebuildCList( GtkCList * p_clist, playlist_t * p_playlist )
{
-#if 0 /* PLAYLIST TARASS */
int i_dummy;
gchar * ppsz_text[2];
GdkColor red;
gtk_clist_freeze( p_clist );
gtk_clist_clear( p_clist );
- vlc_mutex_lock( &p_playlist->change_lock );
+ vlc_mutex_lock( &p_playlist->object_lock );
for( i_dummy = p_playlist->i_size ; i_dummy-- ; )
{
- ppsz_text[0] = p_playlist->p_item[i_dummy].psz_name;
+ ppsz_text[0] = p_playlist->pp_items[i_dummy]->psz_name;
ppsz_text[1] = "no info";
gtk_clist_insert( p_clist, 0, ppsz_text );
}
- vlc_mutex_unlock( &p_playlist->change_lock );
+ vlc_mutex_unlock( &p_playlist->object_lock );
gtk_clist_set_background( p_clist, p_playlist->i_index, &red);
gtk_clist_thaw( p_clist );
-#endif
}
/* URL-decode a file: URL path, return NULL if it's not what we expect */
* gtk_playlist.h : Playlist functions for the Gtk plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_playlist.h,v 1.6 2002/06/01 12:31:59 sam Exp $
+ * $Id: gtk_playlist.h,v 1.7 2002/06/07 14:30:41 sam Exp $
*
* Authors: Pierre Baillet <oct@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
int GtkHasValidExtension ( gchar * );
GList * GtkReadFiles ( gchar * );
-gboolean GtkPlaylistShow ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkPlaylistPrev ( GtkWidget *, GdkEventButton *, gpointer );
-gboolean GtkPlaylistNext ( GtkWidget *, GdkEventButton *, gpointer );
+gboolean GtkPlaylistShow ( GtkWidget *, gpointer );
+gboolean GtkPlaylistPrev ( GtkWidget *, gpointer );
+gboolean GtkPlaylistNext ( GtkWidget *, gpointer );
gboolean GtkPlaylistDragMotion( GtkWidget *, GdkDragContext *,
gint, gint, guint, gpointer );
gboolean GtkPlaylistEvent ( GtkWidget *, GdkEvent *, gpointer );
guint, guint, gpointer );
void GtkDeleteGListItem ( gpointer, gpointer );
-void GtkPlaylistActivate ( GtkMenuItem *, gpointer );
-void GtkNextActivate ( GtkMenuItem *, gpointer );
-void GtkPrevActivate ( GtkMenuItem *, gpointer );
-
void GtkDropDataReceived ( intf_thread_t *, GtkSelectionData *, guint, int );
int GtkAppendList ( playlist_t *, int, GList * );
void GtkRebuildCList ( GtkCList *, playlist_t * );
* gtk_preferences.c: functions to handle the preferences dialog box.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: gtk_preferences.c,v 1.31 2002/06/01 18:04:48 sam Exp $
+ * $Id: gtk_preferences.c,v 1.32 2002/06/07 14:30:41 sam Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
* Loïc Minier <lool@via.ecp.fr>
/****************************************************************************
* Callback for menuitems: display configuration interface window
****************************************************************************/
-void GtkPreferencesActivate( GtkMenuItem * menuitem, gpointer user_data )
+void GtkPreferencesShow( GtkMenuItem * menuitem, gpointer user_data )
{
intf_thread_t * p_intf;
/* change the highlight status of the Apply button */
apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data),
- "apply_button" );
+ "apply_button" );
gtk_widget_set_sensitive( apply_button, TRUE );
}
* gtk_control.h: prototypes for control functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: gtk_preferences.h,v 1.3 2002/03/11 07:23:09 gbazin Exp $
+ * $Id: gtk_preferences.h,v 1.4 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stéphane Borel <stef@via.ecp.fr>
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
-void GtkPreferencesActivate( GtkMenuItem *, gpointer );
+void GtkPreferencesShow( GtkMenuItem *, gpointer );
* mpeg_audio.c : mpeg_audio Stream input module for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: mpeg_audio.c,v 1.9 2002/06/01 12:32:00 sam Exp $
+ * $Id: mpeg_audio.c,v 1.10 2002/06/07 14:30:41 sam Exp $
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
MPEGAUDIO_MAXTESTPOS) )
< (b_forced ? 1 : 2) )
{
- msg_Warn( p_input, "MPEGAudio module discarded" );
+ msg_Warn( p_input, "MPEGAudio module discarded (no frame found)" );
return( -1 );
}
return( -1 );
}
p_input->stream.pp_programs[0]->b_is_ok = 0;
- p_input->stream.p_selected_program =
- p_input->stream.p_new_program = p_input->stream.pp_programs[0];
+ p_input->stream.p_selected_program = p_input->stream.pp_programs[0];
/* create our ES */
p_es = input_AddES( p_input,
* vpar_headers.c : headers parsing
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: vpar_headers.c,v 1.26 2002/06/02 09:03:54 sam Exp $
+ * $Id: vpar_headers.c,v 1.27 2002/06/07 14:30:41 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Stéphane Borel <stef@via.ecp.fr>
/* Extension and User data */
ExtensionAndUserData( p_vpar );
- /* Spawn a video output if there is none */
-
+ /* Spawn a video output if there is none. First we look for our children,
+ * then we look for any other vout that might be available. */
p_vpar->p_vout = vlc_object_find( p_vpar->p_fifo, VLC_OBJECT_VOUT,
- FIND_ANYWHERE );
+ FIND_CHILD );
+ if( p_vpar->p_vout == NULL )
+ {
+ p_vpar->p_vout = vlc_object_find( p_vpar->p_fifo, VLC_OBJECT_VOUT,
+ FIND_ANYWHERE );
+ }
if( p_vpar->p_vout )
{
}
}
+ if( p_vpar->p_fifo->b_die || p_vpar->p_fifo->b_error )
+ {
+ return;
+ }
+
if( p_vpar->p_vout == NULL )
{
msg_Dbg( p_vpar->p_fifo, "no vout present, spawning one" );
* rc.c : remote control stdin/stdout plugin for vlc
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: rc.c,v 1.17 2002/06/02 09:03:54 sam Exp $
+ * $Id: rc.c,v 1.18 2002/06/07 14:30:41 sam Exp $
*
* Authors: Peter Surda <shurdeek@panorama.sth.ac.at>
*
*****************************************************************************/
struct intf_sys_s
{
- vlc_mutex_t change_lock;
+ input_thread_t * p_input;
};
#define MAX_LINE_LENGTH 256
double f_ratio = 1;
- input_thread_t *p_input;
+ p_intf->p_sys->p_input = NULL;
while( !p_intf->b_die )
{
}
/* Manage the input part */
- p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE );
+ if( p_intf->p_sys->p_input == NULL )
+ {
+ p_intf->p_sys->p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT,
+ FIND_ANYWHERE );
+ }
+ else if( p_intf->p_sys->p_input->b_dead )
+ {
+ vlc_object_release( p_intf->p_sys->p_input );
+ p_intf->p_sys->p_input = NULL;
+ }
- if( p_input )
+ if( p_intf->p_sys->p_input )
{
+ input_thread_t *p_input = p_intf->p_sys->p_input;
+
/* Get position */
vlc_mutex_lock( &p_input->stream.stream_lock );
if( !p_input->b_die && p_input->stream.i_mux_rate )
case 'p':
case 'P':
- if( p_input )
+ if( p_intf->p_sys->p_input )
{
- input_SetStatus( p_input, INPUT_STATUS_PAUSE );
+ input_SetStatus( p_intf->p_sys->p_input,
+ INPUT_STATUS_PAUSE );
}
break;
case 'f':
case 'F':
- if( p_input )
+ if( p_intf->p_sys->p_input )
{
vout_thread_t *p_vout;
- p_vout = vlc_object_find( p_input,
+ p_vout = vlc_object_find( p_intf->p_sys->p_input,
VLC_OBJECT_VOUT, FIND_CHILD );
if( p_vout )
case 'r':
case 'R':
- if( p_input )
+ if( p_intf->p_sys->p_input )
{
for( i_dummy = 1;
i_dummy < MAX_LINE_LENGTH && p_cmd[ i_dummy ] >= '0'
}
p_cmd[ i_dummy ] = 0;
- input_Seek( p_input, (off_t)atoi( p_cmd + 1 ),
+ input_Seek( p_intf->p_sys->p_input,
+ (off_t)atoi( p_cmd + 1 ),
INPUT_SEEK_SECONDS | INPUT_SEEK_SET );
/* rcreseek(f_cpos); */
}
}
}
- if( p_input )
- {
- vlc_object_release( p_input );
- }
-
msleep( INTF_IDLE_SLEEP );
}
+
+ if( p_intf->p_sys->p_input )
+ {
+ vlc_object_release( p_intf->p_sys->p_input );
+ p_intf->p_sys->p_input = NULL;
+ }
+
}
msgid ""
msgstr ""
"Project-Id-Version: vlc 0.73.3\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2002-04-18 23:38+0100\n"
"Last-Translator: Thomas Graf <tgr@reeler.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr "Usage: %s [Optionen] [Parameter] [Date]...\n"
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, fuzzy, c-format
msgid ""
"%s module options:\n"
msgstr "%s Modul Optionen:\n"
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr "text"
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr "zahl"
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr "gleitpunktzahl"
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
#, fuzzy
msgid ""
"\n"
"pausieren\n"
" vlc:quit \tVLC beenden"
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
#, fuzzy
msgid ""
"\n"
"Drück die Eingabetaste um weiterzufahren..."
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, fuzzy, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr "Usage: %s [Optionen] [Parameter] [Date]...\n"
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
#, fuzzy
msgid "[module] [description]\n"
msgstr "[Modul] [Beschreibung]"
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
msgstr "Audio Ausgabe Modul"
#: src/libvlc.h:60
-#, fuzzy
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
"Diese Option erlaubt Dir den Audio Ausgabemodus festzulegen.\n"
"Merke Dir, standardmässig wird die beste Methode ausgewählt."
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2002-04-22 09:56+0200\n"
"Last-Translator: Samuel Hocevar <sam@zoy.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr ""
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, c-format
msgid ""
"%s module options:\n"
msgstr ""
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr ""
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr ""
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr ""
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
msgid ""
"\n"
"Playlist items:\n"
" vlc:quit quit VLC\n"
msgstr ""
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
msgid ""
"\n"
"Press the RETURN key to continue...\n"
msgstr ""
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr ""
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
msgid "[module] [description]\n"
msgstr ""
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
#: src/libvlc.h:60
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behaviour is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behaviour is to automatically select the best method available."
#: src/libvlc.h:64
msgid "enable audio"
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2001-12-10 13:32+0100\n"
"Last-Translator: Samuel Hocevar <sam@zoy.org>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr "Utilisation: %s [options] [paramètres] [fichier]...\n"
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, c-format
msgid ""
"%s module options:\n"
"\n"
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr "chaîne"
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr "entier"
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr "flottant"
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
msgid ""
"\n"
"Playlist items:\n"
" vlc:pause fait une pause dans la playlist\n"
" vlc:quit quitter VLC\n"
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
msgid ""
"\n"
"Press the RETURN key to continue...\n"
"Appuyez sur ENTRÉE pour continuer...\n"
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"Utilisation: %s [options] [paramètres] [fichier]...\n"
"\n"
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
msgid "[module] [description]\n"
msgstr "[module] [description]\n"
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
#: src/libvlc.h:60
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
"Cette option permet de choisir le module de sortie audio utilisée par vlc. "
"Le comportement par défaut est de choisir automatiquement le meilleur module "
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2002-04-02 03:22+0900\n"
"Last-Translator: Fumio Nakayama <endymion@ca2.so-net.ne.jp>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=euc-jp\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr ""
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, c-format
msgid ""
"%s module options:\n"
msgstr ""
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr ""
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr ""
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr ""
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
msgid ""
"\n"
"Playlist items:\n"
" vlc:quit quit VLC\n"
msgstr ""
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
msgid ""
"\n"
"Press the RETURN key to continue...\n"
msgstr ""
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr ""
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
msgid "[module] [description]\n"
msgstr ""
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
#: src/libvlc.h:60
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
#: src/libvlc.h:64
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2002-04-20 16:58GMT\n"
"Last-Translator: Jean-Paul Saman <jpsaman@wxs.nl>\n"
"Language-Team: Nederlands <nl@li.org>\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.8\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr "Gebruik: %s [opties] [parameters] [file] ...\n"
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, fuzzy, c-format
msgid ""
"%s module options:\n"
msgstr "%s module opties:\n"
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr ""
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr ""
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr ""
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
#, fuzzy
msgid ""
"\n"
" vlc:pause \tpauzeer speellijst items\n"
" vlc:quit \tstop VLC"
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
#, fuzzy
msgid ""
"\n"
"Druk op RETURN om verder te gaan..."
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, fuzzy, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr "Gebruik: %s [opties] [parameters] [file] ...\n"
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
#, fuzzy
msgid "[module] [description]\n"
msgstr "[module] [beschrijving]"
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
#, fuzzy
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
msgstr "audio output module"
#: src/libvlc.h:60
-#, fuzzy
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
"Deze optie selecteert de audio output methode, die gebruikt wordt door vlc.\n"
"Noot: Standaard wordt automatisch de best beschikbare methode gekozen."
msgid ""
msgstr ""
"Project-Id-Version: vlc-cvs\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2002-28-02 23.35+0100\n"
"Last-Translator: Sigmund Augdal <sigmunau@idi.ntnu.no>.\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr ""
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, c-format
msgid ""
"%s module options:\n"
msgstr ""
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr ""
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr ""
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr ""
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
msgid ""
"\n"
"Playlist items:\n"
" vlc:quit quit VLC\n"
msgstr ""
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
msgid ""
"\n"
"Press the RETURN key to continue...\n"
msgstr ""
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr ""
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
msgid "[module] [description]\n"
msgstr ""
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
#: src/libvlc.h:60
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
#: src/libvlc.h:64
msgid ""
msgstr ""
"Project-Id-Version: vlc\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2002-05-26 18:31+0200\n"
"Last-Translator: Arkadiusz Lipiec <alipiec@elka.pw.edu.pl>\n"
"Language-Team: polish <pl@li.org>\n"
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr "U¿ycie: %s [opcje] [parametry] [plik]...\n"
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, fuzzy, c-format
msgid ""
"%s module options:\n"
msgstr "opcje modu³u %s:\n"
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr "napis"
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr "liczba ca³kowita"
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr "liczba zmiennoprz."
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
#, fuzzy
msgid ""
"\n"
" vlc:pause zatrzymanie odtwarzania obiektów listy\n"
" vlc:quit wyj¶cie z VLC"
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
#, fuzzy
msgid ""
"\n"
"Naci¶nij klawisz ENTER aby kontynuowaæ..."
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, fuzzy, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr "U¿ycie: %s [opcje] [parametry] [plik]...\n"
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
#, fuzzy
msgid "[module] [description]\n"
msgstr "[modu³] [opis]"
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
#, fuzzy
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
msgstr "modu³ wyj¶ciowy d¼wiêku"
#: src/libvlc.h:60
-#, fuzzy
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
"Ta opcja umo¿liwia wybranie metody wyj¶ciowej d¼wiêku u¿ywanej przez vlc.\n"
"Zauwa¿, ¿e domy¶lnym zachowaniem jest automatyczne wybranie najlepszej "
msgid ""
msgstr ""
"Project-Id-Version: gnome-vlc\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: 2001-02-19 19:58+03:00\n"
"Last-Translator: Valek Filippov <frob@df.ru>\n"
"Language-Team: Russian <ru@li.org>\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr ""
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, c-format
msgid ""
"%s module options:\n"
msgstr ""
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr ""
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr ""
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr ""
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
msgid ""
"\n"
"Playlist items:\n"
" vlc:quit quit VLC\n"
msgstr ""
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
msgid ""
"\n"
"Press the RETURN key to continue...\n"
msgstr ""
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr ""
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
msgid "[module] [description]\n"
msgstr ""
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
#: src/libvlc.h:60
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
#: src/libvlc.h:64
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-06-04 02:09+0200\n"
+"POT-Creation-Date: 2002-06-07 11:11+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/libvlc.c:277
+#: src/libvlc.c:281
#, c-format
msgid "Usage: %s [options] [parameters] [file]...\n"
msgstr ""
#. Print module name
-#: src/libvlc.c:891
+#: src/libvlc.c:898
#, c-format
msgid ""
"%s module options:\n"
msgstr ""
#. We could also have "=<" here
-#: src/libvlc.c:911 src/misc/configuration.c:798
+#: src/libvlc.c:918 src/misc/configuration.c:798
msgid "string"
msgstr ""
-#: src/libvlc.c:914 src/misc/configuration.c:783
+#: src/libvlc.c:921 src/misc/configuration.c:783
msgid "integer"
msgstr ""
-#: src/libvlc.c:917 src/misc/configuration.c:790
+#: src/libvlc.c:924 src/misc/configuration.c:790
msgid "float"
msgstr ""
-#: src/libvlc.c:923
+#: src/libvlc.c:930
msgid " (default enabled)"
msgstr ""
-#: src/libvlc.c:924
+#: src/libvlc.c:931
msgid " (default disabled)"
msgstr ""
-#: src/libvlc.c:1006
+#: src/libvlc.c:1013
msgid ""
"\n"
"Playlist items:\n"
" vlc:quit quit VLC\n"
msgstr ""
-#: src/libvlc.c:1027 src/libvlc.c:1076 src/libvlc.c:1100 src/libvlc.c:1119
+#: src/libvlc.c:1034 src/libvlc.c:1083 src/libvlc.c:1107 src/libvlc.c:1126
msgid ""
"\n"
"Press the RETURN key to continue...\n"
msgstr ""
#. Usage
-#: src/libvlc.c:1050
+#: src/libvlc.c:1057
#, c-format
msgid ""
"Usage: %s [options] [parameters] [file]...\n"
"\n"
msgstr ""
-#: src/libvlc.c:1053
+#: src/libvlc.c:1060
msgid "[module] [description]\n"
msgstr ""
-#: src/libvlc.c:1094
+#: src/libvlc.c:1101
msgid ""
"This program comes with NO WARRANTY, to the extent permitted by law.\n"
"You may redistribute it under the terms of the GNU General Public License;\n"
#: src/libvlc.h:60
msgid ""
-"This option allows you to select the audio audio output method used by vlc. "
-"The default behavior is to automatically select the best method available."
+"This option allows you to select the audio output method used by vlc. The "
+"default behavior is to automatically select the best method available."
msgstr ""
#: src/libvlc.h:64
* decoders.
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: input.c,v 1.201 2002/06/04 00:11:12 sam Exp $
+ * $Id: input.c,v 1.202 2002/06/07 14:30:41 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
if( p_input == NULL )
{
msg_Err( p_parent, "out of memory" );
- return( NULL );
+ return NULL;
}
/* Initialize thread properties */
if( input_AccessInit( p_input ) == -1 )
{
- return( -1 );
+ return -1;
}
/* Find and open appropriate access module */
{
msg_Err( p_input, "no suitable access module for `%s/%s:%s'",
p_input->psz_access, p_input->psz_demux, p_input->psz_name );
- return( -1 );
+ return -1;
}
#define f p_input->p_access_module->p_functions->access.functions.access
if( p_input->b_die || p_input->b_error || p_input->b_eof )
{
module_Unneed( p_input->p_access_module );
- return( -1 );
+ return -1;
}
}
}
msg_Err( p_input, "no suitable demux module for `%s/%s:%s'",
p_input->psz_access, p_input->psz_demux, p_input->psz_name );
module_Unneed( p_input->p_access_module );
- return( -1 );
+ return -1;
}
#define f p_input->p_demux_module->p_functions->demux.functions.demux
p_input->pf_rewind = f.pf_rewind;
#undef f
- return( 0 );
+ return 0;
}
/*****************************************************************************
* and spawns threads.
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: libvlc.c,v 1.7 2002/06/04 00:11:12 sam Exp $
+ * $Id: libvlc.c,v 1.8 2002/06/07 14:30:41 sam Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
p_vlc->psz_object_name = "vlc";
}
+ /* Announce who we are */
+ msg_Dbg( p_vlc, COPYRIGHT_MESSAGE );
+ msg_Dbg( p_vlc, "libvlc was configured with %s", CONFIGURE_LINE );
+
/*
* Initialize the module bank and and load the configuration of the main
* module. We need to do this at this stage to be able to display a short
return p_vlc->i_status;
}
-vlc_error_t vlc_add_target( vlc_t *p_vlc, char *psz_target )
+vlc_error_t vlc_add_target( vlc_t *p_vlc, char *psz_target,
+ int i_mode, int i_pos )
{
+ vlc_error_t err;
playlist_t *p_playlist;
if( !p_vlc || ( p_vlc->i_status != VLC_STATUS_STOPPED
vlc_object_yield( p_playlist );
}
- playlist_Add( p_playlist, PLAYLIST_END, psz_target );
+ err = playlist_Add( p_playlist, psz_target, i_mode, i_pos );
vlc_object_release( p_playlist );
- return VLC_SUCCESS;
+ return err;
}
/* following functions are local */
/* We assume that the remaining parameters are filenames */
for( i_opt = optind; i_opt < i_argc; i_opt++ )
{
- vlc_add_target( p_vlc, ppsz_argv[ i_opt ] );
+ vlc_add_target( p_vlc, ppsz_argv[ i_opt ],
+ PLAYLIST_APPEND, PLAYLIST_END );
}
return VLC_SUCCESS;
* libvlc.h: main libvlc header
*****************************************************************************
* Copyright (C) 1998-2002 VideoLAN
- * $Id: libvlc.h,v 1.2 2002/06/01 17:09:25 sam Exp $
+ * $Id: libvlc.h,v 1.3 2002/06/07 14:30:41 sam Exp $
*
* Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org>
#define AOUT_TEXT N_("audio output module")
#define AOUT_LONGTEXT N_( \
- "This option allows you to select the audio audio output method used by " \
- "vlc. The default behavior is to automatically select the " \
- "best method available.")
+ "This option allows you to select the audio output method used by vlc. " \
+ "The default behavior is to automatically select the best method " \
+ "available.")
#define AUDIO_TEXT N_("enable audio")
#define AUDIO_LONGTEXT N_( \
/* Playlist options */
ADD_CATEGORY_HINT( N_("Playlist"), NULL )
-ADD_BOOL ( "launch-playlist", 0, NULL, PL_LAUNCH_TEXT, PL_LAUNCH_LONGTEXT )
-ADD_BOOL ( "enqueue-playlist", 0, NULL, PL_ENQUEUE_TEXT, PL_ENQUEUE_LONGTEXT )
-ADD_BOOL ( "loop-playlist", 0, NULL, PL_LOOP_TEXT, PL_LOOP_LONGTEXT )
+ADD_BOOL ( "playlist", 0, NULL, PL_LAUNCH_TEXT, PL_LAUNCH_LONGTEXT )
+ADD_BOOL ( "enqueue", 0, NULL, PL_ENQUEUE_TEXT, PL_ENQUEUE_LONGTEXT )
+ADD_BOOL ( "loop", 0, NULL, PL_LOOP_TEXT, PL_LOOP_LONGTEXT )
/* Misc options */
ADD_CATEGORY_HINT( N_("Miscellaneous"), NULL )
* cpu.c: CPU detection code
*****************************************************************************
* Copyright (C) 1998-2002 VideoLAN
- * $Id: cpu.c,v 1.3 2002/06/04 00:11:12 sam Exp $
+ * $Id: cpu.c,v 1.4 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Christophe Massiot <massiot@via.ecp.fr>
if( ret != KERN_SUCCESS )
{
fprintf( stderr, "error: couldn't get CPU information\n" );
- return( i_capabilities );
+ return i_capabilities;
}
slot_name( hi.cpu_type, hi.cpu_subtype, &psz_name, &psz_subname );
i_capabilities |= CPU_CAPABILITY_ALTIVEC;
}
- return( i_capabilities );
+ return i_capabilities;
#elif defined( __i386__ )
volatile unsigned int i_eax, i_ebx, i_ecx, i_edx;
# if defined( CAN_COMPILE_SSE ) || defined ( CAN_COMPILE_3DNOW )
signal( SIGILL, NULL );
# endif
- return( i_capabilities );
+ return i_capabilities;
}
i_capabilities |= CPU_CAPABILITY_486;
# if defined( CAN_COMPILE_SSE ) || defined ( CAN_COMPILE_3DNOW )
signal( SIGILL, NULL );
# endif
- return( i_capabilities );
+ return i_capabilities;
}
/* FIXME: this isn't correct, since some 486s have cpuid */
# if defined( CAN_COMPILE_SSE ) || defined ( CAN_COMPILE_3DNOW )
signal( SIGILL, NULL );
# endif
- return( i_capabilities );
+ return i_capabilities;
}
i_capabilities |= CPU_CAPABILITY_MMX;
# if defined( CAN_COMPILE_SSE ) || defined ( CAN_COMPILE_3DNOW )
signal( SIGILL, NULL );
# endif
- return( i_capabilities );
+ return i_capabilities;
}
/* list these additional capabilities */
# if defined( CAN_COMPILE_SSE ) || defined ( CAN_COMPILE_3DNOW )
signal( SIGILL, NULL );
# endif
- return( i_capabilities );
+ return i_capabilities;
#elif defined( __powerpc__ )
signal( SIGILL, NULL );
# endif
- return( i_capabilities );
+ return i_capabilities;
#elif defined( __sparc__ )
i_capabilities |= CPU_CAPABILITY_FPU;
- return( i_capabilities );
+ return i_capabilities;
#else
/* default behaviour */
- return( i_capabilities );
+ return i_capabilities;
#endif
}
* modules.c : Builtin and plugin modules management functions
*****************************************************************************
* Copyright (C) 2001 VideoLAN
- * $Id: modules.c,v 1.65 2002/06/02 09:03:54 sam Exp $
+ * $Id: modules.c,v 1.66 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Ethan C. Baldridge <BaldridgeE@cadmus.com>
module_t *p_module;
char *psz_realname = NULL;
- msg_Info( p_this, "looking for %s module",
- MODULE_CAPABILITY( i_capability ) );
+ msg_Dbg( p_this, "looking for %s module",
+ MODULE_CAPABILITY( i_capability ) );
/* We take the global lock */
vlc_mutex_lock( &p_this->p_vlc->module_bank.lock );
* objects.c: vlc_object_t handling
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: objects.c,v 1.7 2002/06/05 18:29:24 stef Exp $
+ * $Id: objects.c,v 1.8 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
*****************************************************************************/
void __vlc_object_destroy( vlc_object_t *p_this )
{
- if( p_this->i_refcount )
- {
- msg_Err( p_this, "refcount is %i", p_this->i_refcount );
- vlc_dumpstructure( p_this );
- }
+ int i_delay = 0;
if( p_this->i_children )
{
- msg_Err( p_this, "object still has children" );
+ msg_Err( p_this, "cannot delete object with children" );
vlc_dumpstructure( p_this );
+ return;
}
if( p_this->i_parents )
{
- msg_Err( p_this, "object still has parents" );
+ msg_Err( p_this, "cannot delete object with parents" );
vlc_dumpstructure( p_this );
+ return;
+ }
+
+ while( p_this->i_refcount )
+ {
+ if( i_delay == 0 )
+ {
+ msg_Warn( p_this, "refcount is %i, delaying before deletion",
+ p_this->i_refcount );
+ }
+ else if( i_delay == 12 )
+ {
+ msg_Err( p_this, "refcount is %i, I have a bad feeling about this",
+ p_this->i_refcount );
+ }
+ else if( i_delay == 42 )
+ {
+ msg_Err( p_this, "we waited too long, cancelling destruction" );
+ return;
+ }
+
+ i_delay++;
+ msleep( 100000 );
}
//msg_Dbg( p_this, "destroyed object" );
vlc_cond_destroy( &p_this->object_wait );
free( p_this );
- p_this = NULL;
}
/*****************************************************************************
* playlist.c : Playlist management functions
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: playlist.c,v 1.5 2002/06/04 00:11:12 sam Exp $
+ * $Id: playlist.c,v 1.6 2002/06/07 14:30:41 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Local prototypes
*****************************************************************************/
static void RunThread ( playlist_t * );
+static void SkipItem ( playlist_t *, int );
+static void PlayItem ( playlist_t * );
+
+static void Poubellize ( playlist_t *, input_thread_t * );
/*****************************************************************************
* playlist_Create: create playlist
p_playlist->i_index = -1;
p_playlist->i_size = 0;
p_playlist->pp_items = NULL;
- vlc_mutex_init( p_playlist, &p_playlist->change_lock );
-
- vlc_object_attach( p_playlist, p_parent );
- if( vlc_thread_create( p_playlist, "playlist", RunThread, 0 ) )
+ if( vlc_thread_create( p_playlist, "playlist", RunThread, VLC_TRUE ) )
{
msg_Err( p_playlist, "cannot spawn playlist thread" );
- vlc_object_detach_all( p_playlist );
- vlc_mutex_destroy( &p_playlist->change_lock );
vlc_object_destroy( p_playlist );
return NULL;
}
+ /* The object has been initialized, now attach it */
+ vlc_object_attach( p_playlist, p_parent );
+
return p_playlist;
}
vlc_thread_join( p_playlist );
- vlc_mutex_destroy( &p_playlist->change_lock );
vlc_object_destroy( p_playlist );
}
* Add an item to the playlist at position i_pos. If i_pos is PLAYLIST_END,
* add it at the end regardless of the playlist current size.
*****************************************************************************/
-int playlist_Add( playlist_t *p_playlist, int i_pos, const char * psz_item )
+int playlist_Add( playlist_t *p_playlist, const char * psz_target,
+ int i_mode, int i_pos )
{
- msg_Warn( p_playlist, "adding playlist item « %s »", psz_item );
+ playlist_item_t *p_item;
+
+ msg_Warn( p_playlist, "adding playlist item « %s »", psz_target );
- vlc_mutex_lock( &p_playlist->change_lock );
+ vlc_mutex_lock( &p_playlist->object_lock );
- p_playlist->i_size++;
- p_playlist->pp_items = realloc( p_playlist->pp_items,
- p_playlist->i_size * sizeof(void*) );
- if( p_playlist->pp_items == NULL )
+ /* Create the new playlist item */
+ p_item = malloc( sizeof( playlist_item_t ) );
+ if( p_item == NULL )
{
msg_Err( p_playlist, "out of memory" );
- vlc_mutex_unlock( &p_playlist->change_lock );
- vlc_object_release( p_playlist );
- return -1;
+ vlc_mutex_unlock( &p_playlist->object_lock );
}
- i_pos = p_playlist->i_size - 1; /* FIXME */
- p_playlist->pp_items[i_pos] = malloc( sizeof( playlist_item_t ) );
- p_playlist->pp_items[i_pos]->psz_name = strdup( psz_item );
- p_playlist->pp_items[i_pos]->i_type = 0;
- p_playlist->pp_items[i_pos]->i_status = 0;
+ p_item->psz_name = strdup( psz_target );
+ p_item->i_type = 0;
+ p_item->i_status = 0;
+
+ /* Do a few boundary checks and allocate space for the item */
+ if( i_pos == PLAYLIST_END )
+ {
+ i_pos = p_playlist->i_size - 1;
+ }
+
+ if( !(i_mode & PLAYLIST_REPLACE)
+ || i_pos < 0 || i_pos >= p_playlist->i_size )
+ {
+ int i_index;
+
+ p_playlist->i_size++;
+ p_playlist->pp_items = realloc( p_playlist->pp_items,
+ p_playlist->i_size * sizeof(void*) );
+ if( p_playlist->pp_items == NULL )
+ {
+ msg_Err( p_playlist, "out of memory" );
+ free( p_item->psz_name );
+ free( p_item );
+ vlc_mutex_unlock( &p_playlist->object_lock );
+ return -1;
+ }
+
+ /* Additional boundary checks */
+ if( i_mode & PLAYLIST_APPEND )
+ {
+ i_pos++;
+ }
+
+ if( i_pos < 0 )
+ {
+ i_pos = 0;
+ }
+ else if( i_pos > p_playlist->i_size - 1 )
+ {
+ i_pos = p_playlist->i_size - 1;
+ }
+
+ /* Now we know exactly where it goes. Just renumber the playlist */
+ for( i_index = p_playlist->i_size - 2; i_index > i_pos ; i_index-- )
+ {
+ p_playlist->pp_items[i_index + 1] = p_playlist->pp_items[i_index];
+ }
+ if( p_playlist->i_index >= i_pos )
+ {
+ i_index++;
+ }
+ }
+ else
+ {
+ /* i_mode == PLAYLIST_REPLACE and 0 <= i_pos < p_playlist->i_size */
+ free( p_playlist->pp_items[i_pos]->psz_name );
+ free( p_playlist->pp_items[i_pos] );
+ /* XXX: what if the item is still in use? */
+ }
+
+ p_playlist->pp_items[i_pos] = p_item;
p_playlist->i_status = PLAYLIST_RUNNING;
- vlc_mutex_unlock( &p_playlist->change_lock );
+ vlc_mutex_unlock( &p_playlist->object_lock );
return 0;
}
*****************************************************************************/
int playlist_Delete( playlist_t * p_playlist, int i_pos )
{
- vlc_mutex_lock( &p_playlist->change_lock );
+ vlc_mutex_lock( &p_playlist->object_lock );
- vlc_mutex_unlock( &p_playlist->change_lock );
+ vlc_mutex_unlock( &p_playlist->object_lock );
return 0;
}
/*****************************************************************************
* playlist_Command: do a playlist action
*****************************************************************************
- *
+ *
*****************************************************************************/
void playlist_Command( playlist_t * p_playlist, int i_command, int i_arg )
-{
- vlc_mutex_lock( &p_playlist->change_lock );
+{
+ vlc_mutex_lock( &p_playlist->object_lock );
switch( i_command )
{
case PLAYLIST_STOP:
- msg_Dbg( p_playlist, "stopping" );
p_playlist->i_status = PLAYLIST_STOPPED;
+ if( p_playlist->p_input )
+ {
+ input_StopThread( p_playlist->p_input );
+ }
break;
+
case PLAYLIST_PLAY:
- msg_Dbg( p_playlist, "running" );
p_playlist->i_status = PLAYLIST_RUNNING;
break;
+
case PLAYLIST_SKIP:
- msg_Dbg( p_playlist, "next" );
- if( p_playlist->i_size )
+ p_playlist->i_status = PLAYLIST_STOPPED;
+ SkipItem( p_playlist, i_arg );
+ if( p_playlist->p_input )
{
- p_playlist->i_index = 0;
+ input_StopThread( p_playlist->p_input );
+ }
+ p_playlist->i_status = PLAYLIST_RUNNING;
+ break;
+
+ case PLAYLIST_GOTO:
+ if( i_arg >= 0 && i_arg < p_playlist->i_size )
+ {
+ p_playlist->i_index = i_arg;
+ if( p_playlist->p_input )
+ {
+ input_StopThread( p_playlist->p_input );
+ }
p_playlist->i_status = PLAYLIST_RUNNING;
}
break;
+
default:
+ msg_Err( p_playlist, "unknown playlist command" );
break;
}
- vlc_mutex_unlock( &p_playlist->change_lock );
+ vlc_mutex_unlock( &p_playlist->object_lock );
return;
}
*****************************************************************************/
static void RunThread ( playlist_t *p_playlist )
{
+ /* Tell above that we're ready */
+ vlc_thread_ready( p_playlist );
+
while( !p_playlist->b_die )
{
+ vlc_mutex_lock( &p_playlist->object_lock );
+
/* If there is an input, check that it doesn't need to die. */
if( p_playlist->p_input )
{
input_thread_t *p_input;
/* Unlink current input */
- vlc_mutex_lock( &p_playlist->change_lock );
p_input = p_playlist->p_input;
p_playlist->p_input = NULL;
vlc_object_detach_all( p_input );
- vlc_mutex_unlock( &p_playlist->change_lock );
+
+ /* Release the playlist lock, because we may get stuck
+ * in input_DestroyThread() for some time. */
+ vlc_mutex_unlock( &p_playlist->object_lock );
/* Destroy input */
- vlc_object_release( p_input );
input_DestroyThread( p_input );
vlc_object_destroy( p_input );
+ continue;
}
/* This input is dying, let him do */
else if( p_playlist->p_input->b_die )
else if( p_playlist->p_input->b_error
|| p_playlist->p_input->b_eof )
{
+ /* Select the next playlist item */
+ SkipItem( p_playlist, 1 );
+
+ /* Release the playlist lock, because we may get stuck
+ * in input_StopThread() for some time. */
+ vlc_mutex_unlock( &p_playlist->object_lock );
input_StopThread( p_playlist->p_input );
+ continue;
}
}
else if( p_playlist->i_status != PLAYLIST_STOPPED )
{
- /* Select the next playlist item */
- playlist_Next( p_playlist );
-
- /* don't loop by default: stop at playlist end */
- if( p_playlist->i_index == -1 )
- {
- p_playlist->i_status = PLAYLIST_STOPPED;
- }
- else
- {
- input_thread_t *p_input;
-
- //p_playlist->i_mode = PLAYLIST_FORWARD +
- // config_GetInt( p_playlist, "loop-playlist" );
- msg_Dbg( p_playlist, "creating new input thread" );
- p_input = input_CreateThread( p_playlist,
- p_playlist->pp_items[p_playlist->i_index], NULL );
- if( p_input != NULL )
- {
- /* Link current input */
- vlc_mutex_lock( &p_playlist->change_lock );
- p_playlist->p_input = p_input;
- vlc_mutex_unlock( &p_playlist->change_lock );
- }
- }
+ PlayItem( p_playlist );
}
+ vlc_mutex_unlock( &p_playlist->object_lock );
+
msleep( INTF_IDLE_SLEEP );
}
/* If there is an input, kill it */
- while( p_playlist->p_input )
+ while( 1 )
{
+ vlc_mutex_lock( &p_playlist->object_lock );
+
+ if( p_playlist->p_input == NULL )
+ {
+ vlc_mutex_unlock( &p_playlist->object_lock );
+ break;
+ }
+
if( p_playlist->p_input->b_dead )
{
input_thread_t *p_input;
/* Unlink current input */
- vlc_mutex_lock( &p_playlist->change_lock );
p_input = p_playlist->p_input;
p_playlist->p_input = NULL;
vlc_object_detach_all( p_input );
- vlc_mutex_unlock( &p_playlist->change_lock );
+ vlc_mutex_unlock( &p_playlist->object_lock );
/* Destroy input */
- vlc_object_release( p_input );
input_DestroyThread( p_input );
vlc_object_destroy( p_input );
+ continue;
}
- /* This input is dying, let him do */
else if( p_playlist->p_input->b_die )
{
+ /* This input is dying, leave him alone */
;
}
else if( p_playlist->p_input->b_error || p_playlist->p_input->b_eof )
{
+ vlc_mutex_unlock( &p_playlist->object_lock );
input_StopThread( p_playlist->p_input );
+ continue;
}
else
{
p_playlist->p_input->b_eof = 1;
}
+ vlc_mutex_unlock( &p_playlist->object_lock );
+
msleep( INTF_IDLE_SLEEP );
}
}
+/*****************************************************************************
+ * SkipItem: go to Xth playlist item
+ *****************************************************************************
+ * This function calculates the position of the next playlist item, depending
+ * on the playlist course mode (forward, backward, random...).
+ *****************************************************************************/
+static void SkipItem( playlist_t *p_playlist, int i_arg )
+{
+ int i_oldindex = p_playlist->i_index;
+
+ /* If the playlist is empty, there is no current item */
+ if( p_playlist->i_size == 0 )
+ {
+ p_playlist->i_index = -1;
+ return;
+ }
+
+ /* Increment */
+ p_playlist->i_index += i_arg;
+
+ /* Boundary check */
+ if( p_playlist->i_index >= p_playlist->i_size )
+ {
+ if( p_playlist->i_status == PLAYLIST_STOPPED
+ || config_GetInt( p_playlist, "loop" ) )
+ {
+ p_playlist->i_index = 0;
+ }
+ else
+ {
+ /* Don't loop by default: stop at playlist end */
+ p_playlist->i_index = i_oldindex;
+ p_playlist->i_status = PLAYLIST_STOPPED;
+ }
+ }
+ else if( p_playlist->i_index < 0 )
+ {
+ p_playlist->i_index = p_playlist->i_size - 1;
+ }
+}
+
+/*****************************************************************************
+ * PlayItem: play current playlist item
+ *****************************************************************************
+ * This function calculates the position of the next playlist item, depending
+ * on the playlist course mode (forward, backward, random...).
+ *****************************************************************************/
+static void PlayItem( playlist_t *p_playlist )
+{
+ if( p_playlist->i_index == -1 )
+ {
+ if( p_playlist->i_size == 0 )
+ {
+ return;
+ }
+
+ SkipItem( p_playlist, 1 );
+ }
+
+ msg_Dbg( p_playlist, "creating new input thread" );
+ p_playlist->p_input = input_CreateThread( p_playlist,
+ p_playlist->pp_items[p_playlist->i_index], NULL );
+}
+
+/*****************************************************************************
+ * Poubellize: put an input thread in the trashcan
+ *****************************************************************************
+ * XXX: unused
+ *****************************************************************************/
+static void Poubellize ( playlist_t *p_playlist, input_thread_t *p_input )
+{
+
+}
+