213{
214 std::vector<std::string> paths;
215 bool in_search_paths = false;
216
217 std::istringstream stream(output);
219
220 while (std::getline(stream, line)) {
221 if (
line.find(
"#include <...> search starts here:") != std::string::npos) {
222 in_search_paths = true;
223 continue;
224 }
225 if (
line.find(
"End of search list.") != std::string::npos) {
226 break;
227 }
228 if (in_search_paths) {
229 auto start =
line.find_first_not_of(
" \t");
230 if (start != std::string::npos) {
231 auto end =
line.find_last_not_of(
" \t");
232 std::string path =
line.substr(start, end - start + 1);
233 if (!path.empty()) {
234 paths.push_back(path);
235 }
236 }
237 }
238 }
239 return paths;
240}
Vruta::SoundRoutine line(Vruta::TaskScheduler &scheduler, float start_value, float end_value, float duration_seconds, uint32_t step_duration, bool restartable)
Creates a continuous interpolation generator between two values over time.