About | News | Download | Support | How to contribute | Developer Resources | Project page | Credits |
Introduction
The purpose of this document is a work in progress to decide upon coding standards for the ZynAddSubFX codebase. (This information is pretty stale and needs to be updated. If you're interested in helping update the website content please stop by the irc channel #zynaddsubfx on irc.libera.chat)
The Code
For quickly checking out the current git repository:
git clone git://git.code.sf.net/p/zynaddsubfx/code zynaddsubfx
The master branch contains what will become the next release.
You can also browse the code directly with gitweb
The Tools
The tools that are currently standard with ZynAddSubFX:
- FLTK 1.x.x - For the GUI
- Asciidoc - For user level documentation
- Doxygen - For code level documentation
- mxml - For saving the data for instruments/settings
- FFTW - For the needed mathematics that cmath does not provide
The Style
In order to keep the code organized and more tidy a uniform style is declared:
Whitespace
The standing convention is four spaces per indentation and NO TABs
Doxygen
Doxygen should be used within the header files to document the classes in ZynAddSubFX. The Java style of comments will be used for documenting classes. ie. :
/**
*The Function that creates all of those bars
*
*This function creates the bars used by the something
*objects after processing them with the given data.
*@param name the name of the resulting bar
*@param time the time before bar's expiration
*@return An Iron bar with the given name and time
*/
Bar getBar(const string &name,const timeClass &time);
When the documentation is updated, it should be made available online at this location using the Doxyfile provided in the cvs checkout
const
const can be used to clarify if a variable should remain constant for the life of an object. const can also be used in conjunction with `&' to avoid unnecessary copying in function
Ordering
Methods should be defined in the same order that they are defined in the header files.