forked from mia/Aegisub
1728f2f523
Originally committed to SVN as r404. |
||
---|---|---|
.. | ||
bitmaps | ||
build | ||
posix | ||
about.cpp | ||
about.h | ||
aegisublocale.cpp | ||
aegisublocale.h | ||
aspell_wrap.cpp | ||
aspell_wrap.h | ||
ass_dialogue.cpp | ||
ass_dialogue.h | ||
ass_entry.cpp | ||
ass_entry.h | ||
ass_export_filter.cpp | ||
ass_export_filter.h | ||
ass_exporter.cpp | ||
ass_exporter.h | ||
ass_file.cpp | ||
ass_file.h | ||
ass_override.cpp | ||
ass_override.h | ||
ass_style.cpp | ||
ass_style.h | ||
ass_style_storage.cpp | ||
ass_style_storage.h | ||
ass_time.cpp | ||
ass_time.h | ||
audio_box.cpp | ||
audio_box.h | ||
audio_display.cpp | ||
audio_display.h | ||
audio_karaoke.cpp | ||
audio_karaoke.h | ||
audio_player.cpp | ||
audio_player.h | ||
audio_player_portaudio.cpp | ||
audio_player_portaudio.h | ||
audio_provider.cpp | ||
audio_provider.h | ||
audio_provider_avs.cpp | ||
audio_provider_avs.h | ||
audio_provider_hd.cpp | ||
audio_provider_hd.h | ||
audio_provider_lavc.cpp | ||
audio_provider_lavc.h | ||
audio_provider_ram.cpp | ||
audio_provider_ram.h | ||
auto4_base.cpp | ||
auto4_base.h | ||
automation.cpp | ||
automation.h | ||
automation_filter.cpp | ||
automation_filter.h | ||
automation_gui.cpp | ||
automation_gui.h | ||
avisynth.h | ||
avisynth_wrap.cpp | ||
avisynth_wrap.h | ||
base_grid.cpp | ||
base_grid.h | ||
changelog.txt | ||
colorspace.cpp | ||
colorspace.h | ||
dialog_associations.cpp | ||
dialog_associations.h | ||
dialog_colorpicker.cpp | ||
dialog_colorpicker.h | ||
dialog_export.cpp | ||
dialog_export.h | ||
dialog_fextracker.cpp | ||
dialog_fextracker.h | ||
dialog_hotkeys.cpp | ||
dialog_hotkeys.h | ||
dialog_jumpto.cpp | ||
dialog_jumpto.h | ||
dialog_progress.cpp | ||
dialog_progress.h | ||
dialog_properties.cpp | ||
dialog_properties.h | ||
dialog_resample.cpp | ||
dialog_resample.h | ||
dialog_search_replace.cpp | ||
dialog_search_replace.h | ||
dialog_selection.cpp | ||
dialog_selection.h | ||
dialog_shift_times.cpp | ||
dialog_shift_times.h | ||
dialog_spellcheck.cpp | ||
dialog_spellcheck.h | ||
dialog_style_editor.cpp | ||
dialog_style_editor.h | ||
dialog_style_manager.cpp | ||
dialog_style_manager.h | ||
dialog_styling_assistant.cpp | ||
dialog_styling_assistant.h | ||
dialog_timing_processor.cpp | ||
dialog_timing_processor.h | ||
dialog_translation.cpp | ||
dialog_translation.h | ||
drop.cpp | ||
drop.h | ||
export_clean_info.cpp | ||
export_clean_info.h | ||
export_fixstyle.cpp | ||
export_fixstyle.h | ||
export_framerate.cpp | ||
export_framerate.h | ||
fextracker_main_events.cpp | ||
fft.cpp | ||
fft.h | ||
fonts_collector.cpp | ||
fonts_collector.h | ||
frame_main.cpp | ||
frame_main.h | ||
frame_main_events.cpp | ||
hilimod_textctrl.cpp | ||
hilimod_textctrl.h | ||
hotkeys.cpp | ||
hotkeys.h | ||
kana_table.cpp | ||
kana_table.h | ||
lavc_file.cpp | ||
lavc_file.h | ||
main.cpp | ||
main.h | ||
Makefile.am | ||
MatroskaParser.c | ||
MatroskaParser.h | ||
md5.c | ||
md5.h | ||
mkv_wrap.cpp | ||
mkv_wrap.h | ||
options.cpp | ||
options.h | ||
readme.txt | ||
res.rc | ||
splash.cpp | ||
splash.h | ||
static_bmp.cpp | ||
static_bmp.h | ||
string_codec.cpp | ||
string_codec.h | ||
subs_edit_box.cpp | ||
subs_edit_box.h | ||
subs_grid.cpp | ||
subs_grid.h | ||
subtitle_format.cpp | ||
subtitle_format.h | ||
subtitle_format_ass.cpp | ||
subtitle_format_ass.h | ||
subtitle_format_prs.cpp | ||
subtitle_format_prs.h | ||
subtitle_format_srt.cpp | ||
subtitle_format_srt.h | ||
subtitle_format_txt.cpp | ||
subtitle_format_txt.h | ||
subtitle_provider.cpp | ||
subtitle_provider.h | ||
subtitle_provider_asa.cpp | ||
text_file_reader.cpp | ||
text_file_reader.h | ||
text_file_writer.cpp | ||
text_file_writer.h | ||
timeedit_ctrl.cpp | ||
timeedit_ctrl.h | ||
tip.cpp | ||
tip.h | ||
todo.txt | ||
toggle_bitmap.cpp | ||
toggle_bitmap.h | ||
utils.cpp | ||
utils.h | ||
validators.cpp | ||
validators.h | ||
variable_data.cpp | ||
variable_data.h | ||
version.cpp | ||
version.h | ||
vfr.cpp | ||
vfr.h | ||
vfw_wrap.cpp | ||
vfw_wrap.h | ||
video_box.cpp | ||
video_box.h | ||
video_display.cpp | ||
video_display.h | ||
video_provider.cpp | ||
video_provider.h | ||
video_provider_avs.cpp | ||
video_provider_avs.h | ||
video_provider_lavc.cpp | ||
video_provider_lavc.h | ||
video_slider.cpp | ||
video_slider.h | ||
video_zoom.cpp | ||
video_zoom.h | ||
yatta_wrap.cpp | ||
yatta_wrap.h |
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 6. Install a Python interpreter if you don't have one already, you will NEED it to run a script during the build process. http://www.python.org/download Building instructions (aegisub): 1. Create a new blank Win32 c++ project in msvc. 2. Add all h, cpp and rc files in the "core", "PRS" and "FexTrackerSource" folders to the project. 3. Open the project settings. Add UNICODE to the preprocessor defines, and set the code generation to multi threaded (debug) dll. 3.1. OPTIONAL - Define NO_SPELLCHECKER if you want to compile without aspell support. 4. Set up the build-versioning stuff. 4.1. Open projects settings and select All Configurations. Go to Build Events, Pre-build Event. Change the Command Line to the following two lines (click "..."): cd $(InputDir)\core\build c:\python24\python.exe make-svn-rev-header.py You'll obviously want to change the path to the Python interpreter. 4.2 Create the file core/build/build-credit.h and add this line to it: #define BUILD_CREDIT "yournick" Of course without indendation and replacing the yournick part. 5. 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 6. Compile and wait.