diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2007-08-09 14:57:09 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2007-08-09 14:57:09 +0000 |
commit | 752b4b18ceb73ecf0cc43d76de0b26bd134b2108 (patch) | |
tree | 75afbefc4131ef22f8736e7449e4e30c64aeca27 /libs/surfaces | |
parent | e0b3caa00d4fd4f78fced2efa4b9b92b60d25bab (diff) |
quieten down Powermate control surface discovery
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2280 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces')
-rw-r--r-- | libs/surfaces/powermate/powermate.cc | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/libs/surfaces/powermate/powermate.cc b/libs/surfaces/powermate/powermate.cc index 139313f3f8..cf3aec7cfd 100644 --- a/libs/surfaces/powermate/powermate.cc +++ b/libs/surfaces/powermate/powermate.cc @@ -14,12 +14,15 @@ #include <i18n.h> #include <pbd/xml++.h> +#include <pbd/error.h> +#include <glibmm.h> #include "powermate.h" using namespace ARDOUR; using namespace std; using namespace sigc; +using namespace PBD; #define NUM_VALID_PREFIXES 2 @@ -32,17 +35,22 @@ static const char *valid_prefix[NUM_VALID_PREFIXES] = { int open_powermate(const char *dev, int mode) { + if (!Glib::file_test (dev, Glib::FILE_TEST_EXISTS)) { + return -1; + } int fd = open(dev, mode); int i; char name[255]; if(fd < 0){ - fprintf(stderr, "Unable to open \"%s\": %s\n", dev, strerror(errno)); - return -1; + if (errno != EACCES) { + error << string_compose ("Unable to open \"%1\": %2", dev, strerror(errno)) << endmsg; + } + return -1; } if(ioctl(fd, EVIOCGNAME(sizeof(name)), name) < 0){ - fprintf(stderr, "\"%s\": EVIOCGNAME failed: %s\n", dev, strerror(errno)); + error << string_compose ("\"%1\": EVIOCGNAME failed: %2", dev, strerror(errno)) << endmsg; close(fd); return -1; } @@ -64,10 +72,10 @@ int find_powermate(int mode) for(i=0; i<NUM_EVENT_DEVICES; i++){ sprintf(devname, "/dev/input/event%d", i); r = open_powermate(devname, mode); - if(r >= 0) - return r; + if (r >= 0) { + return r; + } } - return -1; } |