bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[patch #3386] Add repeater and mouse support to the console


From: Marcus Brinkmann
Subject: [patch #3386] Add repeater and mouse support to the console
Date: Tue, 11 Jan 2005 21:26:48 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Galeon/1.3.15 (Debian package 1.3.15-2)

This is an automated notification sent by Savannah.
It relates to:
                patch #3386, project The GNU Hurd

==============================================================================
 LATEST MODIFICATIONS of patch #3386:
==============================================================================

               Posted by: Marcus Brinkmann <marcus>
               Posted on: 2005-01-11 21:26 (Europe/Berlin)
    _______________________________________________________

                  Status:                    None -> Applied                
             Assigned to:                  marcus -> marco_g                
             Open/Closed:                    Open -> Closed                 

    _______________________________________________________

Follow-up Comment:
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'.



==============================================================================
 OVERVIEW of patch #3386:
==============================================================================

URL:
  <http://savannah.gnu.org/patch/?func=detailitem&item_id=3386>

                 Summary: Add repeater and mouse support to the console
                 Project: The GNU Hurd
            Submitted by: marco_g
            Submitted on: Thu 09/23/04 at 21:40
                Category: Console
                Priority: 7 - High
                  Status: Applied
                 Privacy: Public
             Assigned to: marco_g
        Originator Email: 
             Open/Closed: Closed

    _______________________________________________________


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.



    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Tue 01/11/05 at 21:26         By: Marcus Brinkmann <marcus>
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'.



-------------------------------------------------------
Date: Thu 09/23/04 at 23:28         By: Marcus Brinkmann <marcus>
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).











    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Thu 09/23/04 at 21:41  Name: console_repeater.diff  Size: 65.73KB   By:
marco_g

<http://savannah.gnu.org/patch/download.php?item_id=3386&item_file_id=3697>
-------------------------------------------------------
Date: Thu 09/23/04 at 21:40  Name: libcons_repeater.diff  Size: 17.08KB   By:
marco_g

<http://savannah.gnu.org/patch/download.php?item_id=3386&item_file_id=3696>

==============================================================================

This item URL is:
  <http://savannah.gnu.org/patch/?func=detailitem&item_id=3386>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]