ae41cad4f5
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.
25 lines
1.1 KiB
C++
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
|