Commit 7f0d9408 authored by Sam Hocevar's avatar Sam Hocevar

* ./src/misc/modules.c: module_Need accepts a comma-separated list of

    module names. Try for instance: "vlc --intf gnome,gtk,dummy".
parent 3266cd72
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* It includes functions allowing to declare, get or set configuration options. * It includes functions allowing to declare, get or set configuration options.
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN * Copyright (C) 1999, 2000 VideoLAN
* $Id: configuration.h,v 1.14 2002/06/11 09:44:21 gbazin Exp $ * $Id: configuration.h,v 1.15 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Gildas Bazin <gbazin@netcourrier.com> * Authors: Gildas Bazin <gbazin@netcourrier.com>
* *
...@@ -75,7 +75,7 @@ VLC_EXPORT( void, __config_PutInt, (vlc_object_t *, const char *, int) ); ...@@ -75,7 +75,7 @@ VLC_EXPORT( void, __config_PutInt, (vlc_object_t *, const char *, int) );
VLC_EXPORT( float, __config_GetFloat, (vlc_object_t *, const char *) ); VLC_EXPORT( float, __config_GetFloat, (vlc_object_t *, const char *) );
VLC_EXPORT( void, __config_PutFloat, (vlc_object_t *, const char *, float) ); VLC_EXPORT( void, __config_PutFloat, (vlc_object_t *, const char *, float) );
VLC_EXPORT( char *, __config_GetPsz, (vlc_object_t *, const char *) ); VLC_EXPORT( char *, __config_GetPsz, (vlc_object_t *, const char *) );
VLC_EXPORT( void, __config_PutPsz, (vlc_object_t *, const char *, char *) ); VLC_EXPORT( void, __config_PutPsz, (vlc_object_t *, const char *, const char *) );
VLC_EXPORT( int, __config_LoadCmdLine, ( vlc_object_t *, int *, char *[], vlc_bool_t ) ); VLC_EXPORT( int, __config_LoadCmdLine, ( vlc_object_t *, int *, char *[], vlc_bool_t ) );
VLC_EXPORT( char *, config_GetHomeDir, ( void ) ); VLC_EXPORT( char *, config_GetHomeDir, ( void ) );
......
/* include/defs.h.in. Generated automatically from configure.in by autoheader. */ /* include/defs.h.in. Generated automatically from configure.in by autoheader 2.13. */
/* Define if using alloca.c. */ /* Define if using alloca.c. */
#undef C_ALLOCA #undef C_ALLOCA
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* modules.h : Module management functions. * modules.h : Module management functions.
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: modules.h,v 1.55 2002/06/11 09:44:21 gbazin Exp $ * $Id: modules.h,v 1.56 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -335,6 +335,6 @@ void __module_ResetBank ( vlc_object_t * ); ...@@ -335,6 +335,6 @@ void __module_ResetBank ( vlc_object_t * );
void __module_ManageBank ( vlc_object_t * ); void __module_ManageBank ( vlc_object_t * );
#define module_Need(a,b,c,d) __module_Need(CAST_TO_VLC_OBJECT(a),b,c,d) #define module_Need(a,b,c,d) __module_Need(CAST_TO_VLC_OBJECT(a),b,c,d)
VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, int, char *, void * ) ); VLC_EXPORT( module_t *, __module_Need, ( vlc_object_t *, int, const char *, void * ) );
VLC_EXPORT( void, module_Unneed, ( module_t * ) ); VLC_EXPORT( void, module_Unneed, ( module_t * ) );
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vlc.h: global header for vlc * vlc.h: global header for vlc
***************************************************************************** *****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN * Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: vlc.h,v 1.3 2002/06/07 14:30:40 sam Exp $ * $Id: vlc.h,v 1.4 2002/07/03 19:40:49 sam Exp $
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -27,10 +27,21 @@ extern "C" { ...@@ -27,10 +27,21 @@ extern "C" {
# endif # endif
/***************************************************************************** /*****************************************************************************
* Error values * Our custom types
*****************************************************************************/ *****************************************************************************/
#define VLC_DECLARE_STRUCT( name ) \
struct name##_s; \
typedef struct name##_s name##_t;
VLC_DECLARE_STRUCT(vlc)
VLC_DECLARE_STRUCT(vlc_object)
typedef signed int vlc_error_t; typedef signed int vlc_error_t;
typedef int vlc_bool_t;
typedef int vlc_status_t;
/*****************************************************************************
* Error values
*****************************************************************************/
#define VLC_SUCCESS -0 /* No error */ #define VLC_SUCCESS -0 /* No error */
#define VLC_EGENERIC -1 /* Generic error */ #define VLC_EGENERIC -1 /* Generic error */
#define VLC_ENOMEM -2 /* Not enough memory */ #define VLC_ENOMEM -2 /* Not enough memory */
...@@ -40,29 +51,45 @@ typedef signed int vlc_error_t; ...@@ -40,29 +51,45 @@ typedef signed int vlc_error_t;
/***************************************************************************** /*****************************************************************************
* Booleans * Booleans
*****************************************************************************/ *****************************************************************************/
typedef int vlc_bool_t;
#define VLC_FALSE 0 #define VLC_FALSE 0
#define VLC_TRUE 1 #define VLC_TRUE 1
/***************************************************************************** /*****************************************************************************
* Main structure status * Main structure status
*****************************************************************************/ *****************************************************************************/
typedef int vlc_status_t;
#define VLC_STATUS_NONE 0x00000000 #define VLC_STATUS_NONE 0x00000000
#define VLC_STATUS_CREATED 0x02020202 #define VLC_STATUS_CREATED 0x02020202
#define VLC_STATUS_STOPPED 0x12121212 #define VLC_STATUS_STOPPED 0x12121212
#define VLC_STATUS_RUNNING 0x42424242 #define VLC_STATUS_RUNNING 0x42424242
/***************************************************************************** /*****************************************************************************
* Structure types * Playlist
*****************************************************************************/ *****************************************************************************/
#define VLC_DECLARE_STRUCT( name ) \
struct name##_s; \ /* Used by playlist_Add */
typedef struct name##_s name##_t; #define PLAYLIST_INSERT 0x0001
VLC_DECLARE_STRUCT(vlc) #define PLAYLIST_REPLACE 0x0002
VLC_DECLARE_STRUCT(vlc_object) #define PLAYLIST_APPEND 0x0004
#define PLAYLIST_GO 0x0008
#define PLAYLIST_END -666
/* Playlist parsing mode */
#define PLAYLIST_REPEAT_CURRENT 0 /* Keep playing current item */
#define PLAYLIST_FORWARD 1 /* Parse playlist until end */
#define PLAYLIST_BACKWARD -1 /* Parse backwards */
#define PLAYLIST_FORWARD_LOOP 2 /* Parse playlist and loop */
#define PLAYLIST_BACKWARD_LOOP -2 /* Parse backwards and loop */
#define PLAYLIST_RANDOM 3 /* Shuffle play */
#define PLAYLIST_REVERSE_RANDOM -3 /* Reverse shuffle play */
/* Playlist commands */
#define PLAYLIST_PLAY 1 /* Starts playing. No arg. */
#define PLAYLIST_PAUSE 2 /* Toggles playlist pause. No arg. */
#define PLAYLIST_STOP 3 /* Stops playing. No arg. */
#define PLAYLIST_SKIP 4 /* Skip X items and play. */
#define PLAYLIST_GOTO 5 /* Goto Xth item. */
#define PLAYLIST_MODE 6 /* Set playlist mode. ??? */
/***************************************************************************** /*****************************************************************************
* Required internal headers * Required internal headers
...@@ -90,8 +117,8 @@ vlc_error_t vlc_stop ( vlc_t * ); ...@@ -90,8 +117,8 @@ vlc_error_t vlc_stop ( vlc_t * );
vlc_error_t vlc_end ( vlc_t * ); vlc_error_t vlc_end ( vlc_t * );
vlc_error_t vlc_destroy ( vlc_t * ); vlc_error_t vlc_destroy ( vlc_t * );
vlc_error_t vlc_add_intf ( vlc_t *, char *, vlc_bool_t ); vlc_error_t vlc_add_intf ( vlc_t *, const char *, vlc_bool_t );
vlc_error_t vlc_add_target ( vlc_t *, char *, int, int ); vlc_error_t vlc_add_target ( vlc_t *, const char *, int, int );
vlc_status_t vlc_status ( vlc_t * ); vlc_status_t vlc_status ( vlc_t * );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vlc_playlist.h : Playlist functions * vlc_playlist.h : Playlist functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001, 2002 VideoLAN * Copyright (C) 1999, 2000, 2001, 2002 VideoLAN
* $Id: vlc_playlist.h,v 1.1 2002/06/07 23:53:44 sam Exp $ * $Id: vlc_playlist.h,v 1.2 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -51,31 +51,6 @@ struct playlist_s ...@@ -51,31 +51,6 @@ struct playlist_s
input_thread_t * p_input; input_thread_t * p_input;
}; };
/* Used by playlist_Add */
#define PLAYLIST_INSERT 0x0001
#define PLAYLIST_REPLACE 0x0002
#define PLAYLIST_APPEND 0x0004
#define PLAYLIST_GO 0x0008
#define PLAYLIST_END -666
/* Playlist parsing mode */
#define PLAYLIST_REPEAT_CURRENT 0 /* Keep playing current item */
#define PLAYLIST_FORWARD 1 /* Parse playlist until end */
#define PLAYLIST_BACKWARD -1 /* Parse backwards */
#define PLAYLIST_FORWARD_LOOP 2 /* Parse playlist and loop */
#define PLAYLIST_BACKWARD_LOOP -2 /* Parse backwards and loop */
#define PLAYLIST_RANDOM 3 /* Shuffle play */
#define PLAYLIST_REVERSE_RANDOM -3 /* Reverse shuffle play */
/* Playlist commands */
#define PLAYLIST_PLAY 1 /* Starts playing. No arg. */
#define PLAYLIST_PAUSE 2 /* Toggles playlist pause. No arg. */
#define PLAYLIST_STOP 3 /* Stops playing. No arg. */
#define PLAYLIST_SKIP 4 /* Skip X items and play. */
#define PLAYLIST_GOTO 5 /* Goto Xth item. */
#define PLAYLIST_MODE 6 /* Set playlist mode. ??? */
/***************************************************************************** /*****************************************************************************
* Prototypes * Prototypes
*****************************************************************************/ *****************************************************************************/
......
...@@ -47,7 +47,7 @@ struct module_symbols_s ...@@ -47,7 +47,7 @@ struct module_symbols_s
int (* vlc_threads_end_inner) ( void ) ; int (* vlc_threads_end_inner) ( void ) ;
int (* vout_ChromaCmp_inner) ( u32, u32 ) ; int (* vout_ChromaCmp_inner) ( u32, u32 ) ;
module_config_t * (* config_FindConfig_inner) ( vlc_object_t *, const char *psz_name ) ; module_config_t * (* config_FindConfig_inner) ( vlc_object_t *, const char *psz_name ) ;
module_t * (* __module_Need_inner) ( vlc_object_t *, int, char *, void * ) ; module_t * (* __module_Need_inner) ( vlc_object_t *, int, const char *, void * ) ;
msg_subscription_t* (* __msg_Subscribe_inner) ( vlc_object_t * ) ; msg_subscription_t* (* __msg_Subscribe_inner) ( vlc_object_t * ) ;
mtime_t (* input_ClockGetTS_inner) ( input_thread_t *, pgrm_descriptor_t *, mtime_t ) ; mtime_t (* input_ClockGetTS_inner) ( input_thread_t *, pgrm_descriptor_t *, mtime_t ) ;
mtime_t (* mdate_inner) ( void ) ; mtime_t (* mdate_inner) ( void ) ;
...@@ -73,7 +73,7 @@ struct module_symbols_s ...@@ -73,7 +73,7 @@ struct module_symbols_s
void (* UnalignedRemoveBits_inner) ( bit_stream_t * ) ; void (* UnalignedRemoveBits_inner) ( bit_stream_t * ) ;
void (* __config_PutFloat_inner) (vlc_object_t *, const char *, float) ; void (* __config_PutFloat_inner) (vlc_object_t *, const char *, float) ;
void (* __config_PutInt_inner) (vlc_object_t *, const char *, int) ; void (* __config_PutInt_inner) (vlc_object_t *, const char *, int) ;
void (* __config_PutPsz_inner) (vlc_object_t *, const char *, char *) ; void (* __config_PutPsz_inner) (vlc_object_t *, const char *, const char *) ;
void (* __input_Seek_inner) ( vlc_object_t *, off_t, int ) ; void (* __input_Seek_inner) ( vlc_object_t *, off_t, int ) ;
void (* __input_SetStatus_inner) ( vlc_object_t *, int ) ; void (* __input_SetStatus_inner) ( vlc_object_t *, int ) ;
void (* __input_Tell_inner) ( vlc_object_t *, stream_position_t * ) ; void (* __input_Tell_inner) ( vlc_object_t *, stream_position_t * ) ;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* and spawns threads. * and spawns threads.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: libvlc.c,v 1.11 2002/06/27 19:05:17 sam Exp $ * $Id: libvlc.c,v 1.12 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -536,7 +536,8 @@ vlc_error_t vlc_run( vlc_t *p_vlc ) ...@@ -536,7 +536,8 @@ vlc_error_t vlc_run( vlc_t *p_vlc )
* separate thread. If b_block is set to 1, vlc_add_intf will continue until * separate thread. If b_block is set to 1, vlc_add_intf will continue until
* user requests to quit. * user requests to quit.
*****************************************************************************/ *****************************************************************************/
vlc_error_t vlc_add_intf( vlc_t *p_vlc, char *psz_module, vlc_bool_t b_block ) vlc_error_t vlc_add_intf( vlc_t *p_vlc, const char *psz_module,
vlc_bool_t b_block )
{ {
vlc_error_t err; vlc_error_t err;
intf_thread_t *p_intf; intf_thread_t *p_intf;
...@@ -788,7 +789,7 @@ vlc_status_t vlc_status( vlc_t *p_vlc ) ...@@ -788,7 +789,7 @@ vlc_status_t vlc_status( vlc_t *p_vlc )
return p_vlc->i_status; 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, const char *psz_target,
int i_mode, int i_pos ) int i_mode, int i_pos )
{ {
vlc_error_t err; vlc_error_t err;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* configuration.c management of the modules configuration * configuration.c management of the modules configuration
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: configuration.c,v 1.31 2002/06/11 09:44:22 gbazin Exp $ * $Id: configuration.c,v 1.32 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Gildas Bazin <gbazin@netcourrier.com> * Authors: Gildas Bazin <gbazin@netcourrier.com>
* *
...@@ -151,7 +151,7 @@ char * __config_GetPsz( vlc_object_t *p_this, const char *psz_name ) ...@@ -151,7 +151,7 @@ char * __config_GetPsz( vlc_object_t *p_this, const char *psz_name )
* and CONFIG_ITEM_MODULE). * and CONFIG_ITEM_MODULE).
*****************************************************************************/ *****************************************************************************/
void __config_PutPsz( vlc_object_t *p_this, void __config_PutPsz( vlc_object_t *p_this,
const char *psz_name, char *psz_value ) const char *psz_name, const char *psz_value )
{ {
module_config_t *p_config; module_config_t *p_config;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* modules.c : Builtin and plugin modules management functions * modules.c : Builtin and plugin modules management functions
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: modules.c,v 1.69 2002/06/27 19:05:17 sam Exp $ * $Id: modules.c,v 1.70 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* Ethan C. Baldridge <BaldridgeE@cadmus.com> * Ethan C. Baldridge <BaldridgeE@cadmus.com>
...@@ -260,24 +260,27 @@ void __module_ManageBank( vlc_object_t *p_this ) ...@@ -260,24 +260,27 @@ void __module_ManageBank( vlc_object_t *p_this )
***************************************************************************** *****************************************************************************
* This function returns the module that best fits the asked capabilities. * This function returns the module that best fits the asked capabilities.
*****************************************************************************/ *****************************************************************************/
module_t * __module_Need( vlc_object_t *p_this, module_t * __module_Need( vlc_object_t *p_this, int i_capability,
int i_capability, char *psz_name, void *p_data ) const char *psz_name, void *p_data )
{ {
typedef struct module_list_s module_list_t; typedef struct module_list_s module_list_t;
struct module_list_s struct module_list_s
{ {
module_t *p_module; module_t *p_module;
int i_score;
module_list_t *p_next; module_list_t *p_next;
}; };
module_list_t *p_list, *p_first, *p_tmp; module_list_t *p_list, *p_first, *p_tmp;
int i_ret, i_index = 0; int i_ret, i_index = 0;
vlc_bool_t b_intf = 0; vlc_bool_t b_intf = VLC_FALSE;
module_t *p_module; module_t *p_module;
char *psz_realname = NULL;
int i_shortcuts = 1;
char *psz_shortcuts = NULL;
msg_Dbg( p_this, "looking for %s module", msg_Dbg( p_this, "looking for %s module",
MODULE_CAPABILITY( i_capability ) ); MODULE_CAPABILITY( i_capability ) );
...@@ -285,19 +288,19 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -285,19 +288,19 @@ module_t * __module_Need( vlc_object_t *p_this,
/* We take the global lock */ /* We take the global lock */
vlc_mutex_lock( &p_this->p_vlc->module_bank.lock ); vlc_mutex_lock( &p_this->p_vlc->module_bank.lock );
if( psz_name != NULL && *psz_name ) if( psz_name && *psz_name )
{ {
/* A module name was requested. */ char *psz_parser;
psz_realname = strdup( psz_name );
if( psz_realname ) psz_shortcuts = strdup( psz_name );
for( psz_parser = psz_shortcuts; *psz_parser; psz_parser++ )
{ {
char *p; if( *psz_parser == ',' )
p = strchr( psz_realname, ':' );
if( p )
{ {
*p = '\0'; *psz_parser = '\0';
i_shortcuts++;
} }
psz_name = psz_realname;
} }
} }
...@@ -311,6 +314,8 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -311,6 +314,8 @@ module_t * __module_Need( vlc_object_t *p_this,
p_module != NULL ; p_module != NULL ;
p_module = p_module->next ) p_module = p_module->next )
{ {
int i_shortcut_bonus = 0;
/* Test that this module can do everything we need */ /* Test that this module can do everything we need */
if( !(p_module->i_capabilities & ( 1 << i_capability )) ) if( !(p_module->i_capabilities & ( 1 << i_capability )) )
{ {
...@@ -326,16 +331,33 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -326,16 +331,33 @@ module_t * __module_Need( vlc_object_t *p_this,
} }
/* If we required a shortcut, check this plugin provides it. */ /* If we required a shortcut, check this plugin provides it. */
if( psz_name != NULL && *psz_name ) if( psz_shortcuts )
{ {
vlc_bool_t b_trash = 1; vlc_bool_t b_trash = VLC_TRUE;
int i_dummy; int i_dummy, i_short = i_shortcuts;
char *psz_name = psz_shortcuts;
for( i_dummy = 0; while( i_short )
b_trash && p_module->pp_shortcuts[i_dummy];
i_dummy++ )
{ {
b_trash = strcmp( psz_name, p_module->pp_shortcuts[i_dummy] ); for( i_dummy = 0;
b_trash && p_module->pp_shortcuts[i_dummy];
i_dummy++ )
{
b_trash = strcmp( psz_name, p_module->pp_shortcuts[i_dummy] );
}
if( !b_trash )
{
i_shortcut_bonus = i_short * 10000;
break;
}
while( *psz_name )
{
psz_name++;
}
psz_name++;
i_short--;
} }
if( b_trash ) if( b_trash )
...@@ -360,7 +382,7 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -360,7 +382,7 @@ module_t * __module_Need( vlc_object_t *p_this,
{ {
/* Remove previous non-matching plugins */ /* Remove previous non-matching plugins */
i_index = 0; i_index = 0;
b_intf = 1; b_intf = VLC_TRUE;
} }
} }
else else
...@@ -375,6 +397,8 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -375,6 +397,8 @@ module_t * __module_Need( vlc_object_t *p_this,
/* Store this new module */ /* Store this new module */
p_list[ i_index ].p_module = p_module; p_list[ i_index ].p_module = p_module;
p_list[ i_index ].i_score = p_module->pi_score[i_capability]
+ i_shortcut_bonus;
/* Add it to the modules-to-probe list */ /* Add it to the modules-to-probe list */
if( i_index == 0 ) if( i_index == 0 )
...@@ -389,17 +413,15 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -389,17 +413,15 @@ module_t * __module_Need( vlc_object_t *p_this,
* thousands of items. Here we have barely 50. */ * thousands of items. Here we have barely 50. */
module_list_t *p_newlist = p_first; module_list_t *p_newlist = p_first;
if( p_first->p_module->pi_score[i_capability] if( p_first->i_score < p_list[ i_index ].i_score )
< p_module->pi_score[i_capability] )
{ {
p_list[ i_index ].p_next = p_first; p_list[ i_index ].p_next = p_first;
p_first = &p_list[ i_index ]; p_first = &p_list[ i_index ];
} }
else else
{ {
while( p_newlist->p_next != NULL while( p_newlist->p_next != NULL &&
&& p_newlist->p_next->p_module->pi_score[i_capability] p_newlist->p_next->i_score >= p_list[ i_index ].i_score )
>= p_module->pi_score[i_capability] )
{ {
p_newlist = p_newlist->p_next; p_newlist = p_newlist->p_next;
} }
...@@ -527,18 +549,18 @@ module_t * __module_Need( vlc_object_t *p_this, ...@@ -527,18 +549,18 @@ module_t * __module_Need( vlc_object_t *p_this,
} }
else if( p_first == NULL ) else if( p_first == NULL )
{ {
msg_Err( p_this, "no %s module named `%s'", msg_Err( p_this, "no available %s module matched `%s'",
MODULE_CAPABILITY( i_capability ), psz_name ); MODULE_CAPABILITY( i_capability ), psz_name );
} }
else if( psz_name != NULL && *psz_name ) else if( psz_name != NULL && *psz_name )
{ {
msg_Err( p_this, "could not load %s module `%s'", msg_Err( p_this, "could not load any %s module matching `%s'",
MODULE_CAPABILITY( i_capability ), psz_name ); MODULE_CAPABILITY( i_capability ), psz_name );
} }
if( psz_realname ) if( psz_shortcuts )
{ {
free( psz_realname ); free( psz_shortcuts );
} }
/* Don't forget that the module is still locked */ /* Don't forget that the module is still locked */
...@@ -602,13 +624,13 @@ static void AllocateAllPlugins( vlc_object_t *p_this ) ...@@ -602,13 +624,13 @@ static void AllocateAllPlugins( vlc_object_t *p_this )
int i_dirlen = strlen( *ppsz_path ); int i_dirlen = strlen( *ppsz_path );
#if defined( SYS_BEOS ) || defined( SYS_DARWIN ) #if defined( SYS_BEOS ) || defined( SYS_DARWIN )
b_notinroot = 0; b_notinroot = VLC_FALSE;
/* Under BeOS, we need to add beos_GetProgramPath() to access /* Under BeOS, we need to add beos_GetProgramPath() to access
* files under the current directory */ * files under the current directory */
if( ( i_dirlen > 1 ) && strncmp( *ppsz_path, "/", 1 ) ) if( ( i_dirlen > 1 ) && strncmp( *ppsz_path, "/", 1 ) )
{ {
i_dirlen += i_vlclen + 2; i_dirlen += i_vlclen + 2;
b_notinroot = 1; b_notinroot = VLC_TRUE;
psz_fullpath = malloc( i_dirlen ); psz_fullpath = malloc( i_dirlen );
if( psz_fullpath == NULL ) if( psz_fullpath == NULL )
...@@ -779,7 +801,7 @@ static int AllocatePluginModule( vlc_object_t * p_this, char * psz_filename ) ...@@ -779,7 +801,7 @@ static int AllocatePluginModule( vlc_object_t * p_this, char * psz_filename )
p_module->i_usage = 0; p_module->i_usage = 0;
p_module->i_unused_delay = 0; p_module->i_unused_delay = 0;
p_module->b_builtin = 0; p_module->b_builtin = VLC_FALSE;
/* Link module into the linked list */ /* Link module into the linked list */
if( p_this->p_vlc->module_bank.first != NULL ) if( p_this->p_vlc->module_bank.first != NULL )
...@@ -864,7 +886,7 @@ static int AllocateBuiltinModule( vlc_object_t * p_this, ...@@ -864,7 +886,7 @@ static int AllocateBuiltinModule( vlc_object_t * p_this,
p_module->i_usage = 0; p_module->i_usage = 0;
p_module->i_unused_delay = 0; p_module->i_unused_delay = 0;
p_module->b_builtin = 1; p_module->b_builtin = VLC_TRUE;
p_module->is.builtin.pf_deactivate = pf_deactivate; p_module->is.builtin.pf_deactivate = pf_deactivate;
/* Link module into the linked list */ /* Link module into the linked list */
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vlc.c: the vlc player * vlc.c: the vlc player
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: vlc.c,v 1.2 2002/06/27 19:05:17 sam Exp $ * $Id: vlc.c,v 1.3 2002/07/03 19:40:49 sam Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Samuel Hocevar <sam@zoy.org> * Samuel Hocevar <sam@zoy.org>
...@@ -68,8 +68,10 @@ int main(int i_argc, char *ppsz_argv[], char *ppsz_env[]) ...@@ -68,8 +68,10 @@ int main(int i_argc, char *ppsz_argv[], char *ppsz_env[])
/* Add background interfaces */ /* Add background interfaces */
//{ int i; for( i=10; i--; ) vlc_add_intf( p_vlc, "dummy", 0 ); } //{ int i; for( i=10; i--; ) vlc_add_intf( p_vlc, "dummy", 0 ); }
//vlc_add_intf( p_vlc, "dummy", VLC_FALSE ); vlc_add_intf( p_vlc, "dummy", VLC_FALSE );
//vlc_add_intf( p_vlc, "logger", VLC_FALSE ); vlc_add_intf( p_vlc, "logger", VLC_FALSE );
//vlc_add_intf( p_vlc, "xosd", VLC_FALSE );
//vlc_add_intf( p_vlc, "kde", VLC_FALSE );
vlc_add_intf( p_vlc, "rc", VLC_FALSE ); vlc_add_intf( p_vlc, "rc", VLC_FALSE );
/* Add a blocking interface */ /* Add a blocking interface */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment