Ticket #1864: xvattr.diff
File xvattr.diff, 4.9 KB (added by , 18 years ago) |
---|
-
videooutbase.cpp
184 184 // Various state variables 185 185 embedding(false), needrepaint(false), 186 186 allowpreviewepg(true), errored(false), 187 framesPlayed(0) 187 framesPlayed(0), 188 readsettings(false) 188 189 { 189 190 db_display_dim = QSize(gContext->GetNumSetting("DisplaySizeWidth", 0), 190 191 gContext->GetNumSetting("DisplaySizeHeight", 0)); … … 198 199 db_pip_location = gContext->GetNumSetting("PIPLocation", 0); 199 200 db_pip_size = gContext->GetNumSetting("PIPSize", 26); 200 201 202 db_letterbox = gContext->GetNumSetting("AspectOverride", 0); 203 db_deint_filtername= gContext->GetSetting("DeinterlaceFilter", 204 "linearblend"); 205 } 206 207 void VideoOutput::ReadPictureSettings() 208 { 201 209 db_pict_attr[kPictureAttribute_Brightness] = 202 210 gContext->GetNumSetting("PlaybackBrightness", 50); 203 211 db_pict_attr[kPictureAttribute_Contrast] = … … 207 215 db_pict_attr[kPictureAttribute_Hue] = 208 216 gContext->GetNumSetting("PlaybackHue", 0); 209 217 210 db_letterbox = gContext->GetNumSetting("AspectOverride", 0); 211 db_deint_filtername= gContext->GetSetting("DeinterlaceFilter", 212 "linearblend"); 218 readsettings=true; 213 219 } 214 220 215 221 /** … … 960 966 if (curVal < 0) 961 967 return -1; 962 968 963 int newVal = curVal + (direction) ? +1 : -1;969 int newVal = curVal; 964 970 971 if (direction) 972 newVal++; 973 else 974 newVal--; 975 965 976 if (kPictureAttribute_Hue == attributeType) 966 977 newVal = newVal % 100; 967 978 … … 994 1005 995 1006 void VideoOutput::InitPictureAttributes(void) 996 1007 { 1008 if (!readsettings) 1009 ReadPictureSettings(); 1010 997 1011 QMap<int,int>::const_iterator it = db_pict_attr.begin(); 998 1012 for (; it != db_pict_attr.end(); ++it) 999 1013 SetPictureAttribute(it.key(), *it); -
videoout_xv.h
56 56 bool Init(int width, int height, float aspect, WId winid, 57 57 int winx, int winy, int winw, int winh, WId embedid = 0); 58 58 59 void ReadPictureSettings(); 60 59 61 bool SetDeinterlacingEnabled(bool); 60 62 bool SetupDeinterlace(bool interlaced, const QString& ovrf=""); 61 63 bool ApproveDeintFilter(const QString& filtername) const; -
videoout_xv.cpp
160 160 delete xvmc_tex; 161 161 } 162 162 163 void VideoOutputXv::ReadPictureSettings() 164 { 165 db_pict_attr[kPictureAttribute_Brightness] = 166 gContext->GetNumSetting("PlaybackBrightness", 50); 167 db_pict_attr[kPictureAttribute_Contrast] = 168 gContext->GetNumSetting("PlaybackContrast", 50); 169 db_pict_attr[kPictureAttribute_Colour] = 170 gContext->GetNumSetting("PlaybackColour", 50); 171 db_pict_attr[kPictureAttribute_Hue] = 172 gContext->GetNumSetting("PlaybackHue", xv_hue_base ); 173 174 readsettings=true; 175 } 176 163 177 // this is documented in videooutbase.cpp 164 178 void VideoOutputXv::Zoom(int direction) 165 179 { … … 3016 3030 int VideoOutputXv::SetPictureAttribute(int attribute, int newValue) 3017 3031 { 3018 3032 QString attrName = QString::null; 3019 int valAdj = 0;3020 3033 3021 3034 if (kPictureAttribute_Brightness == attribute) 3022 3035 attrName = "XV_BRIGHTNESS"; … … 3025 3038 else if (kPictureAttribute_Colour == attribute) 3026 3039 attrName = "XV_SATURATION"; 3027 3040 else if (kPictureAttribute_Hue == attribute) 3028 {3029 3041 attrName = "XV_HUE"; 3030 valAdj = xv_hue_base;3031 }3032 3042 3033 3043 if (attrName.isEmpty()) 3034 3044 return -1; … … 3056 3066 int port_max = attributes[i].max_value; 3057 3067 int range = port_max - port_min; 3058 3068 3059 int tmpval2 = (newValue + valAdj)% 100;3069 int tmpval2 = newValue % 100; 3060 3070 int tmpval3 = (int) roundf(range * 0.01f * tmpval2); 3061 3071 int value = min(tmpval3 + port_min, port_max); 3072 3062 3073 value_set = true; 3063 3074 3064 3075 X11L; -
videooutbase.h
164 164 WId winid, int winx, int winy, int winw, 165 165 int winh, WId embedid = 0); 166 166 167 virtual void ReadPictureSettings(); 168 167 169 virtual bool SetDeinterlacingEnabled(bool); 168 170 virtual bool SetupDeinterlace(bool i, const QString& ovrf=""); 169 171 virtual bool NeedsDoubleFramerate(void) const; … … 401 403 bool allowpreviewepg; 402 404 bool errored; 403 405 long long framesPlayed; 406 bool readsettings; 404 407 }; 405 408 406 409 #endif