| 2289 | } |
| 2290 | |
| 2291 | void MidiController::ConnectDevice() |
| 2292 | { |
| 2293 | mDevice.DisconnectInput(); |
| 2294 | mDevice.DisconnectOutput(); |
| 2295 | ResyncControllerState(); |
| 2296 | |
| 2297 | std::string deviceInName = mControllerList->GetLabel(mControllerIndex); |
| 2298 | std::string deviceOutName = String(deviceInName).replace("Input", "Output").replace("input", "output").replace(" In ", " Out ").toStdString(); |
| 2299 | bool hasOutput = false; |
| 2300 | for (const auto& device : MidiOutput::getAvailableDevices()) |
| 2301 | { |
| 2302 | if (device.name.toStdString() == deviceOutName) |
| 2303 | { |
| 2304 | hasOutput = true; |
| 2305 | break; |
| 2306 | } |
| 2307 | } |
| 2308 | mDeviceIn = deviceInName; |
| 2309 | mDeviceOut = hasOutput ? deviceOutName : ""; |
| 2310 | mModuleSaveData.SetString("devicein", mDeviceIn); |
| 2311 | mModuleSaveData.SetString("deviceout", mDeviceOut); |
| 2312 | |
| 2313 | if (mDeviceIn == "xboxcontroller") |
| 2314 | { |
| 2315 | //TODO_PORT(Ryan) |
| 2316 | |
| 2317 | //Xbox360Controller* xbox = new Xbox360Controller(this); |
| 2318 | //mNonstandardController = xbox; |
| 2319 | } |
| 2320 | else if (mDeviceIn == "keyboard") |
| 2321 | { |
| 2322 | if (dynamic_cast<Monome*>(mNonstandardController) == nullptr) |
| 2323 | { |
| 2324 | QwertyController* qwerty = new QwertyController(this); |
| 2325 | mNonstandardController = qwerty; |
| 2326 | } |
| 2327 | } |
| 2328 | else if (mDeviceIn == "monome") |
| 2329 | { |
| 2330 | if (dynamic_cast<Monome*>(mNonstandardController) == nullptr) |
| 2331 | { |
| 2332 | Monome* monome = new Monome(this); |
| 2333 | monome->UpdateDeviceList(mMonomeDeviceDropdown); |
| 2334 | mNonstandardController = monome; |
| 2335 | } |
| 2336 | } |
| 2337 | else if (mDeviceIn == "osccontroller") |
| 2338 | { |
| 2339 | if (dynamic_cast<OscController*>(mNonstandardController) == nullptr) |
| 2340 | { |
| 2341 | OscController* osc = new OscController(this, "", -1, mOscInPort); |
| 2342 | mNonstandardController = osc; |
| 2343 | } |
| 2344 | } |
| 2345 | else if (mDeviceIn == "midicapturer") |
| 2346 | { |
| 2347 | if (dynamic_cast<MidiCapturerDummyController*>(mNonstandardController) == nullptr) |
| 2348 | { |
nothing calls this directly
no test coverage detected