#include <vlc_input.h>
#include "modules/modules.h"
-#include "modules/configuration.h"
+#include "config/config.h"
#include <errno.h> /* ENOMEM */
#include <stdio.h> /* sprintf() */
static void SetLanguage ( char const * );
#endif
static inline int LoadMessages (void);
-static int GetFilenames ( libvlc_int_t *, int, char *[] );
+static int GetFilenames ( libvlc_int_t *, int, const char *[] );
static void Help ( libvlc_int_t *, char const *psz_help_name );
static void Usage ( libvlc_int_t *, char const *psz_module_name );
static void ListModules ( libvlc_int_t *, vlc_bool_t );
/* Announce who we are - Do it only for first instance ? */
msg_Dbg( p_libvlc, COPYRIGHT_MESSAGE );
msg_Dbg( p_libvlc, "libvlc was configured with %s", CONFIGURE_LINE );
+ if( strcmp( p_libvlc->psz_object_name, "cvlc" ) ) /* Not running with cvlc */
+ msg_Info( p_libvlc, "Running vlc with the default interface. Use 'cvlc' to use vlc without interface.");
/* Initialize mutexes */
vlc_mutex_init( p_libvlc, &p_libvlc->config_lock );
* - message queue, module bank and playlist initialization
* - configuration and commandline parsing
*/
-int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, char *ppsz_argv[] )
+int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
+ const char *ppsz_argv[] )
{
char p_capabilities[200];
char * p_tmp = NULL;
char * psz_control = NULL;
vlc_bool_t b_exit = VLC_FALSE;
int i_ret = VLC_EEXIT;
- module_t *p_help_module = NULL;
playlist_t *p_playlist = NULL;
vlc_value_t val;
#if defined( ENABLE_NLS ) \
/* Get the executable name (similar to the basename command) */
if( i_argc > 0 )
{
- p_libvlc->psz_object_name = p_tmp = ppsz_argv[ 0 ];
- while( *p_tmp )
+ const char *exe = p_libvlc->psz_object_name = ppsz_argv[0];
+ while( *exe )
{
- if( *p_tmp == '/' ) p_libvlc->psz_object_name = ++p_tmp;
- else ++p_tmp;
+ if( *exe++ == '/' )
+ p_libvlc->psz_object_name = exe;
}
}
else
* options) */
module_InitBank( p_libvlc );
- /* Hack: insert the help module here */
- p_help_module = vlc_module_create( VLC_OBJECT(p_libvlc) );
- if( p_help_module == NULL )
- {
- module_EndBank( p_libvlc );
- return VLC_EGENERIC;
- }
- p_help_module->psz_object_name = "help";
- p_help_module->psz_longname = N_("Help options");
- config_Duplicate( p_help_module, libvlc_config, libvlc_config_count );
- vlc_object_attach( p_help_module, libvlc_global.p_module_bank );
- /* End hack */
-
if( config_LoadCmdLine( p_libvlc, &i_argc, ppsz_argv, VLC_TRUE ) )
{
- vlc_object_detach( p_help_module );
- config_Free( p_help_module );
- vlc_object_destroy( p_help_module );
module_EndBank( p_libvlc );
return VLC_EGENERIC;
}
libvlc_global.p_module_bank->b_cache_delete = VLC_TRUE;
}
- /* Hack: remove the help module here */
- vlc_object_detach( p_help_module );
- /* End hack */
-
/* Will be re-done properly later on */
p_libvlc->i_verbose = config_GetInt( p_libvlc, "verbose" );
if( b_exit )
{
- config_Free( p_help_module );
- vlc_object_destroy( p_help_module );
module_EndBank( p_libvlc );
return i_ret;
}
msg_Dbg( p_libvlc, "module bank initialized, found %i modules",
libvlc_global.p_module_bank->i_children );
- /* Hack: insert the help module here */
- vlc_object_attach( p_help_module, libvlc_global.p_module_bank );
- /* End hack */
-
/* Check for help on modules */
if( (p_tmp = config_GetPsz( p_libvlc, "module" )) )
{
/* Check for config file options */
if( config_GetInt( p_libvlc, "reset-config" ) )
{
- vlc_object_detach( p_help_module );
config_ResetAll( p_libvlc );
config_LoadCmdLine( p_libvlc, &i_argc, ppsz_argv, VLC_TRUE );
config_SaveConfigFile( p_libvlc, NULL );
- vlc_object_attach( p_help_module, libvlc_global.p_module_bank );
}
if( config_GetInt( p_libvlc, "save-config" ) )
{
- vlc_object_detach( p_help_module );
config_LoadConfigFile( p_libvlc, NULL );
config_LoadCmdLine( p_libvlc, &i_argc, ppsz_argv, VLC_TRUE );
config_SaveConfigFile( p_libvlc, NULL );
- vlc_object_attach( p_help_module, libvlc_global.p_module_bank );
}
- /* Hack: remove the help module here */
- vlc_object_detach( p_help_module );
- /* End hack */
-
if( b_exit )
{
- config_Free( p_help_module );
- vlc_object_destroy( p_help_module );
module_EndBank( p_libvlc );
return i_ret;
}
*/
config_LoadConfigFile( p_libvlc, NULL );
- /* Hack: insert the help module here */
- vlc_object_attach( p_help_module, libvlc_global.p_module_bank );
- /* End hack */
-
/*
* Override configuration with command line settings
*/
"that they are valid.\n" );
PauseConsole();
#endif
- vlc_object_detach( p_help_module );
- config_Free( p_help_module );
- vlc_object_destroy( p_help_module );
module_EndBank( p_libvlc );
return VLC_EGENERIC;
}
- /* Hack: remove the help module here */
- vlc_object_detach( p_help_module );
- config_Free( p_help_module );
- vlc_object_destroy( p_help_module );
- /* End hack */
-
/*
* System specific configuration
*/
* we do it only when playlist exists, because dbus module needs it */
if( config_GetInt( p_libvlc, "one-instance" ) )
VLC_AddIntf( 0, "dbus,none", VLC_FALSE, VLC_FALSE );
+
+ /* Prevents the power management daemon to suspend the computer
+ * when VLC is active */
+ if( config_GetInt( p_libvlc, "inhibit" ) )
+ VLC_AddIntf( 0, "inhibit,none", VLC_FALSE, VLC_FALSE );
#endif
/*
* Parse command line for input files as well as their associated options.
* An option always follows its associated input and begins with a ":".
*****************************************************************************/
-static int GetFilenames( libvlc_int_t *p_vlc, int i_argc, char *ppsz_argv[] )
+static int GetFilenames( libvlc_int_t *p_vlc, int i_argc, const char *ppsz_argv[] )
{
int i_opt, i_options;
* unnecessary lookups. */
VLC_AddTarget( p_vlc->i_object_id, ppsz_argv[i_opt],
- (char const **)( i_options ? &ppsz_argv[i_opt + 1] :
+ ( i_options ? &ppsz_argv[i_opt + 1] :
NULL ), i_options,
PLAYLIST_INSERT, 0 );
}
# define BLUE COL(34)
# define MAGENTA COL(35)
# define CYAN COL(36)
-# define WHITE COL(37)
+# define WHITE COL(0)
# define GRAY "\033[0m"
#define COLOR_FORMAT_STRING (WHITE" %s --%s"YELLOW"%s%s%s%s%s%s "GRAY)
+#define COLOR_FORMAT_STRING_BOOL (WHITE" %s --%s%s%s%s%s%s%s "GRAY)
#define LINE_START 8
#define PADDING_SPACES 25
char psz_spaces_text[PADDING_SPACES+LINE_START+1];
char psz_spaces_longtext[LINE_START+3];
char psz_format[sizeof(COLOR_FORMAT_STRING)];
+ char psz_format_bool[sizeof(COLOR_FORMAT_STRING_BOOL)];
char psz_buffer[10000];
char psz_short[4];
int i_index;
vlc_bool_t b_description = config_GetInt( p_this, "help-verbose" );
vlc_bool_t b_description_hack;
vlc_bool_t b_color = config_GetInt( p_this, "color" );
+ vlc_bool_t b_has_advanced = VLC_FALSE;
memset( psz_spaces_text, ' ', PADDING_SPACES+LINE_START );
psz_spaces_text[PADDING_SPACES+LINE_START] = '\0';
psz_spaces_longtext[LINE_START+2] = '\0';
if( b_color )
+ {
strcpy( psz_format, COLOR_FORMAT_STRING );
+ strcpy( psz_format_bool, COLOR_FORMAT_STRING_BOOL );
+ }
else
+ {
strcpy( psz_format, FORMAT_STRING );
+ strcpy( psz_format_bool, FORMAT_STRING );
+ }
/* List all modules */
p_list = vlc_list_find( p_this, VLC_OBJECT_MODULE, FIND_ANYWHERE );
signed int i;
size_t i_cur_width;
- /* Skip deprecated options */
- if( p_item->psz_current )
+ /* Skip removed options */
+ if( p_item->b_removed )
{
continue;
}
/* Skip advanced options if requested */
if( p_item->b_advanced && !b_advanced )
{
+ b_has_advanced = VLC_TRUE;
continue;
}
case CONFIG_ITEM_MODULE_CAT:
case CONFIG_ITEM_MODULE_LIST:
case CONFIG_ITEM_MODULE_LIST_CAT:
+ case CONFIG_ITEM_FONT:
+ case CONFIG_ITEM_PASSWORD:
psz_bra = OPTION_VALUE_SEP "<";
psz_type = _("string");
psz_ket = ">";
if( p_item->i_type == CONFIG_ITEM_BOOL && !b_help_module )
{
- utf8_fprintf( stdout, psz_format, psz_short, p_item->psz_name,
- psz_prefix, p_item->psz_name, psz_bra, psz_type,
- psz_ket, psz_spaces );
+ utf8_fprintf( stdout, psz_format_bool, psz_short,
+ p_item->psz_name, psz_prefix, p_item->psz_name,
+ psz_bra, psz_type, psz_ket, psz_spaces );
}
else
{
}
}
+ if( b_has_advanced )
+ utf8_fprintf( stdout, "\n" WHITE "%s" GRAY " %s\n", _( "Note:" ),
+ _( "add --advanced to your command line to see advanced options." ) );
+
/* Release the module list */
vlc_list_release( p_list );
}
p_parser->psz_capability,
p_parser->i_score );
}
- if( p_parser->psz_program )
- {
- if( b_color )
- utf8_fprintf( stdout, YELLOW " p %s\n"GRAY,
- p_parser->psz_program );
- else
- utf8_fprintf( stdout, " p %s\n", p_parser->psz_program );
- }
}
psz_spaces[i] = ' ';