Programming Reference:Filter DLLs
Description
When developing a BCI2000 signal processing filter in C++, it may be useful to compile it into a DLL in addition to adding it to a signal processing module, especially if you are going to test it using the BCI2000Analysis tool. This tool has the standard set of filters built-in but new filters may not easily be added: one would need to add the filter's source file to the tool's CMakeLists.txt, and manually add code that instantiates the new filter and adds it to the filter graph as required.
As a solution to this problem, a simple filter DLL interface has been designed that allows to compile filters independently of the BCI2000Analysis tool. As a restriction, it is necessary to build both BCI2000Analysis and filter DLLs with the same compiler, compiler settings, and version. Also, a debug version of BCI2000Analysis may only use filter DLLs that have been compiled in debug mode, and the same applies for release mode builds.
To be able to deal with mismatches in compiler and build settings without crashing, the filter DLL interface contains text-based information functions that allow a host process to obtain the relevant information in a safe manner.