Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct menu_entry zebra_menus[] = {
- {
- .name = "Global Draw",
- .priv = &global_draw,
- .max = 3,
- .select_Q = toggle_disp_mode_menu,
- .display = global_draw_display,
- .icon_type = IT_BOOL,
- .help = "Enable/disable ML overlay graphics (zebra, cropmarks...)",
- /**
- Choose when to enable Magic Lantern overlay graphics: (zebra, cropmarks, histograms, audio meters, ML shooting info...):
- * in **LiveView** only;
- * in **QuickReview** (photo mode outside LiveView) only;
- * **Both modes** (default);
- * **Disabled**.
- If you use `display presets`_, press Q on this item to switch the presets while you are in ML menu.
- **/
- },
- {
- .name = "Zebras",
- .priv = &zebra_draw,
- .select = menu_binary_toggle,
- .display = zebra_draw_display,
- .help = "Zebra stripes: show overexposed or underexposed areas.",
- /**
- .. figure:: Zebras.jpg
- :align: center
- :height: 5cm
- Enable/disable zebra stripes, which indicate overexposed or underexposed areas.
- Color spaces:
- * **Luma**: zebras are computed from Y channel only.
- * **RGB**: check overexposure for each RGB channel. Clipped channels are displayed in the opposite color (i.e. clipped red shown as cyan, underexposed as white and so on).
- You may adjust thresholds for underexposure and overexposure, or you can disable zebras while recording.
- Notes:
- * using zebras in image review mode will disable Canon highlight warning temporarily. To re-enable it, press PLAY twice.
- * when using the Technicolor CineStyle picture style, luma will have values between 16 and 255; therefore, you will have to set the underexposure threshold to 16 or greater.
- **/
- .children = (struct menu_entry[]) {
- {
- .name = "Color space",
- .priv = &zebra_colorspace,
- .max = 2,
- .choices = (const char *[]) {"Luma", "RGB", "Luma Fast"},
- .icon_type = IT_NAMED_COLOR,
- .help = "Luma: red/blue. RGB: color is reverse of clipped channel.",
- },
- {
- .name = "Underexposure",
- .priv = &zebra_level_lo,
- .min = 0,
- .max = 20,
- .display = zebra_level_display,
- .help = "Underexposure threshold.",
- },
- {
- .name = "Overexposure",
- .priv = &zebra_level_hi,
- .min = 70,
- .max = 101,
- .display = zebra_level_display,
- .help = "Overexposure threshold.",
- },
- {
- .name = "When recording",
- .priv = &zebra_rec,
- .max = 1,
- .choices = (const char *[]) {"Hide", "Show"},
- .help = "You can hide zebras when recording.",
- .icon_type = IT_DISABLE_SOME_FEATURE_NEG,
- },
- MENU_EOL
- },
- },
- {
- /** focus peaking **/
- .name = "Focus Peak",
- .priv = &focus_peaking,
- .display = focus_peaking_display,
- .select = menu_binary_toggle,
- .help = "Show which parts of the image are in focus.",
- /**
- {{ vimeo>18782586?250x140|Focus Peaking demo}}
- Focus assist function. High-contrast lines will be marked by blinking dots showing which part of the image is in focus.
- Parameters:
- * **Filter bias**: adjust the balance between high-contrast edges or fine texture details.
- * **Display type**: choose the method for displaying focus markers. Blinking dots are the fastest, alpha blending looks best but it's a bit slow. This setting is only used in LiveView.
- * **Threshold**: how many pixels are considered in focus (percentage).
- * **Color**: either fixed color, or a color coding according to focus intensity (warmer colors = better focus).
- * **Grayscale img**: if enabled, LiveView image will displayed as grayscale (but still recorded as color).
- #To see how it works, `check this article from Luminous Landscape <http://www.luminous-landscape.com/forum/index.php?topic=56246.0>`_.
- **/
- .submenu_width = 650,
- .children = (struct menu_entry[]) {
- {
- .name = "Filter bias",
- .priv = &focus_peaking_filter_edges,
- .max = 2,
- .choices = (const char *[]) {"Strong edges", "Balanced", "Fine details"},
- .help = "Balance fine texture details vs strong high-contrast edges.",
- .icon_type = IT_DICE
- },
- #ifdef CONFIG_DISPLAY_FILTERS
- {
- .name = "Display type",
- .priv = &focus_peaking_disp,
- .max = 4,
- .choices = (const char *[]) {"Blinking dots", "Fine dots", "Alpha blend", "Sharpness", "Raw"},
- .help = "How to display peaking. Alpha looks nicer, but image lags.",
- },
- #endif
- {
- .name = "Threshold",
- .priv = &focus_peaking_pthr,
- .select = focus_peaking_adjust_thr,
- .help = "How many pixels are considered in focus (percentage).",
- .unit = UNIT_PERCENT_x10
- },
- {
- .name = "Color",
- .priv = &focus_peaking_color,
- .max = 7,
- .choices = (const char *[]) {"Red", "Green", "Blue", "Cyan", "Magenta", "Yellow", "Global Focus", "Local Focus"},
- .help = "Focus peaking color (fixed or color coding).",
- .icon_type = IT_NAMED_COLOR,
- },
- {
- .name = "Grayscale img.",
- .priv = &focus_peaking_grayscale,
- .max = 1,
- .help = "Display LiveView image in grayscale.",
- },
- MENU_EOL
- },
- },
- {
- /** zoom while recording **/
- .name = "Magic Zoom",
- .priv = &zoom_overlay_enabled,
- .display = zoom_overlay_display,
- .min = 0,
- .max = 1,
- .help = "Zoom box for checking focus. Can be used while recording.",
- /**
- {{ vimeo>29053985?250x140|Magic Zoom demo}}
- Displays a zoom box for focus assist. Can be used while recording.
- Trigger modes (not all modes are available on all cameras):
- * **HalfShutter**: triggered when you press the shutter button halfway.
- * **Focus Ring**: triggered by turning the focus ring.
- * **Zoom.REC**: triggered by pressing ``Zoom In`` button while recording. If your camera has a LCD sensor, you may also cover it and press ``Zoom In``.
- * **FocusR+HalfS**: triggered by turning the focus ring, or by pressing shutter halfway.
- * **Focus+ZREC**: triggered by turning the focus ring, or by pressing ``Zoom In`` while recording.
- * **Zoom In (+)**: triggered by ``Zoom In`` button (overrides Canon's default zoom modes). To bypass magic zoom, press both zoom buttons at the same time or cover the LCD sensor.
- * **Always On**: no trigger key needed. You can use both Canon's 5x/10x zoom and Magic Zoom.
- When ML believes you have achieved perfect focus, Magic Zoom will display a focus confirmation (customizable):
- * **Green Bars**
- * **Split Screen**: when the image is out of focus, the zoom box looks like a split focusing screen from old film cameras.
- * **Split Screen with ZeroCross**: will reverse the split direction whenever you achieve perfect focus.
- Other parameters: size, position, magnification.
- Notes:
- * `Zebras`_, `focus peaking`_ and `false color`_ are disabled automatically when the zoom overlay is active.
- * Focus triggering **only** works with lenses that report [[Focus distance]], or when you use `follow focus`_ / `rack focus`_.
- * In some modes, half-pressing the shutter may temporarily hide the zoom overlay.
- Original implementation: `Magic Circles by AJ <http://www.youtube.com/watch?v=-nW25AtYjAk>`_.
- **/
- .submenu_width = 650,
- .children = (struct menu_entry[]) {
- {
- .name = "Trigger mode",
- .priv = &zoom_overlay_trigger_mode,
- .min = 1,
- .max = 4,
- #ifdef CONFIG_ZOOM_BTN_NOT_WORKING_WHILE_RECORDING
- .choices = (const char *[]) {"OFF", "HalfShutter", "Focus Ring", "FocusR+HalfS", "Always On"},
- .help = "Trigger Magic Zoom by focus ring or half-shutter.",
- #else
- .choices = (const char *[]) {"OFF", "Zoom.REC", "Focus+ZREC", "ZoomIn (+)", "Always On"},
- .help = "Zoom when recording / trigger from focus ring / Zoom button",
- #endif
- },
- {
- .name = "Size",
- .priv = &zoom_overlay_size,
- #ifndef CONFIG_CAN_REDIRECT_DISPLAY_BUFFER_EASILY // old cameras - simple zoom box
- .max = 2,
- .help = "Size of zoom box (small / medium / large).",
- #else // new cameras can do fullscreen too :)
- .max = 3,
- .help = "Size of zoom box (small / medium / large / full screen).",
- #endif
- .choices = (const char *[]) {"Small", "Medium", "Large", "FullScreen"},
- .icon_type = IT_SIZE,
- },
- {
- .name = "Position",
- .priv = &zoom_overlay_pos,
- .max = 4,
- .choices = (const char *[]) {"Focus box", "Top-Left", "Top-Right", "Bottom-Right", "Bottom-Left"},
- .icon_type = IT_DICE,
- .help = "Position of zoom box (fixed or linked to focus box).",
- },
- {
- .name = "Magnification",
- .priv = &zoom_overlay_x,
- .max = 2,
- .choices = (const char *[]) {"1:1", "2:1", "3:1", "4:1"},
- .icon_type = IT_SIZE,
- .help = "1:1 displays recorded pixels, 2:1 displays them doubled.",
- },
- #if !defined(CONFIG_50D) && !defined(CONFIG_500D)
- {
- .name = "Focus confirm",
- .priv = &zoom_overlay_split,
- .max = 2,
- .choices = (const char *[]) {"Green Bars", "SplitScreen", "SS ZeroCross"},
- .icon_type = IT_DICE,
- .help = "How to show focus confirmation (green bars / split screen).",
- },
- #endif
- MENU_EOL
- },
- },
- {
- .name = "Cropmarks",
- .priv = &crop_enabled,
- .display = crop_display,
- .select = menu_binary_toggle,
- .help = "Cropmarks or custom grids for framing.",
- /**
- Cropmarks or custom grids for framing and composition.
- .. figure:: Cropmarks550D.png
- :align: center
- :width: 12cm
- Notes:
- * If you use custom cropmarks, place them in ``ML/CROPMKS`` folder on your SD card and give them short 8.3 names. You can place at most 9 cropmarks on the card.
- * Get more cropmarks `from the ML cropmark repository <http://www.sawomedia.de/magiclantern/cropmarks/>`_ or draw your own (see [[Cropmarks]]).
- {{ vimeo>25182804?250x140|Cropmarks Tutorial}}
- **/
- .submenu_width = 650,
- .submenu_height = 270,
- .children = (struct menu_entry[]) {
- {
- .name = "Bitmap",
- .priv = &crop_index,
- .select = crop_toggle,
- .display = crop_display_submenu,
- .icon_type = IT_ALWAYS_ON,
- .help = "You can draw your own cropmarks in Paint.",
- },
- {
- .name = "Show in photo mode",
- .priv = &cropmark_movieonly,
- .max = 1,
- .choices = (const char *[]) {"ON", "OFF"},
- .help = "Cropmarks are mostly used in movie mode.",
- },
- {
- .name = "Show in PLAY mode ",
- .priv = &cropmarks_play,
- .max = 1,
- .help = "You may also have cropmarks in Playback mode.",
- },
- MENU_EOL
- },
- },
- {
- .name = "Ghost image",
- .priv = &transparent_overlay,
- .display = transparent_overlay_display,
- .select = menu_binary_toggle,
- #if defined(CONFIG_7D)
- .help = "Overlay image in LV. In PLAY mode, press RAW/JPEG btn.",
- #else
- .help = "Overlay any image in LiveView. In PLAY mode, press LV btn.",
- #endif
- /**
- Shows a transparent overlay which can be created from any image in Play mode.
- Usage:
- * To select the image, go to Play mode and press the ``LiveView`` button.
- * Move the ghost image in LiveView with arrow keys; center or hide it with ``SET`` or joystick press.
- **/
- },
- {
- .name = "Spotmeter",
- .priv = &spotmeter_draw,
- .select = menu_binary_toggle,
- .display = spotmeter_menu_display,
- .help = "Exposure aid: display brightness from a small spot.",
- /**
- Measure brightness from a small spot in the frame.
- Possible measurement units:
- * **Percent** (0..100%)
- * Raw 8-bit levels (**0..255**)
- * **IRE -1..101** (formula used by AJ, which maps 0-255 luma levels to approx. -1..101 IRE)
- * **IRE 0..108** (formula proposed by Piers, which maps 16-235 luma levels to 7.5-100 IRE)
- * **RGB** (displays `HTML-like color codes <http://www.w3schools.com/html/html_colors.asp>`_)
- **/
- .children = (struct menu_entry[]) {
- {
- .name = "Unit",
- .priv = &spotmeter_formula,
- .max = 4,
- .choices = (const char *[]) {"Percent", "0..255", "IRE -1..101", "IRE 0..108", "RGB (HTML)"},
- .icon_type = IT_DICE,
- .help = "Measurement unit for brightness level(s).",
- },
- {
- .name = "Position",
- .priv = &spotmeter_position,
- .max = 1,
- .choices = (const char *[]) {"Center", "Focus box"},
- .icon_type = IT_DICE,
- .help = "Spotmeter position: center or linked to focus box.",
- },
- MENU_EOL
- }
- },
- #ifndef CONFIG_5D3_MINIMAL
- {
- .name = "False color",
- .priv = &falsecolor_draw,
- .display = falsecolor_display,
- .select = menu_binary_toggle,
- .submenu_height = 160,
- .help = "Exposure aid: each brightness level is color-coded.",
- /**
- This is a tool for evaluating the exposure. It shows different luma (Y) levels using a color map.
- You may select one of the following color maps:
- .. figure:: falsecolor.png
- :align: center
- :width: 13cm
- Tips:
- * you may configure a `display preset`_ with False Color and toggle it with a single button press.
- * you may also use false colors to highlight 50% and 70% brightness levels, or to reveal color banding, or to check for uniform green screen lighting.
- **/
- .children = (struct menu_entry[]) {
- {
- .name = "Palette",
- .priv = &falsecolor_palette,
- .max = COUNT(false_colour)-1,
- .icon_type = IT_DICE,
- .display = falsecolor_display_palette,
- .help = "False color palettes for exposure, banding, green screen...",
- },
- MENU_EOL
- }
- },
- #endif
- {
- .name = "Histogram",
- .priv = &hist_draw,
- .max = 1,
- .display = hist_print,
- .help = "Exposure aid: shows the distribution of brightness levels.",
- /**
- {{ vimeo>33179488?250x140|Using The Video Histogram To Keep Detail in the Highlights}}
- These exposure tools will show the distribution of image brightness levels.
- .. figure:: Histogram-and-waveform.png
- :align: center
- :height: 2cm
- To learn how to read these graphs, see `Understanding Histograms <http://www.luminous-landscape.com/tutorials/understanding-series/understanding-histograms.shtml>`_ and `Final Cut Waveform Monitor <http://www.youtube.com/watch?v=JXMvFk146R0>`_.
- **/
- .children = (struct menu_entry[]) {
- {
- .name = "Color space",
- .priv = &hist_colorspace,
- .max = 1,
- .choices = (const char *[]) {"Luma", "RGB"},
- .icon_type = IT_NAMED_COLOR,
- .help = "Color space for histogram: Luma channel (YUV) / RGB.",
- },
- {
- .name = "Scaling",
- .priv = &hist_log,
- .max = 1,
- .choices = (const char *[]) {"Linear", "Logarithmic"},
- .help = "Linear or logarithmic histogram.",
- .icon_type = IT_DICE,
- },
- {
- .name = "Clip warning",
- .priv = &hist_warn,
- .max = 5,
- .display = hist_warn_display,
- .help = "Display warning dots when one color channel is clipped.",
- },
- MENU_EOL
- },
- },
- {
- .name = "Waveform",
- .priv = &waveform_draw,
- .display = waveform_print,
- .max = 1,
- .help = "Exposure aid: useful for checking overall brightness.",
- /**
- {{ vimeo>33179488?250x140|Using The Video Histogram To Keep Detail in the Highlights}}
- These exposure tools will show the distribution of image brightness levels.
- .. figure:: Histogram-and-waveform.png
- :align: center
- :height: 2cm
- To learn how to read these graphs, see `Understanding Histograms <http://www.luminous-landscape.com/tutorials/understanding-series/understanding-histograms.shtml>`_ and `Final Cut Waveform Monitor <http://www.youtube.com/watch?v=JXMvFk146R0>`_.
- **/
- .children = (struct menu_entry[]) {
- {
- .name = "Size",
- .priv = &waveform_size,
- .max = 2,
- .choices = (const char *[]) {"Small", "Large", "FullScreen"},
- .icon_type = IT_SIZE,
- .help = "Waveform size: Small / Large / FullScreen.",
- },
- MENU_EOL
- },
- },
- {
- .name = "Vectorscope",
- .display = vectorscope_display,
- .priv = &vectorscope_draw,
- .max = 1,
- .help = "Shows color distribution as U-V plot. For grading & WB.",
- /**
- This tool shows the color distribution with an U-V plot. Useful for color grading.
- To learn how to read it, see `Introducing Color Scopes: The Vectorscope <http://www.kdenlive.org/users/granjow/introducing-color-scopes-vectorscope>`_.
- .. figure:: vectorscope.png
- :align: center
- :height: 3cm
- **/
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement