Files
AmiReel/Models/ShortWizard.cs
T
klevze 8a734d58d9 Add Shorts wizard and v4 video-style pipeline
Turn the Shorts tab into a step-by-step wizard and port
amigadb-short-fx-v4.sh: Video background style, auto/manual crop,
source fade-in, and blur/opacity/margin settings.
2026-08-15 17:59:18 +02:00

64 lines
2.7 KiB
C#

namespace AmiReel.Models;
/// <summary>One page of the Shorts create-wizard. Extra effect pages are inserted only when the style needs them.</summary>
public enum ShortWizardStep
{
Clip,
Effect,
StyleOptions,
Titles,
Encode,
}
/// <summary>Builds the Shorts wizard page list for a chosen visual style.</summary>
public static class ShortWizard
{
public static IReadOnlyList<ShortWizardStep> StepsFor(ShortStyle style)
{
List<ShortWizardStep> steps = [ShortWizardStep.Clip, ShortWizardStep.Effect];
if (NeedsStyleOptions(style))
steps.Add(ShortWizardStep.StyleOptions);
steps.Add(ShortWizardStep.Titles);
steps.Add(ShortWizardStep.Encode);
return steps;
}
public static bool NeedsStyleOptions(ShortStyle style) =>
style is ShortStyle.Brand or ShortStyle.Video;
public static string Title(ShortWizardStep step) => step switch
{
ShortWizardStep.Clip => "Source clip",
ShortWizardStep.Effect => "Visual effect",
ShortWizardStep.StyleOptions => "Effect settings",
ShortWizardStep.Titles => "Title card",
ShortWizardStep.Encode => "Encoding",
_ => "Short",
};
public static string Description(ShortStyle style) => style switch
{
ShortStyle.Brand => "Title-card background image with a framed source clip.",
ShortStyle.Pixel => "Pixelated backdrop with neon scan bars.",
ShortStyle.Mirror => "Reflected source strips above and below the clip.",
ShortStyle.Crop => "Full-frame vertical crop of the source.",
ShortStyle.Workbench => "Workbench-style window around the source.",
ShortStyle.Blur => "Blurred backdrop with a centered source.",
ShortStyle.Crt => "CRT curvature, scanlines, and a rolling highlight.",
ShortStyle.Copper => "Amiga copper bars behind the source.",
ShortStyle.Stars => "Twinkling star field behind a framed clip.",
ShortStyle.Grid => "Neon grid horizon behind the source.",
ShortStyle.Tiles => "Four-tile mirrored backdrop.",
ShortStyle.Scan => "Chunky scanlines and moving bars.",
ShortStyle.Starfield => "Fast-moving star streaks.",
ShortStyle.Plasma => "Demoscene plasma backdrop.",
ShortStyle.Rasterbars => "Classic raster bars above and below the clip.",
ShortStyle.Vhs => "Tape noise, chroma shift, and scanlines.",
ShortStyle.Monitor => "CRT monitor bezel around the source.",
ShortStyle.Split => "Split-band source strips around the main clip.",
ShortStyle.Spectrum => "Scrolling audio spectrum. The source video must have audio.",
ShortStyle.Video => "Looping background video with the Amiga clip overlaid.",
_ => "",
};
}