X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fmisc%2Fgtk_main.c;h=15282f4570ba21801d692cb51dad5cdc7f5a1535;hb=2a5fae44a59cc6875825fdf16ab15a1ed305f6cc;hp=6ec85a06a30ebd55ac070518c0c8386a0f67364f;hpb=6140784b5b3a46977c44740fbb83a76bb6e3fe67;p=vlc diff --git a/modules/misc/gtk_main.c b/modules/misc/gtk_main.c index 6ec85a06a3..15282f4570 100644 --- a/modules/misc/gtk_main.c +++ b/modules/misc/gtk_main.c @@ -1,8 +1,8 @@ /***************************************************************************** * gtk_main.c : Gtk+ wrapper for gtk_main ***************************************************************************** - * Copyright (C) 2002 VideoLAN - * $Id: gtk_main.c,v 1.14 2003/03/19 17:40:43 fenrir Exp $ + * Copyright (C) 2002 the VideoLAN team + * $Id$ * * Authors: Samuel Hocevar * @@ -18,15 +18,19 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** * Preamble *****************************************************************************/ -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include -#include /* atexit() */ #include @@ -57,7 +61,7 @@ static vlc_object_t * p_gtk_main = NULL; *****************************************************************************/ vlc_module_begin(); int i_cap; - set_description( _("Gtk+ GUI helper module") ); + set_description( N_("Gtk+ GUI helper") ); #if defined(MODULE_NAME_IS_gtk_main) i_cap = 90; add_shortcut( "gtk" ); @@ -83,18 +87,14 @@ vlc_module_end(); *****************************************************************************/ static int Open( vlc_object_t *p_this ) { - vlc_value_t lockval; + vlc_mutex_t *lock; - /* FIXME: put this in the module (de)initialization ASAP */ - var_Create( p_this->p_libvlc, "gtk", VLC_VAR_MUTEX ); - - var_Get( p_this->p_libvlc, "gtk", &lockval ); - vlc_mutex_lock( lockval.p_address ); + lock = var_AcquireMutex( "gtk" ); if( i_refcount > 0 ) { i_refcount++; - vlc_mutex_unlock( lockval.p_address ); + vlc_mutex_unlock( lock ); return VLC_SUCCESS; } @@ -110,17 +110,16 @@ static int Open( vlc_object_t *p_this ) /* Launch the gtk_main() thread. It will not return until it has * called gdk_threads_enter(), which ensures us thread safety. */ if( vlc_thread_create( p_gtk_main, "gtk_main", GtkMain, - VLC_THREAD_PRIORITY_LOW, VLC_TRUE ) ) + VLC_THREAD_PRIORITY_LOW, true ) ) { - vlc_object_destroy( p_gtk_main ); + vlc_object_release( p_gtk_main ); i_refcount--; - vlc_mutex_unlock( lockval.p_address ); - var_Destroy( p_this->p_libvlc, "gtk" ); + vlc_mutex_unlock( lock ); return VLC_ETHREAD; } i_refcount++; - vlc_mutex_unlock( lockval.p_address ); + vlc_mutex_unlock( lock ); return VLC_SUCCESS; } @@ -130,28 +129,25 @@ static int Open( vlc_object_t *p_this ) *****************************************************************************/ static void Close( vlc_object_t *p_this ) { - vlc_value_t lockval; + vlc_mutex_t *lock; - var_Get( p_this->p_libvlc, "gtk", &lockval ); - vlc_mutex_lock( lockval.p_address ); + lock = var_AcquireMutex( "gtk" ); i_refcount--; if( i_refcount > 0 ) { - vlc_mutex_unlock( lockval.p_address ); - var_Destroy( p_this->p_libvlc, "gtk" ); + vlc_mutex_unlock( lock ); return; } gtk_main_quit(); vlc_thread_join( p_gtk_main ); - vlc_object_destroy( p_gtk_main ); + vlc_object_release( p_gtk_main ); p_gtk_main = NULL; - vlc_mutex_unlock( lockval.p_address ); - var_Destroy( p_this->p_libvlc, "gtk" ); + vlc_mutex_unlock( lock ); } static gint foo( gpointer bar ) { return TRUE; } @@ -178,7 +174,7 @@ static void GtkMain( vlc_object_t *p_this ) #endif #if defined(MODULE_NAME_IS_gnome_main) - gnome_init( p_this->p_vlc->psz_object_name, VERSION, i_args, p_args ); + gnome_init( p_this->p_libvlc->psz_object_name, VERSION, i_args, p_args ); #elif defined(MODULE_NAME_IS_gnome2_main) gnome_program_init( PACKAGE, VERSION, LIBGNOMEUI_MODULE, i_args, p_args, @@ -202,4 +198,3 @@ static void GtkMain( vlc_object_t *p_this ) gdk_threads_leave(); } -