Jump to content

Programming Reference:BCI2000 Source Code: Difference between revisions

From BCI2000 Wiki
Mellinger (talk | contribs)
Mellinger (talk | contribs)
No edit summary
Line 15: Line 15:
* [[SVN Client Setup]],
* [[SVN Client Setup]],
* [[Using TortoiseSVN]].
* [[Using TortoiseSVN]].
==Directory Layout==
The SNV directory layout matches that of the BCI2000 binary distribution:
{|border="1" cellspacing="0"
!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 into ''src'', and their end-user versions go into either ''prog'' or the appropriate place 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==
==Coding Style Guidelines==

Revision as of 10:44, 16 March 2007

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 comparing 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

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 into src, and their end-user versions go into either prog or the appropriate place 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.