enumerate all controllers on system
| 1308 | |
| 1309 | // enumerate all controllers on system |
| 1310 | bool gameWinController::enum_controllers(char *remote_adr) { |
| 1311 | const float kNormalizerMouseX = 640.0f; |
| 1312 | const float kNormalizerMouseY = 480.0f; |
| 1313 | const float kNormalizerMouseZ = 100.0f; |
| 1314 | |
| 1315 | int num_devs = 0, dev; |
| 1316 | int i; |
| 1317 | |
| 1318 | for (i = 0; i < CT_MAX_CONTROLLERS; i++) |
| 1319 | m_ControlList[i].id = CTID_INVALID; |
| 1320 | |
| 1321 | // Add keyboard controller |
| 1322 | m_ControlList[num_devs].id = CTID_KEYBOARD; |
| 1323 | m_ControlList[num_devs].buttons = 0; |
| 1324 | m_ControlList[num_devs].flags = 0; |
| 1325 | num_devs++; |
| 1326 | |
| 1327 | // add mouse controller |
| 1328 | int left, top, right, bottom, zmin, zmax; // btns, axes, |
| 1329 | int nbtns, naxis, btnmask; |
| 1330 | ddio_MouseGetLimits(&left, &top, &right, &bottom, &zmin, &zmax); |
| 1331 | btnmask = ddio_MouseGetCaps(&nbtns, &naxis); |
| 1332 | |
| 1333 | // we will try to support a mouse with 3 axis and N_MSEBTNS buttons. |
| 1334 | m_ControlList[num_devs].id = CTID_MOUSE; |
| 1335 | m_ControlList[num_devs].buttons = nbtns; |
| 1336 | m_ControlList[num_devs].flags = CTF_X_AXIS | CTF_Y_AXIS; // | (naxis>=3 ? CTF_Z_AXIS : 0); |
| 1337 | m_ControlList[num_devs].btnmask = btnmask; |
| 1338 | m_ControlList[num_devs].normalizer[0] = kNormalizerMouseX; |
| 1339 | m_ControlList[num_devs].normalizer[1] = kNormalizerMouseY; |
| 1340 | m_ControlList[num_devs].normalizer[2] = kNormalizerMouseZ; |
| 1341 | m_ControlList[num_devs].sens[0] = 1.0f; |
| 1342 | m_ControlList[num_devs].sens[1] = 1.0f; |
| 1343 | m_ControlList[num_devs].sens[2] = 1.0f; |
| 1344 | m_ControlList[num_devs].sensmod[0] = 1.0f; |
| 1345 | m_ControlList[num_devs].sensmod[1] = 1.0f; |
| 1346 | m_ControlList[num_devs].sensmod[2] = 1.0f; |
| 1347 | num_devs++; |
| 1348 | |
| 1349 | // we should initialize multiple controls |
| 1350 | // before doing this, MAKE SURE REMOTE CONTROL SUPPORTS IT. |
| 1351 | for (dev = JOYSTICK_1; dev <= JOYSTICK_8; dev++) { |
| 1352 | tJoyInfo jc; |
| 1353 | |
| 1354 | // check if device is plugged in. |
| 1355 | if (joy_IsValid(dev)) { |
| 1356 | // query the joystick's capabilites to see if joystick is truly valid |
| 1357 | joy_GetJoyInfo((tJoystick)dev, &jc); |
| 1358 | |
| 1359 | m_ControlList[num_devs].id = dev; |
| 1360 | m_ControlList[num_devs].buttons = jc.num_btns; |
| 1361 | m_ControlList[num_devs].btnmask = 0; |
| 1362 | m_ControlList[num_devs].flags = |
| 1363 | CTF_X_AXIS | CTF_Y_AXIS | ((jc.axes_mask & JOYFLAG_ZVALID) ? CTF_Z_AXIS : 0) | |
| 1364 | ((jc.axes_mask & JOYFLAG_RVALID) ? CTF_R_AXIS : 0) | ((jc.axes_mask & JOYFLAG_UVALID) ? CTF_U_AXIS : 0) | |
| 1365 | ((jc.axes_mask & JOYFLAG_VVALID) ? CTF_V_AXIS : 0) | ((jc.axes_mask & JOYFLAG_POVVALID) ? CTF_POV : 0) | |
| 1366 | ((jc.axes_mask & JOYFLAG_POV2VALID) ? CTF_POV2 : 0) | ((jc.axes_mask & JOYFLAG_POV3VALID) ? CTF_POV3 : 0) | |
| 1367 | ((jc.axes_mask & JOYFLAG_POV4VALID) ? CTF_POV4 : 0); |
nothing calls this directly
no test coverage detected