Added string -> id conversion for evdev
This commit is contained in:
parent
08feb93b56
commit
9ac079d79f
4 changed files with 21 additions and 5 deletions
3
NEWS
3
NEWS
|
@ -3,7 +3,8 @@ xboxdrv 0.4 - (25/Dec/2008)
|
||||||
|
|
||||||
* added --square-axis option
|
* added --square-axis option
|
||||||
* added --autofire option
|
* added --autofire option
|
||||||
* added --relative-axis option (i.e. emulate emulthrottle control)
|
* added --relative-axis option (i.e. emulate joystick throttle)
|
||||||
|
* added --ui-buttonmap and --ui-axismap to change uinput events
|
||||||
|
|
||||||
|
|
||||||
xboxdrv 0.3 - (06/Nov/2008)
|
xboxdrv 0.3 - (06/Nov/2008)
|
||||||
|
|
|
@ -10,6 +10,7 @@ env.Program("xboxdrv", ["src/xboxdrv.cpp",
|
||||||
"src/xbox_controller.cpp",
|
"src/xbox_controller.cpp",
|
||||||
"src/xbox360_controller.cpp",
|
"src/xbox360_controller.cpp",
|
||||||
"src/xbox360_wireless_controller.cpp",
|
"src/xbox360_wireless_controller.cpp",
|
||||||
|
"src/evdev_helper.cpp"
|
||||||
])
|
])
|
||||||
|
|
||||||
if True:
|
if True:
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
class Xbox360Msg;
|
class Xbox360Msg;
|
||||||
class Xbox360GuitarMsg;
|
class Xbox360GuitarMsg;
|
||||||
class XboxMsg;
|
class XboxMsg;
|
||||||
|
|
||||||
class uInputCfg
|
class uInputCfg
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <boost/function.hpp>
|
#include <boost/function.hpp>
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#include <ctype.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -35,6 +36,7 @@
|
||||||
#include "xbox360_controller.hpp"
|
#include "xbox360_controller.hpp"
|
||||||
#include "xbox360_wireless_controller.hpp"
|
#include "xbox360_wireless_controller.hpp"
|
||||||
#include "helper.hpp"
|
#include "helper.hpp"
|
||||||
|
#include "evdev_helper.hpp"
|
||||||
#include "command_line_options.hpp"
|
#include "command_line_options.hpp"
|
||||||
#include "xbox_generic_controller.hpp"
|
#include "xbox_generic_controller.hpp"
|
||||||
|
|
||||||
|
@ -137,6 +139,14 @@ void arg2vector(const std::string& str, typename std::vector<C>& lst, Func func)
|
||||||
lst.push_back(func(std::string(start, str.end())));
|
lst.push_back(func(std::string(start, str.end())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool is_number(const std::string& str)
|
||||||
|
{
|
||||||
|
for(std::string::const_iterator i = str.begin(); i != str.end(); ++i)
|
||||||
|
if (!isdigit(*i))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void set_ui_button_map(int* ui_button_map, const std::string& str)
|
void set_ui_button_map(int* ui_button_map, const std::string& str)
|
||||||
{
|
{
|
||||||
std::string::size_type i = str.find_first_of('=');
|
std::string::size_type i = str.find_first_of('=');
|
||||||
|
@ -147,7 +157,9 @@ void set_ui_button_map(int* ui_button_map, const std::string& str)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
XboxButton btn = string2btn(str.substr(0, i));
|
XboxButton btn = string2btn(str.substr(0, i));
|
||||||
int code = boost::lexical_cast<int>(str.substr(i+1, str.size()-i));
|
std::string rhs = str.substr(i+1, str.size()-i);
|
||||||
|
int code = is_number(rhs) ? boost::lexical_cast<int>(rhs) : str2evbtn(rhs);
|
||||||
|
|
||||||
if (btn != XBOX_BTN_UNKNOWN)
|
if (btn != XBOX_BTN_UNKNOWN)
|
||||||
{
|
{
|
||||||
ui_button_map[btn] = code;
|
ui_button_map[btn] = code;
|
||||||
|
@ -169,7 +181,9 @@ void set_ui_axis_map(int* ui_axis_map, const std::string& str)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
XboxAxis axis = string2axis(str.substr(0, i));
|
XboxAxis axis = string2axis(str.substr(0, i));
|
||||||
int code = boost::lexical_cast<int>(str.substr(i+1, str.size()-i));
|
std::string rhs = str.substr(i+1, str.size()-i);
|
||||||
|
int code = is_number(rhs) ? boost::lexical_cast<int>(rhs) : str2evabs(rhs);
|
||||||
|
|
||||||
if (axis != XBOX_AXIS_UNKNOWN)
|
if (axis != XBOX_AXIS_UNKNOWN)
|
||||||
{
|
{
|
||||||
ui_axis_map[axis] = code;
|
ui_axis_map[axis] = code;
|
||||||
|
|
Loading…
Reference in a new issue