• Sam Lantinga's avatar
    Fixed bug #61 · 864d889b
    Sam Lantinga authored
    Date: Mon, 24 Feb 2003 13:35:11 +0800
    From: "Leonidas"
    Subject: [SDL] Re: Trigger mouse wheel event -- not in X-environment
    
    I have looked into the codes for the IMPS/2 mouse wheel mode of fbcon driver.
    But I found something weird.
    
    Here's the original codes to set a mouse device into IMPS/2 mode in libSDL.
    In the file src/video/fbcon/SDL_fbevents.c
    In function static int set_imps2_mode(int fd)
    ...
     Uint8 set_imps2[] = {0xf3, 200, 0xf3, 100, 0xf3, 80};
     Uint8 reset = 0xff;
     fd_set fdset;
     struct timeval tv;
     int retval = 0;
    
     // Set mouse device fd into IMPS/2 mode
     if ( write(fd, &set_imps2, sizeof(set_imps2)) == sizeof(set_imps2) ) {
      // ??? then RESET it..???
      if (write(fd, &reset, sizeof (reset)) == sizeof (reset) ) {
       retval = 1;
      }
     }
    ...........
    
    Since it sets IMPS/2 mode then reset it, so you will never get a mouse into
    IMPS/2 mode to use its wheel.
    What I did to make the wheel usable is remove the RESET codes.
    ....
     if ( write(fd, &set_imps2, sizeof(set_imps2)) == sizeof(set_imps2) ) {
        /*
        if (write(fd, &reset, sizeof (reset)) == sizeof (reset) ) {
        }
       */
       retval = 1;
     }
    ....
    And in FB_OpenMouse(_THIS)
    Make the device /dev/psaux to be setted into imps2 mode  such that it can be
    detected its a imps/2 mouse or not.
    (my mouse device is on ps2, but the codes only set /dev/input/mice device
    originally)
    Then I have done, I can use the mouse wheel when SDL uses frame buff driver.
    
    I dont exactly know I did right or wrong, I just change it for my usuage.
    Correct me please, if I did something wrong.
    
    Best regards,
    Li Tsung Lin
    IAP Product Dept. Engineer
    EeRise Corp. (Image Processing System, Computer Vision System)
    Hsin Tien, Taipei Hsien, Taiwan, R.O.C.
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401589
    864d889b
Name
Last commit
Last update
..
Xext Loading commit data...
aalib Loading commit data...
ataricommon Loading commit data...
bwindow Loading commit data...
cybergfx Loading commit data...
dc Loading commit data...
dga Loading commit data...
directfb Loading commit data...
dummy Loading commit data...
epoc Loading commit data...
fbcon Loading commit data...
gapi Loading commit data...
gem Loading commit data...
ggi Loading commit data...
ipod Loading commit data...
maccommon Loading commit data...
macdsp Loading commit data...
macrom Loading commit data...
nanox Loading commit data...
os2fslib Loading commit data...
photon Loading commit data...
picogui Loading commit data...
ps2gs Loading commit data...
qtopia Loading commit data...
quartz Loading commit data...
riscos Loading commit data...
svga Loading commit data...
vgl Loading commit data...
wincommon Loading commit data...
windib Loading commit data...
windx5 Loading commit data...
wscons Loading commit data...
x11 Loading commit data...
xbios Loading commit data...
.cvsignore Loading commit data...
SDL_RLEaccel.c Loading commit data...
SDL_RLEaccel_c.h Loading commit data...
SDL_blit.c Loading commit data...
SDL_blit.h Loading commit data...
SDL_blit_0.c Loading commit data...
SDL_blit_1.c Loading commit data...
SDL_blit_A.c Loading commit data...
SDL_blit_N.c Loading commit data...
SDL_bmp.c Loading commit data...
SDL_cursor.c Loading commit data...
SDL_cursor_c.h Loading commit data...
SDL_gamma.c Loading commit data...
SDL_glfuncs.h Loading commit data...
SDL_leaks.h Loading commit data...
SDL_pixels.c Loading commit data...
SDL_pixels_c.h Loading commit data...
SDL_stretch.c Loading commit data...
SDL_stretch_c.h Loading commit data...
SDL_surface.c Loading commit data...
SDL_sysvideo.h Loading commit data...
SDL_video.c Loading commit data...
SDL_yuv.c Loading commit data...
SDL_yuv_mmx.c Loading commit data...
SDL_yuv_sw.c Loading commit data...
SDL_yuv_sw_c.h Loading commit data...
SDL_yuvfuncs.h Loading commit data...
blank_cursor.h Loading commit data...
default_cursor.h Loading commit data...
e_log.h Loading commit data...
e_pow.h Loading commit data...
e_sqrt.h Loading commit data...
math_private.h Loading commit data...
mmx.h Loading commit data...