Has no real effect, it's what VS 2013 already uses and detailed
logging reveals that the build system doesn't even recognize v4
and assumes v12 anyway.
Might prevent builds with outdated tools.
Most of the dialogs in Aegisub have a public interface consisting of a
single function, so there's really no need to expose the actual dialog
classes to the rest of the program. Add dialogs.h with the declarations
of all of those functions (most of which are just ShowFooDialog()), and
kill a million other headers.
Add a new Project class which is responsible for everything related to
opening and closing audio, video, subtitles, timecodes and keyframes.
This pulls almost everything not directly related to playing audio/video
out of the audio and video controllers, pulls more crap out of
FrameMain, and happens to make things a little simpler in the process.
This eliminates the need for a msys environment to build any part of
Aegisub. Also happens to make building FFmpeg much faster (~3 minutes
vs. ~10 minutes for me).
Eliminates the need to have a copy of git accessible in the msys
build environment and reduces the dependency on msys to just FFmpeg.
Probably trivially faster due to how slow shell scripts are on Windows.
Register functions which create each type of provider rather than the
provider types themselves so that the concrete types don't need to be
publicly exposed, and use a static list of providers rather than
registering them at runtime.
Aegisub needs Lua built as C++ (for stack unwinding on errors). No one
packages it like that, so at the moment we can't actually use systme
packages for Lua.
Fixes a bunch of memory leaks on Automation errors.