Commit graph

79 commits

Author SHA1 Message Date
Thomas Goyne
33a4a056a4 Move everything up a level since the root dir no longer has stuff 2014-03-11 12:14:57 -07:00
Thomas Goyne
8ee3095506 Do disgusting things to make LuaAssFile work
LuaAssFile relied on the lifetime guarantees of intrusive lists (i.e.
you can pretty much do whatever the fuck you want and it'll work out),
but AssInfo objects are no longer owned by an intrusive list. Do awful
things to lazily copy the header section when needed to provide similar
lifetime guarantees.
2014-03-09 15:12:40 -07:00
Thomas Goyne
bacbd8c2bf Devirtualize AssEntry::GetEntryData 2014-03-09 15:12:40 -07:00
Thomas Goyne
b1639c6162 Make the entry lists be of the appropriate type rather than just AssEntry
Eliminates a bajillion dynamic casts.
2014-03-09 15:12:39 -07:00
Thomas Goyne
805481315e Split AssFile into separate lists for each section 2014-03-09 08:06:21 -07:00
Thomas Goyne
2d259bb27e Make deleterange not do totally incorrect things 2014-02-01 20:57:30 -08:00
Thomas Goyne
a7f4fb5b87 Run clang-modernize on things 2013-11-23 09:57:22 -08:00
Thomas Goyne
95ef444c20 More unique_ptr 2013-10-27 13:07:19 -07:00
Thomas Goyne
de7b09f7f7 Change some enums into enum classes 2013-06-12 20:01:21 -07:00
Thomas Goyne
72d4577d7d Kill scoped_ptr in favor of unique_ptr 2013-06-11 16:06:58 -07:00
Thomas Goyne
b2f5a993d9 Actually define __ipairs on LuaAssFile 2013-05-01 21:21:07 -07:00
Thomas Goyne
68662211a1 Make Lua 5.1 a required dependency 2013-04-16 20:05:43 -07:00
Thomas Goyne
44188267d6 Extract some common helper methods to auto4_lua_utils.h 2013-04-09 20:14:53 -07:00
Thomas Goyne
1e0f08c0ed Mostly purge wxWidgets from non-UI stuff
Use boost::filesystem::path for all paths, and std::string for all other
strings, converting to/from wxString as close to the actual uses of wx
as possible.

Where possible, replace the uses of non-UI wxWidgets functionality with
the additions to the standard library in C++11, or the equivalents in
boost.

Move the path token management logic to libaegisub (and rewrite it in
the process).

Add a basic thread pool based on asio and std::thread to libaegisub.

This touches nearly every file in the project and a nontrivial amount of
code had to be rewritten entirely, so there's probably a lot of broken
stuff.
2013-02-06 13:22:15 -08:00
Thomas Goyne
3ec82952f8 Partially de-wxify AssStyle 2012-12-31 07:09:31 -08:00
Thomas Goyne
6e3cc883b3 Replace most uses of type::iterator with auto 2012-12-22 15:35:13 -08:00
Thomas Goyne
8c2062f0c7 Store AssOverrideTags directly rather than a vector of pointers 2012-12-10 17:04:18 -08:00
Thomas Goyne
9b44f92235 Make AssEntry purely a base class and add AssInfo
Now that all the other junk is being dropped from the file, script info
lines are the only thing left which was a concrete AssEntry, and
AssEntry wasn't actually a very good way to store them.
2012-12-07 18:55:29 -08:00
Thomas Goyne
96cf5ea7ed Kill the #ifndef AGI_PRE guards
They don't actually improve compilation performance and make it more
annoying to modify what things are in the precompiled header.
2012-12-02 06:33:29 -08:00
Thomas Goyne
ff03fef2db Use the C++ versions of C headers 2012-12-01 17:24:59 -08:00
Thomas Goyne
6ab8345148 Use nullptr in more places 2012-11-30 10:44:09 -08:00
Thomas Goyne
e77e810bd8 Use emplace_back where applicable 2012-11-30 10:44:09 -08:00
Thomas Goyne
6b09bdfe70 Factor out some duplicated code 2012-11-26 07:11:30 -08:00
Thomas Goyne
4e8e5b597c Change AssEntry::group to an enum 2012-11-25 14:01:50 -08:00
Thomas Goyne
b94547aa71 Drop format and header lines from the in-memory file representation
They're just pointless cruft, so drop them from the file when parsing
and re-add them when saving as ASS or SSA.
2012-11-24 16:24:00 -08:00
Thomas Goyne
67df64e879 Use range-based for loops in a bunch of places 2012-11-12 18:35:25 -08:00
Thomas Goyne
ea5428b65f Replace AssColor with agi::Color
Add agi::Color, and replace AssColor and all uses of wxColor that are
not immediately passed to/from wx with it.
2012-11-10 18:05:56 -08:00
Thomas Goyne
83761d881a Convert AssFile::Line to an intrusive list
Gives O(1) pointer -> iterator conversions, better memory usage, better
performance, and overall slightly simplifies the code using it.
2012-11-10 18:05:56 -08:00
Thomas Goyne
59eae9ab85 Store the lines in LuaAssFile in a vector
This makes the implementation better match the exposed interface and
simplifies some of the code.
2012-11-10 18:05:55 -08:00
Thomas Goyne
e44c47c863 Remove $Id$ markers since git doesn't support them 2012-10-25 17:39:49 -07:00
Thomas Goyne
c7fd04a739 Rename ASS -> Ass in symbol names
Most types and functions used Ass, but a decent number used ASS, so make
them consistent.
2012-10-16 09:52:19 -07:00
Thomas Goyne
53433426bb Fix some stuff from Coverity Scan
Mostly just bugs in unreachable code and stylistic things, but there's a
few incorrect reachable things that were working by coincidence and
gratuitous dynamic_casts.
2012-10-15 18:16:09 -07:00
Thomas Goyne
a1fad1f947 Drop support for ASS2
It is very unlikely that anyone has ever actually used ASS2 for
anything, and in practice it was not usable anyway as the bottom margin
was always either ignored or blindly overwritten.
2012-10-12 14:54:08 -07:00
Thomas Goyne
a0c92f83f9 Fix some PVS-Studio warnings 2012-10-12 14:51:30 -07:00
Thomas Goyne
fc64bcaa36 Don't normalize syllable durations when parsing karaoke for automation
Originally committed to SVN as r6478.
2012-02-16 05:21:00 +00:00
Thomas Goyne
a7d54f3d69 Make AssEntry::group const as it really should never change
Originally committed to SVN as r6408.
2012-02-01 00:47:38 +00:00
Thomas Goyne
c2d3c910c7 Replace some uses of "" with wxString()
Despite special-casing zero-length input, wxString("") takes over four
times as long as wxString() - and on a 10k line script, this change cuts
AssFile's copy constructor's runtime in half.

Originally committed to SVN as r6401.
2012-01-31 00:44:43 +00:00
Thomas Goyne
dad803e956 Set the start and end times of syllables relative to the line's start time rather than time 0 to match 2.1.x's behavior. Closes #1440.
Originally committed to SVN as r6397.
2012-01-31 00:44:07 +00:00
Thomas Goyne
d55f1622f1 Fix backwards-compatibilty break in the lua karaoke parser
Insert an empty syllable at the beginning of the karaoke syllable table
to better mimick 2.1.x's behavior.

Originally committed to SVN as r6369.
2012-01-26 21:19:25 +00:00
Thomas Goyne
cae10121ed Fix a bunch of -pedantic stuff
Originally committed to SVN as r6181.
2011-12-28 21:27:06 +00:00
Thomas Goyne
7adbe07b4e Silence a bunch of PREFast warnings
Originally committed to SVN as r6162.
2011-12-26 22:20:49 +00:00
Thomas Goyne
f974fdb1b2 Delete aegisub.parse_tag_data and aegisub.unparse_tag_data
Originally committed to SVN as r6128.
2011-12-22 21:29:47 +00:00
Thomas Goyne
71345af81a Overload operator int() on AssTime and remove GetMS/SetMS
Originally committed to SVN as r6123.
2011-12-22 21:28:51 +00:00
Thomas Goyne
207ca88c5c Set modification mask correctly when appending lines
Originally committed to SVN as r6080.
2011-12-22 21:21:55 +00:00
Thomas Goyne
f78d52448e Fix appending and deleting rows via the subtitles object index syntax
Originally committed to SVN as r6079.
2011-12-22 21:21:47 +00:00
Thomas Goyne
38ffdc4135 Improve error message when a field is missing from a subtitle line
Originally committed to SVN as r6078.
2011-12-22 21:21:38 +00:00
Thomas Goyne
776c7e69a8 When appending lines from a lua script, always append the new line to the end of the appropriate section, creating the section if needed
Originally committed to SVN as r6077.
2011-12-22 21:21:29 +00:00
Thomas Goyne
c04af51c86 Include lua.hpp rather than the .h versions on non-windows as lua is normally compiled as C, not C++
Originally committed to SVN as r5831.
2011-11-08 01:18:16 +00:00
Thomas Goyne
1364527681 Fix error when trying to insert to the end of the file from auto4lua
Originally committed to SVN as r5760.
2011-10-23 17:00:14 +00:00
Thomas Goyne
3776051f96 Make the karaoke syllable table from aegisub.parse_karaoke_data zero-based for backward compatibility
Originally committed to SVN as r5694.
2011-09-30 20:42:09 +00:00