Statistics
| Branch: | Revision:

ddr4s / fw / wiringPi / examples / nes.c @ 32:cadb9025f1e0

History | View | Annotate | Download (2.19 KB)

1
/*
2
 * nes.c:
3
 *        Test program for an old NES controller connected to the Pi.
4
 *
5
 * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
6
 ***********************************************************************
7
 * This file is part of wiringPi:
8
 *        https://projects.drogon.net/raspberry-pi/wiringpi/
9
 *
10
 *    wiringPi is free software: you can redistribute it and/or modify
11
 *    it under the terms of the GNU Lesser General Public License as published by
12
 *    the Free Software Foundation, either version 3 of the License, or
13
 *    (at your option) any later version.
14
 *
15
 *    wiringPi is distributed in the hope that it will be useful,
16
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 *    GNU Lesser General Public License for more details.
19
 *
20
 *    You should have received a copy of the GNU Lesser General Public License
21
 *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
22
 ***********************************************************************
23
 */
24

    
25
#include <stdio.h>
26
#include <errno.h>
27
#include <string.h>
28

    
29
#include <wiringPi.h>
30
#include <piNes.h>
31

    
32
#define        BLANK        "|      "
33

    
34
int main ()
35
{
36
  int joystick ;
37
  unsigned int buttons ;
38

    
39
  if (wiringPiSetup () == -1)
40
  {
41
    fprintf (stdout, "oops: %s\n", strerror (errno)) ;
42
    return 1 ;
43
  }
44

    
45
  if ((joystick = setupNesJoystick (2, 1, 0)) == -1)
46
  {
47
    fprintf (stdout, "Unable to setup joystick\n") ;
48
    return 1 ;
49
  }
50

    
51
  for (;;)
52
  {
53
    buttons = readNesJoystick (joystick) ;
54

    
55
    if ((buttons & NES_UP)     != 0) printf ("|  UP  " ) ; else printf (BLANK) ;
56
    if ((buttons & NES_DOWN)   != 0) printf ("| DOWN " ) ; else printf (BLANK) ;
57
    if ((buttons & NES_LEFT)   != 0) printf ("| LEFT " ) ; else printf (BLANK) ;
58
    if ((buttons & NES_RIGHT)  != 0) printf ("|RIGHT " ) ; else printf (BLANK) ;
59
    if ((buttons & NES_SELECT) != 0) printf ("|SELECT" ) ; else printf (BLANK) ;
60
    if ((buttons & NES_START)  != 0) printf ("|START " ) ; else printf (BLANK) ;
61
    if ((buttons & NES_A)      != 0) printf ("|  A   " ) ; else printf (BLANK) ;
62
    if ((buttons & NES_B)      != 0) printf ("|  B   " ) ; else printf (BLANK) ;
63
    printf ("|\n") ;
64
  }
65

    
66
  return 0 ;
67
}