Added [controllerN/configN/buttonmap], ... sections
This commit is contained in:
parent
0012d00ba7
commit
6da095af71
3 changed files with 110 additions and 11 deletions
10
TODO
10
TODO
|
@ -62,14 +62,8 @@ Stuff to do before 0.7.1 release:
|
|||
|
||||
* valgrind before release
|
||||
|
||||
* allow named sections in INI files (start numbering at 0 or 1?):
|
||||
|
||||
[controller1/modifier]
|
||||
[controller1/config1/modifier]
|
||||
[controller2/modifier]
|
||||
[controller2/modifier]
|
||||
[controller3/config1/modifier]
|
||||
[controller3/config2/modifier]
|
||||
* allow named sections in INI files (start numbering at 0 or 1,
|
||||
calibration is missing)
|
||||
|
||||
* check how daemon reacts on suspend
|
||||
- suspending the computer leads to LIBUSB_ERROR_IO, unplugging the
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/format.hpp>
|
||||
#include <boost/tokenizer.hpp>
|
||||
|
||||
#include "evdev_helper.hpp"
|
||||
|
@ -391,6 +392,33 @@ CommandLineParser::init_ini(Options* opts)
|
|||
m_ini.section("calibration", boost::bind(&CommandLineParser::set_calibration, this, _1, _2));
|
||||
m_ini.section("axis-sensitivity", boost::bind(&CommandLineParser::set_axis_sensitivity, this, _1, _2));
|
||||
|
||||
for(int controller = 0; controller <= 9; ++controller)
|
||||
{
|
||||
for(int config = 0; config <= 9; ++config)
|
||||
{
|
||||
m_ini.section((boost::format("controller%d/config%d/modifier") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_modifier_n, this, controller, config, _1, _2));
|
||||
m_ini.section((boost::format("controller%d/config%d/ui-buttonmap") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_ui_buttonmap_n, this, controller, config, _1, _2));
|
||||
m_ini.section((boost::format("controller%d/config%d/ui-axismap") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_ui_axismap_n, this, controller, config, _1, _2));
|
||||
|
||||
m_ini.section((boost::format("controller%d/config%d/buttonmap") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_buttonmap_n, this, controller, config, _1, _2));
|
||||
m_ini.section((boost::format("controller%d/config%d/axismap") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_axismap_n, this, controller, config, _1, _2));
|
||||
|
||||
m_ini.section((boost::format("controller%d/config%d/autofire") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_autofire_n, this, controller, config, _1, _2));
|
||||
m_ini.section((boost::format("controller%d/config%d/relative-axis") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_relative_axis_n, this, controller, config, _1, _2));
|
||||
m_ini.section((boost::format("controller%d/config%d/calibration") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_calibration_n, this, controller, config, _1, _2));
|
||||
m_ini.section((boost::format("controller%d/config%d/axis-sensitivity") % controller % config).str(),
|
||||
boost::bind(&CommandLineParser::set_axis_sensitivity_n, this, controller, config, _1, _2));
|
||||
}
|
||||
}
|
||||
|
||||
m_ini.section("evdev-absmap", boost::bind(&CommandLineParser::set_evdev_absmap, this, _1, _2));
|
||||
m_ini.section("evdev-keymap", boost::bind(&CommandLineParser::set_evdev_keymap, this, _1, _2));
|
||||
}
|
||||
|
@ -1121,4 +1149,67 @@ CommandLineParser::read_alt_config_file(Options* opts, const std::string& filena
|
|||
read_config_file(opts, filename);
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_ui_buttonmap_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.uinput.set_ui_buttonmap(name, value);
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_ui_axismap_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.uinput.set_ui_axismap(name, value);
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_modifier_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.modifier.push_back(ModifierPtr(Modifier::from_string(name, value)));
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_axismap_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.axismap->add(AxisMapping::from_string(name, value));
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_buttonmap_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.buttonmap->add(ButtonMapping::from_string(name, value));
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_relative_axis_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.relative_axis_map[string2axis(name)] = AxisFilterPtr(new RelativeAxisFilter(boost::lexical_cast<int>(value)));
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_autofire_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.autofire_map[string2btn(name)] = ButtonFilterPtr(new AutofireButtonFilter(boost::lexical_cast<int>(value), 0));
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_calibration_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
// FIXME: not implemented
|
||||
assert(!"implement me");
|
||||
}
|
||||
|
||||
void
|
||||
CommandLineParser::set_axis_sensitivity_n(int controller, int config, const std::string& name, const std::string& value)
|
||||
{
|
||||
m_options->controller_slots[controller].get_options(config)
|
||||
.sensitivity_map[string2axis(name)] = AxisFilterPtr(new SensitivityAxisFilter(boost::lexical_cast<float>(value)));
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -53,20 +53,34 @@ private:
|
|||
void set_axismap(const std::string& name, const std::string& value);
|
||||
void set_buttonmap(const std::string& name, const std::string& value);
|
||||
|
||||
void set_evdev_absmap(const std::string& name, const std::string& value);
|
||||
void set_evdev_keymap(const std::string& name, const std::string& value);
|
||||
|
||||
void set_relative_axis(const std::string& name, const std::string& value);
|
||||
void set_autofire(const std::string& name, const std::string& value);
|
||||
void set_calibration(const std::string& name, const std::string& value);
|
||||
void set_axis_sensitivity(const std::string& name, const std::string& value);
|
||||
|
||||
|
||||
void set_ui_buttonmap_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
void set_ui_axismap_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
void set_modifier_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
|
||||
void set_axismap_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
void set_buttonmap_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
|
||||
void set_relative_axis_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
void set_autofire_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
void set_calibration_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
void set_axis_sensitivity_n(int controller, int config, const std::string& name, const std::string& value);
|
||||
|
||||
|
||||
void set_deadzone(const std::string& value);
|
||||
void set_deadzone_trigger(const std::string& value);
|
||||
void set_square_axis();
|
||||
void set_four_way_restrictor();
|
||||
void set_dpad_rotation(const std::string& value);
|
||||
|
||||
void set_evdev_absmap(const std::string& name, const std::string& value);
|
||||
void set_evdev_keymap(const std::string& name, const std::string& value);
|
||||
|
||||
void read_config_file(Options* opts, const std::string& filename);
|
||||
void read_alt_config_file(Options* opts, const std::string& filename);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue