summaryrefslogtreecommitdiff
path: root/src/in_evdev.c
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2011-12-20 14:37:44 +0400
committerAndrey Nazarov <skuller@skuller.net>2012-04-03 01:25:47 +0400
commitb3e271a53de2610de173f9b2bda5d15dd4d78909 (patch)
treed567b91dadac42e168bcb13db5fe93ffbc7e1533 /src/in_evdev.c
parentca4a019a74b11aa21fea2a03c6dff3b183463aab (diff)
Massive coding style change.
Use linux style brackets. Pad operators with spaces. Unpad parenthesis, except for ‘if’, ‘for’, ‘while’ constructs.
Diffstat (limited to 'src/in_evdev.c')
-rw-r--r--src/in_evdev.c243
1 files changed, 127 insertions, 116 deletions
diff --git a/src/in_evdev.c b/src/in_evdev.c
index 5d38503..8013f1b 100644
--- a/src/in_evdev.c
+++ b/src/in_evdev.c
@@ -8,7 +8,7 @@ of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
@@ -40,10 +40,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <libudev.h>
#endif
-#define FOR_EACH_EVDEV( dev ) \
- LIST_FOR_EACH( evdev_t, dev, &evdev.devices, entry )
-#define FOR_EACH_EVDEV_SAFE( dev, next ) \
- LIST_FOR_EACH_SAFE( evdev_t, dev, next, &evdev.devices, entry )
+#define FOR_EACH_EVDEV(dev) \
+ LIST_FOR_EACH(evdev_t, dev, &evdev.devices, entry)
+#define FOR_EACH_EVDEV_SAFE(dev, next) \
+ LIST_FOR_EACH_SAFE(evdev_t, dev, next, &evdev.devices, entry)
typedef struct {
list_t entry;
@@ -59,75 +59,77 @@ static struct {
} evdev;
#define MAX_EVENTS 64
-#define EVENT_SIZE sizeof( struct input_event )
-
-static void evdev_remove( evdev_t *dev ) {
- IO_Remove( dev->fd );
- close( dev->fd );
- List_Remove( &dev->entry );
- Z_Free( dev );
+#define EVENT_SIZE sizeof(struct input_event)
+
+static void evdev_remove(evdev_t *dev)
+{
+ IO_Remove(dev->fd);
+ close(dev->fd);
+ List_Remove(&dev->entry);
+ Z_Free(dev);
}
-static void evdev_read( evdev_t *dev ) {
+static void evdev_read(evdev_t *dev)
+{
struct input_event ev[MAX_EVENTS];
ssize_t bytes;
size_t i, count;
unsigned button, time;
#if 0
- if( !dev->io->canread ) {
+ if (!dev->io->canread) {
return;
}
#endif
- bytes = read( dev->fd, ev, EVENT_SIZE * MAX_EVENTS );
- if( bytes == -1 ) {
- if( errno == EAGAIN || errno == EINTR ) {
+ bytes = read(dev->fd, ev, EVENT_SIZE * MAX_EVENTS);
+ if (bytes == -1) {
+ if (errno == EAGAIN || errno == EINTR) {
return;
}
- Com_EPrintf( "Couldn't read event: %s\n", strerror( errno ) );
- evdev_remove( dev );
+ Com_EPrintf("Couldn't read event: %s\n", strerror(errno));
+ evdev_remove(dev);
return;
}
- if( bytes < EVENT_SIZE ) {
+ if (bytes < EVENT_SIZE) {
return; // should not happen
}
count = bytes / EVENT_SIZE;
- for( i = 0 ; i < count; i++ ) {
+ for (i = 0; i < count; i++) {
time = ev[i].time.tv_sec * 1000 + ev[i].time.tv_usec / 1000;
- switch( ev[i].type ) {
+ switch (ev[i].type) {
case EV_KEY:
- if( ev[i].code >= BTN_MOUSE && ev[i].code < BTN_MOUSE + 8 ) {
+ if (ev[i].code >= BTN_MOUSE && ev[i].code < BTN_MOUSE + 8) {
button = K_MOUSE1 + ev[i].code - BTN_MOUSE;
- Key_Event( button, !!ev[i].value, time );
+ Key_Event(button, !!ev[i].value, time);
}
break;
- case EV_REL:
- switch( ev[i].code ) {
- case REL_X:
- evdev.dx += ( int )ev[i].value;
- break;
- case REL_Y:
- evdev.dy += ( int )ev[i].value;
- break;
- case REL_WHEEL:
- if( ( int )ev[i].value == 1 ) {
- Key_Event( K_MWHEELUP, qtrue, time );
- Key_Event( K_MWHEELUP, qfalse, time );
- } else if( ( int )ev[i].value == -1 ) {
- Key_Event( K_MWHEELDOWN, qtrue, time );
- Key_Event( K_MWHEELDOWN, qfalse, time );
+ case EV_REL:
+ switch (ev[i].code) {
+ case REL_X:
+ evdev.dx += (int)ev[i].value;
+ break;
+ case REL_Y:
+ evdev.dy += (int)ev[i].value;
+ break;
+ case REL_WHEEL:
+ if ((int)ev[i].value == 1) {
+ Key_Event(K_MWHEELUP, qtrue, time);
+ Key_Event(K_MWHEELUP, qfalse, time);
+ } else if ((int)ev[i].value == -1) {
+ Key_Event(K_MWHEELDOWN, qtrue, time);
+ Key_Event(K_MWHEELDOWN, qfalse, time);
}
break;
case REL_HWHEEL:
- if( ( int )ev[i].value == 1 ) {
- Key_Event( K_MWHEELRIGHT, qtrue, time );
- Key_Event( K_MWHEELRIGHT, qfalse, time );
- } else if( ( int )ev[i].value == -1 ) {
- Key_Event( K_MWHEELLEFT, qtrue, time );
- Key_Event( K_MWHEELLEFT, qfalse, time );
+ if ((int)ev[i].value == 1) {
+ Key_Event(K_MWHEELRIGHT, qtrue, time);
+ Key_Event(K_MWHEELRIGHT, qfalse, time);
+ } else if ((int)ev[i].value == -1) {
+ Key_Event(K_MWHEELLEFT, qtrue, time);
+ Key_Event(K_MWHEELLEFT, qfalse, time);
}
break;
default:
@@ -140,20 +142,22 @@ static void evdev_read( evdev_t *dev ) {
}
}
-static void GetMouseEvents( void ) {
+static void GetMouseEvents(void)
+{
evdev_t *dev, *next;
- if( !evdev.initialized || !evdev.grabbed ) {
+ if (!evdev.initialized || !evdev.grabbed) {
return;
}
- FOR_EACH_EVDEV_SAFE( dev, next ) {
- evdev_read( dev );
+ FOR_EACH_EVDEV_SAFE(dev, next) {
+ evdev_read(dev);
}
}
-static qboolean GetMouseMotion( int *dx, int *dy ) {
- if( !evdev.initialized || !evdev.grabbed ) {
+static qboolean GetMouseMotion(int *dx, int *dy)
+{
+ if (!evdev.initialized || !evdev.grabbed) {
return qfalse;
}
@@ -164,50 +168,53 @@ static qboolean GetMouseMotion( int *dx, int *dy ) {
return qtrue;
}
-static void ShutdownMouse( void ) {
+static void ShutdownMouse(void)
+{
evdev_t *dev, *next;
- if( !evdev.initialized ) {
+ if (!evdev.initialized) {
return;
}
- FOR_EACH_EVDEV_SAFE( dev, next ) {
- evdev_remove( dev );
+ FOR_EACH_EVDEV_SAFE(dev, next) {
+ evdev_remove(dev);
}
#if USE_SDL
- SDL_ShowCursor( SDL_ENABLE );
- SDL_WM_GrabInput( SDL_GRAB_OFF );
- SDL_WM_SetCaption( PRODUCT, APPLICATION );
+ SDL_ShowCursor(SDL_ENABLE);
+ SDL_WM_GrabInput(SDL_GRAB_OFF);
+ SDL_WM_SetCaption(PRODUCT, APPLICATION);
#endif
- memset( &evdev, 0, sizeof( evdev ) );
+ memset(&evdev, 0, sizeof(evdev));
}
-static evdev_t *evdev_add( const char *path ) {
+static evdev_t *evdev_add(const char *path)
+{
evdev_t *dev;
int fd;
- fd = open( path, O_RDONLY );
- if( fd == -1 ) {
- Com_EPrintf( "Couldn't open %s: %s\n", path, strerror( errno ) );
+ fd = open(path, O_RDONLY);
+ if (fd == -1) {
+ Com_EPrintf("Couldn't open %s: %s\n", path, strerror(errno));
return NULL;
}
- Com_DPrintf( "Adding device %s\n", path );
+ Com_DPrintf("Adding device %s\n", path);
- fcntl( fd, F_SETFL, fcntl( fd, F_GETFL, 0 ) | FNDELAY );
+ fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | FNDELAY);
- dev = Z_Malloc( sizeof( *dev ) );
+ dev = Z_Malloc(sizeof(*dev));
dev->fd = fd;
- dev->io = IO_Add( fd );
- List_Append( &evdev.devices, &dev->entry );
+ dev->io = IO_Add(fd);
+ List_Append(&evdev.devices, &dev->entry);
return dev;
}
#if USE_UDEV
-static void auto_add_devices( void ) {
+static void auto_add_devices(void)
+{
struct udev *udev;
struct udev_enumerate *enumerate;
struct udev_list_entry *list, *entry;
@@ -215,44 +222,45 @@ static void auto_add_devices( void ) {
const char *path;
udev = udev_new();
- if( !udev ) {
- Com_EPrintf( "Couldn't create udev handle\n" );
+ if (!udev) {
+ Com_EPrintf("Couldn't create udev handle\n");
return;
}
- enumerate = udev_enumerate_new( udev );
- udev_enumerate_add_match_subsystem( enumerate, "input" );
- udev_enumerate_add_match_sysname( enumerate, "event[0-9]*" );
- udev_enumerate_add_match_property( enumerate, "ID_INPUT_MOUSE", "1" );
- udev_enumerate_scan_devices( enumerate );
- list = udev_enumerate_get_list_entry( enumerate );
- udev_list_entry_foreach( entry, list ) {
- path = udev_list_entry_get_name( entry );
- dev = udev_device_new_from_syspath( udev, path );
- if( dev ) {
- path = udev_device_get_devnode( dev );
- if( path ) {
- evdev_add( path );
+ enumerate = udev_enumerate_new(udev);
+ udev_enumerate_add_match_subsystem(enumerate, "input");
+ udev_enumerate_add_match_sysname(enumerate, "event[0-9]*");
+ udev_enumerate_add_match_property(enumerate, "ID_INPUT_MOUSE", "1");
+ udev_enumerate_scan_devices(enumerate);
+ list = udev_enumerate_get_list_entry(enumerate);
+ udev_list_entry_foreach(entry, list) {
+ path = udev_list_entry_get_name(entry);
+ dev = udev_device_new_from_syspath(udev, path);
+ if (dev) {
+ path = udev_device_get_devnode(dev);
+ if (path) {
+ evdev_add(path);
}
- udev_device_unref( dev );
+ udev_device_unref(dev);
}
}
- udev_enumerate_unref( enumerate );
- udev_unref( udev );
+ udev_enumerate_unref(enumerate);
+ udev_unref(udev);
}
#endif
-static qboolean InitMouse( void ) {
+static qboolean InitMouse(void)
+{
cvar_t *var;
- List_Init( &evdev.devices );
+ List_Init(&evdev.devices);
+
+ var = Cvar_Get("in_device", "", 0);
- var = Cvar_Get( "in_device", "", 0 );
-
- if( var->string[0] ) {
+ if (var->string[0]) {
// add user specified device
- if( !evdev_add( var->string ) ) {
+ if (!evdev_add(var->string)) {
return qfalse;
}
} else {
@@ -260,72 +268,73 @@ static qboolean InitMouse( void ) {
// find devices automatically
auto_add_devices();
- if( LIST_EMPTY( &evdev.devices ) ) {
+ if (LIST_EMPTY(&evdev.devices)) {
Com_EPrintf(
"Automatic libudev scan was unable to find any "
"usable mouse device. You may need to set the "
"'in_device' variable manually before direct "
- "mouse input can be used.\n" );
+ "mouse input can be used.\n");
return qfalse;
}
#else
Com_EPrintf(
"No input device specified, and libudev support "
"is not compiled in. Please set the 'in_device' variable "
- "manually before direct mouse input can be used.\n" );
+ "manually before direct mouse input can be used.\n");
return qfalse;
#endif
}
- Com_Printf( "Evdev mouse initialized.\n" );
+ Com_Printf("Evdev mouse initialized.\n");
evdev.initialized = qtrue;
return qtrue;
}
-static void GrabMouse( grab_t grab ) {
+static void GrabMouse(grab_t grab)
+{
struct input_event ev;
evdev_t *dev;
- if( !evdev.initialized ) {
+ if (!evdev.initialized) {
return;
}
- if( evdev.grabbed == grab ) {
+ if (evdev.grabbed == grab) {
evdev.dx = 0;
evdev.dy = 0;
return;
}
- if( grab == IN_GRAB ) {
+ if (grab == IN_GRAB) {
#if USE_SDL
- SDL_WM_GrabInput( SDL_GRAB_ON );
- SDL_WM_SetCaption( "[" PRODUCT "]", APPLICATION );
- SDL_ShowCursor( SDL_DISABLE );
+ SDL_WM_GrabInput(SDL_GRAB_ON);
+ SDL_WM_SetCaption("[" PRODUCT "]", APPLICATION);
+ SDL_ShowCursor(SDL_DISABLE);
#endif
} else {
#if USE_SDL
- if( evdev.grabbed == IN_GRAB ) {
- SDL_WM_GrabInput( SDL_GRAB_OFF );
- SDL_WM_SetCaption( PRODUCT, APPLICATION );
+ if (evdev.grabbed == IN_GRAB) {
+ SDL_WM_GrabInput(SDL_GRAB_OFF);
+ SDL_WM_SetCaption(PRODUCT, APPLICATION);
}
- if( grab == IN_HIDE ) {
- SDL_ShowCursor( SDL_DISABLE );
+ if (grab == IN_HIDE) {
+ SDL_ShowCursor(SDL_DISABLE);
} else {
- SDL_ShowCursor( SDL_ENABLE );
+ SDL_ShowCursor(SDL_ENABLE);
}
#endif
}
- FOR_EACH_EVDEV( dev ) {
- if( !grab ) {
+ FOR_EACH_EVDEV(dev) {
+ if (!grab) {
dev->io->wantread = qfalse;
continue;
}
// pump pending events
dev->io->wantread = qtrue;
- while( read( dev->fd, &ev, EVENT_SIZE ) == EVENT_SIZE )
+ while (read(dev->fd, &ev, EVENT_SIZE) == EVENT_SIZE)
;
}
@@ -334,9 +343,10 @@ static void GrabMouse( grab_t grab ) {
evdev.grabbed = grab;
}
-static void WarpMouse( int x, int y ) {
+static void WarpMouse(int x, int y)
+{
#if USE_SDL
- SDL_WarpMouse( x, y );
+ SDL_WarpMouse(x, y);
#endif
}
@@ -345,7 +355,8 @@ static void WarpMouse( int x, int y ) {
DI_FillAPI
@@@@@@@@@@@@@@@@@@@
*/
-void DI_FillAPI( inputAPI_t *api ) {
+void DI_FillAPI(inputAPI_t *api)
+{
api->Init = InitMouse;
api->Shutdown = ShutdownMouse;
api->Grab = GrabMouse;