diff --git a/src/geometry.c b/src/geometry.c index 37ca1cd3..174b0405 100644 --- a/src/geometry.c +++ b/src/geometry.c @@ -247,7 +247,7 @@ int get_capture() { return capture; } -void geometry_get_fb_params(capture_info_t *capinfo) { +void geometry_get_fb_params(capture_info_t *capinfo) { capinfo->sizex2 = geometry->fb_sizex2; int double_width = (capinfo->sizex2 & 2) >> 1; int double_height = capinfo->sizex2 & 1; @@ -304,11 +304,17 @@ void geometry_get_fb_params(capture_info_t *capinfo) { geometry_v_offset = geometry_v_offset - ((new_geometry_v_height - geometry_v_height) >> 1); geometry_h_width = new_geometry_h_width; geometry_v_height = new_geometry_v_height; - } - - if ((capture == CAPTURE_AUTO && scaling == SCALING_MANUAL43) - ||(capture == CAPTURE_AUTO && scaling == SCALING_MANUAL) - || capture == CAPTURE_MAX) { + } + + if (capture == CAPTURE_AUTO && (scaling == SCALING_MANUAL43 || scaling == SCALING_MANUAL)) { + geometry_fb_width = (((geometry_fb_width - geometry_h_width) >> 1) + geometry_h_width) & 0xfffffff8; + geometry_fb_height = (((geometry_fb_height - geometry_v_height) >> 1) + geometry_v_height) & 0xfffffffe; + geometry_h_offset = geometry_h_offset - (((geometry_fb_width - geometry_h_width) >> 3) << 2); + geometry_v_offset = geometry_v_offset - ((geometry_fb_height - geometry_v_height) >> 1); + geometry_h_width = geometry_fb_width; + geometry_v_height = geometry_fb_height; + } + if (capture == CAPTURE_MAX) { geometry_h_offset = geometry_h_offset - (((geometry_fb_width - geometry_h_width) >> 3) << 2); geometry_v_offset = geometry_v_offset - ((geometry_fb_height - geometry_v_height) >> 1); geometry_h_width = geometry_fb_width; diff --git a/src/osd.c b/src/osd.c index ee733ea7..3895af8b 100644 --- a/src/osd.c +++ b/src/osd.c @@ -204,7 +204,7 @@ enum { F_SCANLINES, F_SCANLINESINT, F_SCALING, - F_CAPTURE, + F_CAPTURE, F_FONTSIZE, F_BORDER, F_VSYNCTYPE, @@ -234,7 +234,7 @@ static param_t features[] = { { F_SCANLINES, "Scanlines", "scanlines", 0, 1, 1 }, { F_SCANLINESINT, "Scanline Level", "scanline_level", 0, 15, 1 }, { F_SCALING, "Scaling", "scaling", 0, NUM_SCALING - 1, 1 }, - { F_CAPTURE, "Capture Area", "capture_area", 0, NUM_CAPTURE - 1, 1 }, + { F_CAPTURE, "Capture Size", "capture_size", 0, NUM_CAPTURE - 1, 1 }, { F_FONTSIZE, "Font Size", "font_size", 0, NUM_FONTSIZE - 1, 1 }, { F_BORDER, "Border Colour", "border_colour", 0, 255, 1 }, { F_VSYNCTYPE, "V Sync Type", "vsync_type", 0, NUM_VSYNCTYPES - 1, 1 }, @@ -376,7 +376,7 @@ static menu_t preferences_menu = { (base_menu_item_t *) &scanlines_ref, (base_menu_item_t *) &scanlinesint_ref, (base_menu_item_t *) &deinterlace_ref, - (base_menu_item_t *) &capture_ref, + (base_menu_item_t *) &capture_ref, (base_menu_item_t *) &scaling_ref, NULL } @@ -657,7 +657,7 @@ static int get_feature(int num) { case F_SCALING: return get_scaling(); case F_CAPTURE: - return get_capture(); + return get_capture(); case F_BORDER: return get_border(); case F_FONTSIZE: @@ -734,7 +734,7 @@ static void set_feature(int num, int value) { break; case F_CAPTURE: set_capture(value); - break; + break; case F_BORDER: set_border(value); break; @@ -892,7 +892,7 @@ static const char *get_param_string(param_menu_item_t *param_item) { case F_SCALING: return scaling_names[value]; case F_CAPTURE: - return capture_names[value]; + return capture_names[value]; case F_COLOUR: return colour_names[value]; case F_FONTSIZE: