Programming Reference:BCI2000 Source Code
Version Management
The BCI2000 source code is managed with the help of Subversion, an open-source cross-platform versioning tool widely used in various kinds of projects.
Subversion (SVN) uses the HTTP-based WebDAV protocol, so even web browsers may be used as clients, although a true SVN client software is required to access all features of the versioning system.
Browsing the Source Code Repository Online
Online viewing, and comparison of different versions of all source code files, is possible with a web browser (http://www.bci2000.org/tracproj/browser). (If you get a message about "viewing privileges", click the "login" link at the top right to log in.)
TortoiseSVN Client
For Win32 platforms, we recommend TortoiseSVN, a comfortable-to-use SVN client integrated into the Explorer shell.
"How to---" Pages
The following pages provide detailed instructions on the setup and use of TortoiseSVN:
Directory Layout
The SNV directory layout matches that of the BCI2000 binary distribution:
| batch | batch files for online modules |
|---|---|
| data | online data output |
| doc | information |
| parms | online parameter files |
| prog | online system executables |
| tools | off-line analysis tools |
| src | source code |
Different from the binary distibution, there is a separate directory tree under src. Below src, there should be no end-user executables, compiled LaTeX files, or pdf files converted from editable formats. Rather, their source files should go below src, and their end-user versions go into either prog/doc or the appropriate end-user directory below tools. In all makefiles or project files that are relevant for the binary distribution, the compiled output is directed into the appropriate executable directory (prog or tools/mytool).
Coding Style Guidelines
We maintain a loose set of guidelines/rules that is aimed at readability and maintenance efficiency. These rules are not obligatory but we ask contributors to consider them before handing in their code.