| 79 | |
| 80 | |
| 81 | int prepare_session (int board_id, const char *json_brainflow_input_params) |
| 82 | { |
| 83 | std::lock_guard<std::mutex> lock (mutex); |
| 84 | |
| 85 | Board::board_logger->info ("incoming json: {}", json_brainflow_input_params); |
| 86 | struct BrainFlowInputParams params; |
| 87 | int res = string_to_brainflow_input_params (json_brainflow_input_params, ¶ms); |
| 88 | if (res != (int)BrainFlowExitCodes::STATUS_OK) |
| 89 | { |
| 90 | return res; |
| 91 | } |
| 92 | |
| 93 | std::pair<int, struct BrainFlowInputParams> key = get_key (board_id, params); |
| 94 | if (boards.find (key) != boards.end ()) |
| 95 | { |
| 96 | Board::board_logger->error ( |
| 97 | "Board with id {} and the same config already exists", board_id); |
| 98 | return (int)BrainFlowExitCodes::ANOTHER_BOARD_IS_CREATED_ERROR; |
| 99 | } |
| 100 | |
| 101 | std::shared_ptr<Board> board = NULL; |
| 102 | switch (static_cast<BoardIds> (board_id)) |
| 103 | { |
| 104 | case BoardIds::PLAYBACK_FILE_BOARD: |
| 105 | board = std::shared_ptr<Board> (new PlaybackFileBoard (params)); |
| 106 | break; |
| 107 | case BoardIds::STREAMING_BOARD: |
| 108 | board = std::shared_ptr<Board> (new StreamingBoard (params)); |
| 109 | break; |
| 110 | case BoardIds::SYNTHETIC_BOARD: |
| 111 | board = std::shared_ptr<Board> (new SyntheticBoard (params)); |
| 112 | break; |
| 113 | case BoardIds::CYTON_BOARD: |
| 114 | board = std::shared_ptr<Board> (new Cyton (params)); |
| 115 | break; |
| 116 | case BoardIds::GANGLION_BOARD: |
| 117 | board = std::shared_ptr<Board> (new Ganglion (params)); |
| 118 | break; |
| 119 | case BoardIds::CYTON_DAISY_BOARD: |
| 120 | board = std::shared_ptr<Board> (new CytonDaisy (params)); |
| 121 | break; |
| 122 | case BoardIds::GALEA_BOARD: |
| 123 | board = std::shared_ptr<Board> (new Galea (params)); |
| 124 | break; |
| 125 | case BoardIds::GANGLION_WIFI_BOARD: |
| 126 | board = std::shared_ptr<Board> (new GanglionWifi (params)); |
| 127 | break; |
| 128 | case BoardIds::CYTON_WIFI_BOARD: |
| 129 | board = std::shared_ptr<Board> (new CytonWifi (params)); |
| 130 | break; |
| 131 | case BoardIds::CYTON_DAISY_WIFI_BOARD: |
| 132 | board = std::shared_ptr<Board> (new CytonDaisyWifi (params)); |
| 133 | break; |
| 134 | case BoardIds::BRAINBIT_BOARD: |
| 135 | board = std::shared_ptr<Board> (new BrainBit (params)); |
| 136 | break; |
| 137 | case BoardIds::UNICORN_BOARD: |
| 138 | board = std::shared_ptr<Board> (new UnicornBoard (params)); |
no test coverage detected