chiark / gitweb /
Manpage gpio(1): Regularise header
[wiringPi.git] / examples / nes.c
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 }