18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Copyright (C) 2007-2008 The Android Open Source Project
28b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project**
38b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** This software is licensed under the terms of the GNU General Public
48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** License version 2, as published by the Free Software Foundation, and
58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** may be copied, distributed, and modified under those terms.
68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project**
78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** This program is distributed in the hope that it will be useful,
88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** but WITHOUT ANY WARRANTY; without even the implied warranty of
98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project** GNU General Public License for more details.
118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project*/
128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "android/hw-events.h"
138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include "android/utils/bufprint.h"
148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <stdlib.h>
158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#include <string.h>
168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projecttypedef struct {
188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    const char*  name;
198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    int          value;
20a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner} EventInfo;
218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
22a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#define  EV_TYPE(n,v)   { "EV_" STRINGIFY(n), (v) },
238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
24a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#define  BTN_CODE(n,v)  { "BTN_" STRINGIFY(n), (v) },
25a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#define  KEY_CODE(n,v)  { "KEY_" STRINGIFY(n), (v) },
26a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#define  REL_CODE(n,v)  { "REL_" STRINGIFY(n), (v) },
27a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#define  ABS_CODE(n,v)  { "ABS_" STRINGIFY(n), (v) },
28a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#define  END_CODE       { NULL, 0 }
29a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
30a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic const EventInfo  _ev_types_tab[] =
318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    EVENT_TYPE_LIST
33a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    END_CODE
348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project};
358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
36a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic const EventInfo _key_codes_list[] =
378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
38a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    EVENT_KEY_LIST
398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    EVENT_BTN_LIST
40a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    END_CODE
418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project};
428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
43a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic const EventInfo _rel_codes_list[] =
448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    EVENT_REL_LIST
46a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    END_CODE
478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project};
48a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic const EventInfo _abs_codes_list[] =
498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    EVENT_ABS_LIST
51a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    END_CODE
528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project};
538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef EV_TYPE
558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef BTN_CODE
56a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner#undef KEY_CODE
578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef REL_CODE
588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#undef ABS_CODE
598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
60a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnertypedef const EventInfo*  EventList;
61a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
62a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnertypedef struct {
63a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    int               type;
64a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    const EventInfo*  table;
65a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner} EventCodeList;
66a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
67a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
68a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic const EventCodeList  _codes[] = {
69a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    { EV_KEY, _key_codes_list },
70a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    { EV_REL, _rel_codes_list },
71a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    { EV_ABS, _abs_codes_list },
72a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    { -1, NULL }
73a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner};
74a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
75a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic EventList
76a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' TurnereventList_findByType( int  type )
77a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner{
78a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    int  nn;
79a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
80a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    for (nn = 0; _codes[nn].type >= 0; nn++) {
81a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        if (_codes[nn].type == type)
82a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner            return _codes[nn].table;
83a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    }
84a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    return NULL;
85a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner}
86a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic int
88a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' TurnereventList_getCount( EventList  list )
898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
90a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    int  nn;
91a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner
92a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    if (list == NULL)
93a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        return 0;
948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
95a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    for (nn = 0; list[nn].name != NULL; nn++) {
96a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        /* nothing */
97a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    }
988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    return nn;
998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
1008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic int
102a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' TurnereventList_findCodeByName( EventList    list,
103a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner                          const char*  name,
104a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner                          int          namelen )
1058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
1068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (namelen <= 0)
1078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        return -1;
1088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
10988935f701f51d84ed536cb55cc7b2ba391d7597eDavid 'Digit' Turner    for ( ; list->name != NULL; list += 1 ) {
110a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        if ( !memcmp(name, list->name, namelen) &&
111a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner             list->name[namelen] == 0 )
112a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        {
1138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project            return list->value;
114a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        }
1158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    }
1168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    return -1;
1178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
1188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
119a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turnerstatic char*
120a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' TurnereventList_bufprintCode( EventList  list,
121a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner                        int        index,
122a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner                        char*      buf,
123a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner                        char*      bufend )
1248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
125a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    if (list == NULL)
126a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner        return buf;
1278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
128a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    return bufprint(buf, bufend, "%s", list[index].name);
1298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
1308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint
1338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectandroid_event_from_str( const char*  name,
1348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                        int         *ptype,
1358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                        int         *pcode,
1368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project                        int         *pvalue )
1378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
1388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    const char*  p;
1398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    const char*  pend;
1408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    const char*  q;
141a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    EventList    list;
1428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    char*        end;
1438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *ptype  = 0;
1458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *pcode  = 0;
1468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *pvalue = 0;
1478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    p    = name;
1498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    pend = p + strcspn(p, " \t");
1508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    q    = strchr(p, ':');
1518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (q == NULL || q > pend)
1528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        q = pend;
1538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
154a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    *ptype = eventList_findCodeByName( _ev_types_tab, p, q-p );
1558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (*ptype < 0) {
1568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        *ptype = (int) strtol( p, &end, 0 );
1578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        if (end != q)
1588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project            return -1;
1598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    }
1608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (*q != ':')
1628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        return 0;
1638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    p = q + 1;
1658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    q = strchr(p, ':');
1668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (q == NULL || q > pend)
1678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        q = pend;
1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
169a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    list   = eventList_findByType( *ptype );
17088935f701f51d84ed536cb55cc7b2ba391d7597eDavid 'Digit' Turner    if (list == NULL) {
17188935f701f51d84ed536cb55cc7b2ba391d7597eDavid 'Digit' Turner        *pcode = -1;
17288935f701f51d84ed536cb55cc7b2ba391d7597eDavid 'Digit' Turner    } else {
17388935f701f51d84ed536cb55cc7b2ba391d7597eDavid 'Digit' Turner        *pcode = eventList_findCodeByName( list, p, q-p );
17488935f701f51d84ed536cb55cc7b2ba391d7597eDavid 'Digit' Turner    }
1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (*pcode < 0) {
1768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        *pcode = (int) strtol( p, &end, 0 );
1778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        if (end != q)
1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project            return -2;
1798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    }
1808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (*q != ':')
1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        return 0;
1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    p = q + 1;
1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    q = strchr(p, ':');
1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (q == NULL || q > pend)
1878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        q = pend;
1888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    *pvalue = (int)strtol( p, &end, 0 );
1908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    if (end != q)
1918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project        return -3;
1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project    return 0;
1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint
1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectandroid_event_get_type_count( void )
1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
199a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    return eventList_getCount( _ev_types_tab );
2008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectchar*
2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectandroid_event_bufprint_type_str( char*  buff, char*  end, int  type_index )
2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
205a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    return eventList_bufprintCode( _ev_types_tab, type_index, buff, end );
2068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
2078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* returns the list of valid event code string aliases for a given event type */
2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectint
2108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectandroid_event_get_code_count( int  type )
2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
212a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    EventList  list = eventList_findByType(type);
2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
214a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    return eventList_getCount(list);
2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectchar*
2188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectandroid_event_bufprint_code_str( char*  buff, char*  end, int  type, int  code_index )
2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{
220a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    EventList  list = eventList_findByType(type);
2218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
222a69c35e9e398346ba34b7c82f56f2b5565ebabfeDavid 'Digit' Turner    return eventList_bufprintCode(list, code_index, buff, end);
2238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}
2248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project
225