From: <man...@us...> - 2013-12-11 17:33:10
|
Revision: 3447 http://sourceforge.net/p/modplug/code/3447 Author: manxorist Date: 2013-12-11 17:32:53 +0000 (Wed, 11 Dec 2013) Log Message: ----------- [Var] Reformat README with doxygen-compatible markdown syntax and rename README to README.md. [Imp] libopenmpt doc: Include README.md in doxygen. Modified Paths: -------------- trunk/OpenMPT/libopenmpt/Doxyfile Added Paths: ----------- trunk/OpenMPT/README.md Removed Paths: ------------- trunk/OpenMPT/README Deleted: trunk/OpenMPT/README =================================================================== --- trunk/OpenMPT/README 2013-12-11 17:31:02 UTC (rev 3446) +++ trunk/OpenMPT/README 2013-12-11 17:32:53 UTC (rev 3447) @@ -1,129 +0,0 @@ - -How to compile OpenMPT: - -- Visual Studio 2008/2010 is required. Express versions won't work as they - don't include MFC. -- The VST 2.4 and ASIO SDKs are needed for compiling with VST and ASIO - support. - If you don't want this, uncomment #define NO_VST and #define NO_ASIO in the - file common/BuildSettings.h. - - ASIO: - If you don't use #define NO_ASIO, you will need to put the ASIO SDK in the - "include/ASIOSDK2" folder. The top level directory of the SDK is already - named "ASIOSDK2", so simply move that directory in the include folder. - Please visit http://www.steinberg.net/en/company/developer.html - to download the SDK. - - VST: - If you don't use #define NO_VST, you will need to put the VST 2.4 SDK in - the "include/vstsdk2.4" folder. - Please visit http://www.steinberg.net/en/company/developer.html - to download the SDK. - If you need further help with the VST and ASIO SDKs, get in touch with the - main developers. -- You need the DirectX SDK to enable DirectSound output. If you don't want - this, uncomment #define NO_DSOUND in the file common/BuildSettings.h. -- To compile the project, open mptrack/MPTRACK_08.SLN (if you're using VS2008) - or mptrack/MPTRACK_10.SLN (VS2010) and hit the compile button! :) - - - -How to compile libopenmpt and openmpt123: - -- Visual Studio 2010 (express version should work, but this is not tested): - - The libopenmpt solution is in libopenmpt/libopenmpt.sln. - You will need the Winamp 5 SDK and the xmplay SDK if you want to compile - the plugins for these 2 players: - - Winamp 5 SDK: - To build libopenmpt as a winamp input plugin, copy the headers in - Winamp/ from WA5.55_SDK.exe to include/winamp/. - Please visit http://wiki.winamp.com/wiki/Plug-in_Developer to download - the SDK. - You can disable in_openmpt in the solution configuration. - - xmplay SDK: - To build libopenmpt with xmplay input plugin support, copy the contents - of xmp-sdk.zip into include/xmplay/. - Please visit http://www.un4seen.com/xmplay.html to download to SDK. - You can disable xmp-openmpt in the solution configuration. - - The openmpt123 solution is in openmpt123/openmpt123.sln. -- Makefile - The makefile supports different build environments and targets via the - CONFIG= parameter directly to the make invocation. - Use 'make CONFIG=$newconfig clean' when switching between different configs - because the makefile cleans only intermediates and target that are active - for the current config and no configuration state is kept around across - invocations. - - mingw-w64: - The required version should be at least 4.4. Only 4.6 and up are tested. - - make CONFIG=mingw64-win32 - - make CONFIG=mingw64-win64 - depending on whether you want win32 or win64 builds. - - gcc or clang (on unix, including Mac OS X with MacPorts): - The minimum required compiler versions are: - - gcc 4.4 - - clang 3.0 - The Makefile requires pkg-config for native unix builds. - For sound output in openmpt123, PortAudio or SDL is required. - openmpt123 can optionally use libflac, libwavpack and libsndfile to render - PCM files to disk. - When using gcc, you should simply do: - - make - When using clang, it is recommended to do: - - make CONFIG=clang - The Makefile supports some customizations. You might want to read the top - which should get you some possible make settings, like e.g. make DYNLINK=0 - or similar. Cross compiling or different compiler would best be implemented - via new Makefile.config.* files. - - - -Coding conventions (see below for an example): - -* Functions / methods are "underlined" (The "//------" comment, see below for - an example what it should look like). -* Place curly braces at the beginning of the line, not at the end -* Generally make use of the custom index types like SAMPLEINDEX or ORDERINDEX - when referring to samples, orders, etc. -* When changing playback behaviour, make sure that you use the function - CSoundFile::IsCompatibleMode() so that modules made with previous versions - of MPT still sound correct (if the change is extremely small, this might be - unnecessary) -* CamelCase function and variable names are preferred. - -Code example: - -void Foo::Bar(int foobar) -//----------------------- -{ - while(true) - { - // some code - } -} - - - -A few words from the readme of the original MPT 1.16 source drop by Olivier: - -The sound library was originally written to support VOC/WAV and MOD files under -DOS, and supported such things as PC-Speaker, SoundBlaster 1/2/Pro, and the -famous Gravis UltraSound. -It was then ported to Win32 in 1995 (through the Mod95 project, mostly for use -within Render32). -What does this mean? -It means the code base is quite old and is showing its age (over 10 years now) -It means that many things are poorly named (CSoundFile), and not very clean, and -if I was to rewrite the engine today, it would look much different. - -Some tips for future development and cleanup: -- Probably the main improvement would be to separate the Song, Channel, Mixer -and Low-level mixing routines in separate interface-based classes. -- Get rid of globals (many globals creeped up over time, mostly because of the -hack to allow simultaneous playback of 2 songs in Modplug Player -> ReadMix()). -This is a major problem for writing a DShow source filter, or any other COM -object (A DShow source would allow playback of MOD files in WMP, which would be -much easier than rewriting a different player). -- The MPT UI code is MFC-based, and I would say is fairly clean (as a rough -rule, the more recent the code is, the cleaner it is), though the UI code is -tightly integrated with the implementation (this could make it somewhat more -difficult to implement such things as a skin-based UI - but hey, if it was easy, -I probably would have done it already :). Copied: trunk/OpenMPT/README.md (from rev 3444, trunk/OpenMPT/README) =================================================================== --- trunk/OpenMPT/README.md (rev 0) +++ trunk/OpenMPT/README.md 2013-12-11 17:32:53 UTC (rev 3447) @@ -0,0 +1,184 @@ + +README +====== + +OpenMPT and libopenmpt +====================== + + +How to compile +-------------- + + +### OpenMPT + + - Visual Studio 2008/2010 is required. Express versions won't work as they + don't include MFC. + + - The VST 2.4 and ASIO SDKs are needed for compiling with VST and ASIO + support. + + If you don't want this, uncomment `#define NO_VST` and `#define NO_ASIO` in + the file `common/BuildSettings.h`. + + - ASIO: + + If you don't use `#define NO_ASIO`, you will need to put the ASIO SDK + in the `include/ASIOSDK2` folder. The top level directory of the SDK is + already named `ASIOSDK2`, so simply move that directory in the include + folder. + + Please visit + [steinberg.net](http://www.steinberg.net/en/company/developer.html) to + download the SDK. + + - VST: + + If you don't use `#define NO_VST`, you will need to put the VST 2.4 SDK + in the `include/vstsdk2.4` folder. + + Please visit + [steinberg.net](http://www.steinberg.net/en/company/developer.html) to + download the SDK. + + If you need further help with the VST and ASIO SDKs, get in touch with the + main developers. + + - You need the DirectX SDK to enable DirectSound output. If you don't want + this, uncomment `#define NO_DSOUND` in the file `common/BuildSettings.h`. + + - To compile the project, open `mptrack/MPTRACK_08.SLN` (if you're using + VS2008) or `mptrack/MPTRACK_10.SLN` (VS2010) and hit the compile button! :) + + +### libopenmpt and openmpt123 + + - Visual Studio 2010 (express version should work, but this is not tested): + + - The libopenmpt solution is in `libopenmpt/libopenmpt.sln`. + You will need the Winamp 5 SDK and the xmplay SDK if you want to + compile the plugins for these 2 players: + + - Winamp 5 SDK: + + To build libopenmpt as a winamp input plugin, copy the headers in + Winamp/ from `WA5.55_SDK.exe` to include/winamp/. + + Please visit + [winamp.com](http://wiki.winamp.com/wiki/Plug-in_Developer) to + download the SDK. + You can disable in_openmpt in the solution configuration. + + - xmplay SDK: + + To build libopenmpt with xmplay input plugin support, copy the + contents of xmp-sdk.zip into include/xmplay/. + + Please visit [un4seen.com](http://www.un4seen.com/xmplay.html) to + download to SDK. + You can disable xmp-openmpt in the solution configuration. + + - The openmpt123 solution is in `openmpt123/openmpt123.sln`. + + - Makefile + + The makefile supports different build environments and targets via the + `CONFIG=` parameter directly to the make invocation. + Use 'make CONFIG=$newconfig clean' when switching between different configs + because the makefile cleans only intermediates and target that are active + for the current config and no configuration state is kept around across + invocations. + + - mingw-w64: + + The required version should be at least 4.4. Only 4.6 and up are + tested. + + make CONFIG=mingw64-win32 # for win32 + + make CONFIG=mingw64-win64 # for win64 + + - gcc or clang (on unix, including Mac OS X with MacPorts): + + The minimum required compiler versions are: + + - gcc 4.4 + + - clang 3.0 + + The Makefile requires pkg-config for native unix builds. + For sound output in openmpt123, PortAudio or SDL is required. + openmpt123 can optionally use libflac, libwavpack and libsndfile to + render PCM files to disk. + When using gcc, you should simply do: + + make + + When using clang, it is recommended to do: + + make CONFIG=clang + + The `Makefile` supports some customizations. You might want to read the top + which should get you some possible make settings, like e.g. + `make DYNLINK=0` or similar. Cross compiling or different compiler would + best be implemented via new `Makefile.config.*` files. + + + +Coding conventions +------------------ + +(see below for an example) + +- Functions / methods are "underlined" (The `//------` comment, see below for + an example what it should look like). +- Place curly braces at the beginning of the line, not at the end +- Generally make use of the custom index types like `SAMPLEINDEX` or + `ORDERINDEX` when referring to samples, orders, etc. +- When changing playback behaviour, make sure that you use the function + `CSoundFile::IsCompatibleMode()` so that modules made with previous versions + of MPT still sound correct (if the change is extremely small, this might be + unnecessary) +- `CamelCase` function and variable names are preferred. + +### Code example + + void Foo::Bar(int foobar) + //----------------------- + { + while(true) + { + // some code + } + } + + + +A few words from the readme of the original MPT 1.16 source drop by Olivier +--------------------------------------------------------------------------- + +> The sound library was originally written to support VOC/WAV and MOD files under +> DOS, and supported such things as PC-Speaker, SoundBlaster 1/2/Pro, and the +> famous Gravis UltraSound. +> +> It was then ported to Win32 in 1995 (through the Mod95 project, mostly for use +> within Render32). +> +> What does this mean? +> It means the code base is quite old and is showing its age (over 10 years now) +> It means that many things are poorly named (CSoundFile), and not very clean, and +> if I was to rewrite the engine today, it would look much different. +> +> Some tips for future development and cleanup: +> - Probably the main improvement would be to separate the Song, Channel, Mixer +> and Low-level mixing routines in separate interface-based classes. +> - Get rid of globals (many globals creeped up over time, mostly because of the +> hack to allow simultaneous playback of 2 songs in Modplug Player -> ReadMix()). +> This is a major problem for writing a DShow source filter, or any other COM +> object (A DShow source would allow playback of MOD files in WMP, which would be +> much easier than rewriting a different player). +> - The MPT UI code is MFC-based, and I would say is fairly clean (as a rough +> rule, the more recent the code is, the cleaner it is), though the UI code is +> tightly integrated with the implementation (this could make it somewhat more +> difficult to implement such things as a skin-based UI - but hey, if it was easy, +> I probably would have done it already :). Modified: trunk/OpenMPT/libopenmpt/Doxyfile =================================================================== --- trunk/OpenMPT/libopenmpt/Doxyfile 2013-12-11 17:31:02 UTC (rev 3446) +++ trunk/OpenMPT/libopenmpt/Doxyfile 2013-12-11 17:32:53 UTC (rev 3447) @@ -735,6 +735,7 @@ INPUT = \ libopenmpt/dox/index.dox \ + README.md \ libopenmpt/dox/dependencies.md \ libopenmpt/dox/tests.md \ libopenmpt/libopenmpt.hpp \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |