#define OUTPUT 1
#define PWM_OUTPUT 2
#define GPIO_CLOCK 3
+#define SOFT_PWM_OUTPUT 4
+#define SOFT_TONE_OUTPUT 5
#define LOW 0
#define HIGH 1
#define INT_EDGE_RISING 2
#define INT_EDGE_BOTH 3
+// Pi model types
+
+#define PI_MODEL_A 0
+#define PI_MODEL_B 1
+#define PI_MODEL_CM 2
+
+
// Threads
#define PI_THREAD(X) void *X (void *dummy)
struct wiringPiNodeStruct *next ;
} ;
+extern struct wiringPiNodeStruct *wiringPiNodes ;
+
// Function prototypes
// c++ wrappers thanks to a comment by Nick Lott
extern "C" {
#endif
+// Data
+
+extern const char *piModelNames [] ;
+extern const char *piRevisionNames[] ;
+extern const char *piComputeRevisionNames[] ;
+
// Internal
extern int wiringPiFailure (int fatal, const char *message, ...) ;
// Core wiringPi functions
-extern struct wiringPiNodeStruct *wiringPiNewNode (int pinBase, int numPins) ;
+extern struct wiringPiNodeStruct *wiringPiFindNode (int pin) ;
+extern struct wiringPiNodeStruct *wiringPiNewNode (int pinBase, int numPins) ;
extern int wiringPiSetup (void) ;
extern int wiringPiSetupSys (void) ;
extern int wiringPiSetupGpio (void) ;
extern int wiringPiSetupPhys (void) ;
+extern void pinModeAlt (int pin, int mode) ;
extern void pinMode (int pin, int mode) ;
extern void pullUpDnControl (int pin, int pud) ;
extern int digitalRead (int pin) ;
// On-Board Raspberry Pi hardware specific stuff
extern int piBoardRev (void) ;
+extern void piBoardId (int *model, int *rev, int *mem, char **maker) ;
extern int wpiPinToGpio (int wpiPin) ;
extern int physPinToGpio (int physPin) ;
extern void setPadDrive (int group, int value) ;