#include "rhubarbLib.h" #include "Phone.h" #include "phoneRecognition.h" #include "textFiles.h" #include "mouthAnimation.h" #include "WaveFileReader.h" using boost::optional; using std::u32string; using boost::filesystem::path; using std::unique_ptr; JoiningContinuousTimeline animateAudioClip( const AudioClip& audioClip, optional dialog, int maxThreadCount, ProgressSink& progressSink) { BoundedTimeline phones = recognizePhones(audioClip, dialog, maxThreadCount, progressSink); JoiningContinuousTimeline result = animate(phones); return result; } unique_ptr createWaveAudioClip(path filePath) { try { return std::make_unique(filePath); } catch (...) { std::throw_with_nested(std::runtime_error(fmt::format("Could not open sound file {}.", filePath))); } } JoiningContinuousTimeline animateWaveFile( path filePath, optional dialog, int maxThreadCount, ProgressSink& progressSink) { return animateAudioClip(*createWaveAudioClip(filePath), dialog, maxThreadCount, progressSink); }