Jump to content

Programming Reference:BCI2000 Source Code

From BCI2000 Wiki

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.

Howto Pages

Directory Layout

The SVN 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 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.