// tail_control — pure implementation. See tail_control.h. NO REAPER / SWELL / vendor. #include "tail_control.h" #include namespace reasampler { TailMode cycleTailMode(TailMode current) { switch (current) { case TailMode::None: return TailMode::Auto; case TailMode::Auto: return TailMode::Manual; case TailMode::Manual: return TailMode::None; } return TailMode::None; // unreachable for a valid enum; fail to the safe default } double clampManualMs(double manualMs) { // Same runaway guard the pure tailRenderSettingsFor applies to Manual: floor a // negative request to 0, cap at the 8 s ceiling. return std::clamp(manualMs, 0.0, kMaxTailMs); } std::string tailToggleLabel(const TailSetting& setting) { switch (setting.mode) { case TailMode::None: return "Tail: Off"; case TailMode::Auto: return "Tail: Auto"; case TailMode::Manual: return "Tail: Manual"; } return "Tail: Off"; // unreachable for a valid enum; fail to the safe default } } // namespace reasampler