summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-08-09 14:57:09 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-08-09 14:57:09 +0000
commit752b4b18ceb73ecf0cc43d76de0b26bd134b2108 (patch)
tree75afbefc4131ef22f8736e7449e4e30c64aeca27 /libs/surfaces
parente0b3caa00d4fd4f78fced2efa4b9b92b60d25bab (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.cc20
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;
}