Ψ-W1-T2: disjoint per-mode solo surfaces and a playback-gated mode switch
Solo is cached, cleared and replayed per mode on a real switch only; the switch is refused visibly while the transport runs. The footer segment now routes through the activate actions, so a panel switch finally persists.
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "core/view/solo_cache.h"
|
||||
|
||||
namespace reasampler {
|
||||
|
||||
// Stable seed-mode ids. Arrange is the default home for untagged leaves.
|
||||
@@ -291,6 +293,8 @@ public:
|
||||
const MembershipIndex& membership() const { return membership_; }
|
||||
LaneOwnershipIndex& lanes() { return lanes_; }
|
||||
const LaneOwnershipIndex& lanes() const { return lanes_; }
|
||||
view::SoloCache& soloCache() { return soloCache_; }
|
||||
const view::SoloCache& soloCache() const { return soloCache_; }
|
||||
|
||||
const std::string& activeModeId() const { return activeModeId_; }
|
||||
// Returns false (no change) if the id is not registered.
|
||||
@@ -302,8 +306,9 @@ public:
|
||||
const TrackSnapshot* snapshot(const std::string& guid) const;
|
||||
const std::map<std::string, TrackSnapshot>& snapshots() const { return snapshots_; }
|
||||
|
||||
// Drops every snapshot whose GUID is NOT in `liveGuids`. Returns the count
|
||||
// removed.
|
||||
// Drops every snapshot whose GUID is NOT in `liveGuids`, and prunes the solo
|
||||
// cache the same way (see SoloCache::reconcile). Returns the count of
|
||||
// SNAPSHOTS removed — the solo cache's own count is available from it directly.
|
||||
//
|
||||
// Snapshots are pruned, membership is not: a parked track's snapshot is
|
||||
// dead weight once the track is deleted (can never restore; a reused GUID
|
||||
@@ -355,6 +360,7 @@ private:
|
||||
LaneOwnershipIndex lanes_; // (guid, laneKey) -> ownership
|
||||
std::string activeModeId_; // always a registered id
|
||||
std::map<std::string, TrackSnapshot> snapshots_; // guid -> pre-park snapshot
|
||||
view::SoloCache soloCache_; // modeId -> guid -> raw I_SOLO
|
||||
};
|
||||
|
||||
// Fixed-zero park plan for one leaf, offlining `fxCount` slots.
|
||||
|
||||
Reference in New Issue
Block a user