Q-W1 code-review follow-ups: restore 104 trailing newlines, relocate reasampler_uid.h to core/wire, drop ext_keys namespaces shim, add slot_map_tests, golden serialize literals for 4 modules, namespaces.h/pragma-once ordering sweep. 60/60 green.
This commit is contained in:
@@ -123,4 +123,4 @@ std::size_t lastFrameAboveThreshold(const std::vector<AudioSample>& interleaved,
|
||||
return kNoFrameAboveThreshold;
|
||||
}
|
||||
|
||||
} // namespace reasampler::audio
|
||||
} // namespace reasampler::audio
|
||||
|
||||
@@ -119,4 +119,4 @@ std::size_t lastFrameAboveThreshold(const std::vector<AudioSample>& interleaved,
|
||||
std::size_t frameCount,
|
||||
AudioSample linearThreshold);
|
||||
|
||||
} // namespace reasampler::audio
|
||||
} // namespace reasampler::audio
|
||||
|
||||
@@ -73,4 +73,4 @@ std::string BatchOutcome::summaryLine(const std::string& noun) const {
|
||||
return line;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -97,4 +97,4 @@ private:
|
||||
std::vector<BatchUnitResult> results_;
|
||||
};
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -284,4 +284,4 @@ ProjectTransition classifyProjectTransition(bool sameProjectObject,
|
||||
return ProjectTransition::NoOp;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -212,4 +212,4 @@ ProjectTransition classifyProjectTransition(bool sameProjectObject,
|
||||
const std::string& currentGuid,
|
||||
const std::string& currentPath);
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -46,4 +46,4 @@ int computeInsertMode(const InsertOptions& opts) {
|
||||
return mode;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -72,4 +72,4 @@ int computeInsertMode(const InsertOptions& opts);
|
||||
// any computed mode (the "no silent time-stretch" invariant, made checkable).
|
||||
inline constexpr int kStretchToTimeSelBit = 4;
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -124,4 +124,4 @@ bool isTerminalPhase(RecordPhase phase) {
|
||||
return phase == RecordPhase::Done || phase == RecordPhase::Failed;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -235,4 +235,4 @@ bool isStopRequested(RecordPhase phase);
|
||||
// Only Done and Failed are terminal; Recording and Finalizing are live.
|
||||
bool isTerminalPhase(RecordPhase phase);
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -221,4 +221,4 @@ const std::vector<CaptureActionDef>& captureActionTable() {
|
||||
return table;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -262,4 +262,4 @@ struct CaptureActionDef {
|
||||
// capture applies is read from the docked-panel setting, not baked into the row.
|
||||
const std::vector<CaptureActionDef>& captureActionTable();
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -128,4 +128,4 @@ std::optional<TailSetting> deserializeTailSetting(const std::string& blob) {
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -67,4 +67,4 @@ std::string tailToggleLabel(const TailSetting& setting);
|
||||
std::string serializeTailSetting(const TailSetting& setting);
|
||||
std::optional<TailSetting> deserializeTailSetting(const std::string& json);
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -157,4 +157,4 @@ WavTruncatePlan planWavTruncate(const WavLayout& layout, std::size_t keptFrames)
|
||||
return plan;
|
||||
}
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -100,4 +100,4 @@ struct WavTruncatePlan {
|
||||
// truncate the file to newFileByteLength.
|
||||
WavTruncatePlan planWavTruncate(const WavLayout& layout, std::size_t keptFrames);
|
||||
|
||||
} // namespace reasampler::capture
|
||||
} // namespace reasampler::capture
|
||||
|
||||
@@ -48,4 +48,4 @@ void formatMasterGainLabel(double norm, char* buf, std::size_t len) {
|
||||
std::snprintf(buf, len, "%+.1fdB", db);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::engine
|
||||
} // namespace reasampler::instrument::engine
|
||||
|
||||
@@ -55,4 +55,4 @@ double masterGainNormFromLinear(double linear);
|
||||
// including the terminator. Pure.
|
||||
void formatMasterGainLabel(double norm, char* buf, std::size_t len);
|
||||
|
||||
} // namespace reasampler::instrument::engine
|
||||
} // namespace reasampler::instrument::engine
|
||||
|
||||
@@ -431,4 +431,4 @@ AudioSample PitchShifter::processImpl(AudioSample in, const SpliceEvent* linked)
|
||||
return static_cast<AudioSample>(out);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::engine
|
||||
} // namespace reasampler::instrument::engine
|
||||
|
||||
@@ -227,4 +227,4 @@ private:
|
||||
// live fade by that rate.
|
||||
};
|
||||
|
||||
} // namespace reasampler::instrument::engine
|
||||
} // namespace reasampler::instrument::engine
|
||||
|
||||
@@ -269,4 +269,4 @@ bool VelocityCurve::equals(const VelocityCurve& other, double eps) const {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::engine
|
||||
} // namespace reasampler::instrument::engine
|
||||
|
||||
@@ -168,4 +168,4 @@ private:
|
||||
std::vector<VelocityPoint> points_;
|
||||
};
|
||||
|
||||
} // namespace reasampler::instrument::engine
|
||||
} // namespace reasampler::instrument::engine
|
||||
|
||||
@@ -60,4 +60,4 @@ AssignConsumeDecision consumeDecision(const std::optional<AssignmentRequest>& re
|
||||
return d;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -104,4 +104,4 @@ AssignConsumeDecision consumeDecision(const std::optional<AssignmentRequest>& re
|
||||
std::int64_t lastConsumed, bool resolves,
|
||||
bool isFocusedTarget);
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -13,4 +13,4 @@ std::optional<std::string> decodeGetProjExtState(int apiReturn,
|
||||
return buffer;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -34,4 +34,4 @@ namespace reasampler::instrument::map {
|
||||
std::optional<std::string> decodeGetProjExtState(int apiReturn,
|
||||
const std::string& buffer);
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -110,4 +110,4 @@ std::optional<int> parseNoteEntry(const std::string& text) {
|
||||
return parseNoteName(s);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -30,4 +30,4 @@ namespace reasampler::instrument::map {
|
||||
// into [0,127]; empty or unparseable input returns nullopt (no change). Pure — no host types.
|
||||
std::optional<int> parseNoteEntry(const std::string& text);
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -24,4 +24,4 @@ std::int64_t fadeFractionToFrames(double fadeFraction, std::int64_t playLength)
|
||||
return static_cast<std::int64_t>(fadeFraction * static_cast<double>(playLength) + 0.5);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -48,4 +48,4 @@ double framesToFadeFraction(std::int64_t fadeFrames, std::int64_t playLength);
|
||||
// Rounds to nearest integer frame. Returns 0 when playLength == 0.
|
||||
std::int64_t fadeFractionToFrames(double fadeFraction, std::int64_t playLength);
|
||||
|
||||
} // namespace reasampler::instrument::map
|
||||
} // namespace reasampler::instrument::map
|
||||
|
||||
@@ -155,4 +155,4 @@ std::vector<int> filterNameIndices(const std::vector<std::string>& names,
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -104,4 +104,4 @@ bool nameMatchesQuery(const std::string& name, const std::string& query);
|
||||
std::vector<int> filterNameIndices(const std::vector<std::string>& names,
|
||||
const std::string& query);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -93,4 +93,4 @@ int filterTabHitTest(const BrowserLayout& layout, int tabCount, int x, int y) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -89,4 +89,4 @@ Rect filterTabRect(const BrowserLayout& layout, int tabCount, int index);
|
||||
// tab strip. Pure.
|
||||
int filterTabHitTest(const BrowserLayout& layout, int tabCount, int x, int y);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -38,4 +38,4 @@ bool popupOutsideSheet(const CurvePopupLayout& layout, int x, int y) {
|
||||
return !contains(layout.sheet, x, y);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -45,4 +45,4 @@ CurvePopupLayout computeCurvePopup(int w, int h);
|
||||
// The shell additionally gates on "no drag in flight" (spec). Pure.
|
||||
bool popupOutsideSheet(const CurvePopupLayout& layout, int x, int y);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -159,4 +159,4 @@ bool addZoneHitTest(const KeymapEditorLayout& layout, int x, int y) {
|
||||
return contains(layout.addZoneButton, x, y);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -139,4 +139,4 @@ ZoneHit zoneHitTest(const KeymapEditorLayout& layout, int zoneCount, int x, int
|
||||
// True if (x, y) lands on the "Add Zone" button. Pure.
|
||||
bool addZoneHitTest(const KeymapEditorLayout& layout, int x, int y);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -83,4 +83,4 @@ Rect levelFillRect(const EmbedLayout& layout, double level) {
|
||||
return Rect::ltrb(band.x, band.y, band.x + fillW, band.bottom());
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -73,4 +73,4 @@ int zoneAtPoint(const EmbedLayout& layout, const EmbedZone* zones, int zoneCount
|
||||
// (rounded down). level <= 0 -> empty rect; level >= 1 -> the whole band. Pure.
|
||||
Rect levelFillRect(const EmbedLayout& layout, double level);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -177,4 +177,4 @@ AmpEnvelope resolveNodeDrag(const AmpEnvelope& grabEnv, EnvNode node, const Rect
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -105,4 +105,4 @@ AmpEnvelope resolveNodeDrag(const AmpEnvelope& grabEnv, EnvNode node, const Rect
|
||||
double totalSeconds, const EnvClampBounds& bounds,
|
||||
int dxPixels, int dyPixels);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -55,7 +55,6 @@ int levelToY(const Rect& area, double level) {
|
||||
|
||||
namespace {
|
||||
|
||||
|
||||
EnvVertex vtx(EnvNode node, const Rect& area, double totalSeconds, double t, double level) {
|
||||
EnvVertex v;
|
||||
v.node = node;
|
||||
@@ -172,4 +171,4 @@ std::vector<EnvVertex> buildEnvelopePolyline(const AmpEnvelope& env, const Rect&
|
||||
: triggerPolyline(env, area, totalSeconds);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -226,4 +226,4 @@ int timeToX(const Rect& area, double totalSeconds, double t);
|
||||
// and the node hit-test share.
|
||||
int levelToY(const Rect& area, double level);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -146,4 +146,4 @@ int resolveDragNote(const StripLayout& layout, int startNote, int dxPixels) {
|
||||
return clampNote(startNote + shift);
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -128,4 +128,4 @@ int resolveDragNote(const StripLayout& layout, int startNote, int dxPixels);
|
||||
// pastel spectral fill (S-VIEW-7). Pure — no layout required, no host types.
|
||||
bool isNaturalKey(int note);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -153,4 +153,4 @@ DeckHit hitTestDeck(const DeckLayout& layout, int x, int y) {
|
||||
return {};
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -130,4 +130,4 @@ struct DeckHit {
|
||||
// Pure — the shell's routing entry point.
|
||||
DeckHit hitTestDeck(const DeckLayout& layout, int x, int y);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -99,7 +99,6 @@ double normDeg(double deg) {
|
||||
return deg;
|
||||
}
|
||||
|
||||
|
||||
} // namespace
|
||||
|
||||
KnobGeometry computeKnob(const Rect& cell) {
|
||||
@@ -157,4 +156,4 @@ int controlAtPoint(const std::vector<ControlRow>& rows, int x, int y) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -177,4 +177,4 @@ double knobDragValue(double startValue, int dyPixels,
|
||||
// toggleSegmentHitTest / knobDragValue over the ensuing drag) and commits.
|
||||
int controlAtPoint(const std::vector<ControlRow>& rows, int x, int y);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -96,4 +96,4 @@ std::int64_t nearestZeroCrossing(const AudioSample* pcm, std::int64_t frames,
|
||||
return t; // no sign change in the whole buffer -> keep the raw (clamped) target
|
||||
}
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -82,4 +82,4 @@ std::int64_t resolveDragFrame(const Rect& area, std::int64_t frameCount, std::in
|
||||
std::int64_t nearestZeroCrossing(const AudioSample* pcm, std::int64_t frames,
|
||||
std::int64_t target);
|
||||
|
||||
} // namespace reasampler::instrument::ui
|
||||
} // namespace reasampler::instrument::ui
|
||||
|
||||
@@ -458,4 +458,4 @@ std::optional<BankModel> BankModel::deserialize(const std::string& blob) {
|
||||
return idx;
|
||||
}
|
||||
|
||||
} // namespace reasampler::model
|
||||
} // namespace reasampler::model
|
||||
|
||||
@@ -214,4 +214,4 @@ private:
|
||||
std::vector<Sample> samples_; // insertion order preserved
|
||||
};
|
||||
|
||||
} // namespace reasampler::model
|
||||
} // namespace reasampler::model
|
||||
|
||||
@@ -110,4 +110,4 @@ std::optional<OwnedFileManifest> OwnedFileManifest::deserialize(const std::strin
|
||||
return m;
|
||||
}
|
||||
|
||||
} // namespace reasampler::model
|
||||
} // namespace reasampler::model
|
||||
|
||||
@@ -88,4 +88,4 @@ private:
|
||||
std::vector<std::string> paths_; // insertion order; deduplicated
|
||||
};
|
||||
|
||||
} // namespace reasampler::model
|
||||
} // namespace reasampler::model
|
||||
|
||||
@@ -159,4 +159,4 @@ std::optional<std::string> detectParent(
|
||||
return parent;
|
||||
}
|
||||
|
||||
} // namespace reasampler::model
|
||||
} // namespace reasampler::model
|
||||
|
||||
@@ -146,4 +146,4 @@ std::optional<std::string> detectParent(
|
||||
const std::vector<std::string>& sourceItemFiles,
|
||||
const std::vector<BankFileRef>& bankFiles);
|
||||
|
||||
} // namespace reasampler::model
|
||||
} // namespace reasampler::model
|
||||
|
||||
@@ -83,4 +83,4 @@ std::vector<std::string> pruneDeletePlan(const std::vector<std::string>& confirm
|
||||
return plan;
|
||||
}
|
||||
|
||||
} // namespace reasampler::reclaim
|
||||
} // namespace reasampler::reclaim
|
||||
|
||||
@@ -175,4 +175,4 @@ PruneReport buildPruneReport(const std::vector<std::string>& orphans,
|
||||
std::vector<std::string> pruneDeletePlan(const std::vector<std::string>& confirmed,
|
||||
const std::vector<std::string>& freshOrphans);
|
||||
|
||||
} // namespace reasampler::reclaim
|
||||
} // namespace reasampler::reclaim
|
||||
|
||||
@@ -151,4 +151,4 @@ int hitTestActionBar(int px, int py, const ActionBarRect& bar,
|
||||
return -1; // inter-button/cluster gap or the overflow dead-zone — a clean miss
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -148,4 +148,4 @@ std::vector<ActionBarSlot> computeBarSlots(const ActionBarRect& bar,
|
||||
int hitTestActionBar(int px, int py, const ActionBarRect& bar,
|
||||
const std::vector<ClusterSpec>& clusters, const ActionBarSpec& spec);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -224,4 +224,4 @@ float compressAmplitudeForDisplay(float linear) {
|
||||
return linear < 0.0f ? -clamped : clamped;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -175,4 +175,4 @@ constexpr float kDisplayFloorDb = -60.0f;
|
||||
// (stays on the midline). Full-scale (|linear| == 1.0f) returns exactly ±1.0f.
|
||||
float compressAmplitudeForDisplay(float linear);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -93,4 +93,4 @@ int hitTestSlot(int px, int py, const std::vector<SlotCellRect>& rects) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -144,4 +144,4 @@ std::vector<SlotCellRect> computeSlotRectsForDrop(int maxSlot, int panelWidth,
|
||||
// callers reason in model slots.
|
||||
int hitTestSlot(int px, int py, const std::vector<SlotCellRect>& rects);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -61,4 +61,4 @@ std::string formatSecondsMs(double lengthSeconds) {
|
||||
return buf;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -52,4 +52,4 @@ std::string formatBarsBeats(const MusicalLength& m);
|
||||
// * negative length is clamped to "0.000" (a length is never negative; defensive).
|
||||
std::string formatSecondsMs(double lengthSeconds);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -105,4 +105,4 @@ int waveformColumnCount(const KitBox& box) {
|
||||
return w > 0 ? w : 0;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -126,4 +126,4 @@ int hitTestListRow(int px, int py, const KitBox& list, int rowHeight, int rowCou
|
||||
// identical whether bins == columns or bins == k*columns) and wastes memory and CPU.
|
||||
int waveformColumnCount(const KitBox& box);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -51,4 +51,4 @@ PathList assemblePathList(const std::vector<ResolvedSample>& resolved) {
|
||||
return out;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -129,4 +129,4 @@ struct PathList {
|
||||
// case-insensitive dedup on Windows — the pure layer does not guess a platform rule).
|
||||
PathList assemblePathList(const std::vector<ResolvedSample>& resolved);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -66,4 +66,4 @@ FooterHit hitTestFooterBar(int px, int py, const FooterBarLayout& layout) {
|
||||
return FooterHit::None;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -103,4 +103,4 @@ FooterBarLayout computeFooterBar(const FooterRect& footer, const FooterBarSpec&
|
||||
// mode_switch over the toggle box), then the Tail hit; this returns which region was struck.
|
||||
FooterHit hitTestFooterBar(int px, int py, const FooterBarLayout& layout);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -18,4 +18,4 @@ bool tagButtonEnabled(const std::string& activeModeId, TagTarget target) {
|
||||
return activeModeId != targetId;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -36,4 +36,4 @@ enum class TagTarget {
|
||||
// disable an action the user can still reach), so a future added mode never dead-locks the bar.
|
||||
bool tagButtonEnabled(const std::string& activeModeId, TagTarget target);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -39,4 +39,4 @@ bool hitTestMenuButton(int px, int py, const MenuButtonRect& button) {
|
||||
py >= button.y && py < button.y + button.height;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -65,4 +65,4 @@ MenuButtonRect computeMenuButton(const MenuBarRect& bar, const MenuButtonSpec& s
|
||||
// hit-test agree on the same pixels. An empty button never claims a point (always false).
|
||||
bool hitTestMenuButton(int px, int py, const MenuButtonRect& button);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -36,4 +36,4 @@ bool hitTestPruneButton(int px, int py, const ButtonRect& button) {
|
||||
py >= button.y && py < button.y + button.height;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -79,4 +79,4 @@ ButtonRect computePruneButton(const FooterRect& footer, const PruneButtonSpec& s
|
||||
// so a suppressed button cannot be accidentally clicked.
|
||||
bool hitTestPruneButton(int px, int py, const ButtonRect& button);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -109,4 +109,4 @@ TabHit hitTestTabStrip(int px, int py, const TabStripRect& strip, int tabCount,
|
||||
return miss; // track dead space (no tab under the point)
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -124,4 +124,4 @@ struct TabHit {
|
||||
TabHit hitTestTabStrip(int px, int py, const TabStripRect& strip, int tabCount,
|
||||
const TabStripSpec& spec, int scrollOffset);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -190,4 +190,4 @@ double textFloor(TextClass cls) {
|
||||
return cls == TextClass::Body ? 4.5 : 3.0;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
+1
-1
@@ -115,4 +115,4 @@ double contrastRatio(const KitColor& a, const KitColor& b);
|
||||
// pair the kit actually draws.
|
||||
double textFloor(TextClass cls);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -50,4 +50,4 @@ TooltipBox computeTooltip(int anchorX, int anchorY, int anchorW, int anchorH,
|
||||
return box;
|
||||
}
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -59,4 +59,4 @@ TooltipBox computeTooltip(int anchorX, int anchorY, int anchorW, int anchorH,
|
||||
int textW, int textH, int clientW, int clientH,
|
||||
const TooltipSpec& spec);
|
||||
|
||||
} // namespace reasampler::ui
|
||||
} // namespace reasampler::ui
|
||||
|
||||
@@ -18,4 +18,4 @@ std::vector<std::uint8_t> readFileBytes(const std::string& path) {
|
||||
return bytes;
|
||||
}
|
||||
|
||||
} // namespace reasampler::util
|
||||
} // namespace reasampler::util
|
||||
|
||||
@@ -16,4 +16,4 @@ namespace reasampler::util {
|
||||
// "nothing to work with" branch.
|
||||
std::vector<std::uint8_t> readFileBytes(const std::string& path);
|
||||
|
||||
} // namespace reasampler::util
|
||||
} // namespace reasampler::util
|
||||
|
||||
@@ -166,4 +166,4 @@ WritingVersion classifyWritingVersion(const std::string& rawStamp) {
|
||||
return wv;
|
||||
}
|
||||
|
||||
} // namespace reasampler::version
|
||||
} // namespace reasampler::version
|
||||
|
||||
@@ -199,4 +199,4 @@ struct WritingVersion {
|
||||
// with the raw ext-state read and never has to reason about the cases itself.
|
||||
WritingVersion classifyWritingVersion(const std::string& rawStamp);
|
||||
|
||||
} // namespace reasampler::version
|
||||
} // namespace reasampler::version
|
||||
|
||||
@@ -41,4 +41,4 @@ void GuidBaseline::reset() {
|
||||
primed_ = false; // next observe() re-baselines (first-poll guard re-armed)
|
||||
}
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -59,4 +59,4 @@ private:
|
||||
bool primed_ = false; // false ⇒ next observe() sets the baseline
|
||||
};
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -48,4 +48,4 @@ bool isOnManualLane(bool isFixedLaneTrack, const std::string& laneName) {
|
||||
return !hasManagedPrefix(laneName);
|
||||
}
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -82,4 +82,4 @@ std::optional<std::string> modeIdFromLaneName(const std::string& laneName);
|
||||
// inputs (I_FREEMODE result, P_LANENAME string) and never re-derives this logic.
|
||||
bool isOnManualLane(bool isFixedLaneTrack, const std::string& laneName);
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -61,4 +61,4 @@ int hitTestSegment(int px, int py, const HeaderRect& header, int segmentCount) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -46,4 +46,4 @@ std::vector<SegmentRect> computeSegmentRects(const HeaderRect& header,
|
||||
// the panel drew there.
|
||||
int hitTestSegment(int px, int py, const HeaderRect& header, int segmentCount);
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -38,4 +38,4 @@ FolderTree buildFolderTree(const std::vector<TrackFolderEntry>& entries) {
|
||||
return tree;
|
||||
}
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -30,4 +30,4 @@ struct TrackFolderEntry {
|
||||
// is clamped to empty) so a corrupt/stale project can never fault the shell.
|
||||
FolderTree buildFolderTree(const std::vector<TrackFolderEntry>& entries);
|
||||
|
||||
} // namespace reasampler::view
|
||||
} // namespace reasampler::view
|
||||
|
||||
@@ -40,4 +40,4 @@ std::optional<AssignmentRequest> decodeAssignmentRequest(const std::string& wire
|
||||
return req;
|
||||
}
|
||||
|
||||
} // namespace reasampler::wire
|
||||
} // namespace reasampler::wire
|
||||
|
||||
@@ -86,4 +86,4 @@ std::string encodeAssignmentRequest(const AssignmentRequest& req);
|
||||
// silently, never crashing or selecting a nonexistent entry.
|
||||
std::optional<AssignmentRequest> decodeAssignmentRequest(const std::string& wire);
|
||||
|
||||
} // namespace reasampler::wire
|
||||
} // namespace reasampler::wire
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user