Aegisub/core
Rodrigo Braz Monteiro 87cfe62e0c Fixed audio follow cursor bug.
Originally committed to SVN as r234.
2006-03-20 21:48:01 +00:00
..
bitmaps Separated volume on its own slider bar 2006-02-21 00:55:16 +00:00
about.cpp Updated about dialog 2006-02-22 20:52:00 +00:00
about.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
aegisublocale.cpp Added destructor -> no memory leaks 2006-02-02 22:20:49 +00:00
aegisublocale.h Added destructor -> no memory leaks 2006-02-02 22:20:49 +00:00
aspell_wrap.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
aspell_wrap.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_dialogue.cpp Modified path to fextracker headers 2006-03-05 19:14:42 +00:00
ass_dialogue.h Added clone function for better copying of AssEntry and derived classes 2006-02-27 09:07:08 +00:00
ass_entry.cpp Finished new format system 2006-02-27 21:57:10 +00:00
ass_entry.h Added clone function for better copying of AssEntry and derived classes 2006-02-27 09:07:08 +00:00
ass_export_filter.cpp wxString::c_str() for varargs AGAIN 2006-02-26 02:51:18 +00:00
ass_export_filter.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_exporter.cpp wxString::c_str() for varargs AGAIN 2006-02-26 02:51:18 +00:00
ass_exporter.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_file.cpp Fixed extra comments being added on export/undo (might have broken other stuff) 2006-03-13 22:12:23 +00:00
ass_file.h Finished new format system 2006-02-27 21:57:10 +00:00
ass_override.cpp wxString::c_str() for varargs AGAIN 2006-02-26 02:51:18 +00:00
ass_override.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_style.cpp Copy shadow_w 2006-03-03 19:53:04 +00:00
ass_style.h Added clone function for better copying of AssEntry and derived classes 2006-02-27 09:07:08 +00:00
ass_style_storage.cpp Made AssEntry::data private 2006-02-27 02:23:50 +00:00
ass_style_storage.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
ass_time.cpp Fixed critical ass_time bug 2006-02-22 07:36:38 +00:00
ass_time.h AssTime changed to store data as miliseconds internally (overall faster, uses less ram) 2006-02-21 22:09:15 +00:00
audio_box.cpp Removed YUV colorspace from color picker. (Bug 28 note 155.) 2006-03-16 01:26:26 +00:00
audio_box.h Pomyk's no focus on scrollbars patch 2006-03-05 20:31:04 +00:00
audio_display.cpp Fixed audio follow cursor bug. 2006-03-20 21:48:01 +00:00
audio_display.h Dragging the timeline will now scroll audio display. 2006-03-07 00:12:50 +00:00
audio_karaoke.cpp Removed YUV colorspace from color picker. (Bug 28 note 155.) 2006-03-16 01:26:26 +00:00
audio_karaoke.h Fixed Automation script loading error messages (bug #1) 2006-02-23 21:56:46 +00:00
audio_player.cpp Finished separation of audio provider and player 2006-02-25 07:41:18 +00:00
audio_player.h Finished separation of audio provider and player 2006-02-25 07:41:18 +00:00
audio_player_portaudio.cpp remove win32isms 2006-02-26 02:53:45 +00:00
audio_player_portaudio.h generic fuckups 2006-02-26 02:52:29 +00:00
audio_provider.cpp HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider.h RAM cache separated from avisynth provider 2006-02-25 08:26:29 +00:00
audio_provider_avs.cpp HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_avs.h HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_hd.cpp HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_hd.h Added Pomyk's patch to be able to choose from comments or not in selection dialogue 2006-02-25 18:10:02 +00:00
audio_provider_ram.cpp HD audio cache separated from avisynth provider 2006-02-25 08:39:15 +00:00
audio_provider_ram.h RAM cache separated from avisynth provider 2006-02-25 08:26:29 +00:00
automation.cpp Added functions for direct conversion between HSL and HSV. (hsl_to_hsv is still incomplete, and works over rgb atm) 2006-03-17 01:59:41 +00:00
automation.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
automation_filter.cpp Fixed Automation script loading error messages (bug #1) 2006-02-23 21:56:46 +00:00
automation_filter.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
automation_gui.cpp Applied some Pomyk patches 2006-03-05 20:42:38 +00:00
automation_gui.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
avisynth.h Originally committed to SVN as r116. 2006-02-22 19:55:33 +00:00
avisynth_wrap.cpp Fixed Automation script loading error messages (bug #1) 2006-02-23 21:56:46 +00:00
avisynth_wrap.h Some tweaks to help Linux compatibility 2006-02-23 04:19:57 +00:00
base_grid.cpp Unhandled keypresses in grid will now be sent to the audio display. 2006-03-05 04:31:09 +00:00
base_grid.h More code cleaning up and fixing! 2006-02-22 06:08:35 +00:00
changelog.txt Fixed audio follow cursor bug. 2006-03-20 21:48:01 +00:00
colorspace.cpp Completed HSV-HSL conversion function, looks like it's correct now. 2006-03-18 02:21:54 +00:00
colorspace.h Added functions for direct conversion between HSL and HSV. (hsl_to_hsv is still incomplete, and works over rgb atm) 2006-03-17 01:59:41 +00:00
dialog_associations.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_associations.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_colorpicker.cpp Added functions for direct conversion between HSL and HSV. (hsl_to_hsv is still incomplete, and works over rgb atm) 2006-03-17 01:59:41 +00:00
dialog_colorpicker.h Removed YUV colorspace from color picker. (Bug 28 note 155.) 2006-03-16 01:26:26 +00:00
dialog_export.cpp Applied pomyk's dialog_export and duplicate patches 2006-03-05 02:47:20 +00:00
dialog_export.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_fextracker.cpp Modified path to fextracker headers 2006-03-05 19:14:42 +00:00
dialog_fextracker.h moved events for fextracker & fexmovement into its own file 2006-01-29 20:48:05 +00:00
dialog_hotkeys.cpp Added stack walker 2006-02-21 05:26:13 +00:00
dialog_hotkeys.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_jumpto.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_jumpto.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_progress.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_progress.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_properties.cpp Early LAVC implementation 2006-02-24 02:54:30 +00:00
dialog_properties.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_resample.cpp Early LAVC implementation 2006-02-24 02:54:30 +00:00
dialog_resample.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_search_replace.cpp Removed the "Help" button from Find/Replace dialog. 2006-03-14 00:39:33 +00:00
dialog_search_replace.h Applied some Pomyk patches 2006-03-05 20:42:38 +00:00
dialog_selection.cpp Added Pomyk's patch to be able to choose from comments or not in selection dialogue 2006-02-25 18:10:02 +00:00
dialog_selection.h Added Pomyk's patch to be able to choose from comments or not in selection dialogue 2006-02-25 18:10:02 +00:00
dialog_shift_times.cpp Fixed shift times not affecting video/audio, and default save as path 2006-03-14 04:23:00 +00:00
dialog_shift_times.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_spellcheck.cpp More code cleaning up and fixing! 2006-02-22 06:08:35 +00:00
dialog_spellcheck.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_style_editor.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
dialog_style_editor.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_style_manager.cpp Made AssEntry::data private 2006-02-27 02:23:50 +00:00
dialog_style_manager.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_styling_assistant.cpp More vfr fun for everyone 2006-02-24 16:45:10 +00:00
dialog_styling_assistant.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
dialog_timing_processor.cpp Added a bias slider to make continuous function in timing post-processor. 2006-03-17 01:27:30 +00:00
dialog_timing_processor.h Added a bias slider to make continuous function in timing post-processor. 2006-03-17 01:27:30 +00:00
dialog_translation.cpp Some clean up of grid classes 2006-02-22 04:59:39 +00:00
dialog_translation.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
drop.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
drop.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_clean_info.cpp Made AssEntry::data private 2006-02-27 02:23:50 +00:00
export_clean_info.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_fixstyle.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_fixstyle.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
export_framerate.cpp wxString::c_str() for varargs AGAIN 2006-02-26 02:51:18 +00:00
export_framerate.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
fextracker_main_events.cpp Modified path to fextracker headers 2006-03-05 19:14:42 +00:00
fft.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
fft.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
fonts_collector.cpp Fixed undo scrolling (#25), Line selection (#24) and font collector (#10) bugs 2006-02-25 03:04:52 +00:00
fonts_collector.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
frame_main.cpp Fixed shift times not affecting video/audio, and default save as path 2006-03-14 04:23:00 +00:00
frame_main.h little tenfex interface change 2006-03-03 19:00:47 +00:00
frame_main_events.cpp Fixed shift times not affecting video/audio, and default save as path 2006-03-14 04:23:00 +00:00
hilimod_textctrl.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
hilimod_textctrl.h Changed behavior of commiting time 2006-02-19 03:33:13 +00:00
hotkeys.cpp Implemented redo, and replace == _T("") with .IsEmpty() 2006-02-20 21:32:58 +00:00
hotkeys.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
main.cpp Unhandled keypresses in grid will now be sent to the audio display. 2006-03-05 04:31:09 +00:00
main.h Early separation of the subtitle format parser/writer code 2006-02-26 22:45:34 +00:00
MatroskaParser.c remove win32isms 2006-02-26 02:53:45 +00:00
MatroskaParser.h Matroska parsing implemented 2006-02-23 01:44:48 +00:00
mkv_wrap.cpp Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
mkv_wrap.h Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
options.cpp Audio display now follows the play cursor 2006-03-05 23:41:00 +00:00
options.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
readme.txt Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
res.rc Separated volume on its own slider bar 2006-02-21 00:55:16 +00:00
splash.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
splash.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
static_bmp.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
static_bmp.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
string_codec.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
string_codec.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
subs_edit_box.cpp Fixed audio follow cursor bug. 2006-03-20 21:48:01 +00:00
subs_edit_box.h Fixed some bugs related to inserting overrides via the buttons over the edit box 2006-02-19 04:55:10 +00:00
subs_grid.cpp Added "Split by karaoke" feature 2006-03-11 16:11:55 +00:00
subs_grid.h Added "Split by karaoke" feature 2006-03-11 16:11:55 +00:00
subtitle_format.cpp Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format.h Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format_ass.cpp Fixed bug which caused extra newlines to be added at the end of file. 2006-03-13 22:25:09 +00:00
subtitle_format_ass.h Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format_srt.cpp Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
subtitle_format_srt.h Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format_txt.cpp Finished new format system 2006-02-27 21:57:10 +00:00
subtitle_format_txt.h Finished new format system 2006-02-27 21:57:10 +00:00
subtitles_rasterizer.h Made double click on grid row jump video to it 2006-03-01 04:32:00 +00:00
text_file_reader.cpp Implemented redo, and replace == _T("") with .IsEmpty() 2006-02-20 21:32:58 +00:00
text_file_reader.h Early separation of the subtitle format parser/writer code 2006-02-26 22:45:34 +00:00
text_file_writer.cpp Fixed bug which caused extra newlines to be added at the end of file. 2006-03-13 22:25:09 +00:00
text_file_writer.h Fixed bug which caused extra newlines to be added at the end of file. 2006-03-13 22:25:09 +00:00
timeedit_ctrl.cpp Fixed audio follow cursor bug. 2006-03-20 21:48:01 +00:00
timeedit_ctrl.h Changed behavior of commiting time 2006-02-19 03:33:13 +00:00
tip.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
tip.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
todo.txt Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
toggle_bitmap.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
toggle_bitmap.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
utils.cpp remove win32isms 2006-02-26 02:53:45 +00:00
utils.h remove win32isms 2006-02-26 02:53:45 +00:00
validators.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
validators.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
variable_data.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
variable_data.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
version.h Partial fix to karaoke mode 2006-02-19 06:05:15 +00:00
vfr.cpp Fixed handling of VFR times after v1 range 2006-03-14 00:33:31 +00:00
vfr.h Fixed minor glitch and some little update to vfr 2006-02-24 23:07:30 +00:00
vfw_wrap.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
vfw_wrap.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
video_box.cpp Separated volume on its own slider bar 2006-02-21 00:55:16 +00:00
video_box.h Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
video_display.cpp Modified path to fextracker headers 2006-03-05 19:14:42 +00:00
video_display.h remove win32isms 2006-02-26 02:53:45 +00:00
video_provider.cpp Originally committed to SVN as r175. 2006-02-25 20:48:32 +00:00
video_provider.h Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
video_provider_avs.cpp Readded 16bpp support for avisynth file opening 2006-03-11 16:20:40 +00:00
video_provider_avs.h Readded 16bpp support for avisynth file opening 2006-03-11 16:20:40 +00:00
video_provider_lavc.cpp Pomyk's no focus on scrollbars patch 2006-03-05 20:31:04 +00:00
video_provider_lavc.h Some highly failed attempt to fix mkv support with lavc, and updated manual to include information on how to use FexTracker 2006-03-01 03:17:31 +00:00
video_slider.cpp Middle clicking the video seek bar and audio display will now focus them. 2006-03-05 04:41:59 +00:00
video_slider.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
video_zoom.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
video_zoom.h remove extra semicolons and commas (strict ISO-C++98) 2006-01-19 10:33:56 +00:00
yatta_wrap.cpp Originally committed to SVN as r2. 2006-01-16 21:02:54 +00:00
yatta_wrap.h add newline at end of yatta_wrap.h 2006-01-17 00:39:18 +00:00

Aegisub Source Code Documentation


Some thoughts:

First, some of the code is pretty readable, some is decent, and some is patched up crap. Good luck. ;)
Second, if you want to code anything for Aegisub, you will need to agree to these terms:
  1. You will release the patch to the public domain or give its copyright to one of the developers. This is to stop a source file from being owned by too many people. (Exception: MAJOR changes might be accepted under BSD license under your name. Consult the developers)
  2. Make SURE it compiles and works fine before submitting to developers.
  3. Stick to the coding standards. That is, no GNU-style identing and crap.
Third, this is all available under the BSD license. According to GNU itself, BSD is GPL-compatible, meaning that you can link GPL code to BSD code. Keep in mind, though, that if a source file has mixed BSD and GPL content, it becomes ruled by GPL.


Some notes about the procedure:
All paths should be added to the global msvc settings or you might encounter some problems.
This guide assumes Visual Studio 2003 is used, it might work in other versions but it is guaranteed
to fail with other compilers due to the avisynth dependency.
While you can compile most libraries yourself these instructions will assume you want to
download precompiled versions whenever possible. Also note that in  most other cases where
precompiled libraries are available they're unsuitable for use in aegisub.

Building instructions (dependencies):

1. Download and install wxWidgets 2.6.x (www.wxwidgets.org, 2.6.2 used when this guide was written).
Open include\wx\msw\setup.h and set WXWIN_COMPATIBILITY_2_4 to 0 and wxUSE_UNICODE to 1. To compile the libraries
first open the visual studio command prompt and go to build\msw. Run "nmake makefile.vc UNICODE=1 BUILD=debug"
and then "nmake makefile.vc UNICODE=1 BUILD=release" to generate the libraries required for aegisub.

Include:
  include
  lib\vc_lib\mswu
Libraries:
  lib\vc_lib

2. Download and compile freetype2 (www.freetype.org). The easiest way to do this is to open the solution found in
builds\win32\visualc\freetype.sln and then batch build all configurations.

Include:
  include
Libraries:
  objs

3. Download and compile lua (www.lua.org). This easiest done by copying the contents of include, src/lib and src/lua
to src (overwriting makefiles makes no difference here). Create a new win32 c++ project, select static library,
blank project and uncheck precompiled headers. Add all h and c files in src to the project and set code generation
to multi threaded (debug) dll in the configurations, set the output names to lua50MT(d).lib in the lib directory.
Batch compile.

Include:
  include
Libraries:
  lib

4. Download and compile portaudio (www.portaudio.com). If you want to compile the directsound version
you need to have the directx9 sdk properly set up before continuing. This process is very similar to lua. First copy
the contents of pa_common to the pa_win_wmme and pa_win_ds dirs. Create a blank project and add all files in pa_win_ds
(for directshow) or in pa_win_wmme (for wmme audio output) to the project. Set the library name to PAStaticDSMT(d).lib
and the output path to lib. Set the code generation to multi threaded (debug) dll and batch compile.

Include:
  pa_common
Libraries:
  lib

5. OPTIONAL - You can safely skip this step if you don't intend to work on the aspell part of aegisub. It's disabled in
the release builds. Download precompiled libs for aspell (aspell.net/win32/) the current direct link is
http://ftp.gnu.org/gnu/aspell/w32/aspell-dev-0-50-3-3.zip.

Include:
  include
Libraries:
  lib

Building instructions (aegisub):

1. Create a new blank Win32 c++ project in msvc. Add all h, cpp and rc files to the project. Open the settings and add
UNICODE to the preprocessor defines. Set the code generation to multi threaded (debug) dll.

2. OPTIONAL - Define NO_SPELLCHECKER if you want to compile without aspell support.

3. Add the libraries to the linker input. If you compiled portaudio with wmme you have to remove dsound.lib and srmiids.lib
and replace PAStaticDS*.lib with the wmme version. Remove libaspell-15-dll.lib if you defined NO_SPELLCHECKER.

Link to these libraries for release:
freetype2110MT.lib libaspell-15-dll.lib wxzlib.lib wxpng.lib wxregexu.lib wxmsw26u_adv.lib wxmsw26u_core.lib wxbase26u.lib wxmsw26u_media.lib dsound.lib PAStaticDSMT.lib Vfw32.lib winmm.lib lua50MT.lib comctl32.lib rpcrt4.lib advapi32.lib wsock32.lib strmiids.lib

Link to these libraries for debug:
freetype2110MT_D.lib libaspell-15-dll.lib dsound.lib PAStaticDSMTd.lib Vfw32.lib lua50MTd.lib wxzlibd.lib wxpngd.lib wxregexud.lib wxbase26ud.lib wxmsw26ud_media.lib wxmsw26ud_core.lib wxmsw26ud_adv.lib comctl32.lib rpcrt4.lib winmm.lib advapi32.lib wsock32.lib strmiids.lib

3. Compile and wait.