Clickable previews: exact app deep-links everywhere
Every rendered still links to the app frame that produced it (song + seed + frame + venue/viz pins + probe warm-up, new window), via shared src/ui/preview.js. Supporting work, each measured: app honors ?frame/?venueSel/?viz/?warm= with pre-build pins (Show.applyPins) and primes deep-link loads; shared pinViz/pinVenueShell paths for gallery, filmstrip and app; probes prime and carry their warm-up; bank probes analyse the bank PCM and file decode is fixed-rate with bit-exact WAV parsing so app and probes see identical samples; materials built mid-update compile synchronously (needsCompile). Round trip verified bit-identical gallery-versus-app.
This commit is contained in:
@@ -54,7 +54,9 @@ export const DEFAULT_DURATION = 180;
|
||||
* the whole strip look more alike than it is. Half of what the variety harness
|
||||
* uses, because this is 17 songs deep and the cost is linear.
|
||||
*/
|
||||
const WARMUP = 24;
|
||||
/** Frames of warm-up behind every probe. Carried in preview links (?warm=)
|
||||
* so the app lands on identically converged state. See src/ui/preview.js. */
|
||||
export const WARMUP = 24;
|
||||
|
||||
export const songNames = () => SONGS.map((s) => s.name);
|
||||
|
||||
@@ -80,7 +82,16 @@ export function renderSong(show, name, { duration, every, venueEnabled = null, v
|
||||
// VenueSpec population stays the census one, only the shell is forced.
|
||||
const sel = venueSel || (typeof location !== 'undefined' && new URLSearchParams(location.search).get('venueSel')) || null;
|
||||
if (sel) pinVenueShell(look, sel);
|
||||
// The file name the app shows in its title plate (OSD): without it the
|
||||
// probe renders a blank plate and no deep-link can match the app's
|
||||
// default view. See src/ui/preview.js.
|
||||
show.fileName = name;
|
||||
show.useTrack(track, look);
|
||||
// Prime once per song: programs link asynchronously and a draw against an
|
||||
// unlinked program is wrong output — invisible in a sweep, wrong in an
|
||||
// export, and fatal to preview deep-links, which replay these frames in
|
||||
// the app (primed there too). See src/ui/preview.js.
|
||||
show.prime();
|
||||
|
||||
const frames = [];
|
||||
const descriptors = [];
|
||||
|
||||
Reference in New Issue
Block a user