# HG changeset patch # User nplourde # Date 1099013054 0 # Node ID ac35862cbc166dd0d01d649240aba61b89dc3347 # Parent fb83e23e94ceb37c4241b666268486e33465c206 enable pan-scan + menu option diff -r fb83e23e94ce -r ac35862cbc16 libvo/vo_quartz.c --- a/libvo/vo_quartz.c Thu Oct 28 23:25:18 2004 +0000 +++ b/libvo/vo_quartz.c Fri Oct 29 01:24:14 2004 +0000 @@ -75,6 +75,7 @@ extern int vo_keepaspect; //keep aspect ratio when resizing extern float movie_aspect; static float old_movie_aspect; +extern float vo_panscan; static int winLevel = 1; int levelList[] = @@ -124,7 +125,8 @@ kKeepAspectCmd = 6, kAspectOrgCmd = 7, kAspectFullCmd = 8, - kAspectWideCmd = 9 + kAspectWideCmd = 9, + kPanScanCmd = 10 }; #include "osdep/keycodes.h" @@ -401,6 +403,11 @@ window_resized(); break; + case kPanScanCmd: + vo_panscan = 1; + vo_fs = 1; window_fullscreen(); + break; + default: result = eventNotHandledErr; break; @@ -487,6 +494,7 @@ AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Keep"), 0, kKeepAspectCmd, &index); CheckMenuItem (aspectMenu, 1, vo_keepaspect); + AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Pan-Scan"), 0, kPanScanCmd, &index); AppendMenuItemTextWithCFString(aspectMenu, NULL, kMenuItemAttrSeparator, NULL, &index); AppendMenuItemTextWithCFString(aspectMenu, CFSTR("Original"), 0, kAspectOrgCmd, &index); AppendMenuItemTextWithCFString(aspectMenu, CFSTR("4:3"), 0, kAspectFullCmd, &index); @@ -578,6 +586,7 @@ vo_fs = flags & VOFLAG_FULLSCREEN; //get movie aspect + panscan_init(); aspect_save_orig(width,height); aspect_save_prescale(d_width,d_height); aspect_save_screenres(device_width, device_height); @@ -1099,6 +1108,9 @@ case VOCTRL_FULLSCREEN: vo_fs = (!(vo_fs)); window_fullscreen(); return VO_TRUE; case VOCTRL_ONTOP: vo_ontop = (!(vo_ontop)); window_ontop(); return VO_TRUE; case VOCTRL_QUERY_FORMAT: return query_format(*((uint32_t*)data)); + case VOCTRL_GET_PANSCAN: return VO_TRUE; + case VOCTRL_SET_PANSCAN: window_resized(); return VO_TRUE; + case VOCTRL_GET_IMAGE: switch (image_format) { @@ -1167,6 +1179,13 @@ { SetRect(&dstRect, 0, 0, winRect.right, winRect.bottom-border); } + + if(vo_fs) + { + panscan_calc(); + MoveWindow(theWindow, 0-(vo_panscan_x >> 1), 0-(vo_panscan_y >> 1), 1); + SizeWindow(theWindow, device_width+vo_panscan_x, device_height+vo_panscan_y,1); + } //Clear Background tmpBounds = CGRectMake( 0, border, winRect.right, winRect.bottom);