241{
242 std::vector<std::string> paths;
243 bool in_search_paths = false;
244
245 std::istringstream stream(output);
247
248 while (std::getline(stream, line)) {
249 if (
line.find(
"#include <...> search starts here:") != std::string::npos) {
250 in_search_paths = true;
251 continue;
252 }
253 if (
line.find(
"End of search list.") != std::string::npos) {
254 break;
255 }
256 if (in_search_paths) {
257 auto start =
line.find_first_not_of(
" \t");
258 if (start != std::string::npos) {
259 auto end =
line.find_last_not_of(
" \t");
260 std::string path =
line.substr(start, end - start + 1);
261 if (!path.empty()) {
262 paths.push_back(path);
263 }
264 }
265 }
266 }
267 return paths;
268}
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.