// trigger_seam.cpp — see trigger_seam.h. #include "core/instrument/map/trigger_seam.h" #include namespace reasampler::instrument::map { std::int64_t triggerPlayLength(double lengthFraction, std::int64_t frameCount, std::int64_t startFrame) { const std::int64_t postStart = (std::max)(std::int64_t{0}, frameCount - startFrame); if (postStart <= 0 || lengthFraction <= 0.0) return 0; return static_cast(lengthFraction * static_cast(postStart) + 0.5); } double framesToFadeFraction(std::int64_t fadeFrames, std::int64_t playLength) { if (playLength <= 0) return 0.0; return static_cast(fadeFrames) / static_cast(playLength); } std::int64_t fadeFractionToFrames(double fadeFraction, std::int64_t playLength) { if (playLength <= 0) return 0; return static_cast(fadeFraction * static_cast(playLength) + 0.5); } } // namespace reasampler::instrument::map