Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4324 → Rev 4325

/trunk/uspace/lib/libc/include/ipc/fb.h
66,7 → 66,9
FB_ANIM_CHGVP,
FB_ANIM_START,
FB_ANIM_STOP,
FB_POINTER_MOVE
FB_POINTER_MOVE,
FB_SCREEN_GRAB,
FB_SCREEN_RELINQUISH
} fb_request_t;
 
#endif
/trunk/uspace/srv/console/console.c
141,6 → 141,16
async_msg_2(fb_info.phone, FB_CURSOR_GOTO, row, col);
}
 
static void screen_grab(void)
{
ipc_call_sync_0_0(fb_info.phone, FB_SCREEN_GRAB);
}
 
static void screen_relinquish(void)
{
ipc_call_sync_0_0(fb_info.phone, FB_SCREEN_RELINQUISH);
}
 
static void set_style(int style)
{
async_msg_1(fb_info.phone, FB_SET_STYLE, style);
330,7 → 340,9
async_serialize_start();
curs_hide_sync();
gcons_in_kernel();
screen_relinquish();
async_serialize_end();
 
if (__SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE)) {
prev_console = active_console;
342,8 → 354,10
if (newcons != KERNEL_CONSOLE) {
async_serialize_start();
if (active_console == KERNEL_CONSOLE)
if (active_console == KERNEL_CONSOLE) {
screen_grab();
gcons_redraw_console();
}
active_console = newcons;
gcons_change_console(newcons);
/trunk/uspace/srv/fb/serial_console.c
274,9 → 274,6
serial_goto(y, x);
 
for (i = 0; i < w; i++) {
unsigned int col = x + i;
unsigned int row = y + j;
 
field = &data[j * w + i];
 
a1 = &field->attrs;
304,12 → 301,9
 
wchar_t c;
int col, row, w, h;
int fgcolor;
int bgcolor;
int flags;
int style;
int i;
 
attrs_t cur_attr;
if (client_connected) {
ipc_answer_0(iid, ELIMIT);
318,6 → 312,9
client_connected = 1;
ipc_answer_0(iid, EOK);
 
cur_attr.t = at_style;
cur_attr.a.s.style = STYLE_NORMAL;
/* Clear the terminal, set scrolling region
to 0 - height rows. */
388,23 → 385,28
retval = 0;
break;
case FB_SET_STYLE:
style = IPC_GET_ARG1(call);
serial_set_style(style);
cur_attr.t = at_style;
cur_attr.a.s.style = IPC_GET_ARG1(call);
cur_attr.a.i.bg_color = IPC_GET_ARG2(call);
serial_set_attrs(&cur_attr);
 
retval = 0;
break;
case FB_SET_COLOR:
fgcolor = IPC_GET_ARG1(call);
bgcolor = IPC_GET_ARG2(call);
flags = IPC_GET_ARG3(call);
cur_attr.t = at_idx;
cur_attr.a.i.fg_color = IPC_GET_ARG1(call);
cur_attr.a.i.bg_color = IPC_GET_ARG2(call);
cur_attr.a.i.flags = IPC_GET_ARG3(call);
serial_set_attrs(&cur_attr);
 
serial_set_idx(fgcolor, bgcolor, flags);
retval = 0;
break;
case FB_SET_RGB_COLOR:
fgcolor = IPC_GET_ARG1(call);
bgcolor = IPC_GET_ARG2(call);
cur_attr.t = at_rgb;
cur_attr.a.i.fg_color = IPC_GET_ARG1(call);
cur_attr.a.i.bg_color = IPC_GET_ARG2(call);
serial_set_attrs(&cur_attr);
 
serial_set_rgb(fgcolor, bgcolor);
retval = 0;
break;
case FB_SCROLL:
424,6 → 426,18
serial_cursor_disable();
retval = 0;
break;
case FB_SCREEN_GRAB:
serial_clrscr();
serial_set_attrs(&cur_attr);
retval = 0;
break;
case FB_SCREEN_RELINQUISH:
serial_sgr(SGR_RESET);
serial_puts("\033[2J");
serial_goto(0, 0);
serial_cursor_enable();
retval = 0;
break;
default:
retval = ENOENT;
}
/trunk/uspace/srv/fb/fb.c
1713,6 → 1713,10
mouse_move(IPC_GET_ARG1(call), IPC_GET_ARG2(call));
retval = EOK;
break;
case FB_SCREEN_GRAB:
case FB_SCREEN_RELINQUISH:
retval = EOK;
break;
default:
retval = ENOENT;
}
/trunk/uspace/srv/fb/ega.c
391,7 → 391,10
}
retval = 0;
break;
 
case FB_SCREEN_GRAB:
case FB_SCREEN_RELINQUISH:
retval = EOK;
break;
default:
retval = EINVAL;
}