xboxdrv/uinput.hpp
2008-05-03 00:14:27 +02:00

68 lines
1.6 KiB
C++

/*
** Xbox360 USB Gamepad Userspace Driver
** Copyright (C) 2008 Ingo Ruhnke <grumbel@gmx.de>
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef HEADER_UINPUT_HPP
#define HEADER_UINPUT_HPP
#include "xboxdrv.hpp"
class Xbox360Msg;
class Xbox360GuitarMsg;
class XboxMsg;
class uInputCfg
{
public:
bool trigger_as_button;
bool dpad_as_button;
bool trigger_as_zaxis;
bool dpad_only;
uInputCfg() {
trigger_as_button = false;
dpad_as_button = false;
trigger_as_zaxis = false;
dpad_only = false;
}
};
class uInput
{
private:
int fd;
uInputCfg config;
public:
uInput(GamepadType type, uInputCfg cfg = uInputCfg());
~uInput();
void setup_xbox360_gamepad(GamepadType type);
void setup_xbox360_guitar();
void send(XboxGenericMsg& msg);
void send(Xbox360Msg& msg);
void send(Xbox360GuitarMsg& msg);
void send(XboxMsg& msg);
void send_button(uint16_t code, int32_t value);
void send_axis(uint16_t code, int32_t value);
};
#endif
/* EOF */