Exemplo n.º 1
0
	void add_rawinput_device(running_machine& machine, RAWINPUTDEVICELIST * device) override
	{

		// make sure this is a mouse
		if (device->dwType != RIM_TYPEMOUSE)
			return;

		// allocate and link in a new device
		rawinput_lightgun_device *devinfo = create_rawinput_device<rawinput_lightgun_device>(machine, device);
		if (devinfo == nullptr)
			return;

		// populate the axes
		for (int axisnum = 0; axisnum < 3; axisnum++)
		{
			devinfo->device()->add_item(
				default_axis_name[axisnum],
				static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum),
				generic_axis_get_state<LONG>,
				&devinfo->lightgun.lX + axisnum);
		}

		// populate the buttons
		for (int butnum = 0; butnum < 5; butnum++)
		{
			devinfo->device()->add_item(
				default_button_name(butnum),
				static_cast<input_item_id>(ITEM_ID_BUTTON1 + butnum),
				generic_button_get_state<BYTE>,
				&devinfo->lightgun.rgbButtons[butnum]);
		}
	}
Exemplo n.º 2
0
	virtual void input_init(running_machine &machine) override
	{
		win32_mouse_device *devinfo;
		int axisnum, butnum;

		if (!input_enabled() || !mouse_enabled())
			return;

		// allocate a device
		devinfo = devicelist()->create_device<win32_mouse_device>(machine, "Win32 Mouse 1", *this);
		if (devinfo == nullptr)
			return;

		// populate the axes
		for (axisnum = 0; axisnum < 2; axisnum++)
		{
			devinfo->device()->add_item(
				default_axis_name[axisnum],
				static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum),
				generic_axis_get_state<LONG>,
				&devinfo->mouse.lX + axisnum);
		}

		// populate the buttons
		for (butnum = 0; butnum < 2; butnum++)
		{
			devinfo->device()->add_item(
				default_button_name(butnum),
				static_cast<input_item_id>(ITEM_ID_BUTTON1 + butnum),
				generic_button_get_state<BYTE>,
				&devinfo->mouse.rgbButtons[butnum]);
		}
	}
Exemplo n.º 3
0
	void add_lightgun_buttons(XAnyClassPtr first_info_class, int num_classes, x11_lightgun_device *devinfo)
	{
		XAnyClassPtr any = first_info_class;

		for (int i = 0; i < num_classes; i++)
		{
			switch (any->c_class)
			{
			case ButtonClass:
				XButtonInfoPtr b = (XButtonInfoPtr)any;
				for (int button = 0; button < b->num_buttons; button++)
				{
                    input_item_id itemid = (input_item_id)(ITEM_ID_BUTTON1 + button);
					devinfo->device()->add_item(default_button_name(button), itemid, generic_button_get_state, &devinfo->lightgun.buttons[button]);
				}
				break;
			}

			any = (XAnyClassPtr)((char *)any + any->length);
		}
	}
Exemplo n.º 4
0
	virtual void input_init(running_machine &machine) override
	{
		int max_guns = downcast<windows_options&>(machine.options()).dual_lightgun() ? 2 : 1;

		// allocate the lightgun devices
		for (int gunnum = 0; gunnum < max_guns; gunnum++)
		{
			static const char *const gun_names[] = { "Win32 Gun 1", "Win32 Gun 2" };
			win32_lightgun_device *devinfo;
			int axisnum, butnum;

			// allocate a device
			devinfo = devicelist()->create_device<win32_lightgun_device>(machine, gun_names[gunnum], *this);
			if (devinfo == nullptr)
				break;

			// populate the axes
			for (axisnum = 0; axisnum < 2; axisnum++)
			{
				devinfo->device()->add_item(
					default_axis_name[axisnum],
					static_cast<input_item_id>(ITEM_ID_XAXIS + axisnum),
					generic_axis_get_state<LONG>,
					&devinfo->mouse.lX + axisnum);
			}

			// populate the buttons
			for (butnum = 0; butnum < 2; butnum++)
			{
				devinfo->device()->add_item(
					default_button_name(butnum),
					static_cast<input_item_id>(ITEM_ID_BUTTON1 + butnum),
					generic_button_get_state<BYTE>,
					&devinfo->mouse.rgbButtons[butnum]);
			}
		}
	}