~ubuntu-branches/ubuntu/edgy/joystick/edgy

« back to all changes in this revision

Viewing changes to utils/inputattach.c

  • Committer: Bazaar Package Importer
  • Author(s): Edward Betts
  • Date: 2005-10-19 06:22:03 UTC
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20051019062203-y5p53ozxfuk5dvkq
Tags: upstream-20051019
ImportĀ upstreamĀ versionĀ 20051019

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * $Id: inputattach.c,v 1.19 2001/07/19 19:01:10 jsimmons Exp $
 
2
 * $Id: inputattach.c,v 1.23 2005/03/22 13:12:29 vojtech Exp $
3
3
 *
4
4
 *  Copyright (c) 1999-2000 Vojtech Pavlik
5
5
 *
30
30
 * 
31
31
 * Should you need to contact me, the author, you can do so either by
32
32
 * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
33
 
 * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
 
33
 * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
34
34
 */
35
35
 
36
36
#include <linux/serio.h>
319
319
{
320
320
        unsigned char c, o = 0;
321
321
 
 
322
        c = 0x80;
 
323
 
 
324
        if (write(fd, &c, 1) != 1)         /* Enable command */
 
325
                return -1;
 
326
 
322
327
        while (1)
323
328
                if (!readchar(fd, &c, 1)) {
324
329
                        printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x');
337
342
        int speed;
338
343
        int flags;
339
344
        unsigned long type;
 
345
        unsigned long id;
340
346
        unsigned long extra;
341
347
        int flush;
342
348
        int (*init)(int fd, long *id, long *extra);
344
350
 
345
351
struct input_types input_types[] = {
346
352
 
347
 
{ "--sunkbd",           "-skb",         B1200, CS8,                     SERIO_SUNKBD,   0x00,   1,      NULL },
348
 
{ "--spaceorb",         "-orb",         B9600, CS8,                     SERIO_SPACEORB, 0x00,   1,      NULL },
349
 
{ "--spaceball",        "-sbl",         B9600, CS8,                     SERIO_SPACEBALL,0x00,   0,      spaceball_init },
350
 
{ "--magellan",         "-mag",         B9600, CS8 | CSTOPB | CRTSCTS,  SERIO_MAGELLAN, 0x00,   1,      magellan_init },
351
 
{ "--warrior",          "-war",         B1200, CS7 | CSTOPB,            SERIO_WARRIOR,  0x00,   1,      warrior_init },
352
 
{ "--stinger",          "-sting",       B1200, CS8,                     SERIO_STINGER,  0x00,   1,      stinger_init },
353
 
{ "--mousesystems",     "-msc",         B1200, CS8,                     SERIO_MSC,      0x01,   1,      NULL },
354
 
{ "--sunmouse",         "-sun",         B1200, CS8,                     SERIO_SUN,      0x01,   1,      NULL },
355
 
{ "--microsoft",        "-bare",        B1200, CS7,                     SERIO_MS,       0x00,   1,      NULL },
356
 
{ "--mshack",           "-ms",          B1200, CS7,                     SERIO_MS,       0x01,   1,      NULL },
357
 
{ "--mouseman",         "-mman",        B1200, CS7,                     SERIO_MP,       0x01,   1,      NULL },
358
 
{ "--intellimouse",     "-ms3",         B1200, CS7,                     SERIO_MZ,       0x11,   1,      NULL },
359
 
{ "--mmwheel",          "-mmw",         B1200, CS7 | CSTOPB,            SERIO_MZP,      0x13,   1,      mzp_init },
360
 
{ "--iforce",           "-ifor",        B38400, CS8,                    SERIO_IFORCE,   0x00,   0,      NULL },
361
 
{ "--newtonkbd",        "-newt",        B9600, CS8,                     SERIO_NEWTON,   0x00,   0,      newton_init },
362
 
{ "--h3600ts",          "-ipaq",        B115200, CS8,                   SERIO_H3600,    0x00,   0,      NULL },
363
 
{ "--stowawaykbd",      "-ipaqkbd",     B115200, CS8,                   SERIO_STOWAWAY, 0x00,   0,      NULL },
364
 
{ "--ps2serkbd",        "-ps2ser",      B1200, CS8,                     SERIO_PS2SER,   0x00,   1,      NULL },
365
 
{ "--twiddler",         "-twid",        B2400, CS8,                     SERIO_TWIDKBD,  0x00,   0,      twiddler_init },
366
 
{ "--twiddler-joy",     "-twidjoy",     B2400, CS8,                     SERIO_TWIDJOY,  0x00,   0,      twiddler_init },
367
 
{ "--dump",             "-dump",        B1200, CS7,                     0,              0x00,   0,      dump_init },
 
353
{ "--sunkbd",           "-skb",         B1200, CS8,                     SERIO_SUNKBD,   0,      0,      1,      NULL },
 
354
{ "--lkkbd",            "-lk",          B4800, CS8|CSTOPB,              SERIO_LKKBD,    0,      0,      1,      NULL },
 
355
{ "--vsxxx-aa",         "-vs",          B4800, CS8|CSTOPB|PARENB|PARODD,SERIO_VSXXXAA,  0,      0,      1,      NULL },
 
356
{ "--spaceorb",         "-orb",         B9600, CS8,                     SERIO_SPACEORB, 0,      0,      1,      NULL },
 
357
{ "--spaceball",        "-sbl",         B9600, CS8,                     SERIO_SPACEBALL,0,      0,      0,      spaceball_init },
 
358
{ "--magellan",         "-mag",         B9600, CS8 | CSTOPB | CRTSCTS,  SERIO_MAGELLAN, 0,      0,      1,      magellan_init },
 
359
{ "--warrior",          "-war",         B1200, CS7 | CSTOPB,            SERIO_WARRIOR,  0,      0,      1,      warrior_init },
 
360
{ "--stinger",          "-sting",       B1200, CS8,                     SERIO_STINGER,  0,      0,      1,      stinger_init },
 
361
{ "--mousesystems",     "-msc",         B1200, CS8,                     SERIO_MSC,      0,      0x01,   1,      NULL },
 
362
{ "--sunmouse",         "-sun",         B1200, CS8,                     SERIO_SUN,      0,      0x01,   1,      NULL },
 
363
{ "--microsoft",        "-bare",        B1200, CS7,                     SERIO_MS,       0,      0,      1,      NULL },
 
364
{ "--mshack",           "-ms",          B1200, CS7,                     SERIO_MS,       0,      0x01,   1,      NULL },
 
365
{ "--mouseman",         "-mman",        B1200, CS7,                     SERIO_MP,       0,      0x01,   1,      NULL },
 
366
{ "--intellimouse",     "-ms3",         B1200, CS7,                     SERIO_MZ,       0,      0x11,   1,      NULL },
 
367
{ "--mmwheel",          "-mmw",         B1200, CS7 | CSTOPB,            SERIO_MZP,      0,      0x13,   1,      mzp_init },
 
368
{ "--iforce",           "-ifor",        B38400, CS8,                    SERIO_IFORCE,   0,      0,      0,      NULL },
 
369
{ "--newtonkbd",        "-newt",        B9600, CS8,                     SERIO_NEWTON,   0,      0,      0,      newton_init },
 
370
{ "--h3600ts",          "-ipaq",        B115200, CS8,                   SERIO_H3600,    0,      0,      0,      NULL },
 
371
{ "--stowawaykbd",      "-ipaqkbd",     B115200, CS8,                   SERIO_STOWAWAY, 0,      0,      0,      NULL },
 
372
{ "--ps2serkbd",        "-ps2ser",      B1200, CS8,                     SERIO_PS2SER,   0,      0,      1,      NULL },
 
373
{ "--twiddler",         "-twid",        B2400, CS8,                     SERIO_TWIDKBD,  0,      0,      0,      twiddler_init },
 
374
{ "--twiddler-joy",     "-twidjoy",     B2400, CS8,                     SERIO_TWIDJOY,  0,      0,      0,      twiddler_init },
 
375
{ "--elotouch",         "-elo",         B9600, CS8 | CRTSCTS,           SERIO_ELO,      0,      0,      0,      NULL },
 
376
{ "--elo4002",          "-elo6b",       B9600, CS8 | CRTSCTS,           SERIO_ELO,      1,      0,      0,      NULL },
 
377
{ "--elo271-140",       "-elo4b",       B9600, CS8 | CRTSCTS,           SERIO_ELO,      2,      0,      0,      NULL },
 
378
{ "--elo261-280",       "-elo3b",       B9600, CS8 | CRTSCTS,           SERIO_ELO,      3,      0,      0,      NULL },
 
379
{ "--dump",             "-dump",        B2400, CS8,                     0,              0,      0,      0,      dump_init },
368
380
{ "", "", 0, 0 }
369
381
 
370
382
};
384
396
                puts("");
385
397
                puts("Modes:");
386
398
                puts("  --sunkbd        -skb   Sun Type 4 and Type 5 keyboards");
 
399
                puts("  --lkkbd         -lk    DEC LK201 / LK401 keyboards");
 
400
                puts("  --vsxxx-aa      -vs    DEC VSXXX-AA / VSXXX-GA mouse and VSXXX-AB tablet");
387
401
                puts("  --spaceorb      -orb   SpaceOrb 360 / SpaceBall Avenger");
388
402
                puts("  --spaceball     -sbl   SpaceBall 2003 / 3003 / 4000 FLX");
389
403
                puts("  --magellan      -mag   Magellan / SpaceMouse");
427
441
        if (input_types[type].flush)
428
442
                while (!readchar(fd, &c, 100));
429
443
 
430
 
        id = 0;
 
444
        id = input_types[type].id;
431
445
        extra = input_types[type].extra;
432
446
 
433
447
        if (input_types[type].init && input_types[type].init(fd, &id, &extra)) {