|
Building
Getting your development environment setup and building SWS Extension
WindowsThe project files are in MSVC 2008 format. There is also is quite a lot of code that may not work on earlier compiler versions, so use of 2008 is quite recommended. The build environment is setup to be portable. All you need to do is set a Windows environment variable REAPER_DIR equal to the path to your reaper executable. Also set REAPER64_DIR to Reaper x64 if you plan to build/debug in x64. Make sure to generate the API header file from Reaper, too. You should build in the "Test" build mode. This builds with debugging information, no x64, and then in the post-build steps section I copy the resultant reaper_sws.dll to the default Reaper plugin directory 'c:\program files\reaper\plugins\'. Debugging parameters are not saved in the project file (who knows why) so you need to enter the SWS_Extension project properties, go to Debugging, and change the command to $(REAPER_DIR)\reaper.exe manually. I will review submitted code, build, and release the latest build on the http://www.standingwaterstudios.com website within an hour or two, unless I'm sleeping or away. Initial builds are posted to the downloads section here as "prerelease", and then after a community testing period are posted to the main standingwaterstudios.com site. OSXThe project is built using XCode v3.1. Pretty standard XCode project. Use Debug mode for debug, release for universal binary build. There's a post-build script setup to copy the dylib from the sws_osx directory to the ~/Library/Application Support/REAPER/UserPlugins directory. If you want to make an installer, find the tool "pkg-dmg" on the web, put those files in ../osx-install, and run ./sws_osx_installer.sh. You'll most likely want to modify the script for your own use as the script also uploads to my FTP. WDLWDL from Cockos http://www.cockos.com/wdl/ needs to be installed on your system. There are a few mods that are necessary, please patch your WDL install with the file WDL.patch in the root of the SWS codebase. With UNIX/Cygwin an appropriate command is /mywdldir/> patch -p0 -u < ../sws-extension/wdl.patch File structure notes/<development root>/ - A directory of your choosing /<development root>/WDL/ - NEEDED See WDL section above /<development root>/sws-extension/ - Put the content of the source tree here (can name whatever you like) /<development root>/sws-extension/reaper/ - REAPER SDK interface / files /<development root>/sws-extension/reaper/reaper_plugin.h - This file is copyright Cockos and is only included here for convenience. The original location of this file is http://www.reaper.fm/sdk/plugin/plugin.php. I'll keep this file up to date in the source tree. /<development root>/sws-extension/reaper/sws_rpf_wrapper.h - This file wraps the automatically generated file reaper_plugin_functions.h. You need to generate the file by running Reaper's action "API: Write C++ API functions header". Then, if your reaper is in a different directory, you'll need to customize this file to suit. /<development root>/sws-extension/Xenakios/ - Code initially written by Xenakios. These actions contain Xenakios in the action title and are listed in the "Extensions" main menu. /<development root>/sws-extension/Fingers/ - Code contributed by Fingers, namely the Groove Tool and some MIDI actions/utilities. /<development root>/sws-extension/AutoRender/ - Autorending utility, ported from AHK by Shane. /<development root>/sws-extension/SnM/ - Code written by Jeffos. Actions with S&M in the title. /<development root>/sws-extension/Padre/ - Code written by Padre, mostly his LFO generator. /<development root>/sws-extension/ + Color/Console/Freeze/MarkerActions/MarkerList/Snapshots/TrackList/ - These contain code for the SWS functionality with the same name. /<development root>/sws-extension/ObjectState/ - Classes for parsing the text from Reaper's GetObjectState() function. Quite incomplete at the moment! /<development root>/sws-extension/Utility/ - General utility classes /<development root>/sws-extension/Misc/ - General actions written by SWS |
For those who don't have a resource editor: http://www.resedit.net/ can help. Simple, efficient.