• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (C) 2010 The Android Open Source Project
2 **
3 ** This software is licensed under the terms of the GNU General Public
4 ** License version 2, as published by the Free Software Foundation, and
5 ** may be copied, distributed, and modified under those terms.
6 **
7 ** This program is distributed in the hope that it will be useful,
8 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
9 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 ** GNU General Public License for more details.
11 */
12 #include "android/user-events.h"
13 #include "android/utils/debug.h"
14 #include "ui/console.h"
15 #include <stdio.h>
16 
17 void
user_event_keycodes(int * kcodes,int count)18 user_event_keycodes(int *kcodes, int count)
19 {
20     int nn;
21     for (nn = 0; nn < count; nn++)
22         user_event_keycode(kcodes[nn]);
23 }
24 
25 void
user_event_keycode(int kcode)26 user_event_keycode(int  kcode)
27 {
28     kbd_put_keycode(kcode);
29 }
30 
31 void
user_event_key(unsigned code,unsigned down)32 user_event_key(unsigned code, unsigned down)
33 {
34     if(code == 0) {
35         return;
36     }
37     if (VERBOSE_CHECK(keys))
38         printf(">> KEY [0x%03x,%s]\n", (code & 0x1ff), down ? "down" : " up " );
39 
40     user_event_keycode((code & 0x1ff) | (down ? 0x200 : 0));
41 }
42 
43 
44 void
user_event_mouse(int dx,int dy,int dz,unsigned buttons_state)45 user_event_mouse(int dx, int dy, int dz, unsigned buttons_state)
46 {
47     kbd_mouse_event(dx, dy, dz, buttons_state);
48 }
49 
50 static QEMUPutGenericEvent *generic_event_callback;
51 static void*                generic_event_opaque;
52 
user_event_register_generic(void * opaque,QEMUPutGenericEvent * callback)53 void  user_event_register_generic(void* opaque, QEMUPutGenericEvent *callback)
54 {
55     generic_event_callback = callback;
56     generic_event_opaque   = opaque;
57 }
58 
59 void
user_event_generic(int type,int code,int value)60 user_event_generic(int type, int code, int value)
61 {
62     if (generic_event_callback)
63         generic_event_callback(generic_event_opaque, type, code, value);
64 }
65