123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- function JoystickSettingsDlg::onWake(%this)
- {
- %this.updateDevices();
- }
- function JoystickSettingsDlg::closeSettings(%this)
- {
- Canvas.popDialog(%this);
- Canvas.pushDialog(InputMonitorDlg);
- }
- function JoystickSettingsDlg::updateDevices(%this)
- {
- %this-->deviceArray.deleteAllObjects();
- %sdlDevices = 0;
- if (isMethod("SDLInputManager", "numJoysticks"))
- %sdlDevices = SDLInputManager::numJoysticks();
- for (%i = 0; %i < %sdlDevices; %i++)
- {
- %guiCtrl = DevicePrototype.deepClone();
- %this-->deviceArray.addGuiControl(%guiCtrl);
- %guiCtrl.visible = true;
- %guiCtrl.canSave = false;
- %openState = SDLInputManager::getDeviceOpenState(%i);
- if (%openState > 0)
- {
- %torqueInst = SDLInputManager::getTorqueInstFromDevice(%i);
- %stateStr = "Opened as " @ %torqueInst;
- }
- else
- %stateStr = "Closed";
- %guiCtrl->DeviceOpen.setText(%stateStr);
- if (%openState == 2)
- %deviceName = SDLInputManager::ControllerNameForIndex(%i);
- else
- %deviceName = SDLInputManager::JoystickNameForIndex(%i);
- %guiCtrl->DeviceName.setText(%deviceName);
- %guidStr = SDLInputManager::JoystickGetGUID(%i);
- %guiCtrl->DeviceGUID.setText("GUID: " @ %guidStr);
- // Note: all of the device values could be retrieved individually with:
- // SDLInputManager::JoystickNumAxes(%i), SDLInputManager::JoystickNumButtons(%i),
- // SDLInputManager::JoystickNumHats(%i), SDLInputManager::JoystickNumBalls(%i),
- // SDLInputManager::JoystickIsHaptic(%i), SDLInputManager::JoystickPowerLevel(%i)
- //
- %deviceSpecs = SDLInputManager::JoystickGetSpecs(%i);
- %vendorId = SDLInputManager::GetVendor(%i);
- %productId = SDLInputManager::GetProduct(%i);
- %productVersion = SDLInputManager::GetProductVersion(%i);
- %specStr = getField(%deviceSpecs,0) @ " Axes, " @ getField(%deviceSpecs, 1) @ " Buttons, ";
- %specStr = %specStr @ getField(%deviceSpecs, 2) @ " POV Hats, " @ getField(%deviceSpecs, 3) @ " Trackballs, ";
- if (getField(%deviceSpecs, 5))
- %specStr = %specStr @ "Haptic, ";
- %powerLevel = getField(%deviceSpecs, 6);
- if (%powerLevel $= "Wired")
- %specStr = %specStr @ "Wired";
- else
- %specStr = %specStr @ "Battery: " @ %powerLevel;
- %guiCtrl->DeviceSpecs.setText(%specStr);
- %isController = getField(%deviceSpecs, 4);
- %deviceType = getField(%deviceSpecs, 7);
- %details = "Type: " @ %deviceType @ ", Vendor ID: " @ %vendorId;
- %details = %details @ ", Product ID: " @ %productId @ ", Version: " @ %productVersion;
- %guiCtrl->DeviceDetails.setText(%details);
- // Setup Buttons
- if (%openState > 0)
- {
- %guiCtrl->button2.setText("Close Device");
- %guiCtrl->button2.visible = true;
- %guiCtrl->button2.command = "SDLInputManager::closeDevice(" @ %i @ ");";
- if (%openState == 2)
- {
- %guiCtrl->button1.setText("Open as Joystick");
- %guiCtrl->button1.visible = true;
- %guiCtrl->button1.command = "SDLInputManager::openAsJoystick(" @ %i @ ");";
- }
- else
- {
- %guiCtrl->button1.setText("Open as Game Controller");
- %guiCtrl->button1.visible = true;
- %guiCtrl->button1.command = "SDLInputManager::openAsController(" @ %i @ ");";
- }
- }
- else
- {
- %guiCtrl->button1.setText("Open as Joystick");
- %guiCtrl->button1.visible = true;
- %guiCtrl->button1.command = "SDLInputManager::openAsJoystick(" @ %i @ ");";
- %guiCtrl->button2.setText("Open as Game Controller");
- %guiCtrl->button2.visible = true;
- %guiCtrl->button2.command = "SDLInputManager::openAsController(" @ %i @ ");";
- }
- // After the command executes, refresh this device list
- %guiCtrl->button1.command = %guiCtrl->button1.command @ "JoystickSettingsDlg.updateDevices();";
- %guiCtrl->button2.command = %guiCtrl->button2.command @ "JoystickSettingsDlg.updateDevices();";
- }
- }
|