Commit Graph

54 Commits

Author SHA1 Message Date
Thomas Goyne b43788fa7f Replace boost::format with agi::format
boost::format is slow to compile, slow to run, and has an unpleasant
interface.
2014-05-30 08:30:31 -07:00
Thomas Goyne 4da1443194 Store connected slots in a vector rather than a map 2014-05-26 09:34:20 -07:00
Thomas Goyne 6c685daf98 Ditch boost.circular_buffer
It drags in a ton of crap, is kinda slow at runtime due to using
std::deque, and doesn't actually make the code much simpler than just
using a manual ring buffer.
2014-05-26 09:34:19 -07:00
Thomas Goyne 1f7c47239b Replace timeval junk with std::chrono 2014-05-26 09:34:19 -07:00
Thomas Goyne 650cfcb043 Remove a bunch of unused crap from lagi_pre.h 2014-05-26 09:34:19 -07:00
Thomas Goyne fed99649e9 Cut down on pointless uses of std::list 2014-05-26 09:34:19 -07:00
Thomas Goyne 8ec9280ecc Change most uses of deques to vectors 2014-05-26 09:34:18 -07:00
Thomas Goyne 20a7ec786f Use initializer lists rather than std::make_pair 2014-05-26 09:34:18 -07:00
Thomas Goyne 09e325a1c3 Clean up unused includes 2014-05-23 07:28:24 -07:00
Thomas Goyne 19e8f19e52 Redesign project file handling
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.
2014-05-22 09:29:12 -07:00
Thomas Goyne deaf833605 Preserve alpha when resampling style colors 2014-05-22 06:14:56 -07:00
Thomas Goyne 53f02d33a6 Fix a bunch of warnings when building with gcc on linux 2014-05-20 09:46:57 -07:00
Thomas Goyne ad33fdb109 Add color matrix conversion to the resolution resampler 2014-05-19 19:32:25 -07:00
Thomas Goyne cddefd8ed9 Add RGB <-> YCbCr conversion stuff to libaegisub 2014-05-19 19:32:25 -07:00
Thomas Goyne f261688b11 Don't ignore the contents of override blocks when counting characters for selection preserving 2014-05-05 06:27:37 -07:00
Thomas Goyne 431b096f51 Fix loading modules with UTF-8 BOMs
Ensure MoonScript gets loaded before we install our package loader to
avoid having its package loader used over ours.
2014-04-28 14:19:16 -07:00
Thomas Goyne ec4a8c9a26 Fix read from before beginning of stack 2014-04-27 21:23:53 -07:00
Thomas Goyne 9492192b73 Switch back to building Lua as C
In preparation for switching to LuaJIT, which doesn't support PUC Lua's
thing of using C++ exceptions for lua_error.

Requires replacing all uses of lua_error (and things calling lua_error)
with custom versions that throw an exception instead and adding an
exception -> lua error wrapper at all C++ -> Lua boundaries.
2014-04-27 10:37:23 -07:00
Thomas Goyne e3eb28ffd1 Extract some duplicated table pushing code 2014-04-27 09:15:35 -07:00
Thomas Goyne 2adcc76cf6 Switch automation tests to busted
This requires shuffling a bunch of stuff around to get a CLI lua
executable that uses an automation-like environment, but that's
something that'll be nice to have in the future anyway.

Busted indirectly depends on lfs and we currently can't use external
binary modules, so add a copy of lfs to the repo and build it with
Aegisub.
2014-04-26 08:16:38 -07:00
Thomas Goyne b8af29da0d Move some of the automation machinery to libaegisub 2014-04-25 15:03:18 -07:00
Thomas Goyne 15ae2b0ccc Eliminate a bunch of explicit constructors/destructors
Use explicitly defaulted destructors for base cases when possible,
eliminate aggregate initialization constructors where possible, and push
some more stuff to NSDMIs.
2014-04-25 14:53:24 -07:00
Niels Martin Hansen d53c36e67f Merge branch 'extradata'
Conflicts:
	src/ass_parser.cpp
