Commit 1ff5e726 authored by Gildas Bazin's avatar Gildas Bazin

* configure.ac: added an --enable-httpd and --enable-vlm option

* src/misc/httpd.c: use dummy wrapper if httpd is disabled.
* src/misc/vlm.c: use dummy wrapper if vlm is disabled.
* modules/control/http.c, telnet.c: properly handle cases where http/vlm is not available.
parent bb1ef14f
...@@ -1185,9 +1185,28 @@ then ...@@ -1185,9 +1185,28 @@ then
VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode]) VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode])
# VLC_ADD_PLUGINS([stream_out_transrate]) # VLC_ADD_PLUGINS([stream_out_transrate])
dnl Ogg and vorbis are handled in their respective section AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
fi fi
dnl
dnl HTTP daemon
dnl
AC_ARG_ENABLE(httpd,
[ --enable-httpd HTTP daemon (default enabled)])
if test "${enable_httpd}" != "no"
then
AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
fi
dnl
dnl VideoLAN manager
dnl
AC_ARG_ENABLE(vlm,
[ --enable-vlm VideoLAN manager (default enabled)])
if test "${enable_vlm}" != "no"
then
AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
fi
dnl dnl
dnl Input plugins dnl Input plugins
...@@ -1630,7 +1649,7 @@ dnl ...@@ -1630,7 +1649,7 @@ dnl
dnl Screen capture module dnl Screen capture module
dnl dnl
AC_ARG_ENABLE(screen, AC_ARG_ENABLE(screen,
[ --enable-screen Screen capture support (default enabled)]) [ --enable-screen Screen capture support (default enabled)])
if test "${enable_screen}" != "no"; then if test "${enable_screen}" != "no"; then
if test "${SYS}" = "darwin"; then if test "${SYS}" = "darwin"; then
AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [ AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
...@@ -2000,7 +2019,7 @@ dnl ...@@ -2000,7 +2019,7 @@ dnl
dnl toolame encoder plugin dnl toolame encoder plugin
dnl dnl
AC_ARG_ENABLE(toolame, AC_ARG_ENABLE(toolame,
[ --enable-toolame toolame codec (default disabled)]) [ --enable-toolame toolame codec (default disabled)])
if test "${enable_toolame}" = "yes" if test "${enable_toolame}" = "yes"
then then
AC_ARG_WITH(toolame-tree, AC_ARG_WITH(toolame-tree,
...@@ -2661,7 +2680,7 @@ dnl OpenGL module ...@@ -2661,7 +2680,7 @@ dnl OpenGL module
dnl (enabled by default except on beos) dnl (enabled by default except on beos)
dnl dnl
AC_ARG_ENABLE(opengl, AC_ARG_ENABLE(opengl,
[ --enable-opengl OpenGL support (default enabled)]) [ --enable-opengl OpenGL support (default enabled)])
if test "${enable_opengl}" != "no" && test "${SYS}" != "beos"; then if test "${enable_opengl}" != "no" && test "${SYS}" != "beos"; then
if test "${SYS}" != "darwin"; then if test "${SYS}" != "darwin"; then
AC_CHECK_HEADERS(GL/gl.h, [ AC_CHECK_HEADERS(GL/gl.h, [
......
...@@ -1124,8 +1124,8 @@ static mvar_t *mvar_VlmSetNew( char *name, vlm_t *vlm ) ...@@ -1124,8 +1124,8 @@ static mvar_t *mvar_VlmSetNew( char *name, vlm_t *vlm )
int i; int i;
/* fprintf( stderr," mvar_VlmSetNew: name=`%s'\n", name ); */ /* fprintf( stderr," mvar_VlmSetNew: name=`%s'\n", name ); */
if( vlm == NULL ) if( vlm == NULL ) return s;
return s;
if( vlm_ExecuteCommand( vlm, "show", &msg ) ) if( vlm_ExecuteCommand( vlm, "show", &msg ) )
{ {
return s; return s;
...@@ -1974,6 +1974,8 @@ static void MacroDo( httpd_file_sys_t *p_args, ...@@ -1974,6 +1974,8 @@ static void MacroDo( httpd_file_sys_t *p_args,
if( p_intf->p_sys->p_vlm == NULL ) if( p_intf->p_sys->p_vlm == NULL )
p_intf->p_sys->p_vlm = vlm_New( p_intf ); p_intf->p_sys->p_vlm = vlm_New( p_intf );
if( p_intf->p_sys->p_vlm == NULL ) break;
uri_extract_value( p_request, "name", name, 512 ); uri_extract_value( p_request, "name", name, 512 );
if( StrToMacroType( control ) == MVLC_VLM_NEW ) if( StrToMacroType( control ) == MVLC_VLM_NEW )
{ {
...@@ -2031,6 +2033,8 @@ static void MacroDo( httpd_file_sys_t *p_args, ...@@ -2031,6 +2033,8 @@ static void MacroDo( httpd_file_sys_t *p_args,
if( p_intf->p_sys->p_vlm == NULL ) if( p_intf->p_sys->p_vlm == NULL )
p_intf->p_sys->p_vlm = vlm_New( p_intf ); p_intf->p_sys->p_vlm = vlm_New( p_intf );
if( p_intf->p_sys->p_vlm == NULL ) break;
uri_extract_value( p_request, "name", name, 512 ); uri_extract_value( p_request, "name", name, 512 );
sprintf( psz, "del %s", name ); sprintf( psz, "del %s", name );
...@@ -2051,6 +2055,8 @@ static void MacroDo( httpd_file_sys_t *p_args, ...@@ -2051,6 +2055,8 @@ static void MacroDo( httpd_file_sys_t *p_args,
if( p_intf->p_sys->p_vlm == NULL ) if( p_intf->p_sys->p_vlm == NULL )
p_intf->p_sys->p_vlm = vlm_New( p_intf ); p_intf->p_sys->p_vlm = vlm_New( p_intf );
if( p_intf->p_sys->p_vlm == NULL ) break;
uri_extract_value( p_request, "name", name, 512 ); uri_extract_value( p_request, "name", name, 512 );
if( StrToMacroType( control ) == MVLC_VLM_PLAY ) if( StrToMacroType( control ) == MVLC_VLM_PLAY )
sprintf( psz, "control %s play", name ); sprintf( psz, "control %s play", name );
...@@ -2080,6 +2086,8 @@ static void MacroDo( httpd_file_sys_t *p_args, ...@@ -2080,6 +2086,8 @@ static void MacroDo( httpd_file_sys_t *p_args,
if( p_intf->p_sys->p_vlm == NULL ) if( p_intf->p_sys->p_vlm == NULL )
p_intf->p_sys->p_vlm = vlm_New( p_intf ); p_intf->p_sys->p_vlm = vlm_New( p_intf );
if( p_intf->p_sys->p_vlm == NULL ) break;
uri_extract_value( p_request, "file", file, 512 ); uri_extract_value( p_request, "file", file, 512 );
uri_decode_url_encoded( file ); uri_decode_url_encoded( file );
...@@ -2370,9 +2378,7 @@ static void Execute( httpd_file_sys_t *p_args, ...@@ -2370,9 +2378,7 @@ static void Execute( httpd_file_sys_t *p_args,
else if( !strcmp( m.param2, "vlm" ) ) else if( !strcmp( m.param2, "vlm" ) )
{ {
if( p_intf->p_sys->p_vlm == NULL ) if( p_intf->p_sys->p_vlm == NULL )
{
p_intf->p_sys->p_vlm = vlm_New( p_intf ); p_intf->p_sys->p_vlm = vlm_New( p_intf );
}
index = mvar_VlmSetNew( m.param1, p_intf->p_sys->p_vlm ); index = mvar_VlmSetNew( m.param1, p_intf->p_sys->p_vlm );
} }
#if 0 #if 0
......
...@@ -116,7 +116,7 @@ struct intf_sys_t ...@@ -116,7 +116,7 @@ struct intf_sys_t
telnet_client_t **clients; telnet_client_t **clients;
int i_clients; int i_clients;
int fd; int fd;
vlm_t *mediatheque; vlm_t *mediatheque;
}; };
/***************************************************************************** /*****************************************************************************
...@@ -125,20 +125,18 @@ struct intf_sys_t ...@@ -125,20 +125,18 @@ struct intf_sys_t
static int Open( vlc_object_t *p_this ) static int Open( vlc_object_t *p_this )
{ {
intf_thread_t *p_intf = (intf_thread_t*) p_this; intf_thread_t *p_intf = (intf_thread_t*) p_this;
vlm_t *mediatheque;
int i_telnetport; int i_telnetport;
i_telnetport = config_GetInt( p_intf, "telnet-port" ); if( !(mediatheque = vlm_New( p_intf )) )
{
#ifdef WIN32 msg_Err( p_intf, "cannot start VLM" );
vlc_bool_t b_quiet; return VLC_EGENERIC;
b_quiet = config_GetInt( p_intf, "dummy-quiet" ); }
if( !b_quiet )
CONSOLE_INTRO_MSG;
#endif
msg_Info( p_intf, _("Using the VLM interface plugin...") ); msg_Info( p_intf, _("Using the VLM interface plugin...") );
p_intf->pf_run = Run; i_telnetport = config_GetInt( p_intf, "telnet-port" );
p_intf->p_sys = malloc( sizeof( intf_sys_t ) ); p_intf->p_sys = malloc( sizeof( intf_sys_t ) );
if( ( p_intf->p_sys->fd = net_ListenTCP( p_intf , "", i_telnetport ) ) < 0 ) if( ( p_intf->p_sys->fd = net_ListenTCP( p_intf , "", i_telnetport ) ) < 0 )
...@@ -151,7 +149,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -151,7 +149,8 @@ static int Open( vlc_object_t *p_this )
p_intf->p_sys->i_clients = 0; p_intf->p_sys->i_clients = 0;
p_intf->p_sys->clients = NULL; p_intf->p_sys->clients = NULL;
p_intf->p_sys->mediatheque = vlm_New( p_intf ); p_intf->p_sys->mediatheque = mediatheque;
p_intf->pf_run = Run;
return VLC_SUCCESS; return VLC_SUCCESS;
} }
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <vlc/vlc.h> #include <vlc/vlc.h>
#ifdef ENABLE_HTTPD
#include "vlc_httpd.h" #include "vlc_httpd.h"
#include "network.h" #include "network.h"
...@@ -376,6 +378,7 @@ static struct ...@@ -376,6 +378,7 @@ static struct
{ ".jpg", "image/jpeg" }, { ".jpg", "image/jpeg" },
{ ".jpeg", "image/jpeg" }, { ".jpeg", "image/jpeg" },
{ ".png", "image/png" }, { ".png", "image/png" },
{ ".mpjpeg","multipart/x-mixed-replace; boundary=This Random String" },
/* media mime */ /* media mime */
{ ".avi", "video/avi" }, { ".avi", "video/avi" },
...@@ -2471,3 +2474,45 @@ static int GetAddrPort( const struct sockaddr_storage *p_ss ) ...@@ -2471,3 +2474,45 @@ static int GetAddrPort( const struct sockaddr_storage *p_ss )
return ntohs( i_port ); return ntohs( i_port );
} }
#else /* ENABLE_HTTPD */
/* We just define an empty wrapper */
httpd_host_t *httpd_HostNew( vlc_object_t *a, char *b, int c )
{
msg_Err( a, "HTTP daemon support is disabled" );
return 0;
}
void httpd_HostDelete( httpd_host_t *a ){}
httpd_url_t *httpd_UrlNew( httpd_host_t *a, char *b ){ return 0; }
httpd_url_t *httpd_UrlNewUnique( httpd_host_t *a, char *b, char *c,
char *d ){ return 0; }
int httpd_UrlCatch( httpd_url_t *a, int b, httpd_callback_t c,
httpd_callback_sys_t *d ){ return 0; }
void httpd_UrlDelete( httpd_url_t *a ){}
char *httpd_ClientIP( httpd_client_t *a ){ return 0; }
void httpd_ClientModeStream( httpd_client_t *a ){}
void httpd_ClientModeBidir( httpd_client_t *a ){}
void httpd_FileDelete( httpd_file_t *a ){}
httpd_file_t *httpd_FileNew( httpd_host_t *a, char *b, char *c, char *d,
char *e, httpd_file_callback_t f,
httpd_file_sys_t *g ){ return 0; }
void httpd_RedirectDelete( httpd_redirect_t *a ){}
httpd_redirect_t *httpd_RedirectNew( httpd_host_t *a,
char *b, char *c ){ return 0; }
void httpd_StreamDelete( httpd_stream_t *a ){}
int httpd_StreamHeader( httpd_stream_t *a, uint8_t *b, int c ){ return 0; }
int httpd_StreamSend ( httpd_stream_t *a, uint8_t *b, int c ){ return 0; }
httpd_stream_t *httpd_StreamNew( httpd_host_t *a, char *b, char *c,
char *d, char *e ){ return 0; }
void httpd_MsgInit ( httpd_message_t *a ){}
void httpd_MsgAdd ( httpd_message_t *a, char *b, char *c, ... ){}
char *httpd_MsgGet ( httpd_message_t *a, char *b ){ return 0; }
void httpd_MsgClean( httpd_message_t *a ){}
#endif /* ENABLE_HTTPD */
...@@ -29,6 +29,9 @@ ...@@ -29,6 +29,9 @@
#include <stdlib.h> /* malloc(), free() */ #include <stdlib.h> /* malloc(), free() */
#include <vlc/vlc.h> #include <vlc/vlc.h>
#ifdef ENABLE_VLM
#include <vlc/intf.h> #include <vlc/intf.h>
#include <vlc/input.h> #include <vlc/input.h>
...@@ -2133,3 +2136,17 @@ static int Manage( vlc_object_t* p_object ) ...@@ -2133,3 +2136,17 @@ static int Manage( vlc_object_t* p_object )
return VLC_SUCCESS; return VLC_SUCCESS;
} }
#else /* ENABLE_VLM */
/* We just define an empty wrapper */
vlm_t *__vlm_New( vlc_object_t *a )
{
msg_Err( a, "VideoLAN manager support is disabled" );
return 0;
}
void vlm_Delete( vlm_t *a ){}
int vlm_ExecuteCommand( vlm_t *a, char *b, vlm_message_t **c ){ return -1; }
void vlm_MessageDelete( vlm_message_t *a ){}
#endif /* ENABLE_VLM */
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