Commit Graph

60 Commits

Author SHA1 Message Date
Thomas Goyne d4c831e346 Fix crash when FFMS_GetCodecNameI returns NULL 2013-12-10 12:37:03 -08:00
Thomas Goyne 382708132c Update indexing progress less often
wxTheApp->QueueEvent is sufficiently slow that updating the progress
could sometimes take longer than the actual indexing.
2013-09-26 16:13:24 -07:00
Thomas Goyne 396ff897e5 Kill StandardPaths
It's now just a pointless wrapper around agi::Path.
2013-02-06 13:22:33 -08: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 a99428c49d Extract options and MRU stuff from main.h
Nearly all of the files including main.h are doing so only for OPT_GET
and friends, which are rather unrelated to the main things that main.h
declares.
2013-01-09 16:48:31 -08:00
Thomas Goyne c691099d24 Use CRC32 for ffms2 index filenames
No real advantages other than that it means md5.h/c can be deleted.
2013-01-09 16:48:30 -08:00
Thomas Goyne d0f4d9df99 Replace all uses of lagi_wxString with to_wx 2012-12-22 15:18:38 -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 06aaaff16b NULL -> nullptr 2012-11-13 08:51:01 -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 1848aad5c1 Fix compilation with C++ 11/libc++ 2012-11-12 18:35:21 -08:00
Thomas Goyne 0893ed3f0a Remove references to tr1 2012-11-10 18:05:57 -08:00
Thomas Goyne e44c47c863 Remove $Id$ markers since git doesn't support them 2012-10-25 17:39:49 -07:00
Thomas Goyne bd0f6a4c2b Extract the cache cleaning logic from FFmpegSourceProvider
Originally committed to SVN as r6653.
2012-04-03 22:44:40 +00:00
Thomas Goyne b32515da80 Strip trailing whitespace from all cpp and h files
Originally committed to SVN as r6600.
2012-03-25 04:05:06 +00:00
Thomas Goyne f79e933ac9 Bump required version of ffms2 to 2.16
Originally committed to SVN as r6493.
2012-02-20 18:22:20 +00:00
Thomas Goyne 17b0d83831 Use scoped_holder in a handful of places
Originally committed to SVN as r6492.
2012-02-20 18:22:12 +00:00
Thomas Goyne 1285584e89 Add ?local for the user's local config dir; use it for FFMS2 indexes
Originally committed to SVN as r6235.
2012-01-08 01:34:57 +00:00
Thomas Goyne 3efdef2224 Tweak a few strings to make them easier to translate
Originally committed to SVN as r6211.
2012-01-08 01:05:13 +00:00
Thomas Goyne f2c62dad3d Factor out a bunch of duplicated code in the configure script for pkg-config based optional dependencies and use the pkg-config name for all WITH_* defines
Originally committed to SVN as r6104.
2011-12-22 21:25:49 +00:00
Thomas Goyne 92949bc965 Remove AegisubApp::Get, as wxGetApp() does the same thing
Originally committed to SVN as r6051.
2011-12-22 21:17:30 +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 cc147d1660 Eliminate uses of c_str made unnecessary by changed to wxString::Format in wx 2.9
Originally committed to SVN as r5612.
2011-09-28 19:43:48 +00:00
Thomas Goyne d990bbbb99 Eliminate all unnecessary uses of L and _T
Originally committed to SVN as r5611.
2011-09-28 19:43:11 +00:00
Thomas Goyne 3345797ff6 Use signals in AudioController and AudioTimingController
Originally committed to SVN as r4907.
2010-12-08 08:09:16 +00:00
Amar Takhar c15777f844 Merge audio_display_rewrite branch to trunk. This is not a complete work, don't expect to time anything for a while.
Originally committed to SVN as r4903.
2010-12-08 03:36:10 +00:00
Karl Blomster 0c2b40dc60 Revert r4782 since it wasn't needed if you do the project file right.
Originally committed to SVN as r4783.
2010-09-15 00:18:21 +00:00
Karl Blomster 3bdba76549 I have no idea what kind of enterprising faggot broke this but apparently we need __STDC_FORMAT_MACROS now. I hope this breaks on some other platform, that would be hilarious.
Originally committed to SVN as r4782.
2010-09-15 00:01:59 +00:00
Thomas Goyne 574236875c Fix assertion failure in 32-bit builds
Originally committed to SVN as r4753.
2010-08-25 19:31:26 +00:00
Thomas Goyne c10e9e3a5b Make video and audio providers throw typed exceptions.
Don't display error messages and try other providers when the user
cancels loading a file.

Remove files from the MRU lists if they can't be found.

Closes #717.

Originally committed to SVN as r4717.
2010-08-02 06:32:01 +00:00
Amar Takhar d3e9a906aa Use %ld for both wxFileOffset (off_t) and GetTicks() (time_t), also coalesce into a single wxString::Format. This fixes an assert in wx trunk. Unfortunatly it does not fix audio loading due to seperate breakage of libass in r4630:4631. closes #1228.
Originally committed to SVN as r4681.
2010-07-16 10:33:54 +00:00
Thomas Goyne 4a8abae3a3 Kill options.h and options.cpp, which have been empty for a while
Originally committed to SVN as r4676.
2010-07-12 21:49:48 +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
Thomas Goyne 90893f1048 Make the capitalization of FFmpegSource in options consistent, as option names are now case-sensitive.
Originally committed to SVN as r4414.
2010-06-03 05:07:10 +00:00
Amar Takhar 40e12403d5 Merge all changes from the libaegisub branch into trunk, the effective range is r4175:4330. All options have been re-done and now use Cajun to support a json-backed format.
Initial support for low-level access and file I/O methods are included as well.