2014-04-25 17:22:15 +02:00
Thomas Goyne d4fbe3040d Preserve the insertion point (but not selection) when switching between lines 2014-04-25 08:00:45 -07:00
Niels Martin Hansen f278c35f3f Dynamically use either inline_string escaping or uuencoding for extradata
Since luabins generates binary data which grows up to 3x by escaping,
it's more efficient to uuencode that instead.
A marker is placed as the first character of the value field, either
'e' for inline_string escaped text, or 'u' for uuencoded binary data.
The key is always inline_string escaped, as it will typically be
human readable.
2014-04-25 16:04:08 +02:00
Thomas Goyne 6fc4c8da14 Move make_unique to its own header file
Rebuilding the entire project after touching util.h gets old fast.
2014-04-23 15:29:23 -07:00
Thomas Goyne a30d6121fd Don't block the UI while decoding audio for the caches
Simply zero the memory for audio which hasn't been decoded yet, modify
the audio renderer to avoid caching blocks which aren't ready yet, and
add a progress indiciator to the audio display scrollbar.
2014-04-22 12:34:20 -07:00
Thomas Goyne 6c6f60eb98 Add an option to ignore punctuation for the character counter 2014-04-18 20:11:38 -07:00
Thomas Goyne af32733797 Move character count stuff to libaegisub 2014-04-18 20:11:38 -07:00
Thomas Goyne 5df871f599 Extract all of the column-specific logic from BaseGrid 2014-04-18 12:17:03 -07:00
Thomas Goyne 56699e4800 Mark move constructors as noexcept
Or just default them for non-MSVC when possible.
2014-04-17 11:46:28 -07:00
Thomas Goyne 09d0d039e0 Convert signal.h to variadic templates 2014-04-17 11:46:27 -07:00
Thomas Goyne 7fc78d40ab Switch from boost::ptr_vector to a vector of unique_ptr
ptr_vector hasn't been updated for C++11, so despite being specifically
designed to store pointers to objects it's less safe and not really any
easier to use than a regular vector of unique_ptrs
2014-04-14 13:52:14 -07:00
Thomas Goyne 54fa37c855 Fix compilation on linux
Closes tgoyne/aegisub#4.
2014-04-03 17:43:41 -07:00
Thomas Goyne 4adc7c78fc Remove array indexing from UnknownElement 2014-04-01 09:19:30 -07:00
Thomas Goyne ffb2fd2b9d Remove redundant option not found exception type 2014-03-31 10:23:36 -07:00
Thomas Goyne a050b43621 Define OptionValueMap with using rather than inheritence 2014-03-31 10:23:36 -07:00
Thomas Goyne c59b9d59b8 Clean up OptionValue
Make the vtables less absurdly huge (knocks 100KB off aegisub32.exe),
eliminate some copies of the values when constructing the options, and
use an enum class for the value type.
2014-03-31 10:23:36 -07:00
Thomas Goyne 371f602100 Fix tests compilation 2014-03-31 10:23:36 -07:00
Thomas Goyne 14d64daf69 Fix crash on empty progress title on OS X 2014-03-26 09:24:47 -07:00
Thomas Goyne b1f132ec6f Use a proper auto-deleting temp file for the HD audio cache 2014-03-23 08:14:35 -07:00
Thomas Goyne 53188cca47 Expunge remaining references to <fstream> and <iostream> 2014-03-21 14:31:48 -07:00
Thomas Goyne e1bc828e44 Don't wrap the default config json blobs in std::strings 2014-03-21 14:02:49 -07:00
Thomas Goyne d615dcb30a Replace all uses of strstream and stringstream with bufferstream
istringstream makes a copy of its input, which is not very nice for
performance. strstream doesn't do bounds checking, which is not very
nice for safety (and is deprecated).
2014-03-21 13:50:28 -07:00
Thomas Goyne d454872c00 Use read_file_mapping for the thesaurus 2014-03-21 13:23:15 -07:00
Thomas Goyne 0268ffd345 Return a const char * from read_file_mapping::read 2014-03-21 13:23:12 -07:00
Thomas Goyne 18e5144977 Remove unused function in line_iterator 2014-03-21 09:47:05 -07:00
Thomas Goyne cb1f04481a Use read_file_mapping for reading attachments 2014-03-21 07:44:22 -07:00
Thomas Goyne 6c14c9bee9 Extract the rest of the mmap logic from the PCM provider. Closes #934. 2014-03-20 20:26:17 -07:00
Thomas Goyne 3222275750 Use boost.interprocess's mmap wrapper in the PCM provider 2014-03-20 20:25:44 -07:00