Subversion Repositories HelenOS

Rev

Rev 4581 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3767 svoboda 1
/*
4154 svoboda 2
 * Copyright (c) 2006 Josef Cejka
3
 * Copyright (c) 2006 Jakub Vana
3767 svoboda 4
 * Copyright (c) 2008 Jiri Svoboda
5
 * All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions
9
 * are met:
10
 *
11
 * - Redistributions of source code must retain the above copyright
12
 *   notice, this list of conditions and the following disclaimer.
13
 * - Redistributions in binary form must reproduce the above copyright
14
 *   notice, this list of conditions and the following disclaimer in the
15
 *   documentation and/or other materials provided with the distribution.
16
 * - The name of the author may not be used to endorse or promote products
17
 *   derived from this software without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
 */
30
 
31
/** @addtogroup libc
32
 * @{
33
 */
34
/** @file
4317 decky 35
 */
3767 svoboda 36
 
4317 decky 37
#include <libc.h>
3767 svoboda 38
#include <async.h>
4482 decky 39
#include <io/console.h>
3767 svoboda 40
#include <ipc/console.h>
41
 
4482 decky 42
void console_clear(int phone)
4154 svoboda 43
{
4482 decky 44
    async_msg_0(phone, CONSOLE_CLEAR);
4154 svoboda 45
}
46
 
4482 decky 47
int console_get_size(int phone, ipcarg_t *rows, ipcarg_t *cols)
4154 svoboda 48
{
4482 decky 49
    return async_req_0_2(phone, CONSOLE_GET_SIZE, rows, cols);
4154 svoboda 50
}
51
 
4482 decky 52
void console_set_style(int phone, int style)
4164 svoboda 53
{
4482 decky 54
    async_msg_1(phone, CONSOLE_SET_STYLE, style);
4164 svoboda 55
}
56
 
4482 decky 57
void console_set_color(int phone, int fg_color, int bg_color, int flags)
4164 svoboda 58
{
4482 decky 59
    async_msg_3(phone, CONSOLE_SET_COLOR, fg_color, bg_color, flags);
4164 svoboda 60
}
61
 
4482 decky 62
void console_set_rgb_color(int phone, int fg_color, int bg_color)
4164 svoboda 63
{
4482 decky 64
    async_msg_2(phone, CONSOLE_SET_RGB_COLOR, fg_color, bg_color);
4164 svoboda 65
}
66
 
4482 decky 67
void console_cursor_visibility(int phone, bool show)
4164 svoboda 68
{
4482 decky 69
    async_msg_1(phone, CONSOLE_CURSOR_VISIBILITY, show != false);
4164 svoboda 70
}
71
 
4718 mejdrech 72
int console_get_color_cap(int phone, int *ccap)
73
{
74
    ipcarg_t ccap_tmp;
75
    int rc;
76
 
77
    rc = async_req_0_1(phone, CONSOLE_GET_COLOR_CAP, &ccap_tmp);
78
    *ccap = ccap_tmp;
79
 
80
    return rc;
81
}
82
 
4482 decky 83
void console_kcon_enable(int phone)
4164 svoboda 84
{
4482 decky 85
    async_msg_0(phone, CONSOLE_KCON_ENABLE);
4164 svoboda 86
}
87
 
4482 decky 88
void console_goto(int phone, ipcarg_t row, ipcarg_t col)
4164 svoboda 89
{
4482 decky 90
    async_msg_2(phone, CONSOLE_GOTO, row, col);
4164 svoboda 91
}
92
 
4482 decky 93
bool console_get_event(int phone, console_event_t *event)
3768 svoboda 94
{
4482 decky 95
    ipcarg_t type;
96
    ipcarg_t key;
97
    ipcarg_t mods;
4317 decky 98
    ipcarg_t c;
99
 
4482 decky 100
    int rc = async_req_0_4(phone, CONSOLE_GET_EVENT, &type, &key, &mods, &c);
101
    if (rc < 0)
102
        return false;
4317 decky 103
 
4482 decky 104
    event->type = type;
105
    event->key = key;
106
    event->mods = mods;
107
    event->c = c;
4317 decky 108
 
4482 decky 109
    return true;
4317 decky 110
}
111
 
3767 svoboda 112
/** @}
113
 */