diff --git a/build/Aegisub/Aegisub.vcxproj b/build/Aegisub/Aegisub.vcxproj index 69909ccaaa857375b87ec286ca6ac75d8693cdba..df6e5bdcab1c05e35147e034803c777add49249b 100644 --- a/build/Aegisub/Aegisub.vcxproj +++ b/build/Aegisub/Aegisub.vcxproj @@ -124,6 +124,7 @@ <ClInclude Include="$(SrcDir)audio_karaoke.h" /> <ClInclude Include="$(SrcDir)audio_marker.h" /> <ClInclude Include="$(SrcDir)audio_player_portaudio.h" /> + <ClInclude Include="$(SrcDir)audio_provider_factory.h" /> <ClInclude Include="$(SrcDir)audio_renderer.h" /> <ClInclude Include="$(SrcDir)audio_renderer_spectrum.h" /> <ClInclude Include="$(SrcDir)audio_renderer_waveform.h" /> @@ -163,7 +164,6 @@ <ClInclude Include="$(SrcDir)help_button.h" /> <ClInclude Include="$(SrcDir)hotkey_data_view_model.h" /> <ClInclude Include="$(SrcDir)include\aegisub\audio_player.h" /> - <ClInclude Include="$(SrcDir)include\aegisub\audio_provider.h" /> <ClInclude Include="$(SrcDir)include\aegisub\context.h" /> <ClInclude Include="$(SrcDir)include\aegisub\hotkey.h" /> <ClInclude Include="$(SrcDir)include\aegisub\menu.h" /> @@ -271,15 +271,9 @@ <ClCompile Include="$(SrcDir)audio_player_oss.cpp" /> <ClCompile Include="$(SrcDir)audio_player_portaudio.cpp" /> <ClCompile Include="$(SrcDir)audio_player_pulse.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider.cpp" /> <ClCompile Include="$(SrcDir)audio_provider_avs.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider_convert.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider_dummy.cpp" /> + <ClCompile Include="$(SrcDir)audio_provider_factory.cpp" /> <ClCompile Include="$(SrcDir)audio_provider_ffmpegsource.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider_hd.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider_lock.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider_pcm.cpp" /> - <ClCompile Include="$(SrcDir)audio_provider_ram.cpp" /> <ClCompile Include="$(SrcDir)audio_renderer.cpp" /> <ClCompile Include="$(SrcDir)audio_renderer_spectrum.cpp" /> <ClCompile Include="$(SrcDir)audio_renderer_waveform.cpp" /> diff --git a/build/Aegisub/Aegisub.vcxproj.filters b/build/Aegisub/Aegisub.vcxproj.filters index 9e8c86650950b9343162db239d8674ae97da8093..f8016a5f61f291b4eb9486ee4f620a8b18e0245e 100644 --- a/build/Aegisub/Aegisub.vcxproj.filters +++ b/build/Aegisub/Aegisub.vcxproj.filters @@ -417,7 +417,7 @@ <ClInclude Include="$(SrcDir)include\aegisub\audio_player.h"> <Filter>Audio\Players</Filter> </ClInclude> - <ClInclude Include="$(SrcDir)include\aegisub\audio_provider.h"> + <ClInclude Include="$(SrcDir)audio_provider_factory.h"> <Filter>Audio\Providers</Filter> </ClInclude> <ClInclude Include="$(SrcDir)include\aegisub\context.h"> @@ -575,30 +575,15 @@ <ClCompile Include="$(SrcDir)ass_style_storage.cpp"> <Filter>ASS</Filter> </ClCompile> - <ClCompile Include="$(SrcDir)audio_provider_ram.cpp"> - <Filter>Audio\Providers</Filter> - </ClCompile> - <ClCompile Include="$(SrcDir)audio_provider.cpp"> + <ClCompile Include="$(SrcDir)audio_provider_factory.cpp"> <Filter>Audio\Providers</Filter> </ClCompile> <ClCompile Include="$(SrcDir)audio_provider_avs.cpp"> <Filter>Audio\Providers</Filter> </ClCompile> - <ClCompile Include="$(SrcDir)audio_provider_convert.cpp"> - <Filter>Audio\Providers</Filter> - </ClCompile> - <ClCompile Include="$(SrcDir)audio_provider_dummy.cpp"> - <Filter>Audio\Providers</Filter> - </ClCompile> <ClCompile Include="$(SrcDir)audio_provider_ffmpegsource.cpp"> <Filter>Audio\Providers</Filter> </ClCompile> - <ClCompile Include="$(SrcDir)audio_provider_hd.cpp"> - <Filter>Audio\Providers</Filter> - </ClCompile> - <ClCompile Include="$(SrcDir)audio_provider_pcm.cpp"> - <Filter>Audio\Providers</Filter> - </ClCompile> <ClCompile Include="$(SrcDir)audio_box.cpp"> <Filter>Audio\UI</Filter> </ClCompile> diff --git a/build/libaegisub/libaegisub.vcxproj b/build/libaegisub/libaegisub.vcxproj index d46c88919357517c1dfc69650a342dc0b2717b0f..9b46a2277d8d9e956dbafeca754dacc2ea0e2ff9 100644 --- a/build/libaegisub/libaegisub.vcxproj +++ b/build/libaegisub/libaegisub.vcxproj @@ -64,6 +64,7 @@ <ClInclude Include="$(SrcDir)include\libaegisub\ass\smpte.h" /> <ClInclude Include="$(SrcDir)include\libaegisub\ass\time.h" /> <ClInclude Include="$(SrcDir)include\libaegisub\ass\uuencode.h" /> + <ClInclude Include="$(SrcDir)include\libaegisub\audio\provider.h" /> <ClInclude Include="$(SrcDir)include\libaegisub\background_runner.h" /> <ClInclude Include="$(SrcDir)include\libaegisub\cajun\elements.h" /> <ClInclude Include="$(SrcDir)include\libaegisub\cajun\reader.h" /> @@ -121,6 +122,13 @@ </ClCompile> <ClCompile Include="$(SrcDir)ass\dialogue_parser.cpp" /> <ClCompile Include="$(SrcDir)ass\time.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider_convert.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider_dummy.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider_hd.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider_lock.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider_pcm.cpp" /> + <ClCompile Include="$(SrcDir)audio\provider_ram.cpp" /> <ClCompile Include="$(SrcDir)common\cajun\elements.cpp" /> <ClCompile Include="$(SrcDir)common\cajun\reader.cpp" /> <ClCompile Include="$(SrcDir)common\cajun\writer.cpp" /> diff --git a/build/libaegisub/libaegisub.vcxproj.filters b/build/libaegisub/libaegisub.vcxproj.filters index 5dee77b43be48eca3c477604f2391053ea4d0b1c..dd843fe13a5874c23ef65e4aebc3d20df2737520 100644 --- a/build/libaegisub/libaegisub.vcxproj.filters +++ b/build/libaegisub/libaegisub.vcxproj.filters @@ -12,9 +12,6 @@ <Filter Include="Source Files\Common"> <UniqueIdentifier>{4084442f-51e9-4c31-8d5a-c825e076c012}</UniqueIdentifier> </Filter> - <Filter Include="Source Files\Windows"> - <UniqueIdentifier>{5af331b5-ea1f-493f-abf9-f5912e2350df}</UniqueIdentifier> - </Filter> <Filter Include="cajun"> <UniqueIdentifier>{1d2e187a-1681-4c30-8912-a4b5a5d0ab9d}</UniqueIdentifier> </Filter> @@ -27,6 +24,12 @@ <Filter Include="Lua\Modules"> <UniqueIdentifier>{2cf3ad94-e8a9-4a89-b47e-29523d90fd08}</UniqueIdentifier> </Filter> + <Filter Include="Audio"> + <UniqueIdentifier>{fce4f3aa-dc34-44fe-9a6a-99b0914e3436}</UniqueIdentifier> + </Filter> + <Filter Include="Source Files\Windows"> + <UniqueIdentifier>{5af331b5-ea1f-493f-abf9-f5912e2350df}</UniqueIdentifier> + </Filter> </ItemGroup> <ItemGroup> <ClInclude Include="$(SrcDir)common\charset_6937.h"> @@ -203,6 +206,9 @@ <ClInclude Include="$(SrcDir)include\libaegisub\ycbcr_conv.h"> <Filter>Header Files</Filter> </ClInclude> + <ClInclude Include="$(SrcDir)include\libaegisub\audio\provider.h"> + <Filter>Audio</Filter> + </ClInclude> </ItemGroup> <ItemGroup> <ClCompile Include="$(SrcDir)windows\lagi_pre.cpp"> @@ -340,10 +346,31 @@ <ClCompile Include="$(SrcDir)common\ycbcr_conv.cpp"> <Filter>Source Files\Common</Filter> </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider.cpp"> + <Filter>Audio</Filter> + </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider_convert.cpp"> + <Filter>Audio</Filter> + </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider_dummy.cpp"> + <Filter>Audio</Filter> + </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider_hd.cpp"> + <Filter>Audio</Filter> + </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider_lock.cpp"> + <Filter>Audio</Filter> + </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider_pcm.cpp"> + <Filter>Audio</Filter> + </ClCompile> + <ClCompile Include="$(SrcDir)audio\provider_ram.cpp"> + <Filter>Audio</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <None Include="$(SrcDir)include\libaegisub\charsets.def"> <Filter>Header Files</Filter> </None> </ItemGroup> -</Project> +</Project> \ No newline at end of file diff --git a/libaegisub/audio/provider_hd.cpp b/libaegisub/audio/provider_hd.cpp index 4dd6234c77a4c5e398c87df3ba283fe1c80355b8..19e33eeed6591667851ef681cd42cda920cbc060 100644 --- a/libaegisub/audio/provider_hd.cpp +++ b/libaegisub/audio/provider_hd.cpp @@ -84,6 +84,6 @@ public: namespace agi { std::unique_ptr<AudioProvider> CreateHDAudioProvider(std::unique_ptr<AudioProvider> src, agi::fs::path const& dir) { - return make_unique<HDAudioProvider>(std::move(src), dir); + return agi::make_unique<HDAudioProvider>(std::move(src), dir); } } diff --git a/libaegisub/audio/provider_ram.cpp b/libaegisub/audio/provider_ram.cpp index f177840b5f5e358efc79b9167a378c3e09105349..0c1da546c12f12e8d603caec86c04938443ceba8 100644 --- a/libaegisub/audio/provider_ram.cpp +++ b/libaegisub/audio/provider_ram.cpp @@ -91,6 +91,6 @@ void RAMAudioProvider::FillBuffer(void *buf, int64_t start, int64_t count) const namespace agi { std::unique_ptr<AudioProvider> CreateRAMAudioProvider(std::unique_ptr<AudioProvider> src) { - return make_unique<RAMAudioProvider>(std::move(src)); + return agi::make_unique<RAMAudioProvider>(std::move(src)); } } diff --git a/src/audio_provider_avs.cpp b/src/audio_provider_avs.cpp index 26480188b992baef5efbb21dae805b91426516d7..b94cb4df4c0d24ea0e497cba65cd036da6590ce0 100644 --- a/src/audio_provider_avs.cpp +++ b/src/audio_provider_avs.cpp @@ -89,22 +89,22 @@ AvisynthAudioProvider::AvisynthAudioProvider(agi::fs::path const& filename) { LoadFromClip(env->Invoke("DirectShowSource", AVSValue(args, 3), argnames)); // Otherwise fail else - throw agi::AudioProviderOpenError("No suitable audio source filter found. Try placing DirectShowSource.dll in the Aegisub application directory."); + throw agi::AudioProviderError("No suitable audio source filter found. Try placing DirectShowSource.dll in the Aegisub application directory."); } } catch (AvisynthError &err) { std::string errmsg(err.msg); if (errmsg.find("filter graph manager won't talk to me") != errmsg.npos) - throw agi::AudioDataNotFoundError("Avisynth error: " + errmsg); + throw agi::AudioDataNotFound("Avisynth error: " + errmsg); else - throw agi::AudioProviderOpenError("Avisynth error: " + errmsg); + throw agi::AudioProviderError("Avisynth error: " + errmsg); } } void AvisynthAudioProvider::LoadFromClip(AVSValue clip) { // Check if it has audio VideoInfo vi = clip.AsClip()->GetVideoInfo(); - if (!vi.HasAudio()) throw agi::AudioDataNotFoundError("No audio found."); + if (!vi.HasAudio()) throw agi::AudioDataNotFound("No audio found."); IScriptEnvironment *env = avs_wrapper.GetEnv(); @@ -143,7 +143,7 @@ void AvisynthAudioProvider::FillBuffer(void *buf, int64_t start, int64_t count) } } -std::unique_ptr<AudioProvider> CreateAvisynthAudioProvider(agi::fs::path const& file, agi::BackgroundRunner *) { +std::unique_ptr<agi::AudioProvider> CreateAvisynthAudioProvider(agi::fs::path const& file, agi::BackgroundRunner *) { return agi::make_unique<AvisynthAudioProvider>(file); } #endif