Originally committed to SVN as r4331.
2010-05-21 01:13:36 +00:00
Karl Blomster 85d645b44a Allow user to set behavior of audio decoding errors during indexing with the FFMS2 providers.
Originally committed to SVN as r3822.
2009-11-28 21:13:47 +00:00
Karl Blomster 6490c82e79 Change the way ffms2 index cache files are named to use source filename (without path) + source file's size in bytes + source file modification time, instead of just source file path + size in bytes, in order to make reusing index cache files on other computers easier. Closes #1008.
Originally committed to SVN as r3582.
2009-09-27 00:32:19 +00:00
Karl Blomster 9d80eb066f Updating ffms2 to r221 (2.12), step 3/3: Aegisub interface
Originally committed to SVN as r3576.
2009-09-26 21:58:00 +00:00
Amar Takhar 88276ed1f4 * Move some headers below the rest as they need wx settings that don't seem to be inited when the header is first in the list.
* Add some missing headers and reposition one from the file to header.
 * Revert r3516 as it's no longer needed.

Originally committed to SVN as r3518.
2009-09-10 22:48:29 +00:00
Amar Takhar d455a61732 Set wxUSE_CHOICEDLG to 1, I don't know why this is required I'll look at it later.
Originally committed to SVN as r3516.
2009-09-10 13:43:31 +00:00
Amar Takhar d348b4e33e Fix all the headers in *.cpp, this includes:
* Wrapping all headers that are in agi_pre.h with AGI_PRE.
 * Sorting alphabetically.

Originally committed to SVN as r3515.
2009-09-10 13:06:40 +00:00
Amar Takhar 7a8c5229fd * Remove wxprec.h from all files other than agi_pre.h. Including this in various headers is useless as it includes wx.h which includes dozens of 'common' wx headers. With this we're unable to tell which files rely on which interfaces. This commit removes them and manually places in required headers as-needed.
* Update agi_pre.h to include some missing headers, also move required windowsheaders to the top of the list
 * Use <> versus "" for the wx header in avisynth_wrap.cpp
 * Remove xx/wx.h from agi_pre.h as it's included by wxprec.h.

Originally committed to SVN as r3513.
2009-09-10 10:26:50 +00:00
Karl Blomster ad4a44a22b Document ffmpegsource_common.cpp/h.
Originally committed to SVN as r3363.
2009-08-05 11:21:00 +00:00
Amar Takhar 718b1ca94a Fix a bunch of Doxygen warnings, two more left!
Originally committed to SVN as r3347.
2009-08-01 03:26:09 +00:00
Amar Takhar 2fcd872218 Kill the ffms2 group and make it all 'ffms'
Originally committed to SVN as r3335.
2009-07-30 06:40:25 +00:00
Amar Takhar 6ee2f98349 Note: This was done using a script! it's far from perfect but 95% of the work has been done already formatting-wise.
Document all functions, class, struct, union, enum, macro, variable, typedefs.  This isn't the actual document in itself but empty documentation using any old documentation if it was there.

This was done using exuberant ctags to get tag info, then a TCL script to parse/remove old comments and convert them into Doxygen-style.

Some notes:
 * Anything labeled 'DOCME' needs to be documented, @param and @return have been left blank as it would be annoying to delete the 'DOCME' from every one of those.
 * Some multiline comments may have been munged into single line comments
 * Leave the /// comments above global variables with a space, if they're harder to read then we'll be less likey to use them.
 * Enum comments can go after the enumeration itself '[value] /// comment'
 * include/aegisub/*.h haven't been converted yet, this will be done in a later commit
 * Some documentation blocks are in the wrong place, in the .h when it should be in the .cpp, or vice versa.

See http://devel.aegisub.org/wiki/Doxygen for some details on Doxygen and a 'style guide'.

Originally committed to SVN as r3312.
2009-07-29 22:59:22 +00:00
Amar Takhar 12aa34088a Switch all headers to using Doxygen and cleanup contact info
* Swap old email + website address with 'Aegisub Project http://www.aegisub.org/'
 * Set categories for all files (jfs)
 * Add descriptions for each file (jfs)
 * Add $Id$ keyword

Originally committed to SVN as r3310.
2009-07-29 05:43:02 +00:00
Karl Blomster f066903d98 FFMS2 a/v providers should use UTF8 strings for the cache filenames, just like for every other file. Updates #955 but does not fix it since you still get bizarre popups that I have no idea where they're coming from if the write/touch operations fail.
This change should be merged into 2.1.8.

Originally committed to SVN as r3294.
2009-07-26 23:10:12 +00:00
Karl Blomster f59dcf19f6 Add option to set FFMS2 logging level (i.e. how much spam FFmpeg prints to STDERR).
Option is called "ffmpegsource log level" and possible values are (in order of increasing spam) quiet, panic, fatal, error, warning, info, verbose, debug. The default is quiet, and I strongly recommend avoiding anything above warning.

Originally committed to SVN as r3248.
2009-07-24 01:41:16 +00:00
Amar Takhar 0f6977fa39 Fix a cast issue in GetCacheFilename under wx2.9.. fix by jfs, thanks!
Originally committed to SVN as r3221.
2009-07-23 15:37:47 +00:00