patchThe GNU Hurd - Patches: patch #3386, Add repeater and mouse support to...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

patch #3386: Add repeater and mouse support to the console

Submitter:  Marco Gerards <marco_g>
Submitted:  Thu 23 Sep 2004 09:40:49 PM UTC
   
 
Category:  Console Priority:  7 - High
Status:  Done Privacy:  Public
Assigned to:  marco_g Open/Closed:  Closed
Planned Release:  None
Wiki-like text discussion box: 


Tue 11 Jan 2005 09:26:47 PM UTC, comment #2: 

Some version of this patch was applied.

libcons/
2005-01-06  Marco Gerards  <metgerards@student.han.nl>

        * Makefile (SRCS): Add `vcons-move-mouse.c' and `vcons-event.c'.
        * cons.h (mouse_movement): New enum.
        (mouse_button): Likewise.
        (mouse_event): New struct.
        (mouse_event_t): New type.
        (cons_vcons_set_mousecursor_pos): New prototype.
        (cons_vcons_set_mousecursor_status): Likewise.
        (cons_vcons_move_mouse): Likewise.
        * file-changed.c (cons_S_file_changed): Generate the
        `CONS_EVT_OUTPUT' event, in case there was output.
        * opts-std-startup.c (OPT_MOUSE_SHOW, OPT_MOUSE_HIDE)
        (OPT_MOUSE_SENS, DEFAULT_MOUSE_SENS, DEFAULT_MOUSE_SENS_STRING):
        New macros.
        (_cons_show_mouse, _cons_hide_mouse, _cons_mouse_sens): New
        variables.
        (startup_options): Add the options `--mouse-show-on',
        `--mouse-hide-on' and `--mouse-sensitivity'.
        (parse_startup_opt): Parse the options that were added to
        `startup_options' using the new local function `parse_events'.
        * priv.h (CONS_EVT_MOUSE_MOVE, CONS_EVT_MOUSE_BUTTON)
        (CONS_EVT_KEYPRESS, CONS_EVT_OUTPUT): New macros.
        (_cons_show_mouse, _cons_hide_mouse, _cons_mouse_sens): New
        declarations.
        (_cons_vcons_input): New prototype.
        (_cons_vcons_console_event): Likewise.
        * vcons-event.c: New file.
        * vcons-move-mouse.c: Likewise.
        * vcons-input.c (_cons_vcons_input): New function.
        (cons_vcons_input): Rewritten to use _cons_vcons_input and report
        the `CONS_EVT_KEYPRESS' event.
        * vcons-refresh.c: Include "priv.h".
        (cons_vcons_refresh): Report the `CONS_EVT_OUTPUT' event.
        * vcons-scrollback.c: Include "priv.h".
        (cons_vcons_scrollback): Report the `CONS_EVT_OUTPUT' event.

console-client/
2005-01-06  Marco Gerards  <metgerards@student.han.nl>

        * Makefile (SRCS): Add `trans.c'.
        (LCLHDRS): Add `mach-inputdev.h'.
        (HURDLIBS): Add `netfs', `fshelp' and `iohelp'.
        (modules): Add `pc_mouse'.
        (pc_kbd.so.$(hurd-version)): Add `kdioctlServer.o' and
        `kbd-repeat.c'.
        (pc_mouse.so.$(hurd-version)): New variable.
        * console.c: Include <trans.h>.
        (DEFAULT_CONSOLE_NODE): New macro.
        (saved_id, saved_cons, consnode_path): New variables.
        (console_move_mouse): New function.
        (console_switch_away): New function.
        (console_switch_back): Likewise.
        (cons_vcons_set_mousecursor_pos): Likewise.
        (cons_vcons_set_mousecursor_status): Likewise.
        (options): Add the option `--console-node'.
        (parse_opt): Parse the options that were added to `options'.
        (main): Setup the console client translator node.
        * display.h (display_ops): New members `set_mousecursor_pos' and
        `set_mousecursor_status'.
        * driver.c (driver_start): Change the type of `i' to `unsigned
        int'.
        * driver.h (driver_ops): New members `save_status' and
        `restore_status'.
        * input.h (console_switch_away): New prototype.
        (console_switch_back): Likewise.
        (console_move_mouse): Likewise.
        * kbd-repeat.c: New file.
        * mach-inputdev.h: Likewise.
        * pc-mouse.c: Likewise.
        * trans.c: Likewise.
        * trans.h: Likewise.
        * pc-kbd.c: Include <argp.h> and "mach-inputdev.h".
        (DEFAULT_REPEATER_NODE): New macro.
        (repeater_node, cnode): New variables.
        (kev_type, mouse_motion, Scancode, m_deltaX, m_deltaY, MOUSE_LEFT)
        (MOUSE_MIDDLE, MOUSE_RIGHT, MOUSE_MOTION, KEYBD_EVENT)
        (IOCPARM_MASK, IOC_OUT, IOC_IN, _IOC, _IOR, _IOW, KDSKBDMODE,
        (KB_EVENT, KB_ASCII, KDGKBDTYPE, KB_VANILLAKB, KDSETLEDS):
        Removed.
        (gnumach_v1_input_next): Call the repeater when repeating is
        active.
        (doc, options, argp): New variables.
        (parse_opt): New function.
        (pc_kbd_init): Function rewritten.
        (pc_kbd_start): Initialize the repeater, when it is active.
        (pc_kbd_fini): Destroy the console node.
        * vga.c (vga_mousecursor): New struct.
        (vga_mousecursor_t): New type.
        (mousecursor): New variable.
        (hide_mousecursor): New function.
        (draw_mousecursor): Likewise.
        (vga_display_restore_status): Likewise.
        (vga_display_update): Likewise.
        (vga_set_mousecursor_pos): Likewise.
        (vga_set_mousecursor_status): Likewise.
        (vga_display_scroll): Update the mousecursor state.
        (driver_vga_ops): Add `vga_display_restore_status'.
        (vga_display_op): Add `vga_display_update', `vga_set_mousecursor_pos'
        and `vga_set_mousecursor_status'.

Marcus Brinkmann <marcus>
Group administrator
Thu 23 Sep 2004 11:28:29 PM UTC, comment #1: 

Here my notes so far, mostly for the libcons patch.

libcons:

vcons.h:

  • Always document global definitions in header files.  Developers look there

  first (well, I do).

  • Pay attention to name space issues.  MOUSE -> CONS_VCONS_MOUSE


  • MOUSE_MOVE_PROC -> MOUSE_MOVE_ABS_PERCENT


  • cons_vcons_move_mouse is not documented.


opts-std-startup.c:

  • #define DEFAULT_MOUSE_SENS_STRING STRINGIFY(DEFAULT_SLACK)

  c&p error, should be (DEFAULT_MOUSE_SENS)

  • beautify help output: lowercase the arguments to --mouse-show.


  • How about --mouse-show-on= ?  This seems to be more legible.  Same for other.


  • global mouse sensitivity is ok, we need per-device sensitivity, too, though


vcons-move-mouse.c

  • Don't access flags before taking lock.


  • "a xterm" -> "an xterm" (you say "eks" for x, so there is a vowel at

  the beginning, although it's not written).

  • Implement


priv.h:

  • CONSEVT_ -> CONS_EVT_ is more readable I think.  MOUSEMOVE -> MOUSE_MOVE

  MOUSEBUTTON -> MOUSE_BUTTON.  KEYPRESS -> KEY ?  Not sure about the last one.
console:

console.c:

  • Document console_move_mouse().  There's a useless statement in there

  (vcons = active_vcons is twice).


Marcus Brinkmann <marcus>
Group administrator
Thu 23 Sep 2004 09:40:49 PM UTC, original submission:  

This patches add support for mouse support to both
libcon and the console client.  The event mechanism of
libcons was generalised.

The patch also adds repeater support to the console client.

Marco Gerards <marco_g>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attached Files
file #7892:  console_repeater.diff added by marco_g (66KiB - application/octet-stream)
file #7891:  libcons_repeater.diff added by marco_g (17KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

 

Follow 7 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-01-11 marcus StatusNone Done
    Assigned tomarcus marco_g
    Open/ClosedOpen Closed
2004-09-23 marcus Priority5 - Normal 7 - High
2004-09-23 marco_g Assigned toNone marcus
    Attached File- Added console_repeater.diff, #3697
2004-09-23 marco_g Attached File- Added libcons_repeater.diff, #3696

Back to the top

Powered by Savane 3.13-02a9.
Corresponding source code