Commit Graph

158 Commits

Author SHA1 Message Date
Thomas Goyne 723d3b9780 Pass const references into OptionValue::SetList* rather than const values
Originally committed to SVN as r5812.
2011-11-04 19:41:54 +00:00
Thomas Goyne 6a31f840a6 Fix crash when slots disconnect from a signal in response to that signal
Originally committed to SVN as r5806.
2011-11-03 00:29:13 +00:00
Thomas Goyne 6c995e7780 Add support for modifying hotkeys while the program is running
Originally committed to SVN as r5793.
2011-10-28 20:40:32 +00:00
Thomas Goyne ffa622d698 Fix compilation without precompiled headers
Originally committed to SVN as r5791.
2011-10-28 20:15:10 +00:00
Thomas Goyne 0a04b62d1d Add a long overload to UnknownElement for gcc
Originally committed to SVN as r5790.
2011-10-28 20:13:58 +00:00
Thomas Goyne a75aa7a633 Eliminate a bunch of pointlessness in json::Writer
Originally committed to SVN as r5753.
2011-10-17 22:00:49 +00:00
Thomas Goyne dd46c7af7f Completely ditch json::Array and json::Object's custom implementations and switch to typedefs to STL types.
Originally committed to SVN as r5752.
2011-10-17 22:00:38 +00:00
Thomas Goyne b4fa4e6f0c Expose all std::deque members in json::Array
Originally committed to SVN as r5750.
2011-10-17 22:00:18 +00:00
Thomas Goyne 0dee6ea223 Add some convenience overloads to UnknownElement's constructor
Originally committed to SVN as r5749.
2011-10-17 22:00:09 +00:00
Thomas Goyne 36280b7a2b Kill TrivialType_T as it's completely pointless
Originally committed to SVN as r5748.
2011-10-17 21:59:59 +00:00
Thomas Goyne 9dc9047c11 Change json::Object's backing store from a list to a map. Cajun used list to preserve order, but json objects do not guarantee that order will be preserved
Originally committed to SVN as r5747.
2011-10-17 21:59:47 +00:00
Thomas Goyne 2f64a116a7 Make cajun containers implement the STL container interfaces rather than being retarded special snowflakes
Originally committed to SVN as r5746.
2011-10-17 21:59:35 +00:00
Thomas Goyne bfcd76c4aa Add missing #include <algorithm> to scoped_ptr.h
Originally committed to SVN as r5654.
2011-09-28 19:50:50 +00:00
Thomas Goyne 53b6765dd8 Redesign DialogProgress
Add agi::ProgressSink and agi::BackgroundRunner interfaces to libaegisub
which represent a generic progress sink and a thing which calls funtions
that need progress sinks. Make DialogProgress implement
agi::BackgroundRunner, invoking the passed function on a worker thread
and giving it a progress sink to update the dialog with.

