187250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner/* Copyright (C) 2009 The Android Open Source Project 287250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** 387250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** This software is licensed under the terms of the GNU General Public 487250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** License version 2, as published by the Free Software Foundation, and 587250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** may be copied, distributed, and modified under those terms. 687250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** 787250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** This program is distributed in the hope that it will be useful, 887250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** but WITHOUT ANY WARRANTY; without even the implied warranty of 987250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1087250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner** GNU General Public License for more details. 1187250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner*/ 1287250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner#include "android/keycode.h" 1387250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner 1487250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' TurnerAndroidKeyCode 1587250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turnerandroid_keycode_rotate( AndroidKeyCode code, int rotation ) 1687250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner{ 1787250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner static const AndroidKeyCode wheel[4] = { kKeyCodeDpadUp, 1887250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner kKeyCodeDpadRight, 1987250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner kKeyCodeDpadDown, 2087250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner kKeyCodeDpadLeft }; 2187250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner 2287250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner int index; 2387250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner 2487250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner for (index = 0; index < 4; index++) { 2587250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner if (code == wheel[index]) { 2687250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner index = (index + rotation) & 3; 2787250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner code = wheel[index]; 2887250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner break; 2987250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner } 3087250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner } 3187250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner return code; 3287250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner} 3387250c24aec9449eb615951cf537a2fcf709f1d8David 'Digit' Turner 34