return (*(list->creator))(parameters);
}
catch(std::exception & e) {
- std::cerr << "Open " << type << " \"" << key << "\": " << e.what() << std::endl;
+ std::cerr << "Open " << type << " \"" << key << ':' << parameters << "\": " << e.what() << std::endl;
return 0;
}
}
do_throw(
const int error,
const char * name,
- const char * special_file,
+ const char * special_file = 0,
const char * message = 0)
{
std::ostringstream str;
str << "EVDEV ";
- str << '\"' << name << "\" device \"" << special_file
- << "\" set-up error: ";
+ str << "\"evdev:" << name << '\"';
+ if ( special_file )
+ str << " device \"" << special_file << '\"';
+
+ str << " set-up error: ";
if ( message ) {
str << message;
if ( error )
if ( fd < 0 )
do_throw(errno, name, special_file, "open");
+
+ return;
}
}
+ throw std::runtime_error(
+ "No device was found that matched the provided name." \
+ " The device may not be attached," \
+ " or root privileges may be required to access it");
}
EvDev::~EvDev()