Rewrite Automation4::ProgressSink, LuaThreadedCall and all related
classes to be based on agi::ProgressSink. Automation now simply uses
DialogProgress (although that's merely an implementation detail) and
adds a single method to route dialog opening from the worker thread to
the GUI thread.

Originally committed to SVN as r5634.
2011-09-28 19:47:40 +00:00
Thomas Goyne 330411c94a Add some special cases to line_iterator that makes it significantly faster in common cases
Originally committed to SVN as r5534.
2011-08-17 05:32:01 +00:00
Thomas Goyne 3c18ed542c Clean up libaegisub includes
Consistently use the C++ names for headers rather than a combination of the
C and C++ names.

Remove empty LAGI_PRE blocks.

Remove checks for both AGI_PRE and LAGI_PRE and change a check for only
AGI_PRE to LAGI_PRE.

Originally committed to SVN as r5516.
2011-07-26 22:25:21 +00:00
Thomas Goyne 263d161d26 Don't pointlessly store a copy of the default hotkeys json in memory
Originally committed to SVN as r5510.
2011-07-26 20:26:09 +00:00
Thomas Goyne af484a469d Make get_hotkey_str_first more likely to return the desired hotkey when multiple are available
Originally committed to SVN as r5508.
2011-07-26 19:52:57 +00:00
Thomas Goyne dd38e1f07f Don't swallow errors when parsing json and make agi::json_util::file actually work
Originally committed to SVN as r5507.
2011-07-26 19:52:47 +00:00
Thomas Goyne ffe8c7a5d6 Only enable the 'Always' hotkey context when medusa mode is on
Originally committed to SVN as r5505.
2011-07-26 19:52:25 +00:00
Thomas Goyne 7deebf759b Remove the concept of disabled hotkeys; it's unnessesary and wasn't actually used
Originally committed to SVN as r5504.
2011-07-26 19:52:15 +00:00
Thomas Goyne 87abcddd87 Make the MRU code not so bizzarely overcomplicated
Originally committed to SVN as r5502.
2011-07-26 19:51:56 +00:00
Thomas Goyne 231adad93f Implement agi::util::freespace for Windows
Originally committed to SVN as r5497.
2011-07-26 19:51:07 +00:00
Thomas Goyne 72bc33fda3 Fix compilation errors with precompiled headers disabled
Originally committed to SVN as r5484.
2011-07-16 06:42:55 +00:00
Thomas Goyne 0616b39ffe Fix a pile of warnings
Originally committed to SVN as r5483.
2011-07-16 05:01:36 +00:00
Thomas Goyne 8ccc0acc9d Fix reporter compilation errors
Originally committed to SVN as r5481.
2011-07-16 03:36:42 +00:00
Thomas Goyne c32e372dd4 Fix leak of the Options object in agi::Path and potential overwriting of the config file with an out of date version on shutdown
Originally committed to SVN as r5477.
2011-07-15 17:36:53 +00:00
Thomas Goyne a8a30d6ac1 Fix hotkey memory leaks
Originally committed to SVN as r5472.
2011-07-15 17:36:06 +00:00
Thomas Goyne 6ec63cdde1 Clean up libaegisub includes
Remove cajun includes from all public headers and the precompiled header

Add a pile of missing standard library headers used in multiple files
to lagi_pre

Originally committed to SVN as r5452.
2011-07-15 04:04:34 +00:00
Thomas Goyne 67e9384ef4 Remove a bunch of pointless consts from agi::Path and rename the windows implementation so that it's actually used
Originally committed to SVN as r5442.
2011-07-15 04:03:28 +00:00
Grigori Goronzy 066ec3014a libaegisub: use statvfs instead of statfs
statvfs is the portable POSIX defined interface and is supported on all
major UNIX platforms.

Originally committed to SVN as r5367.
2011-02-23 00:54:18 +00:00
Amar Takhar 8240d3e6b6 Add util::freespace to check for free space on a path. (with tests)
Originally committed to SVN as r5346.
2011-02-10 23:55:59 +00:00
Amar Takhar bbc0f6f859 Document some utility methods.
Originally committed to SVN as r5345.
2011-02-10 02:47:41 +00:00
Amar Takhar 3522c0b4bd Add a strtoi function. (with unit tests)
Originally committed to SVN as r5340.
2011-02-10 00:41:15 +00:00
Amar Takhar 75e07c7aa7 Add a short method to make an std::string lowercase.
Originally committed to SVN as r5335.
2011-02-09 22:31:44 +00:00
Amar Takhar bf05289495 * Remove misplaced const on a void method.
* Forward declare Options to avoid including options.h in the header.

Originally committed to SVN as r5320.
2011-02-08 03:48:00 +00:00
Amar Takhar a35962923f Finish agi::Path so we can actually use it, our current path system is brutal and I needed this for libmedia. I'll be adding OS X support shortly: someone else will have to figure out what to do with windows it's completely trivial see unix/path.cpp and check libaegisub/path.h for the return values.
Originally committed to SVN as r5315.
2011-02-07 16:39:49 +00:00
Amar Takhar 7b06c334aa Add missing headers and change StdioProgressSink() to use std::cout and friends.
Originally committed to SVN as r5314.
2011-02-07 00:46:49 +00:00
Amar Takhar e27c3e15b8 Add several progress factories to handle progress bars. The GUI version will come from code within aegisub.
Originally committed to SVN as r5313.
2011-02-07 00:12:57 +00:00
Amar Takhar 874950382c s/acconf.h/config.h/ -- I forgot I actually fixed this when adding mutex.h so it was already working with the exception of the namespace change.
Originally committed to SVN as r5311.
2011-02-06 20:19:25 +00:00
Amar Takhar 2edbc8c8c1 Fix mutex.h so we can actually use it.
Originally committed to SVN as r5309.
2011-02-06 19:50:59 +00:00
Amar Takhar 511b37ee48 Move converted code out of libaegisub and into libmedia.
Originally committed to SVN as r5292.
2011-02-05 23:43:20 +00:00
Amar Takhar ac70f229dc Re-license video_frame.(cpp|h) with permission of copyright holder (Rodrigo Braz Monteiro).
Originally committed to SVN as r5280.
2011-02-03 15:52:06 +00:00
Amar Takhar b47dd1e220 Add mid() template to util namespace.
Originally committed to SVN as r5278.
2011-02-03 15:49:13 +00:00
Amar Takhar 36549ff724 Add media.h -- I'm not sure if this will be the perm name, it currently holds exception definitions.
Originally committed to SVN as r5276.
2011-02-03 15:48:18 +00:00
Amar Takhar 629b819e37 Move video_frame.(cpp|h) to libaegisub. The license has not been changed however I have an email sent to amz, I will change it once he responds.
Originally committed to SVN as r5273.
2011-02-03 01:18:14 +00:00
Thomas Goyne 04a4c074b0 Add function to get the string representation of the hotkeys for a command, use it when generating the menu
Originally committed to SVN as r5230.
2011-01-17 23:53:46 +00:00
Thomas Goyne cd4b032c25 Make agi::hotkey::Scan const
Originally committed to SVN as r5229.
2011-01-17 23:53:38 +00:00
Thomas Goyne 403d465475 Fix hotkeys with non-alphanumeric keys other than back, return, escape, space and delete
Originally committed to SVN as r5217.
2011-01-16 07:17:53 +00:00
Thomas Goyne 1aeded1a29 Make scoped_ptr's constructor explicit
Originally committed to SVN as r5202.
2011-01-16 07:16:07 +00:00
Niels Martin Hansen abf9ee645b std::basic_streambuf::_Sgetn_s was removed was Visual C++ 2010 for some reason.
Originally committed to SVN as r5150.
2011-01-08 21:54:31 +00:00
Thomas Goyne e450cb3e7e Fix include paths
Originally committed to SVN as r5132.
2011-01-05 18:40:37 +00:00
Amar Takhar 167f09a610 Merge the dynamic menu, hotkey and toolbar branch to trunk. This doesn't include Windows support as vs2008 was being a major pain. This involves revisions r4921:4950, r4961:5002, r5005:5006, r5008:5056, r5062:5065, r5072, r5081:5082, r5087, r5096:5110, r5124:5125. Updates #1258.
Originally committed to SVN as r5126.
2011-01-05 13:00:46 +00:00
Amar Takhar cdc73b17d2 Add support for bitmask options to Options. First one is to avoid flushing the config to disk which we don't want to happen when the reporter uses Options to read config values.
Originally committed to SVN as r5123.
2011-01-04 04:24:40 +00:00
Thomas Goyne 5920c3124b Make agi::Signal uncopyable
Originally committed to SVN as r5076.
2010-12-31 21:02:49 +00:00
Thomas Goyne a566955047 Rename signals.h to signal.h
Originally committed to SVN as r5075.
2010-12-31 21:02:42 +00:00
Thomas Goyne edff7d6a2d Rewrite keyframe loading and saving code and move it to libaegisub
Originally committed to SVN as r5073.
2010-12-31 21:02:17 +00:00
Amar Takhar 063cd0480d OS X also needs typename to be defined within the template, that makes Windows,BSD and OS X, it's better to exclude platforms when we hit them.
Originally committed to SVN as r4920.
2010-12-08 18:58:10 +00:00
Amar Takhar 32bb692521 Define typename in the Signal template for FreeBSD as well. I'm not sure why this is required (yet) but we may need it on other platforms as well.
Originally committed to SVN as r4916.
2010-12-08 14:20:53 +00:00
Thomas Goyne 0e6d8631fd Add scoped_ptr.h
Originally committed to SVN as r4902.
2010-12-07 19:09:37 +00:00
Thomas Goyne 13f052317e Convert OptionValue over to agi::signal
Originally committed to SVN as r4899.
2010-12-07 19:09:15 +00:00
Thomas Goyne 4fc1ff6ad6 Add simple signal/slot implementation loosly based on boost.sigal
Originally committed to SVN as r4898.
2010-12-07 19:09:08 +00:00
Thomas Goyne 75285192a3 Add overloaded operator-> to agi::line_iterator
Originally committed to SVN as r4846.
2010-11-17 05:44:02 +00:00
Thomas Goyne 1f894561c3 Actually set options' default values
Originally committed to SVN as r4842.
2010-11-11 04:48:37 +00:00
Thomas Goyne b4739d2aee gcc 4.5 compilation fixes
Originally committed to SVN as r4797.
2010-10-11 04:25:02 +00:00
Thomas Goyne fd5c1ecffc Fix writing of newlines on windows in charsets wider than one byte
Originally committed to SVN as r4786.
2010-09-15 05:00:12 +00:00
Karl Blomster 035694c9ae I came, I saw, I hurfed a durf about macro redefinitions
Originally committed to SVN as r4781.
2010-09-14 23:53:22 +00:00
Thomas Goyne 3512c4e1fe Clean up handling of fallbacks and improve behavior somewhat with glibc iconv
Originally committed to SVN as r4776.
2010-09-09 06:47:50 +00:00
Thomas Goyne 0248e7c754 Add listeners for most non-audio options that need them. Closes #1047.
Originally committed to SVN as r4764.
2010-08-26 18:38:37 +00:00
Amar Takhar 3c5d4bc97e Relicense libosxutil code (osx/util.cpp and include/util_osx.h) using the same license as the rest of the library. (obsd/2-clause bsdl) Done with the permission of current copyright holder jfs (Niels Martin Hansen).
Originally committed to SVN as r4744.
2010-08-14 18:45:41 +00:00
Amar Takhar d4ba1f48ca Remove libosxutil and fold it into libaegisub.
Originally committed to SVN as r4743.
2010-08-14 17:42:37 +00:00
Thomas Goyne 46be23073e Fix a few gcc warnings
Originally committed to SVN as r4722.
2010-08-02 20:25:29 +00:00
Thomas Goyne 6407e36c87 Store inner exceptions with shared_ptr rather than a bare pointer so that the inner exception survives copies
Originally committed to SVN as r4714.
2010-07-27 03:52:32 +00:00
Thomas Goyne a59d2a8e2e Fix 64-bit compilation errors
Originally committed to SVN as r4663.
2010-07-08 04:50:46 +00:00
Thomas Goyne acba2c6b63 Rewrite VFR handling in Aegisub.
Kill vfr.h and vfr.cpp and use the libaegisub versions of them instead.

Rather than the globals VFR_Input and VFR_Output, everything related to
frame rate is now part of the video context. Most things which used to
use VFR_Output now call VideoContext::TimeAtFrame etc.; video providers,
rather than modifying VFR_Input directly, now have getters for their
frame rates which VideoContext calls. Read-only public access to
VFR_Input and VFR_Output are still provided (hopefully temporarily) for
a few things which were awkward to do through VideoContext.

The Avisynth provider now might correctly handle VFR MKVs which can be
opened with DirectShowSource but not DSS2.

Rework keyframe handling as well, so that it continues to match the vfr
handling in design and implementation.

Originally committed to SVN as r4662.
2010-07-08 04:29:04 +00:00
Thomas Goyne 9322f95071 Rewrite vfr.cpp in libaegisub with tests. Not yet used by Aegisub itself.
Originally committed to SVN as r4661.
2010-07-07 05:24:16 +00:00
Thomas Goyne 929fa83dd9 Move the bulk of TextFileWriter's logic to libaegisub.
Originally committed to SVN as r4660.
2010-07-07 02:41:46 +00:00
Thomas Goyne 6623239682 Work around BOM-related issues with UTF-32 and UTF-16 with unspecified byte order
Originally committed to SVN as r4656.
2010-07-06 19:23:10 +00:00
Thomas Goyne ee4c5dee0b Remove charsets which libiconv does not support from charsets.def
Originally committed to SVN as r4655.
2010-07-06 19:23:01 +00:00
Amar Takhar 8e912e3ff6 Include <algorithm> to get std::for_each
Originally committed to SVN as r4587.
2010-06-24 01:51:18 +00:00
Amar Takhar b5ed0d6c8c wrap config.h include under LAGI and put -DLAGI when compiling to ensure it's only included when building libaegisub.
Originally committed to SVN as r4585.
2010-06-24 01:49:48 +00:00
Thomas Goyne 4f53324ca3 Add the name of the option to OptionValue's error messages
Originally committed to SVN as r4582.
2010-06-24 01:24:49 +00:00
Thomas Goyne 2b47f34e76 Fix a pile of actual memory leaks
Originally committed to SVN as r4575.
2010-06-24 01:24:09 +00:00
Thomas Goyne cbf201ab86 Fix some "leaks" of things that should actually be alive for the lifetime of the program to reduce noise.
Originally committed to SVN as r4574.
2010-06-24 01:24:02 +00:00
Thomas Goyne 75bd20a6dd Fix the rest of the build errors when not using precompiled headers
Originally committed to SVN as r4530.
2010-06-17 00:23:44 +00:00
Thomas Goyne 61138e9b5d Add configure check for sys/time.h
Originally committed to SVN as r4529.
2010-06-16 07:49:35 +00:00
Thomas Goyne 5338a60cdb Fix compilation errors when not using precompiled headers
Originally committed to SVN as r4511.
2010-06-14 19:26:27 +00:00
Amar Takhar 340cc1d7f1 Fix compilation with precompiled headers disabled.
Originally committed to SVN as r4504.
2010-06-14 18:02:58 +00:00
Thomas Goyne 612b583e2b Move cajun includes into the cpp files rather than headers so that only files in libaegisub include them.
Originally committed to SVN as r4473.
2010-06-11 02:25:07 +00:00
Amar Takhar ea577f8245 Re-work types.h for the second time, this is most likely not the final version, it's difficult to figure out a solution that makes the most sense when most of the code hasn't been written/moved over yet.
Originally committed to SVN as r4468.
2010-06-09 02:07:43 +00:00
Amar Takhar 931cc7f461 * Remove all instances of wxLogDebug and replace them with LOG_W, LOG_D, LOG_E and LOG_D_IF as required.
* Add LOG_(D|W|I)_IF for conditional logging.

Originally committed to SVN as r4465.
2010-06-08 23:21:39 +00:00
Amar Takhar 2aeb0bdffb Sigh, -ansi isn't the solution since other compilers may define 'unix', for now the namespace has been called u_nix, hopefully this is safe but who knows...
Originally committed to SVN as r4445.
2010-06-06 02:32:50 +00:00
Amar Takhar acc9e53714 Remove stray ;'s
Originally committed to SVN as r4444.
2010-06-05 23:44:07 +00:00
Amar Takhar 2d9eee4ea9 Add struct tm which mimics the struct on unix. Also setup the types file into seperate namespaces for clarity. The corrosponding change to windows/utils.cpp snuck into r4437.
Originally committed to SVN as r4438.
2010-06-05 18:17:55 +00:00
Thomas Goyne b6d29443a3 Move most character set conversion code to libaegisub and make everything use the new conversion functionality.
Originally committed to SVN as r4423.
2010-06-03 20:32:25 +00:00
Niels Martin Hansen 5e8d5b221b Compiling, but untested, option change notifications. Doesn't seem to affect Aegisub aversely.
Has the limitation that one object can only subscribe once to one option value, but that shouldn't actually be a problem. (One object cannot have two different of its member functions subscribing to one option value.)

Originally committed to SVN as r4415.
2010-06-03 05:07:47 +00:00
Amar Takhar fc9e01c68a * Forward declare the LogSink global
* Change GetSink() to return a const pointer.

Originally committed to SVN as r4405.
2010-06-02 23:45:51 +00:00
Amar Takhar 33011cb5ed Split EmitterSTDOUT into unix/log.cpp and windows/log.cpp, the windows version is commented at the moment.
Originally committed to SVN as r4397.
2010-06-01 08:17:27 +00:00
Amar Takhar 7e83443c3e Fix the Windows build, there are a couple of things to note:
* I rebroke the stdout logger I'll fix that in unix.
 * There is a new header libaegisub/types.h which is a temp solution until I sort out something more realistic.  It's too early to tell what the proper solution will be.

Originally committed to SVN as r4394.
2010-06-01 08:03:17 +00:00
Amar Takhar badee30d17 Sigh, not diffing before committing bites me again: remove useless deltas that shouldn't have been committed.
Originally committed to SVN as r4392.
2010-06-01 05:14:00 +00:00