From 1d1ddcb5931150c9cce405f1e39157195749bc00 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Thu, 1 May 2008 11:14:29 +0300 Subject: [PATCH] Move aspect.c options to option struct --- cfg-mplayer.h | 11 +++-------- defaultopts.c | 2 ++ libvo/aspect.c | 22 ++++++++++------------ options.h | 3 +++ 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/cfg-mplayer.h b/cfg-mplayer.h index 7bf15cd145..411416dfa7 100644 --- a/cfg-mplayer.h +++ b/cfg-mplayer.h @@ -16,7 +16,6 @@ extern char *dfb_params; extern char *lirc_configfile; -extern float vo_panscanrange; /* only used at startup (setting these values from configfile) */ extern char *vo_geometry; @@ -44,10 +43,6 @@ extern char * skinName; extern int guiWinID; -/* from libvo/aspect.c */ -extern float force_monitor_aspect; -extern float monitor_pixel_aspect; - extern int sws_flags; extern int readPPOpt(void *conf, char *arg); extern void revertPPOpt(void *conf, char* opt); @@ -165,8 +160,8 @@ const m_option_t mplayer_opts[]={ // Geometry string {"geometry", &vo_geometry, CONF_TYPE_STRING, 0, 0, 0, NULL}, // set aspect ratio of monitor - useful for 16:9 TV-out - {"monitoraspect", &force_monitor_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 9.0, NULL}, - {"monitorpixelaspect", &monitor_pixel_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.2, 9.0, NULL}, + OPT_FLOATRANGE("monitoraspect", force_monitor_aspect, 0, 0.0, 9.0), + OPT_FLOATRANGE("monitorpixelaspect", monitor_pixel_aspect, 0, 0.2, 9.0), // video mode switching: (x11,xv,dga) OPT_FLAG_ON("vm", vidmode, 0), OPT_FLAG_OFF("novm", vidmode, 0), @@ -186,7 +181,7 @@ const m_option_t mplayer_opts[]={ {"vsync", &vo_vsync, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"novsync", &vo_vsync, CONF_TYPE_FLAG, 0, 1, 0, NULL}, {"panscan", &vo_panscan, CONF_TYPE_FLOAT, CONF_RANGE, -1.0, 1.0, NULL}, - {"panscanrange", &vo_panscanrange, CONF_TYPE_FLOAT, CONF_RANGE, -19.0, 99.0, NULL}, + OPT_FLOATRANGE("panscanrange", vo_panscanrange, 0, -19.0, 99.0), {"grabpointer", &vo_grabpointer, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"nograbpointer", &vo_grabpointer, CONF_TYPE_FLAG, 0, 1, 0, NULL}, diff --git a/defaultopts.c b/defaultopts.c index 6f0938a24b..c1822b6a14 100644 --- a/defaultopts.c +++ b/defaultopts.c @@ -8,6 +8,8 @@ void set_default_mplayer_options(struct MPOpts *opts) .audio_driver_list = NULL, .video_driver_list = NULL, .fixed_vo = 0, + .monitor_pixel_aspect = 1.0, + .vo_panscanrange = 1.0, .vo_gamma_gamma = 1000, .vo_gamma_brightness = 1000, .vo_gamma_contrast = 1000, diff --git a/libvo/aspect.c b/libvo/aspect.c index 8079a21e03..5a2091baba 100644 --- a/libvo/aspect.c +++ b/libvo/aspect.c @@ -5,6 +5,7 @@ //#ifndef ASPECT_TEST #include "mp_msg.h" #include "help_mp.h" +#include "options.h" //#endif //#define ASPECT_DEBUG @@ -13,13 +14,8 @@ #include #endif -float vo_panscanrange = 1.0; - #include "video_out.h" -float force_monitor_aspect=0; -float monitor_pixel_aspect=1; - void aspect_save_orig(struct vo *vo, int orgw, int orgh) { #ifdef ASPECT_DEBUG @@ -43,12 +39,13 @@ void aspect_save_screenres(struct vo *vo, int scrw, int scrh) #ifdef ASPECT_DEBUG printf("aspect_save_screenres %dx%d \n",scrw,scrh); #endif + struct MPOpts *opts = vo->opts; vo->aspdat.scrw = scrw; vo->aspdat.scrh = scrh; - if (force_monitor_aspect) - vo->monitor_aspect = force_monitor_aspect; - else - vo->monitor_aspect = monitor_pixel_aspect * scrw / scrh; + if (opts->force_monitor_aspect) + vo->monitor_aspect = opts->force_monitor_aspect; + else + vo->monitor_aspect = opts->monitor_pixel_aspect * scrw / scrh; } /* aspect is called with the source resolution and the @@ -116,15 +113,16 @@ void panscan_calc(struct vo *vo) { int fwidth,fheight; int vo_panscan_area; + struct MPOpts *opts = vo->opts; - if (vo_panscanrange > 0) { + if (opts->vo_panscanrange > 0) { aspect(vo, &fwidth, &fheight, A_ZOOM); vo_panscan_area = (vo->aspdat.scrh - fheight); if (!vo_panscan_area) vo_panscan_area = vo->aspdat.scrw - fwidth; - vo_panscan_area *= vo_panscanrange; + vo_panscan_area *= opts->vo_panscanrange; } else - vo_panscan_area = -vo_panscanrange * vo->aspdat.scrh; + vo_panscan_area = -opts->vo_panscanrange * vo->aspdat.scrh; vo->panscan_amount = vo_fs ? vo_panscan : 0; vo->panscan_x = vo_panscan_area * vo->panscan_amount * vo->aspdat.asp; diff --git a/options.h b/options.h index cfb6473f3e..e03e719c8a 100644 --- a/options.h +++ b/options.h @@ -10,9 +10,12 @@ typedef struct MPOpts { int screen_size_y; int vo_screenwidth; int vo_screenheight; + float force_monitor_aspect; + float monitor_pixel_aspect; int vidmode; int fullscreen; int vo_dbpp; + float vo_panscanrange; // ranges -100 - 100, 1000 if the vo default should be used int vo_gamma_gamma; -- 2.11.4.GIT