Aegisub/aegisub
Rodrigo Braz Monteiro f64d5341ce A few Linux fixes
Originally committed to SVN as r1095.
2007-04-18 20:24:32 +00:00
..
bitmaps get rid of numbers in bitmap names 2007-04-10 20:46:16 +00:00
boost
build
gl
macosx
posix
win32 Moved stdint.h to win32 to avoid issues with Linux, and removed 2007-04-10 16:16:31 +00:00
Makefile.am Fixed makefile to include two missing cpp files 2007-04-18 19:44:45 +00:00
MatroskaParser.c
MatroskaParser.h
VideoSink.cpp
VideoSink.h
aegisublocale.cpp
aegisublocale.h
ass_attachment.cpp
ass_attachment.h Renamed /core/ to /aegisub/ to avoid issues with unix systems being unable to delete core dumps. 2006-12-28 23:43:23 +00:00
ass_dialogue.cpp
ass_dialogue.h Spell checker dialog is complete. 2007-04-14 15:26:46 +00:00
ass_entry.cpp
ass_entry.h
ass_export_filter.cpp
ass_export_filter.h
ass_exporter.cpp
ass_exporter.h
ass_file.cpp Made middle click on audio display jump video to position, fixed a few uninitialized variable warnings and removed the GetString() method from AssFile, since it was only used by the old libass provider. 2007-04-07 03:12:55 +00:00
ass_file.h Made middle click on audio display jump video to position, fixed a few uninitialized variable warnings and removed the GetString() method from AssFile, since it was only used by the old libass provider. 2007-04-07 03:12:55 +00:00
ass_override.cpp
ass_override.h
ass_style.cpp Several improvements to style editor, but still not 100% done 2007-04-16 23:41:06 +00:00
ass_style.h Several improvements to style editor, but still not 100% done 2007-04-16 23:41:06 +00:00
ass_style_storage.cpp
ass_style_storage.h
ass_time.cpp
ass_time.h
audio_box.cpp get rid of numbers in bitmap names 2007-04-10 20:46:16 +00:00
audio_box.h
audio_display.cpp Fixed drawing of inactive lines in audio display to prevent it from being drawn over selection. 2007-04-13 01:29:05 +00:00
audio_display.h Fixed drawing of inactive lines in audio display to prevent it from being drawn over selection. 2007-04-13 01:29:05 +00:00
audio_karaoke.cpp Fixed karaoke mode + vector drawings crash 2007-04-12 15:02:05 +00:00
audio_karaoke.h
audio_player.cpp
audio_player.h
audio_player_dsound.cpp
audio_player_dsound.h
audio_player_portaudio.cpp
audio_player_portaudio.h
audio_provider.cpp
audio_provider.h
audio_provider_avs.cpp
audio_provider_hd.cpp
audio_provider_hd.h
audio_provider_lavc.cpp
audio_provider_ram.cpp
audio_provider_ram.h
audio_provider_stream.cpp
audio_provider_stream.h
audio_spectrum.cpp
audio_spectrum.h
auto4_auto3.cpp
auto4_auto3.h
auto4_base.cpp
auto4_base.h
auto4_lua.cpp
auto4_lua.h
auto4_lua_assfile.cpp
auto4_lua_dialog.cpp
auto4_ruby.cpp Made middle click on audio display jump video to position, fixed a few uninitialized variable warnings and removed the GetString() method from AssFile, since it was only used by the old libass provider. 2007-04-07 03:12:55 +00:00
auto4_ruby.h
auto4_ruby_assfile.cpp
auto4_ruby_dialog.cpp
avisynth.h
avisynth_wrap.cpp
avisynth_wrap.h
base_grid.cpp Instead of falling back to your local charset, Aegisub will now use the "universalchardet" library (the one used by the Mozilla project) to autodetect the character set of non-Unicode files. 2007-04-08 06:01:41 +00:00
base_grid.h
beautify CSRI helper library; fixup build system while at it 2007-03-31 22:04:57 +00:00
browse_button.cpp A few Linux fixes 2007-04-18 20:24:32 +00:00
browse_button.h Created browse button and added it to several (but not all) places on the options dialog. 2007-04-17 23:00:30 +00:00
changelog.txt Forgot changelog for 1084. >_> 2007-04-17 00:20:26 +00:00
charset_detect.cpp Instead of falling back to your local charset, Aegisub will now use the "universalchardet" library (the one used by the Mozilla project) to autodetect the character set of non-Unicode files. 2007-04-08 06:01:41 +00:00
charset_detect.h Instead of falling back to your local charset, Aegisub will now use the "universalchardet" library (the one used by the Mozilla project) to autodetect the character set of non-Unicode files. 2007-04-08 06:01:41 +00:00
colorspace.cpp
colorspace.h
colour_button.cpp
colour_button.h
dialog_about.cpp
dialog_about.h
dialog_associations.cpp
dialog_associations.h
dialog_attachments.cpp Fixes for building with wx 2.8 without 2.6-compat mode. (Hopefully) more workyness for config dialogs in auto3. 2007-01-22 19:31:49 +00:00
dialog_attachments.h
dialog_automation.cpp
dialog_automation.h
dialog_colorpicker.cpp Colour picker now remembers its last position within the session 2007-04-09 19:26:32 +00:00
dialog_colorpicker.h Colour picker now remembers its last position within the session 2007-04-09 19:26:32 +00:00
dialog_detached_video.cpp
dialog_detached_video.h
dialog_dummy_video.cpp
dialog_dummy_video.h
dialog_export.cpp
dialog_export.h
dialog_fextracker.cpp
dialog_fextracker.h
dialog_fonts_collector.cpp
dialog_fonts_collector.h
dialog_jumpto.cpp Changed order of controls in the jump to dialog, so it defaults to frame instead of time. 2007-04-07 23:50:31 +00:00
dialog_jumpto.h
dialog_kanji_timer.cpp
dialog_kanji_timer.h
dialog_options.cpp Added a "defaults" button to options dialog. 2007-04-18 04:03:22 +00:00
dialog_options.h Added a "defaults" button to options dialog. 2007-04-18 04:03:22 +00:00
dialog_paste_over.cpp
dialog_paste_over.h Renamed /core/ to /aegisub/ to avoid issues with unix systems being unable to delete core dumps. 2006-12-28 23:43:23 +00:00
dialog_progress.cpp
dialog_progress.h
dialog_properties.cpp Added a "Scale Border and Shadow" check box to script properties dialog. 2007-04-09 21:47:59 +00:00
dialog_properties.h Added a "Scale Border and Shadow" check box to script properties dialog. 2007-04-09 21:47:59 +00:00
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_spellchecker.cpp A few Linux fixes 2007-04-18 20:24:32 +00:00
dialog_spellchecker.h Actually completed spell checker dialog. 2007-04-14 16:08:50 +00:00
dialog_splash.cpp
dialog_splash.h
dialog_style_editor.cpp General tweaks 2007-04-18 03:38:48 +00:00
dialog_style_editor.h Styles editor seems totally finished, although it will probably still conflict on temporary subs filename. 2007-04-16 23:59:38 +00:00
dialog_style_manager.cpp Two storages with the same name can no longer be created in the styles manager. 2007-04-08 00:10:42 +00:00
dialog_style_manager.h
dialog_styling_assistant.cpp
dialog_styling_assistant.h
dialog_timing_processor.cpp
dialog_timing_processor.h
dialog_tip.cpp
dialog_tip.h
dialog_translation.cpp
dialog_translation.h
dialog_version_check.cpp
dialog_version_check.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
export_visible_lines.cpp
export_visible_lines.h
factory.h Added multiple subtype support for provider factories, in particular, csri. 2007-04-08 16:33:53 +00:00
fextracker_main_events.cpp
fft.cpp
fft.h
frame_main.cpp Fixed unloading of video. 2007-04-17 01:19:04 +00:00
frame_main.h Merged the hotkeys dialog into the options dialog. 2007-04-11 21:24:31 +00:00
frame_main_events.cpp Fixed autosaving of some file types. 2007-04-18 01:59:50 +00:00
gl_text.cpp Completed (although it could still use some new features) OpenGL Text drawing code, and fully re-implemented video mouse coordinates. 2007-04-13 14:38:27 +00:00
gl_text.h Completed (although it could still use some new features) OpenGL Text drawing code, and fully re-implemented video mouse coordinates. 2007-04-13 14:38:27 +00:00
gl_wrap.cpp Failed attempt to get threaded video to work. 2007-04-13 00:44:46 +00:00
gl_wrap.h Failed attempt to get threaded video to work. 2007-04-13 00:44:46 +00:00
hilimod_textctrl.cpp
hilimod_textctrl.h
hotkeys.cpp
hotkeys.h Merged the hotkeys dialog into the options dialog. 2007-04-11 21:24:31 +00:00
idle_field_event.cpp
idle_field_event.h
kana_table.cpp
kana_table.h
lavc_file.cpp
lavc_file.h
main.cpp Windows debug builds now really shouldn't associate themselves. 2007-04-13 01:54:47 +00:00
main.h
md5.c
md5.h
mkv_wrap.cpp Fixed loading of subtitles from Matroska files. 2007-04-08 21:20:32 +00:00
mkv_wrap.h
mythes.cxx
mythes.hxx
options.cpp Added a "defaults" button to options dialog. 2007-04-18 04:03:22 +00:00
options.h Added a "defaults" button to options dialog. 2007-04-18 04:03:22 +00:00
readme.txt
res.rc get rid of numbers in bitmap names 2007-04-10 20:46:16 +00:00
setup.cpp
setup0.h
spellchecker.cpp
spellchecker.h
spellchecker_hunspell.cpp
spellchecker_hunspell.h
static_bmp.cpp
static_bmp.h
stdwx.cpp
stdwx.h
string_codec.cpp
string_codec.h
subs_edit_box.cpp get rid of numbers in bitmap names 2007-04-10 20:46:16 +00:00
subs_edit_box.h
subs_edit_ctrl.cpp Spell checker dialog is complete. 2007-04-14 15:26:46 +00:00
subs_edit_ctrl.h Spell checker dialog is complete. 2007-04-14 15:26:46 +00:00
subs_grid.cpp Fixed bug with grid scrollbar not updating. 2007-04-13 15:30:57 +00:00
subs_grid.h
subs_preview.cpp Created browse button and added it to several (but not all) places on the options dialog. 2007-04-17 23:00:30 +00:00
subs_preview.h Styles editor seems totally finished, although it will probably still conflict on temporary subs filename. 2007-04-16 23:59:38 +00:00
subtitle_format.cpp
subtitle_format.h
subtitle_format_ass.cpp
subtitle_format_ass.h
subtitle_format_mkv.cpp
subtitle_format_mkv.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
subtitles_provider.cpp Added multiple subtype support for provider factories, in particular, csri. 2007-04-08 16:33:53 +00:00
subtitles_provider.h Allowed using detached subtitles providers on avisynth video provider, and changed the advanced video options in the options dialog to reload the video (so you can immediately see the changes) 2007-04-08 19:27:46 +00:00
subtitles_provider_csri.cpp Fixed memory leak on exception throw in csri. 2007-04-09 16:09:45 +00:00
subtitles_provider_libass.cpp Failed attempt to get threaded video to work. 2007-04-13 00:44:46 +00:00
text_file_reader.cpp A few Linux fixes 2007-04-18 20:24:32 +00:00
text_file_reader.h Made text file reader use iostream on all platforms... this will probably need some testing, though, so old code is only #ifdefed out. 2007-04-13 02:05:38 +00:00
text_file_writer.cpp
text_file_writer.h
thesaurus.cpp
thesaurus.h
thesaurus_myspell.cpp
thesaurus_myspell.h
timeedit_ctrl.cpp
timeedit_ctrl.h
toggle_bitmap.cpp
toggle_bitmap.h
utils.cpp Spell checker dialog is complete. 2007-04-14 15:26:46 +00:00
utils.h Spell checker dialog is complete. 2007-04-14 15:26:46 +00:00
validators.cpp
validators.h
variable_data.cpp
variable_data.h
version.cpp
version.h
vfr.cpp
vfr.h Made middle click on audio display jump video to position, fixed a few uninitialized variable warnings and removed the GetString() method from AssFile, since it was only used by the old libass provider. 2007-04-07 03:12:55 +00:00
vfw_wrap.cpp
vfw_wrap.h
video_box.cpp Removed more dead code. 2007-04-09 04:28:16 +00:00
video_box.h
video_context.cpp Fixed double clicking on video 2007-04-13 20:21:37 +00:00
video_context.h Allowed using detached subtitles providers on avisynth video provider, and changed the advanced video options in the options dialog to reload the video (so you can immediately see the changes) 2007-04-08 19:27:46 +00:00
video_display.cpp Fixed hidden cursor on right click 2007-04-18 04:51:17 +00:00
video_display.h Fixed hidden cursor on right click 2007-04-18 04:51:17 +00:00
video_display_fextracker.cpp
video_display_fextracker.h
video_display_visual.cpp Fixed hidden cursor on right click 2007-04-18 04:51:17 +00:00
video_display_visual.h
video_frame.cpp Fix GetFloat again, I guess. 2007-04-05 22:01:33 +00:00
video_frame.h Moved YV12->RGB32 conversion to video provider, before caching. 2007-04-08 18:12:51 +00:00
video_provider.cpp Moved YV12->RGB32 conversion to video provider, before caching. 2007-04-08 18:12:51 +00:00
video_provider.h Moved YV12->RGB32 conversion to video provider, before caching. 2007-04-08 18:12:51 +00:00
video_provider_avs.cpp Allowed using detached subtitles providers on avisynth video provider, and changed the advanced video options in the options dialog to reload the video (so you can immediately see the changes) 2007-04-08 19:27:46 +00:00
video_provider_dshow.cpp ffmpeg video provider now works as expected, except that it leaks memory. This fix should also help with certain videos being loaded with other providers. Also added some asserts and clean up to video frame class. 2007-03-27 22:29:35 +00:00
video_provider_dummy.cpp
video_provider_dummy.h
video_provider_lavc.cpp
video_slider.cpp
video_slider.h
vsfilter_editor_plugin.h
yatta_wrap.cpp
yatta_wrap.h

readme.txt





           THIS FILE IS OUTDATED, IGNORE IT
           FOR INSTRUCTIONS:
           http://www.malakith.net/aegiwiki/index.php?title=Instructions






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 or 2005 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.8.x (www.wxwidgets.org, 2.8.0 used when this guide was written).
Open build\msw\wx.sln, and set the active configuration to "Unicode Debug". Compile that. After that, set it to
"Unicode Release", and also compile that.

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. Copy setup0.h as setup.h, and edit any possible configurations you might want there. Make sure that you SVN ignore that
file (setup.h), as you are NOT supposed to commit it to the repository.

3. Add all h, cpp and rc files in the "core", "PRS" and "FexTrackerSource" folders to the project.

4. Open the project settings. Add UNICODE to the preprocessor defines, and set the code generation to multi threaded (debug) dll.

5. Set up the build-versioning stuff.

5.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.

5.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.

6. 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 wxmsw28u_adv.lib wxmsw28u_core.lib wxbase28u.lib wxmsw28u_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 wxbase28ud.lib wxmsw28ud_media.lib wxmsw28ud_core.lib wxmsw28ud_adv.lib comctl32.lib rpcrt4.lib winmm.lib advapi32.lib wsock32.lib strmiids.lib

6. Compile and wait.