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