aboutsummaryrefslogtreecommitdiffstats
path: root/android/hw-events.c
diff options
context:
space:
mode:
Diffstat (limited to 'android/hw-events.c')
-rw-r--r--android/hw-events.c223
1 files changed, 0 insertions, 223 deletions
diff --git a/android/hw-events.c b/android/hw-events.c
deleted file mode 100644
index e72440c..0000000
--- a/android/hw-events.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (C) 2007-2008 The Android Open Source Project
-**
-** This software is licensed under the terms of the GNU General Public
-** License version 2, as published by the Free Software Foundation, and
-** may be copied, distributed, and modified under those terms.
-**
-** 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. See the
-** GNU General Public License for more details.
-*/
-#include "android/hw-events.h"
-#include "android/utils/bufprint.h"
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct {
- const char* name;
- int value;
-} PairRec;
-
-#define EV_TYPE(n,v) { STRINGIFY(n), (v) },
-#define BTN_CODE(n,v) { STRINGIFY(n), (v) },
-#define REL_CODE(n,v) { STRINGIFY(n), (v) },
-#define ABS_CODE(n,v) { STRINGIFY(n), (v) },
-
-static const PairRec _ev_types_tab[] =
-{
- EVENT_TYPE_LIST
- { NULL, 0 }
-};
-
-static const PairRec _btn_codes_list[] =
-{
- EVENT_BTN_LIST
- { NULL, 0 }
-};
-
-static const PairRec _rel_codes_list[] =
-{
- EVENT_REL_LIST
- { NULL, 0 }
-};
-
-static const PairRec _abs_codes_list[] =
-{
- EVENT_ABS_LIST
- { NULL, 0 }
-};
-
-#undef EV_TYPE
-#undef BTN_CODE
-#undef REL_CODE
-#undef ABS_CODE
-
-static int
-count_list( const PairRec* list )
-{
- int nn = 0;
- while (list[nn].name != NULL)
- nn += 1;
-
- return nn;
-}
-
-static int
-scan_list( const PairRec* list,
- const char* prefix,
- const char* name,
- int namelen )
-{
- int len;
-
- if (namelen <= 0)
- return -1;
-
- len = strlen(prefix);
- if (namelen <= len)
- return -1;
- if ( memcmp( name, prefix, len ) != 0 )
- return -1;
-
- name += len;
- namelen -= len;
-
- for ( ; list->name != NULL; list += 1 )
- {
- if ( memcmp( list->name, name, namelen ) == 0 && list->name[namelen] == 0 )
- return list->value;
- }
- return -1;
-}
-
-
-typedef struct {
- int type;
- const char* prefix;
- const PairRec* pairs;
-} TypeListRec;
-
-typedef const TypeListRec* TypeList;
-
-static const TypeListRec _types_list[] =
-{
- { EV_KEY, "BTN_", _btn_codes_list },
- { EV_REL, "REL_", _rel_codes_list },
- { EV_ABS, "ABS_", _abs_codes_list },
- { -1, NULL, NULL }
-};
-
-
-static TypeList
-find_type_list( int type )
-{
- TypeList list = _types_list;
-
- for ( ; list->type >= 0; list += 1 )
- if (list->type == type)
- return list;
-
- return NULL;
-}
-
-
-int
-android_event_from_str( const char* name,
- int *ptype,
- int *pcode,
- int *pvalue )
-{
- const char* p;
- const char* pend;
- const char* q;
- TypeList list;
- char* end;
-
- *ptype = 0;
- *pcode = 0;
- *pvalue = 0;
-
- p = name;
- pend = p + strcspn(p, " \t");
- q = strchr(p, ':');
- if (q == NULL || q > pend)
- q = pend;
-
- *ptype = scan_list( _ev_types_tab, "EV_", p, q-p );
- if (*ptype < 0) {
- *ptype = (int) strtol( p, &end, 0 );
- if (end != q)
- return -1;
- }
-
- if (*q != ':')
- return 0;
-
- p = q + 1;
- q = strchr(p, ':');
- if (q == NULL || q > pend)
- q = pend;
-
- list = find_type_list( *ptype );
-
- *pcode = -1;
- if (list != NULL) {
- *pcode = scan_list( list->pairs, list->prefix, p, q-p );
- }
- if (*pcode < 0) {
- *pcode = (int) strtol( p, &end, 0 );
- if (end != q)
- return -2;
- }
-
- if (*q != ':')
- return 0;
-
- p = q + 1;
- q = strchr(p, ':');
- if (q == NULL || q > pend)
- q = pend;
-
- *pvalue = (int)strtol( p, &end, 0 );
- if (end != q)
- return -3;
-
- return 0;
-}
-
-int
-android_event_get_type_count( void )
-{
- return count_list( _ev_types_tab );
-}
-
-char*
-android_event_bufprint_type_str( char* buff, char* end, int type_index )
-{
- return bufprint( buff, end, "EV_%s", _ev_types_tab[type_index].name );
-}
-
-/* returns the list of valid event code string aliases for a given event type */
-int
-android_event_get_code_count( int type )
-{
- TypeList list = find_type_list(type);
-
- if (list == NULL)
- return 0;
-
- return count_list( list->pairs );
-}
-
-char*
-android_event_bufprint_code_str( char* buff, char* end, int type, int code_index )
-{
- TypeList list = find_type_list(type);
-
- if (list == NULL)
- return buff;
-
- return bufprint( buff, end, "%s%s", list->prefix, list->pairs[code_index].name );
-}
-