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.
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
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.",
|
||||
_ => "",
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user