From 876fa1c02cb30e92704c2853646bc288f36bace7 Mon Sep 17 00:00:00 2001 From: bruceperens Date: Fri, 18 Apr 2014 17:15:33 +0000 Subject: [PATCH] Build evdev, add button capabilities mask. git-svn-id: https://svn.code.sf.net/p/freetel/code@1504 01035d8c-6547-0410-b346-abe4f91aad63 --- freedv-server/CMakeLists.txt | 2 ++ freedv-server/source/platform/linux/evdev.cpp | 5 +++++ freedv-server/source/platform/linux/evdev.h | 1 + 3 files changed, 8 insertions(+) diff --git a/freedv-server/CMakeLists.txt b/freedv-server/CMakeLists.txt index 6d2a9ce2..bbaf7f37 100644 --- a/freedv-server/CMakeLists.txt +++ b/freedv-server/CMakeLists.txt @@ -97,6 +97,8 @@ set(Compile.linux.sources source/platform/linux/alsa.cpp source/platform/linux/audio_out_alsa.cpp source/platform/linux/audio_in_alsa.cpp + source/platform/linux/evdev.cpp + source/platform/linux/ptt_evdev.cpp ) set(Compile.linux.libraries diff --git a/freedv-server/source/platform/linux/evdev.cpp b/freedv-server/source/platform/linux/evdev.cpp index 1ff4e0f5..a68c42a4 100644 --- a/freedv-server/source/platform/linux/evdev.cpp +++ b/freedv-server/source/platform/linux/evdev.cpp @@ -107,6 +107,11 @@ namespace FreeDV { device.name = strdup(str.str().c_str()); + if ( test_bit(EV_KEY, device.event_types) == 0 + || ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(device.buttons)), device.buttons) + < 0 ) + memset(device.buttons, 0, sizeof(device.buttons)); + return true; } diff --git a/freedv-server/source/platform/linux/evdev.h b/freedv-server/source/platform/linux/evdev.h index ade529d6..bbf74b0e 100644 --- a/freedv-server/source/platform/linux/evdev.h +++ b/freedv-server/source/platform/linux/evdev.h @@ -15,6 +15,7 @@ namespace FreeDV { char * special_file; char * name; uint8_t event_types[(EV_MAX + 7) / 8]; + uint8_t buttons[(KEY_MAX + 7) / 8]; }; private: -- 2.25.1