コード例 #1
0
ファイル: input.cpp プロジェクト: jazztickets/irrlamb
// Set up joysticks
void _Input::InitializeJoysticks(bool ShowLog) {

	// Check to see if the real device has been made yet
	IrrlichtDevice *Device = irrDevice;
	if(Device == nullptr) {
		SIrrlichtCreationParameters Parameters;
		Parameters.DriverType = video::EDT_NULL;
		Parameters.LoggingLevel = ELL_ERROR;
		Device = createDeviceEx(Parameters);
	}

	// Find joysticks
	if(Device->activateJoysticks(Joysticks) && ShowLog) {
		Log.Write("%d joystick(s) found.", Joysticks.size());

		for(uint32_t i = 0; i < Joysticks.size(); i++) {
			Log.Write("Joystick %d", i);
			Log.Write("\tName: %s", Joysticks[i].Name.c_str());
			Log.Write("\tAxes: %d", Joysticks[i].Axes);
			Log.Write("\tButtons: %d", Joysticks[i].Buttons);

			switch(Joysticks[i].PovHat) {
				case SJoystickInfo::POV_HAT_PRESENT:
					Log.Write("\tHat is present");
				break;
				case SJoystickInfo::POV_HAT_ABSENT:
					Log.Write("\tHat is absent");
				break;
				case SJoystickInfo::POV_HAT_UNKNOWN:
				default:
					Log.Write("\tHat is unknown");
				break;
			}
		}
	}

	// Drop the temporary device
	if(irrDevice == nullptr)
		Device->drop();
}