#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
-#define err(fmt, ...) fprintf(stderr, "omapsdl: " fmt "\n", ##__VA_ARGS__)
-#define not_supported() fprintf(stderr, "omapsdl: %s not supported\n", __FUNCTION__)
+#define err(fmt, ...) \
+ fprintf(stderr, "omapsdl: " fmt "\n", ##__VA_ARGS__)
+#define err_perror(fmt, ...) do { \
+ fprintf(stderr, "omapsdl: " fmt ": ", ##__VA_ARGS__); \
+ perror(NULL); \
+} while (0)
+#define log(fmt, ...) \
+ fprintf(stdout, "omapsdl: " fmt "\n", ##__VA_ARGS__)
+#define not_supported() \
+ fprintf(stderr, "omapsdl: %s not supported\n", __FUNCTION__)
#if 0
#define trace(fmt, ...) printf(" %s(" fmt ")\n", __FUNCTION__, ##__VA_ARGS__)
#define dbg err
osdl_tslib_fd = ts_fd(osdl_tslib_dev);
osdl_evdev_devs[osdl_evdev_dev_count++] = osdl_tslib_fd;
if (fstat(osdl_tslib_fd, &stat_buf) == -1)
- perror("fstat ts");
+ err_perror("fstat ts");
else
touchscreen_ino = stat_buf.st_ino;
- printf("opened tslib touchscreen\n");
+ log("opened tslib touchscreen");
}
#endif
/* touchscreen check */
if (touchscreen_ino != (dev_t)-1) {
if (fstat(fd, &stat_buf) == -1)
- perror("fstat");
+ err_perror("fstat");
else if (touchscreen_ino == stat_buf.st_ino) {
- printf("skip %s as ts\n", name);
+ log("skip %s as ts", name);
goto skip;
}
}
/* check supported events */
ret = ioctl(fd, EVIOCGBIT(0, sizeof(support)), &support);
if (ret == -1) {
- printf("in_evdev: ioctl failed on %s\n", name);
+ err_perror("in_evdev: ioctl failed on %s", name);
goto skip;
}
ret = ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keybits)), keybits);
if (ret == -1) {
- printf("in_evdev: ioctl failed on %s\n", name);
+ err_perror("in_evdev: ioctl failed on %s", name);
goto skip;
}
osdl_evdev_devs[osdl_evdev_dev_count++] = fd;
ioctl(fd, EVIOCGNAME(sizeof(name)), name);
- printf("in_evdev: found \"%s\" with %d events (type %08x)\n",
+ log("in_evdev: found \"%s\" with %d events (type %08x)",
name, count, support);
continue;
close(fd);
}
- printf("found %d evdev device(s).\n", osdl_evdev_dev_count);
+ log("found %d evdev device(s).", osdl_evdev_dev_count);
}
void omapsdl_input_finish(void)
ret = select(fdmax + 1, &fdset, NULL, NULL, timeout);
if (ret == -1)
{
- perror("in_evdev: select failed");
+ err_perror("in_evdev: select failed");
return -1;
}
else if (ret == 0)
ret = read(fd, &ev, sizeof(ev));
if (ret < (int)sizeof(ev)) {
if (errno != EAGAIN) {
- perror("in_evdev: read failed");
+ err_perror("in_evdev: read failed");
return -1;
}
break;
ret = ioctl(fd, OMAPFB_QUERY_PLANE, &pi);
if (ret != 0) {
- perror("QUERY_PLANE");
+ err_perror("QUERY_PLANE");
return -1;
}
ret = ioctl(fd, OMAPFB_QUERY_MEM, &mi);
if (ret != 0) {
- perror("QUERY_MEM");
+ err_perror("QUERY_MEM");
return -1;
}
pi.enabled = 0;
ret = ioctl(fd, OMAPFB_SETUP_PLANE, &pi);
if (ret != 0)
- perror("SETUP_PLANE");
+ err_perror("SETUP_PLANE");
}
mi.size = mem;
ret = ioctl(fd, OMAPFB_SETUP_MEM, &mi);
if (ret != 0) {
- perror("SETUP_MEM");
+ err_perror("SETUP_MEM");
return -1;
}
ret = ioctl(fd, OMAPFB_SETUP_PLANE, &pi);
if (ret != 0) {
- perror("SETUP_PLANE");
+ err_perror("SETUP_PLANE");
return -1;
}
f = fopen(fname, "r");
if (f == NULL) {
- fprintf(stderr, "open %s: ", fname);
- perror(NULL);
+ err_perror("open %s: ", fname);
return -1;
}
ret = fread(buff, 1, size - 1, f);
fclose(f);
if (ret <= 0) {
- fprintf(stderr, "read %s: ", fname);
- perror(NULL);
+ err_perror("read %s: ", fname);
return -1;
}
fd = open(fbname, O_RDWR);
if (fd == -1) {
- fprintf(stderr, "open %s: ", fbname);
- perror(NULL);
+ err_perror("open %s", fbname);
return -1;
}
ret = ioctl(fd, OMAPFB_QUERY_PLANE, &slayer->pi);
if (ret != 0) {
- perror("QUERY_PLANE");
+ err_perror("QUERY_PLANE");
return -1;
}
ret = ioctl(fd, OMAPFB_QUERY_MEM, &slayer->mi);
if (ret != 0) {
- perror("QUERY_MEM");
+ err_perror("QUERY_MEM");
return -1;
}
* The only way to achieve this seems to be walking some sysfs files.. */
ret = stat(fbname, &status);
if (ret != 0) {
- fprintf(stderr, "can't stat %s: ", fbname);
- perror(NULL);
+ err_perror("can't stat %s", fbname);
return -1;
}
fb_id = minor(status.st_rdev);
snprintf(buff, sizeof(buff), "/sys/class/graphics/fb%d/overlays", fb_id);
f = fopen(buff, "r");
if (f == NULL) {
- fprintf(stderr, "can't open %s, skip screen detection\n", buff);
+ err("can't open %s, skip screen detection", buff);
goto skip_screen;
}
ret = fscanf(f, "%d", &overlay_id);
fclose(f);
if (ret != 1) {
- fprintf(stderr, "can't parse %s, skip screen detection\n", buff);
+ err("can't parse %s, skip screen detection", buff);
goto skip_screen;
}
snprintf(buff, sizeof(buff), "/sys/devices/platform/omapdss/overlay%d/manager", overlay_id);
ret = read_sysfs(buff, screen_name, sizeof(screen_name));
if (ret < 0) {
- fprintf(stderr, "skip screen detection\n");
+ err("skip screen detection");
goto skip_screen;
}
}
if (screen_id < 0) {
- fprintf(stderr, "could not find screen\n");
+ err("could not find screen");
goto skip_screen;
}
snprintf(buff, sizeof(buff), "/sys/devices/platform/omapdss/display%d/timings", screen_id);
f = fopen(buff, "r");
if (f == NULL) {
- fprintf(stderr, "can't open %s, skip screen detection\n", buff);
+ err("can't open %s, skip screen detection", buff);
goto skip_screen;
}
ret = fscanf(f, "%*d,%d/%*d/%*d/%*d,%d/%*d/%*d/%*d", &screen_w, &screen_h);
fclose(f);
if (ret != 2) {
- fprintf(stderr, "can't parse %s (%d), skip screen detection\n", buff, ret);
+ err("can't parse %s (%d), skip screen detection", buff, ret);
goto skip_screen;
}
- printf("detected %dx%d '%s' (%d) screen attached to fb %d and overlay %d\n",
+ log("detected %dx%d '%s' (%d) screen attached to fb %d and overlay %d",
screen_w, screen_h, screen_name, screen_id, fb_id, overlay_id);
skip_screen:
else if (sscanf(tmp, "%dx%d", &w_, &h_) == 2)
w = w_, h = h_;
else
- fprintf(stderr, "layer size specified incorrectly, "
- "should be like 800x480");
+ err("layer size specified incorrectly, "
+ "should be like 800x480");
}
x = screen_w / 2 - w / 2;