Breaking change for C++ and C# bindings

  • All methods in C++ binding return C++ objects like std::vector instead int* and std::string instead char*
  • In C++ binding data is represented by BrainFlowArray<double, 2> instead double **
  • Remove Accord as a dependency from C# binding
  • Add get_csp method

C# binding

Before we used Accord as a dependency and used to return Accord objects to the user. Unfortunately Accord is not supported anymore. It was a great project, but its author deprecated it. You can read more about this announcement here. We decided to remove unmaintained dependency, and it is a breaking change. We implemented a subset of Accord functions to work with matrices, but not all of them and they are in another namespace.

C++ binding

We used to return plain C pointers for almost everything, in this version we moved to C++ objects instead. From now on methods like get_eeg_channels return std::vector, methods like get_device_name return std::string.

The most important change here is a BrainFlowArray class. It is inspired by Numpy and stores NDArray as a continuous memory chunk in row major order. Before this change we used double **, it was much harder to use and prevented us to implement some performance optimizations.

Feel free to check Docs Page to learn more about API changes and updated samples.