~vojtech-horky/helenos/numa

« back to all changes in this revision

Viewing changes to uspace/lib/libc/include/io/console.h

  • Committer: Martin Decky
  • Date: 2009-08-04 11:19:19 UTC
  • Revision ID: martin@uranus.dsrg.hide.ms.mff.cuni.cz-20090804111919-evyclddlr3v5lhmp
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2008 Jiri Svoboda
 
3
 * All rights reserved.
 
4
 *
 
5
 * Redistribution and use in source and binary forms, with or without
 
6
 * modification, are permitted provided that the following conditions
 
7
 * are met:
 
8
 *
 
9
 * - Redistributions of source code must retain the above copyright
 
10
 *   notice, this list of conditions and the following disclaimer.
 
11
 * - Redistributions in binary form must reproduce the above copyright
 
12
 *   notice, this list of conditions and the following disclaimer in the
 
13
 *   documentation and/or other materials provided with the distribution.
 
14
 * - The name of the author may not be used to endorse or promote products
 
15
 *   derived from this software without specific prior written permission.
 
16
 *
 
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 
18
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
19
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 
20
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 
21
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
22
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
23
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
25
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 
26
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
27
 */
 
28
 
 
29
/** @addtogroup libc
 
30
 * @{
 
31
 */
 
32
/** @file
 
33
 */
 
34
 
 
35
#ifndef LIBC_IO_CONSOLE_H_
 
36
#define LIBC_IO_CONSOLE_H_
 
37
 
 
38
#include <ipc/ipc.h>
 
39
#include <bool.h>
 
40
 
 
41
typedef enum {
 
42
        KEY_PRESS,
 
43
        KEY_RELEASE
 
44
} console_ev_type_t;
 
45
 
 
46
enum {
 
47
        CONSOLE_CCAP_NONE = 0,
 
48
        CONSOLE_CCAP_STYLE,
 
49
        CONSOLE_CCAP_INDEXED,
 
50
        CONSOLE_CCAP_RGB
 
51
};
 
52
 
 
53
/** Console event structure. */
 
54
typedef struct {
 
55
        /** Press or release event. */
 
56
        console_ev_type_t type;
 
57
        
 
58
        /** Keycode of the key that was pressed or released. */
 
59
        unsigned int key;
 
60
        
 
61
        /** Bitmask of modifiers held. */
 
62
        unsigned int mods;
 
63
        
 
64
        /** The character that was generated or '\0' for none. */
 
65
        wchar_t c;
 
66
} console_event_t;
 
67
 
 
68
extern void console_clear(int phone);
 
69
 
 
70
extern int console_get_size(int phone, ipcarg_t *rows, ipcarg_t *cols);
 
71
extern void console_goto(int phone, ipcarg_t row, ipcarg_t col);
 
72
 
 
73
extern void console_set_style(int phone, int style);
 
74
extern void console_set_color(int phone, int fg_color, int bg_color, int flags);
 
75
extern void console_set_rgb_color(int phone, int fg_color, int bg_color);
 
76
 
 
77
extern void console_cursor_visibility(int phone, bool show);
 
78
extern int console_get_color_cap(int phone, int *ccap);
 
79
extern void console_kcon_enable(int phone);
 
80
 
 
81
extern bool console_get_event(int phone, console_event_t *event);
 
82
 
 
83
#endif
 
84
 
 
85
/** @}
 
86
 */