|
1 #ifndef CONSOLE_H |
|
2 #define CONSOLE_H |
|
3 |
|
4 #include "qemu-char.h" |
|
5 #include "hw/gui.h" |
|
6 |
|
7 /* keysym is a unicode code except for special keys (see QEMU_KEY_xxx |
|
8 constants) */ |
|
9 #define QEMU_KEY_ESC1(c) ((c) | 0xe100) |
|
10 #define QEMU_KEY_BACKSPACE 0x007f |
|
11 #define QEMU_KEY_UP QEMU_KEY_ESC1('A') |
|
12 #define QEMU_KEY_DOWN QEMU_KEY_ESC1('B') |
|
13 #define QEMU_KEY_RIGHT QEMU_KEY_ESC1('C') |
|
14 #define QEMU_KEY_LEFT QEMU_KEY_ESC1('D') |
|
15 #define QEMU_KEY_HOME QEMU_KEY_ESC1(1) |
|
16 #define QEMU_KEY_END QEMU_KEY_ESC1(4) |
|
17 #define QEMU_KEY_PAGEUP QEMU_KEY_ESC1(5) |
|
18 #define QEMU_KEY_PAGEDOWN QEMU_KEY_ESC1(6) |
|
19 #define QEMU_KEY_DELETE QEMU_KEY_ESC1(3) |
|
20 |
|
21 #define QEMU_KEY_CTRL_UP 0xe400 |
|
22 #define QEMU_KEY_CTRL_DOWN 0xe401 |
|
23 #define QEMU_KEY_CTRL_LEFT 0xe402 |
|
24 #define QEMU_KEY_CTRL_RIGHT 0xe403 |
|
25 #define QEMU_KEY_CTRL_HOME 0xe404 |
|
26 #define QEMU_KEY_CTRL_END 0xe405 |
|
27 #define QEMU_KEY_CTRL_PAGEUP 0xe406 |
|
28 #define QEMU_KEY_CTRL_PAGEDOWN 0xe407 |
|
29 |
|
30 /* consoles */ |
|
31 |
|
32 typedef unsigned long console_ch_t; |
|
33 static inline void console_write_ch(console_ch_t *dest, uint32_t ch) |
|
34 { |
|
35 cpu_to_le32wu((uint32_t *) dest, ch); |
|
36 } |
|
37 |
|
38 typedef void (*vga_hw_text_update_ptr)(void *, console_ch_t *); |
|
39 |
|
40 int is_fixed_size_console(const TextConsole *console); |
|
41 |
|
42 CharDriverState *text_console_init(DisplayState *ds, const char *p); |
|
43 CharDriverState *new_text_console(const char *p); |
|
44 |
|
45 void console_color_init(DisplayState *ds); |
|
46 void text_console_copy(TextConsole *console, int src_x, int src_y, |
|
47 int dst_x, int dst_y, int w, int h); |
|
48 |
|
49 void text_console_resize(TextConsole *console, int width, int height); |
|
50 |
|
51 /* sdl.c */ |
|
52 void sdl_display_init(int full_screen, int no_frame); |
|
53 |
|
54 /* cocoa.m */ |
|
55 void cocoa_display_init(DisplayState *ds, int full_screen); |
|
56 |
|
57 /* vnc.c */ |
|
58 void vnc_display_init(DisplayState *ds); |
|
59 void vnc_display_close(DisplayState *ds); |
|
60 int vnc_display_open(DisplayState *ds, const char *display); |
|
61 int vnc_display_password(DisplayState *ds, const char *password); |
|
62 void do_info_vnc(void); |
|
63 |
|
64 /* curses.c */ |
|
65 void curses_display_init(DisplayState *ds, int full_screen); |
|
66 |
|
67 /* x_keymap.c */ |
|
68 extern uint8_t _translate_keycode(const int key); |
|
69 |
|
70 /* FIXME: term_printf et al should probably go elsewhere so everything |
|
71 does not need to include console.h */ |
|
72 /* monitor.c */ |
|
73 void monitor_init(CharDriverState *hd, int show_banner); |
|
74 void term_puts(const char *str); |
|
75 void term_vprintf(const char *fmt, va_list ap); |
|
76 void term_printf(const char *fmt, ...) __attribute__ ((__format__ (__printf__, 1, 2))); |
|
77 void term_print_filename(const char *filename); |
|
78 void term_flush(void); |
|
79 void term_print_help(void); |
|
80 void monitor_readline(const char *prompt, int is_password, |
|
81 char *buf, int buf_size); |
|
82 void monitor_suspend(void); |
|
83 void monitor_resume(void); |
|
84 |
|
85 /* readline.c */ |
|
86 typedef void ReadLineFunc(void *opaque, const char *str); |
|
87 |
|
88 extern int completion_index; |
|
89 void add_completion(const char *str); |
|
90 void readline_handle_byte(int ch); |
|
91 void readline_find_completion(const char *cmdline); |
|
92 const char *readline_get_history(unsigned int index); |
|
93 void readline_start(const char *prompt, int is_password, |
|
94 ReadLineFunc *readline_func, void *opaque); |
|
95 |
|
96 #endif |