X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcontrol%2Flirc.c;h=1951c1751a495d5e5dcba6e129621ffd53e65b5b;hb=11097ec199b7c5bd83fda41d6381a639ce2e6bef;hp=520b24eed21f5d5cde82e609923bb9d55b30cc37;hpb=79462a4b8a524b70dac2e9dbd16a716eebdccb2a;p=vlc diff --git a/modules/control/lirc.c b/modules/control/lirc.c index 520b24eed2..1951c1751a 100644 --- a/modules/control/lirc.c +++ b/modules/control/lirc.c @@ -24,22 +24,31 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include /* malloc(), free() */ -#include #include -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include #include #include #include +#define LIRC_TEXT N_("Change the lirc configuration file.") +#define LIRC_LONGTEXT N_( \ + "Tell lirc to read this configuration file. By default it " \ + "searches in the users home directory." ) + /***************************************************************************** * intf_sys_t: description and status of FB interface *****************************************************************************/ struct intf_sys_t { + char *psz_file; struct lirc_config *config; }; @@ -54,12 +63,15 @@ static void Run ( intf_thread_t * ); * Module descriptor *****************************************************************************/ vlc_module_begin(); - set_shortname( _("Infrared") ); + set_shortname( N_("Infrared") ); set_category( CAT_INTERFACE ); set_subcategory( SUBCAT_INTERFACE_CONTROL ); - set_description( _("Infrared remote control interface") ); + set_description( N_("Infrared remote control interface") ); set_capability( "interface", 0 ); set_callbacks( Open, Close ); + + add_string( "lirc-file", NULL, NULL, + LIRC_TEXT, LIRC_LONGTEXT, true ); vlc_module_end(); /***************************************************************************** @@ -80,6 +92,8 @@ static int Open( vlc_object_t *p_this ) p_intf->pf_run = Run; + p_intf->p_sys->psz_file = var_CreateGetNonEmptyString( p_intf, "lirc-file" ); + i_fd = lirc_init( "vlc", 1 ); if( i_fd == -1 ) { @@ -91,7 +105,7 @@ static int Open( vlc_object_t *p_this ) /* We want polling */ fcntl( i_fd, F_SETFL, fcntl( i_fd, F_GETFL ) | O_NONBLOCK ); - if( lirc_readconfig( NULL, &p_intf->p_sys->config, NULL ) != 0 ) + if( lirc_readconfig( p_intf->p_sys->psz_file, &p_intf->p_sys->config, NULL ) != 0 ) { msg_Err( p_intf, "failure while reading lirc config" ); lirc_deinit(); @@ -110,6 +124,7 @@ static void Close( vlc_object_t *p_this ) intf_thread_t *p_intf = (intf_thread_t *)p_this; /* Destroy structure */ + free( p_intf->p_sys->psz_file ); lirc_freeconfig( p_intf->p_sys->config ); lirc_deinit(); free( p_intf->p_sys );