home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / libraries / controlpad.lha / cp_example.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-12  |  2.5 KB  |  74 lines

  1. #include <stdio.h>
  2. #include "exec/types.h"
  3. #include "proto/exec.h"
  4. #include "libraries/controlpad.h"
  5.  
  6. struct Library *ControlPadBase;
  7.  
  8. void main(int ac, char **av) {
  9.    UBYTE port;
  10.    CPHANDLE cph;
  11.    UWORD cp0, cp1;
  12.  
  13.    if (ac > 1) {
  14.       switch(av[1][0]) {
  15.          case '?':
  16.             printf("USAGE:  cp_example [port]\n");
  17.             printf("  where [port] is:  1  for mouseport\n");
  18.             printf("                    2  for joyport\n");
  19.             printf("                    3  for both ports (default)\n");
  20.             return;
  21.          case '1':
  22.             port = CPU_MOUSEPORT;
  23.             break;
  24.          case '2':
  25.             port = CPU_JOYPORT;
  26.             break;
  27.          default:
  28.             port = CPU_BOTHPORTS;
  29.       }
  30.    } else
  31.       port = CPU_BOTHPORTS;
  32.  
  33.  
  34.  
  35.    if (ControlPadBase = OpenLibrary(ControlPadName, 0)) {
  36.       cpShowLogo(120);
  37.       if (cph = cpAlloc(port)) {
  38.  
  39.          printf("U = up, D = down, L = left, R = right\n");
  40.          printf("A,B,C and S indicate buttons pressed\n");
  41.          printf("3 = 3-button controlpad, I = port is allocated\n");
  42.          printf("E = error.\n\n");
  43.  
  44.          printf("To Quit: Press B button on a controller that is 'in use' (I)...\n\n");
  45.  
  46.          printf("CPU_MOUSEPORT:              CPU_JOYPORT:\n");
  47.          printf("U D L R  A B C S  3 I E     U D L R  A B C S  3 I E\n\n");
  48.  
  49.          do {
  50.             cp0 = cpGet(cph, CPU_MOUSEPORT);
  51.             cp1 = cpGet(cph, CPU_JOYPORT);
  52.             printf("\x1b[A%d %d %d %d  %d %d %d %d  %d %d  %d     ",
  53.                ((cp0 & CPF_UP) != 0),   ((cp0 & CPF_DOWN) != 0),
  54.                ((cp0 & CPF_LEFT) != 0), ((cp0 & CPF_RIGHT) != 0),
  55.                ((cp0 & CPF_A) != 0),    ((cp0 & CPF_B) != 0),
  56.                ((cp0 & CPF_C) != 0),    ((cp0 & CPF_START) != 0),
  57.                ((cp0 & CPF_3BUTTON) != 0), ((cp0 & CPF_INUSE) != 0),
  58.                ((cp0 & CPF_ERROR) != 0));
  59.             printf("%d %d %d %d  %d %d %d %d  %d %d  %d\n",
  60.                ((cp1 & CPF_UP) != 0),   ((cp1 & CPF_DOWN) != 0),
  61.                ((cp1 & CPF_LEFT) != 0), ((cp1 & CPF_RIGHT) != 0),
  62.                ((cp1 & CPF_A) != 0),    ((cp1 & CPF_B) != 0),
  63.                ((cp1 & CPF_C) != 0),    ((cp1 & CPF_START) != 0),
  64.                ((cp1 & CPF_3BUTTON) != 0), ((cp1 & CPF_INUSE) != 0),
  65.                ((cp1 & CPF_ERROR) != 0));
  66.          } while (!( (cp0 & CPF_B) || (cp1 & CPF_B) ));
  67.                // loop until either B button is pressed.
  68.  
  69.          cpFree(cph);
  70.       }
  71.       CloseLibrary(ControlPadBase);
  72.    }
  73. }
  74.