// sample_roots.cpp — see sample_roots.h. #include "core/instrument/map/sample_roots.h" #include "core/capture/capture_paths.h" // projectDirOfRpp / resolveBankFile (persist's convention) namespace reasampler::instrument::map { std::string ownProjectDir(const void* own, const std::vector& open, const void* activeFallback) { const void* target = own ? own : activeFallback; if (!target) return {}; for (const ProjectTab& tab : open) { if (tab.project == target) return capture::projectDirOfRpp(tab.rppPath); } return {}; } std::vector sampleRootCandidates(const std::string& projectDir) { if (projectDir.empty()) return {}; return {projectDir}; } std::vector readFromFirstRoot(const std::vector& roots, const std::string& relativePath, const FileReader& read) { for (const std::string& root : roots) { const std::string abs = capture::resolveBankFile(root, relativePath); if (abs.empty()) continue; std::vector bytes = read(abs); if (!bytes.empty()) return bytes; } return {}; } } // namespace reasampler::instrument::map