171bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine/* Copyright (C) 2010 The Android Open Source Project 271bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** 371bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** This software is licensed under the terms of the GNU General Public 471bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** License version 2, as published by the Free Software Foundation, and 571bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** may be copied, distributed, and modified under those terms. 671bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** 771bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** This program is distributed in the hope that it will be useful, 871bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** but WITHOUT ANY WARRANTY; without even the implied warranty of 971bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1071bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine** GNU General Public License for more details. 1171bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine*/ 1271bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine#ifndef QEMU_ANDROID_KEYCODE_ARRAY_H 1371bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine#define QEMU_ANDROID_KEYCODE_ARRAY_H 1471bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 1571bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine/* Contains declarations for routines that manage keycode sequence that needs 1671bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine * to be transferred to the emulator core for further processing. 1771bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine */ 1871bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 1971bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine/* Maximum number of keycodes kept in the array. */ 2071bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine#define MAX_KEYCODES 256*2 2171bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 2271bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine/* Describes array of keycodes collected for transferring to the core. */ 2371bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkinetypedef struct AKeycodeBuffer { 2471bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine /* Number of keycodes collected in the array. */ 2571bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine int keycode_count; 2671bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 2771bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine /* Array of collected keycodes. */ 2871bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine int keycodes[ MAX_KEYCODES ]; 2971bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine} AKeycodeBuffer; 3071bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 3171bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine/* Adds a key event to the array of keycodes. */ 3271bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkinevoid 3371bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkineandroid_keycodes_add_key_event( AKeycodeBuffer* keycodes, 3471bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine unsigned code, 3571bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine unsigned down ); 3671bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 3771bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine/* Flushes (transfers) collected keycodes to the core. */ 3871bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkinevoid 3971bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkineandroid_keycodes_flush(AKeycodeBuffer* keycodes); 4071bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine 4171bb14f826775867d16e7d382cfdc48e6ca46ccbVladimir Chtchetkine#endif /* QEMU_ANDROID_KEYCODE_ARRAY_H */ 42