Thomas Goyne
585e9489d9
Move some of the audio provider machinery to libaegisub
...
And add tests.
2014-07-10 11:44:56 -07:00
Thomas Goyne
a11da3350c
Save a backup copy of the old hotkey file if migrating from the old format
2014-07-07 09:42:02 -07:00
Thomas Goyne
935c6bc3a7
Store hotkeys in a less dumb format
2014-07-06 19:25:49 -07:00
Thomas Goyne
3b34ed9a77
Move AssTime to libaegisub and add tests
2014-07-06 19:25:49 -07:00
Thomas Goyne
f0f836c47b
Eliminate a pointless std::map in charset_conv
2014-07-06 19:25:48 -07:00
Thomas Goyne
d9016cc8ea
Debloat and slightly speed up the MRU code
2014-07-06 19:25:48 -07:00
Thomas Goyne
518342b919
Make the hotkey code a bit less bloated
2014-07-06 19:25:48 -07:00
Thomas Goyne
df8ad34838
Eliminate pointless runtime datastructures for CalltipProvider
...
And add some tests and make it actually work correctly.
2014-07-04 20:37:36 -07:00
Thomas Goyne
93522e30a8
Use a static table of tokens for agi::Path
...
The set of possible tokens is fixed, so using std::map is a bunch of
pointless overhead (that turns out to not even really simplify the
code).
2014-07-04 20:37:36 -07:00
Thomas Goyne
6ce9ce1546
Remove unused helper function
2014-07-03 10:57:53 -07:00
Thomas Goyne
4c88449e4c
Make UnknownElement moveable and not copyable
...
And remove the unused comparison functionality.
2014-06-29 10:45:26 -07:00
Thomas Goyne
4c0e578eda
Rewrite the remaining bits of json::Writer
2014-06-29 10:45:26 -07:00
Thomas Goyne
bc410a99f6
Change the in-memory storage of options to a sorted vector
2014-06-29 10:01:00 -07:00
Thomas Goyne
c9608ab610
Remove an exception not used for anything useful
2014-06-28 19:49:39 -07:00
Thomas Goyne
7780fadfc6
Fix restarting the application after changing the UI language on OS X
2014-06-14 06:51:53 -07:00
Thomas Goyne
789ff25f27
Remove some exceptions not used for much of anything
2014-06-11 12:52:30 -07:00
Thomas Goyne
eebd1dba21
Use iconv rather than std::wstring_convert
...
libstdc++ 4.8 does not have <codecvt>.
2014-05-30 11:53:15 -07:00
Thomas Goyne
59489b8f8c
Extract some of the string formatter implementation to format.cpp
2014-05-30 11:53:15 -07:00
Thomas Goyne
37c02ae127
Replace wxString::Format with agi::format
...
It's modestly faster, significantly more type-safe, and doesn't assert
when there's too few arguments, which causes problems for plural forms.
Closes #1733 .
2014-05-30 11:53:14 -07:00
Thomas Goyne
8d26c66d0f
Remove a bunch of unused functionalty from agi::Exception
2014-05-30 11:53:14 -07:00
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
Thomas Goyne
3ef8fa9ec0
Make a for loop in uuencode less dumb
2014-03-18 13:41:26 -07:00
Thomas Goyne
21d87ff1ca
Remove some invalid finals that VC++ was okay with for some reason
2014-03-12 20:32:57 -07:00
Thomas Goyne
ea96c6e2ad
Make everything final that can be
...
Apparently gcc does use final for devirtualization.
2014-03-12 19:07:30 -07:00
Thomas Goyne
33a4a056a4
Move everything up a level since the root dir no longer has stuff
2014-03-11 12:14:57 -07:00