Ticket #3797: 3797-v1.patch
File 3797-v1.patch, 6.4 KB (added by , 17 years ago) |
---|
-
libs/libmythtv/videoouttypes.h
47 47 kAdjustFill_END 48 48 } AdjustFillMode; 49 49 50 typedef enum LetterBoxColour 51 { 52 kLetterBoxColour_Toggle = -1, 53 kLetterBoxColour_Black = 0, 54 kLetterBoxColour_Gray25, 55 kLetterBoxColour_END 56 } LetterBoxColour; 57 50 58 typedef enum FrameScanType 51 59 { 52 60 kScan_Ignore = -1, … … 136 144 return QDeepCopy<QString>(ret); 137 145 } 138 146 147 inline QString toString(LetterBoxColour letterboxcolour) 148 { 149 QString ret = QObject::tr("Black"); 150 switch (letterboxcolour) 151 { 152 case kLetterBoxColour_Gray25: ret = QObject::tr("Gray"); break; 153 case kLetterBoxColour_Black: 154 case kLetterBoxColour_Toggle: 155 case kLetterBoxColour_END: break; 156 } 157 return QDeepCopy<QString>(ret); 158 } 159 160 inline QString toXString(LetterBoxColour letterboxcolour) 161 { 162 QString ret = "gray0"; 163 switch (letterboxcolour) 164 { 165 case kLetterBoxColour_Gray25: ret = "gray25"; break; 166 case kLetterBoxColour_Black: 167 case kLetterBoxColour_Toggle: 168 case kLetterBoxColour_END: break; 169 } 170 return QDeepCopy<QString>(ret); 171 } 172 139 173 inline float get_aspect_override(AspectOverrideMode aspectmode, float orig) 140 174 { 141 175 float ret = orig; -
libs/libmythtv/videooutbase.cpp
242 242 db_scale_horiz(0.0f), db_scale_vert(0.0f), 243 243 db_pip_location(kPIPTopLeft), db_pip_size(26), 244 244 db_aspectoverride(kAspect_Off), db_adjustfill(kAdjustFill_Off), 245 db_letterbox_colour(kLetterBoxColour_Black), 245 246 db_deint_filtername(QString::null), 246 247 db_vdisp_profile(new VideoDisplayProfile()), 247 248 … … 309 310 gContext->GetNumSetting("AspectOverride", 0); 310 311 db_adjustfill = (AdjustFillMode) 311 312 gContext->GetNumSetting("AdjustFill", 0); 313 db_letterbox_colour = (LetterBoxColour) 314 gContext->GetNumSetting("LetterboxColour", 0); 312 315 } 313 316 314 317 /** -
libs/libmythtv/videoout_xv.h
214 214 int XJ_screen_num; 215 215 unsigned long XJ_white; 216 216 unsigned long XJ_black; 217 unsigned long XJ_letterbox_colour; 217 218 int XJ_depth; 218 219 int XJ_screenx; 219 220 int XJ_screeny; -
libs/libmythtv/videoout_xv.cpp
105 105 use_i420_hack_for_broken_driver(false), 106 106 107 107 XJ_root(0), XJ_win(0), XJ_curwin(0), XJ_gc(0), XJ_screen(NULL), 108 XJ_disp(NULL), XJ_screen_num(0), XJ_white(0), XJ_black(0), XJ_depth(0), 108 XJ_disp(NULL), XJ_screen_num(0), 109 XJ_white(0), XJ_black(0), XJ_letterbox_colour(0), XJ_depth(0), 109 110 XJ_screenx(0), XJ_screeny(0), XJ_screenwidth(0), XJ_screenheight(0), 110 111 XJ_started(false), 111 112 … … 1530 1531 XJ_root = DefaultRootWindow(XJ_disp); 1531 1532 XJ_gc = XCreateGC(XJ_disp, XJ_win, 0, 0); 1532 1533 XJ_depth = DefaultDepthOfScreen(XJ_screen); 1534 1535 // The letterbox color.. 1536 XJ_letterbox_colour = XJ_black; 1537 Colormap cmap = XDefaultColormap(XJ_disp, XJ_screen_num); 1538 XColor colour, colour_exact; 1539 QString name = toXString(db_letterbox_colour); 1540 if (XAllocNamedColor(XJ_disp, cmap, name.ascii(), &colour, &colour_exact)) 1541 XJ_letterbox_colour = colour.pixel; 1542 1533 1543 X11U; 1534 1544 1545 1535 1546 // Basic setup 1536 1547 VideoOutput::Init(width, height, aspect, 1537 1548 winid, winx, winy, winw, winh, … … 3127 3138 needrepaint = false; 3128 3139 xv_need_bobdeint_repaint = false; 3129 3140 3130 // Draw black inmasked areas3131 XSetForeground(XJ_disp, XJ_gc, XJ_ black);3141 // Set colour for masked areas 3142 XSetForeground(XJ_disp, XJ_gc, XJ_letterbox_colour); 3132 3143 3133 3144 if (display_video_rect.left() > display_visible_rect.left()) 3134 3145 { // left -
libs/libmythtv/videooutbase.h
248 248 PictureSettingMap db_pict_attr; ///< Picture settings 249 249 AspectOverrideMode db_aspectoverride; 250 250 AdjustFillMode db_adjustfill; 251 LetterBoxColour db_letterbox_colour; 251 252 QString db_deint_filtername; 252 253 253 254 VideoDisplayProfile *db_vdisp_profile; -
programs/mythfrontend/globalsettings.cpp
2099 2099 return gc; 2100 2100 } 2101 2101 2102 static HostComboBox *LetterboxingColour() 2103 { 2104 HostComboBox *gc = new HostComboBox("LetterboxColour"); 2105 gc->setLabel(QObject::tr("Letterboxing Color")); 2106 for (int m = kLetterBoxColour_Black; m < kLetterBoxColour_END; m++) 2107 gc->addSelection(toString((LetterBoxColour)m), QString::number(m)); 2108 gc->setHelpText( 2109 QObject::tr( 2110 "By default MythTV uses black letterboxing to match broadcaster " 2111 "letterboxing, but those with plasma screens may prefer gray " 2112 "to minimize burn-in.")); 2113 return gc; 2114 } 2115 2102 2116 static HostComboBox *AspectOverride() 2103 2117 { 2104 2118 HostComboBox *gc = new HostComboBox("AspectOverride"); … … 4379 4393 oscan->addChild(ocol1); 4380 4394 oscan->addChild(ocol2); 4381 4395 4396 HorizontalConfigurationGroup* aspect_fill = 4397 new HorizontalConfigurationGroup(false, false, true, true); 4398 aspect_fill->addChild(AspectOverride()); 4399 aspect_fill->addChild(AdjustFill()); 4400 4382 4401 general2->addChild(oscan); 4383 general2->addChild( AspectOverride());4384 general2->addChild( AdjustFill());4402 general2->addChild(aspect_fill); 4403 general2->addChild(LetterboxingColour()); 4385 4404 general2->addChild(PIPLocationComboBox()); 4386 4405 general2->addChild(PlaybackExitPrompt()); 4387 4406 general2->addChild(EndOfRecordingExitPrompt());