Commit Graph

238 Commits

Author SHA1 Message Date
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 a25c5c1909 Rewrite the subtitles edit control's syntax highlighting
Simplify and clean up the parsing code to better represent how VSFilter
actually handles many odd edge cases as well as making it significantly
faster.

Use an enum for syntax style IDs rather than magic numbers.

Add styles for comments, draw mode and karaoke templater variables
rather than reusing other styles and move some hardcoded style
information to the config file.

Operate on the utf-8 representation of the edit box text rather than a
wxString, as it's both faster and simpler.

Originally committed to SVN as r5615.
2011-09-28 19:44:34 +00:00
Thomas Goyne 0c1794a93f Don't silently fail to start up if a config file is invalid
Originally committed to SVN as r5535.
2011-08-17 05:32:09 +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 ead31761db Include lagi_pre.h in agi_pre.h and remove all duplicates
This eliminates some duplicated logic and potential tr1/non-tr1 header
mismatches, and removes the need for the #if defined(AGI_PRE) ||
defined(LAGI_PRE) guard that was used in a few of the libaegisub headers.

Originally committed to SVN as r5515.
2011-07-26 22:25:10 +00:00
Thomas Goyne 665cddf235 Remove some duplicated includes in lagi_pre.h
Originally committed to SVN as r5514.
2011-07-26 22:24:59 +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 dabcdb2e8b Uninvert hotkey::Scan's return value
Originally committed to SVN as r5506.
2011-07-26 19:52:36 +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 acd26c4c48 Fiddle with the log output format so that Visual Studio's parser reads it correctly
Originally committed to SVN as r5503.
2011-07-26 19:52:07 +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 7824348f10 Include the name of the option in the exception thrown when an option is not found
Originally committed to SVN as r5501.
2011-07-26 19:51:47 +00:00
Thomas Goyne a33da9cba5 Replace all uses of std::cout in libaegisub with logging statements and eliminate a lot of nonsense in the windows implementation of acs::Check
Originally committed to SVN as r5500.
2011-07-26 19:51:38 +00:00
Thomas Goyne 64a3cc94ae Fix error checking in agi::util::strtoi
Originally committed to SVN as r5499.
2011-07-26 19:51:28 +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 52e60f09dc Fix path to config.h in path.cpp
Originally committed to SVN as r5493.
2011-07-20 20:08:51 +00:00
Niels Martin Hansen b60e3a5bd4 Rename another clashing file in libaegisub.
Originally committed to SVN as r5490.
2011-07-18 01:08:41 +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 b25066e3c3 Remove a write-only variable in option.cpp
Originally committed to SVN as r5453.
2011-07-15 04:04:42 +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 b5a02e202e Rename libaegisub/windows/util.cpp so that it's actually used
Originally committed to SVN as r5443.
2011-07-15 04:03:36 +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
Amar Takhar c53492edcd Remove <sys/param.h> and <sys/mount.h> from common/util.cpp this stems from my accident involving placing code meant for unix/util.cpp into unix/common.cpp which was partially fixed in r5366.
Originally committed to SVN as r5371.
2011-02-23 03:34:23 +00:00
Amar Takhar 96f24d6c25 Move sys/param.h under ifndef _WIN32, I need to be more vigilant against including Unix headers in Windows builds.
Originally committed to SVN as r5370.
2011-02-23 03:29:30 +00:00
Amar Takhar 6ee90d4bb1 Add <vector>
Originally committed to SVN as r5369.
2011-02-23 03:24:08 +00:00
Grigori Goronzy 28e1acfeba libaegisub: do not free string returned by getenv()
getenv() returns a string that is part of internal process data and
should never be modified and/or free()'d.

Originally committed to SVN as r5368.
2011-02-23 00:55:48 +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
Karl Blomster 7db22972a7 sys/mount.h and statfs(2) do not exist on windows
Originally committed to SVN as r5366.
2011-02-22 19:03:03 +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 2c6abb9a98 Instead of throwing return 0 for invalid values. This happens anyway if the input is invalid so it makes the most sense to return 0 for invalid ranges.
Originally committed to SVN as r5343.
2011-02-10 01:36:25 +00:00
Amar Takhar ef7b3c04e3 Add <climits>
Originally committed to SVN as r5342.
2011-02-10 01:33:34 +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 6615d3981f Add <locale>.
Originally committed to SVN as r5339.
2011-02-09 23:56:24 +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
Niels Martin Hansen 7638375282 Get rid of a few unused variable warnings.
Originally committed to SVN as r5333.
2011-02-09 21:56:10 +00:00
Niels Martin Hansen bc002d749c Make Windows path.cpp actually build. Still not really tested.
Originally committed to SVN as r5332.
2011-02-09 21:55:40 +00:00
Amar Takhar c603c21b86 Print a message to the user and exit(1) if HOME is not set in the users environment.
Originally committed to SVN as r5324.
2011-02-08 22:40:55 +00:00
Amar Takhar 355ad91105 * Instead of ~ use getenv("HOME") to get the users home directory.
* Fix Locale() to return P_LOCALE
 * Change data and doc values to P_DATA and P_DOC.

