Replaced exit(EXIT_FAILURE) with an exception
This commit is contained in:
parent
54db79a889
commit
2893dca152
3 changed files with 63 additions and 73 deletions
|
@ -22,6 +22,8 @@
|
|||
|
||||
#include "helper.hpp"
|
||||
#include "command_line_options.hpp"
|
||||
|
||||
#define RAISE_EXCEPTION(x) static_cast<std::ostringstream&>(std::ostringstream() << x).str()
|
||||
|
||||
CommandLineOptions* command_line_options = 0;
|
||||
|
||||
|
@ -156,14 +158,12 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument in form INT,INT" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument in form INT,INT");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "-q") == 0 ||
|
||||
|
@ -211,21 +211,19 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: unknown type: " << argv[i] << std::endl;
|
||||
std::cout << "Possible types are:" << std::endl;
|
||||
std::cout << " * xbox" << std::endl;
|
||||
std::cout << " * xbox-mat" << std::endl;
|
||||
std::cout << " * xbox360" << std::endl;
|
||||
std::cout << " * xbox360-guitar" << std::endl;
|
||||
std::cout << " * xbox360-wireless" << std::endl;
|
||||
std::cout << " * firestorm" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION("unknown type: " << argv[i] << '\n'
|
||||
<< "Possible types are:\n"
|
||||
<< " * xbox\n"
|
||||
<< " * xbox-mat\n"
|
||||
<< " * xbox360\n"
|
||||
<< " * xbox360-guitar\n"
|
||||
<< " * xbox360-wireless\n"
|
||||
<< " * firestorm\n");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "--force-feedback") == 0)
|
||||
|
@ -241,8 +239,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "-b") == 0 ||
|
||||
|
@ -255,8 +252,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "-a") == 0 ||
|
||||
|
@ -269,8 +265,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "--name") == 0)
|
||||
|
@ -282,8 +277,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "--ui-clear") == 0)
|
||||
|
@ -300,8 +294,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "--ui-buttonmap") == 0)
|
||||
|
@ -313,8 +306,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "-i") == 0 ||
|
||||
|
@ -327,8 +319,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "-w") == 0 ||
|
||||
|
@ -341,8 +332,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "-l") == 0 ||
|
||||
|
@ -363,14 +353,13 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp("--dpad-only", argv[i]) == 0)
|
||||
{
|
||||
if (opts.uinput_config.dpad_as_button)
|
||||
throw std::runtime_error("Can't combine --dpad-as-button with --dpad-only");
|
||||
RAISE_EXCEPTION("Can't combine --dpad-as-button with --dpad-only");
|
||||
|
||||
opts.uinput_config.dpad_only = true;
|
||||
}
|
||||
|
@ -390,8 +379,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an INT argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an INT argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp("--deadzone-trigger", argv[i]) == 0)
|
||||
|
@ -403,16 +391,14 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an INT argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an INT argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp("--trigger-as-button", argv[i]) == 0)
|
||||
{
|
||||
if (opts.uinput_config.trigger_as_zaxis)
|
||||
{
|
||||
std::cout << "Error: Can't combine --trigger-as-button and --trigger-as-zaxis" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION("Can't combine --trigger-as-button and --trigger-as-zaxis");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -428,8 +414,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp("--calibration", argv[i]) == 0)
|
||||
|
@ -441,8 +426,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp("--relative-axis", argv[i]) == 0)
|
||||
|
@ -454,8 +438,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp("--square-axis", argv[i]) == 0)
|
||||
|
@ -466,8 +449,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
{
|
||||
if (opts.uinput_config.trigger_as_button)
|
||||
{
|
||||
std::cout << "Error: Can't combine --trigger-as-button and --trigger-as-zaxis" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION("Can't combine --trigger-as-button and --trigger-as-zaxis");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -493,14 +475,12 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument in form PRODUCT:VENDOR (i.e. 046d:c626)" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument in form PRODUCT:VENDOR (i.e. 046d:c626)");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "--device-by-path") == 0)
|
||||
|
@ -513,28 +493,17 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument in form BUS:DEV (i.e. 006:003)" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument in form BUS:DEV (i.e. 006:003)");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: " << argv[i-1] << " expected an argument" << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION(argv[i-1] << " expected an argument");
|
||||
}
|
||||
}
|
||||
else if (strcmp(argv[i], "--list-supported-devices") == 0)
|
||||
{
|
||||
for(int i = 0; i < xpad_devices_count; ++i)
|
||||
{
|
||||
std::cout << boost::format("%s 0x%04x 0x%04x %s\n")
|
||||
% gamepadtype_to_string(xpad_devices[i].type)
|
||||
% int(xpad_devices[i].idVendor)
|
||||
% int(xpad_devices[i].idProduct)
|
||||
% xpad_devices[i].name;
|
||||
}
|
||||
|
||||
exit(EXIT_FAILURE);
|
||||
opts.mode = RUN_LIST_SUPPORTED_DEVICES;
|
||||
}
|
||||
else if (strcmp(argv[i], "--list-controller") == 0 ||
|
||||
strcmp(argv[i], "-L") == 0)
|
||||
|
@ -557,8 +526,7 @@ CommandLineOptions::parse_args(int argc, char** argv)
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Error: unknown command line option: " << argv[i] << std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
RAISE_EXCEPTION("unknown command line option: " << argv[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,11 @@ class CommandLineOptions
|
|||
public:
|
||||
enum { RUN_DEFAULT,
|
||||
RUN_DAEMON,
|
||||
RUN_LIST_CONTROLLER
|
||||
RUN_LIST_CONTROLLER,
|
||||
RUN_LIST_SUPPORTED_DEVICES,
|
||||
PRINT_VERSION,
|
||||
PRINT_HELP,
|
||||
PRINT_LED_HELP
|
||||
} mode;
|
||||
|
||||
bool verbose;
|
||||
|
|
|
@ -635,10 +635,28 @@ Xboxdrv::main(int argc, char** argv)
|
|||
|
||||
switch(opts.mode)
|
||||
{
|
||||
case CommandLineOptions::RUN_LIST_SUPPORTED_DEVICES:
|
||||
for(int i = 0; i < xpad_devices_count; ++i)
|
||||
{
|
||||
std::cout << boost::format("%s 0x%04x 0x%04x %s\n")
|
||||
% gamepadtype_to_string(xpad_devices[i].type)
|
||||
% int(xpad_devices[i].idVendor)
|
||||
% int(xpad_devices[i].idProduct)
|
||||
% xpad_devices[i].name;
|
||||
}
|
||||
break;
|
||||
|
||||
case CommandLineOptions::PRINT_VERSION:
|
||||
break;
|
||||
|
||||
case CommandLineOptions::PRINT_HELP:
|
||||
break;
|
||||
|
||||
case CommandLineOptions::PRINT_LED_HELP:
|
||||
break;
|
||||
|
||||
case CommandLineOptions::RUN_DEFAULT:
|
||||
{
|
||||
run_main(opts);
|
||||
}
|
||||
run_main(opts);
|
||||
break;
|
||||
|
||||
case CommandLineOptions::RUN_DAEMON:
|
||||
|
@ -668,7 +686,7 @@ Xboxdrv::main(int argc, char** argv)
|
|||
}
|
||||
catch(std::exception& err)
|
||||
{
|
||||
std::cout << "Exception: " << err.what() << std::endl;
|
||||
std::cout << "Error: " << err.what() << std::endl;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue