X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.c;h=24e391319d607d3f26f61c618b23e52c30829903;hb=1c35d45fda7f5f2005629713a1fe07a9efa7182e;hp=90e2a791b204d7471ce73d8347e729235e76bdc6;hpb=a717f3bb306a96e04a1ef0993a4f379d307ffa49;p=vlc diff --git a/src/libvlc.c b/src/libvlc.c index 90e2a791b2..24e391319d 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -67,7 +67,7 @@ # include #endif -#ifdef HAVE_DBUS_3 +#ifdef HAVE_DBUS /* used for one-instance mode */ # include #endif @@ -506,7 +506,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, system_Configure( p_libvlc, &i_argc, ppsz_argv ); /* FIXME: could be replaced by using Unix sockets */ -#ifdef HAVE_DBUS_3 +#ifdef HAVE_DBUS dbus_threads_init_default(); if( config_GetInt( p_libvlc, "one-instance" ) > 0 ) @@ -794,7 +794,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, if( psz_temp ) { sprintf( psz_temp, "%s,none", psz_module ); - libvlc_InternalAddIntf( p_libvlc, psz_temp, false ); + libvlc_InternalAddIntf( p_libvlc, psz_temp ); free( psz_temp ); } } @@ -804,18 +804,18 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, /* * Always load the hotkeys interface if it exists */ - libvlc_InternalAddIntf( p_libvlc, "hotkeys,none", false ); + libvlc_InternalAddIntf( p_libvlc, "hotkeys,none" ); -#ifdef HAVE_DBUS_3 +#ifdef HAVE_DBUS /* loads dbus control interface if in one-instance mode * we do it only when playlist exists, because dbus module needs it */ if( config_GetInt( p_libvlc, "one-instance" ) > 0 ) - libvlc_InternalAddIntf( p_libvlc, "dbus,none", false ); + libvlc_InternalAddIntf( p_libvlc, "dbus,none" ); /* Prevents the power management daemon from suspending the system * when VLC is active */ if( config_GetInt( p_libvlc, "inhibit" ) > 0 ) - libvlc_InternalAddIntf( p_libvlc, "inhibit,none", false ); + libvlc_InternalAddIntf( p_libvlc, "inhibit,none" ); #endif /* @@ -825,20 +825,20 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, #ifdef HAVE_X11_XLIB_H if( config_GetInt( p_libvlc, "disable-screensaver" ) ) { - libvlc_InternalAddIntf( p_libvlc, "screensaver,none", false ); + libvlc_InternalAddIntf( p_libvlc, "screensaver,none" ); } #endif if( config_GetInt( p_libvlc, "file-logging" ) > 0 ) { - libvlc_InternalAddIntf( p_libvlc, "logger,none", false ); + libvlc_InternalAddIntf( p_libvlc, "logger,none" ); } #ifdef HAVE_SYSLOG_H if( config_GetInt( p_libvlc, "syslog" ) > 0 ) { char *logmode = var_CreateGetString( p_libvlc, "logmode" ); var_SetString( p_libvlc, "logmode", "syslog" ); - libvlc_InternalAddIntf( p_libvlc, "logger,none", false ); + libvlc_InternalAddIntf( p_libvlc, "logger,none" ); if( logmode ) { @@ -852,12 +852,12 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, if( config_GetInt( p_libvlc, "show-intf" ) > 0 ) { - libvlc_InternalAddIntf( p_libvlc, "showintf,none", false ); + libvlc_InternalAddIntf( p_libvlc, "showintf,none" ); } if( config_GetInt( p_libvlc, "network-synchronisation") > 0 ) { - libvlc_InternalAddIntf( p_libvlc, "netsync,none", false ); + libvlc_InternalAddIntf( p_libvlc, "netsync,none" ); } #ifdef WIN32 @@ -896,6 +896,10 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, /* Create volume callback system. */ var_Create( p_libvlc, "volume-change", VLC_VAR_BOOL ); + /* Create a variable for showing the interface (moved from playlist). */ + var_Create( p_playlist, "intf-show", VLC_VAR_BOOL ); + var_SetBool( p_playlist, "intf-show", true ); + /* * Get input filenames given as commandline arguments */ @@ -939,24 +943,6 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) } #ifdef ENABLE_SOUT - playlist_t * p_playlist; - sout_instance_t * p_sout; - - p_playlist = vlc_object_find( p_libvlc, VLC_OBJECT_PLAYLIST, FIND_CHILD ); - if( p_playlist ) - { - p_sout = vlc_object_find( p_playlist, VLC_OBJECT_SOUT, FIND_CHILD ); - if( p_sout ) - { - msg_Dbg( p_sout, "removing kept stream output" ); - vlc_object_detach( (vlc_object_t*)p_sout ); - vlc_object_release( (vlc_object_t*)p_sout ); - sout_DeleteInstance( p_sout ); - } - - vlc_object_release( p_playlist ); - } - /* Destroy VLM if created in libvlc_InternalInit */ if( priv->p_vlm ) { @@ -964,6 +950,10 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) } #endif + /* Remove all services discovery */ + msg_Dbg( p_libvlc, "removing all services discovery tasks" ); + playlist_ServicesDiscoveryKillAll( priv->p_playlist ); + /* Free playlist */ msg_Dbg( p_libvlc, "removing playlist" ); vlc_object_release( priv->p_playlist ); @@ -978,7 +968,7 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) { vlc_object_detach( p_vout ); vlc_object_release( p_vout ); - vout_Destroy( p_vout ); + vlc_object_release( p_vout ); } stats_TimersDumpAll( p_libvlc ); @@ -1094,8 +1084,7 @@ int libvlc_InternalDestroy( libvlc_int_t *p_libvlc, bool b_release ) /** * Add an interface plugin and run it */ -int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module, - bool b_play ) +int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module ) { int i_err; intf_thread_t *p_intf = NULL; @@ -1129,12 +1118,7 @@ int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module, return VLC_EGENERIC; } - /* Interface doesn't handle play on start so do it ourselves */ - if( !p_intf->b_play && b_play ) - playlist_Play( libvlc_priv(p_libvlc)->p_playlist ); - /* Try to run the interface */ - p_intf->b_play = b_play; i_err = intf_RunThread( p_intf ); if( i_err ) { @@ -1348,9 +1332,10 @@ static void Usage( libvlc_int_t *p_this, char const *psz_module_name ) psz_spaces_text[PADDING_SPACES+LINE_START] = '\0'; memset( psz_spaces_longtext, ' ', LINE_START+2 ); psz_spaces_longtext[LINE_START+2] = '\0'; -#ifdef WIN32 - b_color = false; // don't put color control codes in a .txt file +#ifndef WIN32 + if( !isatty( 1 ) ) #endif + b_color = false; // don't put color control codes in a .txt file if( b_color ) { @@ -1962,7 +1947,6 @@ static void InitDeviceValues( libvlc_int_t *p_vlc ) char *block_dev = NULL; dbus_bool_t b_dvd; -#ifdef HAVE_HAL_1 DBusConnection *p_connection = NULL; DBusError error; @@ -1978,41 +1962,20 @@ static void InitDeviceValues( libvlc_int_t *p_vlc ) } libhal_ctx_set_dbus_connection( ctx, p_connection ); if( libhal_ctx_init( ctx, &error ) ) -#else - ctx = hal_initialize( NULL, FALSE ); - if( ctx ) -#endif - { -#ifdef HAVE_HAL_1 if( ( devices = libhal_get_all_devices( ctx, &i_devices, NULL ) ) ) -#else - if( ( devices = hal_get_all_devices( ctx, &i_devices ) ) ) -#endif { for( i = 0; i < i_devices; i++ ) { -#ifdef HAVE_HAL_1 if( !libhal_device_property_exists( ctx, devices[i], "storage.cdrom.dvd", NULL ) ) -#else - if( !hal_device_property_exists( ctx, devices[ i ], - "storage.cdrom.dvd" ) ) -#endif { continue; } -#ifdef HAVE_HAL_1 b_dvd = libhal_device_get_property_bool( ctx, devices[ i ], "storage.cdrom.dvd", NULL ); block_dev = libhal_device_get_property_string( ctx, devices[ i ], "block.device" , NULL ); -#else - b_dvd = hal_device_get_property_bool( ctx, devices[ i ], - "storage.cdrom.dvd" ); - block_dev = hal_device_get_property_string( ctx, devices[ i ], - "block.device" ); -#endif if( b_dvd ) { config_PutPsz( p_vlc, "dvd", block_dev ); @@ -2020,26 +1983,13 @@ static void InitDeviceValues( libvlc_int_t *p_vlc ) config_PutPsz( p_vlc, "vcd", block_dev ); config_PutPsz( p_vlc, "cd-audio", block_dev ); -#ifdef HAVE_HAL_1 libhal_free_string( block_dev ); -#else - hal_free_string( block_dev ); -#endif } -#ifdef HAVE_HAL_1 libhal_free_string_array( devices ); -#else - hal_free_string_array( devices ); -#endif } - -#ifdef HAVE_HAL_1 libhal_ctx_shutdown( ctx, NULL ); dbus_connection_unref( p_connection ); libhal_ctx_free( ctx ); -#else - hal_shutdown( ctx ); -#endif } else {