Originally committed to SVN as r5322.
2011-02-08 04:22:52 +00:00
Amar Takhar 961c1245f7 Remove const in path.cpp (missed in r5320)
Originally committed to SVN as r5321.
2011-02-08 03:53:34 +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
Niels Martin Hansen 7ae6e6da88 Completely untested implementation of agi::Path for Windows.
Originally committed to SVN as r5319.
2011-02-08 00:21:42 +00:00
Amar Takhar 78ed8e3694 Add stub path file for Windows and hand-edit vcproj to include the file.
Originally committed to SVN as r5318.
2011-02-07 18:02:26 +00:00
Amar Takhar 0a54e9ca06 Fix inclusion of config.h, when I was writing this I added a relative path directly to acconf.h
Originally committed to SVN as r5316.
2011-02-07 17:36:24 +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 73913fb0b8 Remove mutex.h from common/log.cpp until the windows build is fixed.
Originally committed to SVN as r5312.
2011-02-06 20:45:46 +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 f486f8dea8 Commit missed changes to libaegisub/Makefile to remove media code.
Originally committed to SVN as r5296.
2011-02-06 00:07:19 +00:00
Amar Takhar 66b6fdcfc8 Move video_frame.cpp which was left out of r5292.
Originally committed to SVN as r5293.
2011-02-05 23:46:09 +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 ac2c6508dd Strategically place comments to stub out AskForTrackSelection() and CleanCache().
Originally committed to SVN as r5285.
2011-02-03 18:12:42 +00:00
Amar Takhar d59e0dd075 Add support for removing ffms support and properly link ffms into libaegisub.
Originally committed to SVN as r5283.
2011-02-03 18:08:41 +00:00
Amar Takhar a733260603 Add missing headers.
Originally committed to SVN as r5281.
2011-02-03 17:15:38 +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 ffff58d698 Compilation fixes now that ffmpegsource_common.cpp has been moved over. Everything compiles correctly now.
Originally committed to SVN as r5279.
2011-02-03 15:49:44 +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 bb4aa727d3 Add media/* to the build on Unix.
Originally committed to SVN as r5277.
2011-02-03 15:48:46 +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 93ceb59b0f Move ffmpegsource_common.(cpp|h) and change the license to fit the rest of libaegisub with permission of the current license holder (Karl Blomster)
Originally committed to SVN as r5275.
2011-02-03 15:47:43 +00:00
Amar Takhar bcafbe2083 Move ffms_* files over to media/
Originally committed to SVN as r5274.
2011-02-03 01:18:43 +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
Amar Takhar f5308fe65b Move video_provider_ffmpegsource.(cpp|h) and change the license to fit the rest of libaegisub with permission of the current license holder (Karl Blomster)
Originally committed to SVN as r5272.
2011-02-03 01:17:15 +00:00
Amar Takhar cddfe3ed20 Wrap code under the agi namespace.
Originally committed to SVN as r5271.
2011-02-02 23:23:48 +00:00
Amar Takhar cacc3516c1 This should have gone into r5269: These files were re-licensed with permission of the original author. (Karl Blomster).
Originally committed to SVN as r5270.
2011-02-02 23:20:03 +00:00
Amar Takhar 1219b069b1 Copy audio_provider_ffmpegsource.(cpp|h) to ./ffms_audio.(cpp|h) and remove wx usage.. The plan is to move a/v support to libaegisub and write unit tests to make sure we can open/close/seek the "official" formats we want to support.
Originally committed to SVN as r5269.
2011-02-02 23:11:17 +00:00
Thomas Goyne 3f9bead41a Use the tr1 version of <tuple> when building with gcc
Originally committed to SVN as r5235.
2011-01-18 00:29:40 +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
Amar Takhar 03ca62df22 Include dependency files into the Makefiles. This gives us dep tracking for headers.
Originally committed to SVN as r5162.
2011-01-10 21:27:39 +00:00
Amar Takhar c2a81a5dd7 Add a cast to make x64 build on windows happy.
Originally committed to SVN as r5155.
2011-01-09 02:49:49 +00:00
Niels Martin Hansen a13e0ddedf Clear out some warnings emitted by Visual C++ 2010.
On 32 bit VC 2010, std::streamsize is 64 bit while size_t is 32 bit.

Originally committed to SVN as r5151.
2011-01-08 21:58:48 +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
Amar Takhar 3f110101aa Ensure the proper cflags are set for common/charset_conv.cpp in libaegisub. Also fix iconv include path on *bsd.
Originally committed to SVN as r5145.
2011-01-08 17:46:46 +00:00
Amar Takhar 319ac2d4bb Catch all exceptions when deciding whether to load the default config.
Originally committed to SVN as r5136.
2011-01-08 12:13:24 +00:00
Amar Takhar 0d7b2c6e76 Add missing headers when not using precompiled header support. Some minor formatting in libaegisub/common/hotkey.cpp.
Originally committed to SVN as r5135.
2011-01-08 12:10:40 +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 944eaa535e Remove universalchardet headers from the precompiled header. For some reason this was causing issues with compliation on FreeBSD, rather than investigate why I removed it since it's used by exactly 1 file (charset_ucd.cpp). If it's going to cause one problem now it may cause another later that we may not notice.
Originally committed to SVN as r4919.
2010-12-08 14:32:30 +00:00
Amar Takhar 5d73bcc598 Remove common/option_value.cpp it was converted to use signals in r4899.
Originally committed to SVN as r4917.
2010-12-08 14:21:45 +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
Amar Takhar 819a298246 Add -Wno-variadic-macros to silence "warning: anonymous variadic macros were introduced in C99" with GCC.
Originally committed to SVN as r4915.
2010-12-08 13:35:33 +00:00
Thomas Goyne 0e6d8631fd Add scoped_ptr.h
Originally committed to SVN as r4902.
2010-12-07 19:09:37 +00:00