summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorcvs2svn <admin@example.com>2009-10-21 00:02:02 +0000
committercvs2svn <admin@example.com>2009-10-21 00:02:02 +0000
commit97a97ca3358eb48de3eb7a222e487e800566569f (patch)
tree97c920d0225a1c9773a3bce2207f261d7d230123 /config.c
parenta61961358c5a2ec92340b3f8e056bab55438f103 (diff)
downloadxineliboutput-CVS.tar.gz
xineliboutput-CVS.tar.bz2
This commit was manufactured by cvs2svn to create branch 'CVS'.CVS
Diffstat (limited to 'config.c')
-rw-r--r--config.c951
1 files changed, 0 insertions, 951 deletions
diff --git a/config.c b/config.c
deleted file mode 100644
index 6bbc1cac..00000000
--- a/config.c
+++ /dev/null
@@ -1,951 +0,0 @@
-/*
- * config.c: User settings
- *
- * See the main source file 'xineliboutput.c' for copyright information and
- * how to reach the author.
- *
- * $Id: config.c,v 1.85 2009-08-19 13:12:10 phintuka Exp $
- *
- */
-
-#include "features.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <getopt.h>
-
-#include <vdr/config.h>
-#include <vdr/videodir.h>
-#include <vdr/device.h>
-#include <vdr/i18n.h>
-
-#include "logdefs.h"
-#include "config.h"
-
-#define STRN0CPY(dst, src) \
- do { \
- strn0cpy(dst, src, sizeof(dst)); \
- if(strlen(src) >= sizeof(dst)) \
- LOGMSG("WARNING: Setting %s truncated to %s !", Name, dst); \
- } while(0)
-
-
-#define DEFAULT_DEINTERLACE_OPTS "method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1"
-
-const int config_t::i_pesBufferSize[ PES_BUFFERS_count+1 ] = {
- 0, 50, 250, 500, 1000, 2000, 500
-};
-
-const char * const config_t::s_bufferSize[ PES_BUFFERS_count+1 ] = {
- trNOOP("custom"),
- trNOOP("tiny"),
- trNOOP("small"),
- trNOOP("medium"),
- trNOOP("large"),
- trNOOP("huge"),
- NULL
-};
-
-const char * const config_t::s_aspects[ ASPECT_count+1 ] = {
- trNOOP("automatic"),
- trNOOP("default"),
- "4:3",
- "16:9",
- "16:10",
- trNOOP("Pan&Scan"),
- trNOOP("CenterCutOut"),
- NULL
-};
-
-const char * const config_t::s_vo_aspects[ VO_ASPECT_count+1 ] = {
- trNOOP("automatic"),
- trNOOP("square"),
- "4:3",
- trNOOP("anamorphic"),
- trNOOP("DVB"),
- NULL
-};
-
-
-const char * const config_t::s_deinterlaceMethods[ DEINTERLACE_count+1 ] = {
- "none",
- "bob",
- "weave",
- "greedy",
- "onefield",
- "onefield_xv",
- "linearblend",
- "tvtime",
- NULL
-};
-
-const char * const config_t::s_deinterlaceMethodNames[ DEINTERLACE_count+1 ] = {
- trNOOP("off"),
- "Bob",
- "Weave",
- "Greedy",
- "One Field",
- "One Field XV",
- "Linear Blend",
- "TvTime",
- NULL
-};
-
-const char * const config_t::s_fieldOrder[ FIELD_ORDER_count+1 ] = {
- trNOOP("normal"),
- trNOOP("inverted"),
- NULL
-};
-
-const char * const config_t::s_audioDrivers[ AUDIO_DRIVER_count+1 ] = {
- "auto", "alsa", "oss", "none", "esd", "jack",
- NULL
-};
-
-const char * const config_t::s_audioDriverNames[ AUDIO_DRIVER_count+1 ] = {
- trNOOP("automatic"),
- "Alsa",
- "OSS",
- trNOOP("no audio"),
- "ESD",
- "Jack",
- NULL
-};
-
-const char * const config_t::s_videoDriversX11[ X11_DRIVER_count+1 ] = {
- "auto", "xshm", "xv", "xvmc", "xxmc", "vidix", "XDirectFB", "opengl", "sdl", "none",
- NULL
-};
-
-const char * const config_t::s_videoDriverNamesX11[ X11_DRIVER_count+1 ] = {
- trNOOP("automatic"),
- "XShm",
- "Xv",
- "XvMC",
- "XvMC+VLD",
- "Vidix",
- "XDirectFB",
- "OpenGL",
- "SDL",
- trNOOP("no video"),
- NULL
-};
-
-const char * const config_t::s_videoDriversFB[ FB_DRIVER_count+1 ] = {
- "auto", "fb", "DirectFB", "sdl", "vidixfb", "aadxr3", "none",
- NULL
-};
-
-const char * const config_t::s_videoDriverNamesFB [ FB_DRIVER_count+1 ] = {
- trNOOP("automatic"),
- "Framebuffer",
- "DirectFB",
- "SDL",
- "VidixFB",
- "DXR3",
- trNOOP("no video"),
- NULL
-};
-
-const char * const config_t::s_frontends[ FRONTEND_count+1 ] = {
- "sxfe", "fbfe", "none",
- NULL
-};
-
-const char * const config_t::s_frontendNames[ FRONTEND_count+1 ] = {
- "X11 (sxfe)",
- "Framebuffer (fbfe)",
- trNOOP("Off"),
- NULL
-};
-
-const char * const config_t::s_frontend_files[ FRONTEND_count+1 ] = {
- "lib" PLUGIN_NAME_I18N "-sxfe.so." XINELIBOUTPUT_VERSION,
- "lib" PLUGIN_NAME_I18N "-fbfe.so." XINELIBOUTPUT_VERSION,
- // example: libxineliboutput-sxfe.so.0.4.0
- "",
- NULL
-};
-
-const char * const config_t::s_audioEqNames[ AUDIO_EQ_count+1 ] = {
- "30 Hz", "60 Hz", "125 Hz", "250 Hz", "500 Hz",
- "1 kHz", "2 kHz", "4 kHz", "8 kHz", "16 kHz",
- NULL
-};
-
-const char * const config_t::s_audioVisualizations[ AUDIO_VIS_count+1 ] = {
- "none", "goom", "oscope", "fftscope", "fftgraph",
- NULL
-};
-
-const char * const config_t::s_audioVisualizationNames[ AUDIO_VIS_count+1 ] = {
- trNOOP("Off"),
- trNOOP("Goom"),
- trNOOP("Oscilloscope"),
- trNOOP("FFT Scope"),
- trNOOP("FFT Graph"),
- NULL
-};
-
-/* xine, audio_alsa_out.c */
-const char * const config_t::s_speakerArrangements[ SPEAKERS_count+1 ] = {
- trNOOP("Mono 1.0"), trNOOP("Stereo 2.0"), trNOOP("Headphones 2.0"), trNOOP("Stereo 2.1"),
- trNOOP("Surround 3.0"), trNOOP("Surround 4.0"), trNOOP("Surround 4.1"),
- trNOOP("Surround 5.0"), trNOOP("Surround 5.1"), trNOOP("Surround 6.0"),
- trNOOP("Surround 6.1"), trNOOP("Surround 7.1"), trNOOP("Pass Through"),
- NULL
-};
-
-const char * const config_t::s_subtitleSizes[ SUBTITLESIZE_count+1 ] = {
- trNOOP("default"),
- trNOOP("tiny"),
- trNOOP("small"),
- trNOOP("medium"),
- trNOOP("large"),
- trNOOP("very large"),
- trNOOP("huge"),
- NULL
-};
-
-const char * const config_t::s_subExts[] = {
- ".sub", ".srt", ".txt", ".ssa",
- ".SUB", ".SRT", ".TXT", ".SSA",
- NULL
-};
-
-const char * const config_t::s_osdBlendingMethods[] = {
- trNOOP("Software"),
- trNOOP("Hardware"),
- NULL
-};
-
-const char * const config_t::s_osdMixers[] = {
- trNOOP("no"),
- trNOOP("grayscale"), // item [1]
- trNOOP("transparent"), // item [2]
- trNOOP("transparent grayscale"), // item [3] ([1 | 2])
- trNOOP("yes"),
- NULL
-};
-
-const char * const config_t::s_osdScalings[] = {
- trNOOP("no"),
- trNOOP("nearest"), // item [1]
- trNOOP("bilinear"), // item [2]
- NULL
-};
-
-const char * const config_t::s_osdSizes[] = {
- trNOOP("automatic"),
- "720x576",
- "1280x720",
- "1920x1080",
- trNOOP("custom"),
- NULL
-};
-
-const char * const config_t::s_decoders_MPEG2[] = {
- trNOOP("automatic"),
- "libmpeg2",
- "FFmpeg",
- NULL
-};
-
-const char * const config_t::s_decoders_H264[] = {
- trNOOP("automatic"),
- "FFmpeg",
- "CoreAVC",
- NULL
-};
-
-const char * const config_t::s_ff_skip_loop_filters[] = {
- trNOOP("automatic"),
- trNOOP("default"),
- trNOOP("none"),
- trNOOP("nonref"),
- trNOOP("bidir"),
- trNOOP("nonkey"),
- trNOOP("all"),
- NULL
-};
-
-const char * const config_t::s_ff_speed_over_accuracy[] = {
- trNOOP("automatic"),
- trNOOP("yes"),
- trNOOP("no"),
-};
-
-static const char exts_playlist[][4] = {
- "asx",
- "m3u",
- "pls",
- "ram",
-};
-
-static const char exts_audio[][8] = {
- "ac3",
- "asf",
- "au",
- "aud",
- "flac",
- "mpa",
- "mpega",
- "mp2",
- "mp3",
- "m4a",
- "ogg",
- "ogm",
- "ra",
- "spx",
- "wav",
- "wma",
-};
-
-static const char exts_video[][8] = {
- "asf",
- "avi",
- "dat",
- "divx",
- "dv",
- "fli",
- "flv",
- "iso", /* maybe dvd */
- "mkv",
- "mov",
- "mpeg",
- "mpg",
- "mpv",
- "mp4",
- "m2v",
- "m2t",
- "m2ts",
- "m4v",
- "mts",
- "pes",
- "rm",
- "ts",
- "vdr",
- "vob",
- "wmv",
- "xvid",
-};
-
-static const char exts_image[][8] = {
- "bmp",
- "gif",
- "jpeg",
- "jpg",
- "mng",
- "png",
- "tiff",
-};
-
-#define DEF_EXT_IS(TYPE) \
-static bool ext_is_ ## TYPE(const char *ext) \
-{ \
- for(unsigned int i=0; i<sizeof(exts_ ## TYPE)/sizeof(exts_ ## TYPE[0]); i++) \
- if(!strcasecmp(ext, exts_ ## TYPE[i])) \
- return true; \
- return false; \
-}
-DEF_EXT_IS(playlist)
-DEF_EXT_IS(audio)
-DEF_EXT_IS(video)
-DEF_EXT_IS(image)
-
-static const char *get_extension(const char *fname)
-{
- if(fname) {
- const char *pos = strrchr(fname, '.');
- if(pos)
- return pos+1;
- }
- return NULL;
-}
-
-static char *strcatrealloc(char *dest, const char *src)
-{
- if (!src || !*src)
- return dest;
-
- size_t l = (dest ? strlen(dest) : 0) + strlen(src) + 1;
- if(dest) {
- dest = (char *)realloc(dest, l);
- strcat(dest, src);
- } else {
- dest = (char*)malloc(l);
- strcpy(dest, src);
- }
- return dest;
-}
-
-
-bool config_t::IsPlaylistFile(const char *fname)
-{
- const char *ext = get_extension(fname);
- return ext && ext_is_playlist(ext);
-}
-
-bool config_t::IsAudioFile(const char *fname)
-{
- const char *ext = get_extension(fname);
- return ext && (ext_is_audio(ext) || ext_is_playlist(ext));
-}
-
-bool config_t::IsVideoFile(const char *fname)
-{
- const char *ext = get_extension(fname);
- return ext && (ext_is_video(ext) || ext_is_audio(ext) || ext_is_playlist(ext));
-}
-
-bool config_t::IsImageFile(const char *fname)
-{
- const char *ext = get_extension(fname);
- return ext && (ext_is_image(ext) || ext_is_playlist(ext));
-}
-
-bool config_t::IsDvdImage(const char *fname)
-{
- const char *ext = get_extension(fname);
- return (ext && !strcasecmp(ext, "iso")) ? true : false;
-}
-
-bool config_t::IsDvdFolder(const char *fname)
-{
- struct stat st;
- cString buf, folder;
-
- buf = cString::sprintf("%s/VIDEO_TS/", fname);
- if (stat(buf, &st) == 0) {
- folder = buf;
- } else {
- buf = cString::sprintf("%s/video_ts/", fname);
- if (stat(buf, &st) == 0)
- folder = buf;
- else
- return false;
- }
-
- buf = cString::sprintf("%s/video_ts.ifo", *folder);
- if (stat(buf, &st) == 0)
- return true;
-
- buf = cString::sprintf("%s/VIDEO_TS.IFO", *folder);
- if (stat(buf, &st) == 0)
- return true;
-
- return false;
-}
-
-bool config_t::IsBluRayFolder(const char *fname)
-{
- struct stat st;
- cString buf, folder;
-
- buf = cString::sprintf("%s/BDMV/", fname);
- if (stat(buf, &st) == 0) {
- folder = buf;
- } else {
- buf = cString::sprintf("%s/bdmv/", fname);
- if (stat(buf, &st) == 0)
- folder = buf;
- else
- return false;
- }
-
- buf = cString::sprintf("%s/MovieObject.bdmv", *folder);
- if (stat(buf, &st) == 0)
- return true;
-
- buf = cString::sprintf("%s/movieobject.bdmv", *folder);
- if (stat(buf, &st) == 0)
- return true;
-
- buf = cString::sprintf("%s/MOVIEOBJECT.BDMV", *folder);
- if (stat(buf, &st) == 0)
- return true;
-
- return false;
-}
-
-cString config_t::AutocropOptions(void)
-{
- if (!autocrop)
- return NULL;
-
- return cString::sprintf("enable_autodetect=%d,soft_start=%d,stabilize=%d,enable_subs_detect=%d",
- autocrop_autodetect, autocrop_soft, autocrop_fixedsize, autocrop_subs);
-}
-
-cString config_t::SwScaleOptions(void)
-{
- if (!swscale)
- return NULL;
-
- return cString::sprintf("output_aspect=%s,output_width=%d,output_height=%d,no_downscaling=%d",
- swscale_change_aspect ? "auto" : "0.0",
- swscale_resize ? swscale_width : 0,
- swscale_resize ? swscale_height : 0,
- swscale_downscale ? 0 : 1 );
-}
-
-cString config_t::FfmpegPpOptions(void)
-{
- if (!ffmpeg_pp)
- return NULL;
-
- if(*ffmpeg_pp_mode)
- return cString::sprintf("quality=%d,mode=%s", ffmpeg_pp_quality, ffmpeg_pp_mode);
-
- return cString::sprintf("quality=%d", ffmpeg_pp_quality);
-}
-
-cString config_t::UnsharpOptions(void)
-{
- if (!unsharp)
- return NULL;
-
- return cString::sprintf("luma_matrix_width=%d,luma_matrix_height=%d,luma_amount=%1.1f,"
- "chroma_matrix_width=%d,chroma_matrix_height=%d,chroma_amount=%1.1f",
- unsharp_luma_matrix_width, unsharp_luma_matrix_height,
- ((float)unsharp_luma_amount)/10.0,
- unsharp_chroma_matrix_width, unsharp_chroma_matrix_height,
- ((float)unsharp_chroma_amount)/10.0);
-}
-
-cString config_t::Denoise3dOptions(void)
-{
- if (!denoise3d)
- return NULL;
-
- return cString::sprintf("luma=%1.1f,chroma=%1.1f,time=%1.1f",
- ((float)denoise3d_luma)/10.0,
- ((float)denoise3d_chroma)/10.0,
- ((float)denoise3d_time)/10.0);
-}
-
-config_t::config_t() {
- memset(this, 0, sizeof(config_t));
-
- strn0cpy(local_frontend, s_frontends[FRONTEND_X11], sizeof(local_frontend));
- strn0cpy(video_driver , s_videoDriversX11[X11_DRIVER_XV], sizeof(video_driver));
- strn0cpy(video_port , "0.0", sizeof(video_port));
- strn0cpy(modeline , "", sizeof(modeline));
-
- strn0cpy(audio_driver , s_audioDrivers[AUDIO_DRIVER_ALSA], sizeof(audio_driver));
- strn0cpy(audio_port , "default", sizeof(audio_port));
- speaker_type = SPEAKERS_STEREO;
-
- post_plugins = NULL;
- config_file = NULL;
-
- audio_delay = 0;
- audio_compression = 0;
- memset(audio_equalizer,0,sizeof(audio_equalizer));
- strn0cpy(audio_visualization, "goom", sizeof(audio_visualization));
- strn0cpy(audio_vis_goom_opts, "fps:25,width:720,height:576", sizeof(audio_vis_goom_opts));
-
- headphone = 0;
- audio_upmix = 0;
- audio_surround = 0;
- sw_volume_control = 0;
-
- pes_buffers = i_pesBufferSize[PES_BUFFERS_SMALL_250];
- strn0cpy(deinterlace_method, s_deinterlaceMethods[DEINTERLACE_NONE], sizeof(deinterlace_method));
- strn0cpy(deinterlace_opts, DEFAULT_DEINTERLACE_OPTS, sizeof(deinterlace_opts));
- ffmpeg_pp = 0;
- ffmpeg_pp_quality = 3;
- strn0cpy(ffmpeg_pp_mode, "de", sizeof(ffmpeg_pp_mode));
- subtitle_vpos = 0;
-
- unsharp = 0;
- unsharp_luma_matrix_width = 5;
- unsharp_luma_matrix_height = 5;
- unsharp_luma_amount = 0;
- unsharp_chroma_matrix_width = 3;
- unsharp_chroma_matrix_height = 3;
- unsharp_chroma_amount = 0;
-
- denoise3d = 0;
- denoise3d_luma = 40;
- denoise3d_chroma = 30;
- denoise3d_time = 60;
-
- display_aspect = 0; /* auto */
-
- hide_main_menu = 0;
- osd_size = OSD_SIZE_auto;
- osd_width = 720;
- osd_height = 576;
- osd_width_auto = 0;
- osd_height_auto = 0;
- osd_mixer = OSD_MIXER_FULL;
- osd_scaling = OSD_SCALING_NEAREST;
- hud_osd = 0;
-
- osd_blending = OSD_BLENDING_SOFTWARE;
- osd_blending_lowresvideo = OSD_BLENDING_HARDWARE;
-
- extsub_size = -1;
- dvb_subtitles = 0;
-
- alpha_correction = 0;
- alpha_correction_abs = 0;
-
- fullscreen = 0;
- modeswitch = 1;
- width = 720;
- height = 576;
- scale_video = 0;
- field_order = 0;
- autocrop = 0;
- autocrop_autodetect = 1;
- autocrop_soft = 1;
- autocrop_fixedsize = 1;
- autocrop_subs = 1;
-
- swscale = 0; // enable/disable
- swscale_change_aspect = 0; // change video aspect ratio
- swscale_resize = 0; // change video size
- swscale_width = 720; // output video width
- swscale_height = 576; // output video height
- swscale_downscale = 0; // allow downscaling
-
- remote_mode = 0;
- listen_port = LISTEN_PORT;
- remote_keyboard = 1;
- remote_max_clients = MAXCLIENTS;
- remote_usetcp = 1;
- remote_useudp = 1;
- remote_usertp = 1;
- remote_usepipe = 1;
- remote_usebcast = 1;
- remote_http_files = 1; /* allow http streaming of media files to xineliboutput clients
- * (currently replayed media file from xineliboutput media player)
- * - will be used if client can't access file directly (nfs etc.) */
-
- strn0cpy(remote_rtp_addr, "224.0.1.9", sizeof(remote_rtp_addr));
- remote_rtp_port = (LISTEN_PORT) & (0xfffe); /* even ports only */
- remote_rtp_ttl = 1;
- remote_rtp_always_on = 0;
- remote_rtp_sap = 1;
-
- remote_use_rtsp = 1; // allow generic rtsp for primary device. needs enabled udp or rtp
- remote_use_rtsp_ctrl = 0; // allow rtsp to control primary device (play/pause/seek...)
- remote_use_http = 1; // allow generic http streaming (primary device output)
- remote_use_http_ctrl = 0; // allow http to control primary device (play/pause/seek...)
-
- remote_local_if[0] = 0; // use only this interface - undefined -> any/all
- remote_local_ip[0] = 0; // bind locally to this IP - undefined -> any/all
-
- use_x_keyboard = 1;
-
- // video settings
- ibp_trickspeed = 1;
- max_trickspeed = 12;
- overscan = 0;
- hue = -1;
- saturation = -1;
- contrast = -1;
- brightness = -1;
- sharpness = -1;
- noise_reduction = -1;
- vo_aspect_ratio = 0;
-
- live_mode_sync = 1; // Sync SCR to transponder clock in live mode
- scr_tuning = 0; // Fine-tune xine egine SCR (to sync video to graphics output)
- scr_hz = 90000; // Current SCR speed (Hz), default is 90000
-
- decoder_mpeg2 = DECODER_MPEG2_auto;
- decoder_h264 = DECODER_H264_auto;
- ff_h264_speed_over_accurancy = FF_H264_SPEED_OVER_ACCURACY_auto;
- ff_h264_skip_loop_filter = FF_H264_SKIP_LOOPFILTER_auto;
-
- strn0cpy(browse_files_dir, VideoDirectory, sizeof(browse_files_dir));
- strn0cpy(browse_music_dir, VideoDirectory, sizeof(browse_music_dir));
- strn0cpy(browse_images_dir, VideoDirectory, sizeof(browse_images_dir));
- cache_implicit_playlists = 1;
- enable_id3_scanner = 1;
- dvd_arrow_keys_control_playback = 1;
-
- main_menu_mode = ShowMenu;
- force_primary_device = 0;
-};
-
-static uint8_t g_hidden_options[sizeof(config_t)] = {0};
-static uint8_t g_readonly_options[sizeof(config_t)] = {0};
-uint8_t *config_t::hidden_options = &g_hidden_options[0];
-uint8_t *config_t::readonly_options = &g_readonly_options[0];
-
-cString config_t::m_ProcessedArgs;
-bool config_t::ProcessArg(const char *Name, const char *Value)
-{
- if(SetupParse(Name, Value)) {
- m_ProcessedArgs = cString::sprintf("%s%s ", *m_ProcessedArgs ? *m_ProcessedArgs : " ", Name);
- return true;
- }
- return false;
-}
-
-bool config_t::ProcessArgs(int argc, char *argv[])
-{
- static const char short_options[] = "fDw:h:l:r:A:V:d:P:C:pc";
-
- static const struct option long_options[] = {
- { "fullscreen", no_argument, NULL, 'f' },
- { "hud", no_argument, NULL, 'D' },
- { "width", required_argument, NULL, 'w' },
- { "height", required_argument, NULL, 'h' },
- //{ "xkeyboard", no_argument, NULL, 'k' },
- //{ "noxkeyboard", no_argument, NULL, 'K' },
- { "local", required_argument, NULL, 'l' },
- //{ "modeline", required_argument, NULL, 'm' },
- { "remote", required_argument, NULL, 'r' },
- { "audio", required_argument, NULL, 'A' },
- { "video", required_argument, NULL, 'V' },
- { "display", required_argument, NULL, 'd' },
- { "post", required_argument, NULL, 'P' },
- { "config", required_argument, NULL, 'C' },
- { "primary", no_argument, NULL, 'p' },
- { "exit-on-close",no_argument, NULL, 'c' },
- { NULL }
- };
-
- int c;
- while ((c = getopt_long(argc, argv, short_options, long_options, NULL)) != -1) {
- switch (c) {
- case 'd': ProcessArg("Video.Port", optarg);
- break;
- case 'f': ProcessArg("Fullscreen", "1");
- break;
- case 'D': ProcessArg("X11.HUDOSD", "1");
-#ifndef HAVE_XRENDER
- LOGMSG("HUD OSD not supported\n");
-#endif
- break;
- case 'w': ProcessArg("Fullscreen", "0");
- ProcessArg("X11.WindowWidth", optarg);
- break;
- case 'h': ProcessArg("Fullscreen", "0");
- ProcessArg("X11.WindowHeight", optarg);
- break;
- //case 'k': ProcessArg("X11.UseKeyboard", "1");
- // break;
- //case 'K': ProcessArg("X11.UseKeyboard", "0");
- // break;
- case 'l': ProcessArg("Frontend", optarg);
- break;
- //case 'm': ProcessArg("Modeline", optarg);
- // break;
- case 'r': if(strcmp(optarg, "none")) {
- if(strchr(optarg, ':')) {
- char *tmp = strdup(optarg);
- char *pt = strchr(tmp,':');
- *pt++ = 0;
- ProcessArg("Remote.ListenPort", pt);
- ProcessArg("RemoteMode", listen_port>0 ? "1" : "0");
- ProcessArg("Remote.LocalIP", tmp);
- free(tmp);
- LOGMSG("Listening on address \'%s\' port %d", remote_local_ip, listen_port);
- } else {
- ProcessArg("Remote.ListenPort", optarg);
- ProcessArg("RemoteMode", listen_port>0 ? "1" : "0");
- }
- } else
- ProcessArg("RemoteMode", "0");
- break;
- case 'V': ProcessArg("Video.Driver", optarg);
- break;
- case 'A': if(strchr(optarg,':')) {
- char *tmp = strdup(optarg);
- char *pt = strchr(tmp,':');
- *pt = 0;
- ProcessArg("Audio.Driver", tmp);
- ProcessArg("Audio.Port", pt+1);
- free(tmp);
- } else
- ProcessArg("Audio.Driver", optarg);
- break;
- case 'P': if(post_plugins)
- post_plugins = strcatrealloc(post_plugins, ";");
- post_plugins = strcatrealloc(post_plugins, optarg);
- break;
- case 'C': config_file = strdup(optarg);
- break;
- case 'p': ProcessArg("ForcePrimaryDevice", "1");
- break;
- case 'c': exit_on_close = 1;
- break;
-
- default: return false;
- }
- }
- return true;
-}
-
-bool config_t::SetupParse(const char *Name, const char *Value)
-{
- const char *pt;
- if(*m_ProcessedArgs && NULL != (pt=strstr(m_ProcessedArgs+1, Name)) &&
- *(pt-1) == ' ' && *(pt+strlen(Name)) == ' ') {
- LOGDBG("Skipping configuration entry %s=%s (overridden in command line)", Name, Value);
- return true;
- }
-
- if (!strcasecmp(Name, "Frontend")) STRN0CPY(local_frontend, Value);
- else if (!strcasecmp(Name, "Modeline")) STRN0CPY(modeline, Value);
- else if (!strcasecmp(Name, "VideoModeSwitching")) modeswitch = atoi(Value);
- else if (!strcasecmp(Name, "Fullscreen")) fullscreen = atoi(Value);
- else if (!strcasecmp(Name, "DisplayAspect")) display_aspect = strstra(Value, s_aspects, 0);
- else if (!strcasecmp(Name, "ForcePrimaryDevice")) force_primary_device = atoi(Value);
-
- else if (!strcasecmp(Name, "X11.WindowWidth")) width = atoi(Value);
- else if (!strcasecmp(Name, "X11.WindowHeight")) height = atoi(Value);
- else if (!strcasecmp(Name, "X11.UseKeyboard")) use_x_keyboard = atoi(Value);
- else if (!strcasecmp(Name, "X11.HUDOSD")) hud_osd = atoi(Value);
-
- else if (!strcasecmp(Name, "Audio.Driver")) STRN0CPY(audio_driver, Value);
- else if (!strcasecmp(Name, "Audio.Port")) STRN0CPY(audio_port, Value);
- else if (!strcasecmp(Name, "Audio.Speakers")) speaker_type = strstra(Value, s_speakerArrangements,
- SPEAKERS_STEREO);
- else if (!strcasecmp(Name, "Audio.Delay")) audio_delay = atoi(Value);
- else if (!strcasecmp(Name, "Audio.Compression")) audio_compression = atoi(Value);
- else if (!strcasecmp(Name, "Audio.Visualization.GoomOpts")) STRN0CPY(audio_vis_goom_opts, Value);
- else if (!strcasecmp(Name, "Audio.Visualization")) STRN0CPY(audio_visualization, Value);
- else if (!strcasecmp(Name, "Audio.Surround")) audio_surround = atoi(Value);
- else if (!strcasecmp(Name, "Audio.Upmix")) audio_upmix = atoi(Value);
- else if (!strcasecmp(Name, "Audio.Headphone")) headphone = atoi(Value);
- else if (!strcasecmp(Name, "Audio.SoftwareVolumeControl")) sw_volume_control = atoi(Value);
-
- else if (!strcasecmp(Name, "OSD.HideMainMenu")) hide_main_menu = atoi(Value);
- else if (!strcasecmp(Name, "OSD.Size")) osd_size = strstra(Value, s_osdSizes, 0);
- else if (!strcasecmp(Name, "OSD.Width")) osd_width = atoi(Value);
- else if (!strcasecmp(Name, "OSD.Height")) osd_height = atoi(Value);
- else if (!strcasecmp(Name, "OSD.LayersVisible")) osd_mixer = atoi(Value);
- else if (!strcasecmp(Name, "OSD.Scaling")) osd_scaling = atoi(Value);
- else if (!strcasecmp(Name, "OSD.Blending")) osd_blending = atoi(Value);
- else if (!strcasecmp(Name, "OSD.BlendingLowRes")) osd_blending_lowresvideo = atoi(Value);
-#if 1
- // < 1.0.1
- else if (!strcasecmp(Name, "OSD.UnscaledAlways")) osd_blending = atoi(Value);
- else if (!strcasecmp(Name, "OSD.UnscaledLowRes")) osd_blending_lowresvideo = atoi(Value);
-#endif
- else if (!strcasecmp(Name, "OSD.AlphaCorrection")) alpha_correction = atoi(Value);
- else if (!strcasecmp(Name, "OSD.AlphaCorrectionAbs")) alpha_correction_abs = atoi(Value);
-
- else if (!strcasecmp(Name, "OSD.ExtSubSize")) extsub_size = atoi(Value);
- else if (!strcasecmp(Name, "OSD.DvbSubtitles")) dvb_subtitles = atoi(Value);
-
- else if (!strcasecmp(Name, "RemoteMode")) remote_mode = atoi(Value);
- else if (!strcasecmp(Name, "Remote.ListenPort")) listen_port = atoi(Value);
- else if (!strcasecmp(Name, "Remote.Keyboard")) remote_keyboard = atoi(Value);
- else if (!strcasecmp(Name, "Remote.MaxClients")) remote_max_clients = atoi(Value);
- else if (!strcasecmp(Name, "Remote.UseTcp")) remote_usetcp = atoi(Value);
- else if (!strcasecmp(Name, "Remote.UseUdp")) remote_useudp = atoi(Value);
- else if (!strcasecmp(Name, "Remote.UseRtp")) remote_usertp = atoi(Value);
- else if (!strcasecmp(Name, "Remote.UsePipe")) remote_usepipe= atoi(Value);
- else if (!strcasecmp(Name, "Remote.UseHttp")) remote_http_files = atoi(Value);
- else if (!strcasecmp(Name, "Remote.UseBroadcast")) remote_usebcast = atoi(Value);
-
- else if (!strcasecmp(Name, "Remote.Rtp.Address")) STRN0CPY(remote_rtp_addr, Value);
- else if (!strcasecmp(Name, "Remote.Rtp.Port")) remote_rtp_port = (atoi(Value)) & (0xfffe);
- else if (!strcasecmp(Name, "Remote.Rtp.TTL")) remote_rtp_ttl = atoi(Value);
- else if (!strcasecmp(Name, "Remote.Rtp.AlwaysOn")) remote_rtp_always_on = atoi(Value);
- else if (!strcasecmp(Name, "Remote.Rtp.SapAnnouncements")) remote_rtp_sap = atoi(Value);
-
- else if (!strcasecmp(Name, "Remote.AllowRtsp")) remote_use_rtsp = atoi(Value);
- else if (!strcasecmp(Name, "Remote.AllowRtspCtrl")) remote_use_rtsp_ctrl = atoi(Value);
- else if (!strcasecmp(Name, "Remote.AllowHttp")) remote_use_http = atoi(Value);
- else if (!strcasecmp(Name, "Remote.AllowHttpCtrl")) remote_use_http_ctrl = atoi(Value);
-
- else if (!strcasecmp(Name, "Remote.Iface")) STRN0CPY(remote_local_if, Value);
- else if (!strcasecmp(Name, "Remote.LocalIP")) STRN0CPY(remote_local_ip, Value);
-
- else if (!strcasecmp(Name, "Decoder.PesBuffers")) pes_buffers=atoi(Value);
-
- else if (!strcasecmp(Name, "Video.Driver")) STRN0CPY(video_driver, Value);
- else if (!strcasecmp(Name, "Video.Port")) STRN0CPY(video_port, Value);
- else if (!strcasecmp(Name, "Video.Scale")) scale_video = atoi(Value);
- else if (!strcasecmp(Name, "Video.DeinterlaceOptions")) STRN0CPY(deinterlace_opts, Value);
- else if (!strcasecmp(Name, "Video.Deinterlace")) STRN0CPY(deinterlace_method, Value);
- else if (!strcasecmp(Name, "Video.FieldOrder")) field_order=atoi(Value)?1:0;
-
- else if (!strcasecmp(Name, "Video.AutoCrop")) autocrop = atoi(Value);
- else if (!strcasecmp(Name, "Video.AutoCrop.AutoDetect")) autocrop_autodetect = atoi(Value);
- else if (!strcasecmp(Name, "Video.AutoCrop.SoftStart")) autocrop_soft = atoi(Value);
- else if (!strcasecmp(Name, "Video.AutoCrop.FixedSize")) autocrop_fixedsize = atoi(Value);
- else if (!strcasecmp(Name, "Video.AutoCrop.DetectSubs")) autocrop_subs = atoi(Value);
-
- else if (!strcasecmp(Name, "Video.SwScale")) swscale = atoi(Value);
- else if (!strcasecmp(Name, "Video.SwScale.Aspect")) swscale_change_aspect = atoi(Value);
- else if (!strcasecmp(Name, "Video.SwScale.Resize")) swscale_resize = atoi(Value);
- else if (!strcasecmp(Name, "Video.SwScale.Downscale")) swscale_downscale = atoi(Value);
- else if (!strcasecmp(Name, "Video.SwScale.Width")) swscale_width = atoi(Value);
- else if (!strcasecmp(Name, "Video.SwScale.Height")) swscale_height = atoi(Value);
-
- else if (!strcasecmp(Name, "Video.HUE")) hue = atoi(Value);
- else if (!strcasecmp(Name, "Video.Saturation")) saturation = atoi(Value);
- else if (!strcasecmp(Name, "Video.Contrast")) contrast = atoi(Value);
- else if (!strcasecmp(Name, "Video.Brightness")) brightness = atoi(Value);
- else if (!strcasecmp(Name, "Video.Sharpness")) sharpness = atoi(Value);
- else if (!strcasecmp(Name, "Video.NoiseReduction")) noise_reduction = atoi(Value);
- else if (!strcasecmp(Name, "Video.Overscan")) overscan = atoi(Value);
- else if (!strcasecmp(Name, "Video.IBPTrickSpeed")) ibp_trickspeed = atoi(Value);
- else if (!strcasecmp(Name, "Video.MaxTrickSpeed")) max_trickspeed = atoi(Value);
- else if (!strcasecmp(Name, "Video.AspectRatio")) vo_aspect_ratio = atoi(Value);
-
- else if (!strcasecmp(Name, "Video.Decoder.MPEG2")) decoder_mpeg2 = strstra(Value, s_decoders_MPEG2, 0);
- else if (!strcasecmp(Name, "Video.Decoder.H264")) decoder_h264 = strstra(Value, s_decoders_H264, 0);
- else if (!strcasecmp(Name, "Video.Decoder.H264.SpeedOverAccuracy")) ff_h264_speed_over_accurancy = strstra(Value, s_ff_speed_over_accuracy, 0);
- else if (!strcasecmp(Name, "Video.Decoder.H264.SkipLoopFilter")) ff_h264_skip_loop_filter = strstra(Value, s_ff_skip_loop_filters, 0);
-
- else if (!strcasecmp(Name, "Post.pp.Enable")) ffmpeg_pp = atoi(Value);
- else if (!strcasecmp(Name, "Post.pp.Quality")) ffmpeg_pp_quality = atoi(Value);
- else if (!strcasecmp(Name, "Post.pp.Mode")) STRN0CPY(ffmpeg_pp_mode, Value);
-
- else if (!strcasecmp(Name, "Post.unsharp.Enable")) unsharp = atoi(Value);
- else if (!strcasecmp(Name, "Post.unsharp.luma_matrix_width")) unsharp_luma_matrix_width = atoi(Value);
- else if (!strcasecmp(Name, "Post.unsharp.luma_matrix_height")) unsharp_luma_matrix_height = atoi(Value);
- else if (!strcasecmp(Name, "Post.unsharp.luma_amount")) unsharp_luma_amount = atoi(Value);
- else if (!strcasecmp(Name, "Post.unsharp.chroma_matrix_width")) unsharp_chroma_matrix_width = atoi(Value);
- else if (!strcasecmp(Name, "Post.unsharp.chroma_matrix_height")) unsharp_chroma_matrix_height = atoi(Value);
- else if (!strcasecmp(Name, "Post.unsharp.chroma_amount")) unsharp_chroma_amount = atoi(Value);
-
- else if (!strcasecmp(Name, "Post.denoise3d.Enable")) denoise3d = atoi(Value);
- else if (!strcasecmp(Name, "Post.denoise3d.luma")) denoise3d_luma = atoi(Value);
- else if (!strcasecmp(Name, "Post.denoise3d.chroma")) denoise3d_chroma = atoi(Value);
- else if (!strcasecmp(Name, "Post.denoise3d.time")) denoise3d_time = atoi(Value);
-
- else if (!strcasecmp(Name, "Media.BrowseFilesDir")) STRN0CPY(browse_files_dir, Value);
- else if (!strcasecmp(Name, "Media.BrowseMusicDir")) STRN0CPY(browse_music_dir, Value);
- else if (!strcasecmp(Name, "Media.BrowseImagesDir")) STRN0CPY(browse_images_dir, Value);
- else if (!strcasecmp(Name, "Media.CacheImplicitPlaylists")) cache_implicit_playlists = atoi(Value);
- else if (!strcasecmp(Name, "Media.EnableID3Scanner")) enable_id3_scanner = atoi(Value);
- else if (!strcasecmp(Name, "Media.DVD.ArrowKeysControlPlayback")) dvd_arrow_keys_control_playback = atoi(Value);
-
- else if (!strcasecmp(Name, "Playlist.Tracknumber")) playlist_tracknumber = atoi(Value);
- else if (!strcasecmp(Name, "Playlist.Artist")) playlist_artist = atoi(Value);
- else if (!strcasecmp(Name, "Playlist.Album")) playlist_album = atoi(Value);
-
- else if (!strcasecmp(Name, "Advanced.LiveModeSync")) live_mode_sync = atoi(Value);
- else if (!strcasecmp(Name, "Advanced.AdjustSCR")) scr_tuning = atoi(Value);
- else if (!strcasecmp(Name, "Advanced.SCRSpeed")) scr_hz = atoi(Value);
-
- else if (!strcasecmp(Name, "Audio.Equalizer"))
- sscanf(Value,"%d %d %d %d %d %d %d %d %d %d",
- audio_equalizer ,audio_equalizer+1,
- audio_equalizer+2,audio_equalizer+3,
- audio_equalizer+4,audio_equalizer+5,
- audio_equalizer+6,audio_equalizer+7,
- audio_equalizer+8,audio_equalizer+9);
-
- else return false;
-
- return true;
-}
-
-/* Global instance */
-config_t xc;
-
-