Files
reasampler/src/track_guid.h
T
daniel ae41cad4f5 feat(view): D4 Design View action family + reapply-on-open wiring
Register toggle/activate/tag/untag/show-both actions driving the D2
shell and D3 model; reapply saved active mode on project load via a
persist load-signal seam. Shared guidString helper; pure nextModeId
unit-tested.
2026-07-22 21:46:58 -04:00

25 lines
1.1 KiB
C++

#pragma once
// track_guid — the ONE place a MediaTrack* is formatted into the canonical GUID
// string used as a membership-index key. Both the Design View shell (view.cpp) and
// the actions layer (actions.cpp) key membership on this exact string, so the key
// contract lives in a single helper rather than being re-derived (and drifting) at
// two call sites (the cross-module key contract flagged in D2 review).
//
// REAPER-facing: the .cpp includes reaper_plugin_functions.h WITHOUT
// REAPERAPI_IMPLEMENT (main.cpp owns the API pointers; here they are extern —
// CLAUDE.md §contract). MediaTrack is forward-declared so this header stays SDK-lite.
#include <string>
class MediaTrack;
namespace reasampler {
// REAPER's canonical "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" form of a track's
// GUID (GetTrackGUID -> guidToString). Empty string if `tr` has no GUID. This IS
// the membership-index key format — it must match guidToString's braces exactly so
// the view tree keys and the model/actions keys align.
std::string guidString(MediaTrack* tr);
} // namespace reasampler