#define OUTPUT 1
#define PWM_OUTPUT 2
#define GPIO_CLOCK 3
+#define SOFT_PWM_OUTPUT 4
+#define SOFT_TONE_OUTPUT 5
+#define PWM_TONE_OUTPUT 6
#define LOW 0
#define HIGH 1
#define INT_EDGE_RISING 2
#define INT_EDGE_BOTH 3
+// Pi model types and version numbers
+// Intended for the GPIO program Use at your own risk.
+
+#define PI_MODEL_UNKNOWN 0
+#define PI_MODEL_A 1
+#define PI_MODEL_B 2
+#define PI_MODEL_BP 3
+#define PI_MODEL_CM 4
+#define PI_MODEL_AP 5
+#define PI_MODEL_2 6
+
+#define PI_VERSION_UNKNOWN 0
+#define PI_VERSION_1 1
+#define PI_VERSION_1_1 2
+#define PI_VERSION_1_2 3
+#define PI_VERSION_2 4
+
+#define PI_MAKER_UNKNOWN 0
+#define PI_MAKER_EGOMAN 1
+#define PI_MAKER_SONY 2
+#define PI_MAKER_QISDA 3
+#define PI_MAKER_MBEST 4
+
+extern const char *piModelNames [7] ;
+extern const char *piRevisionNames [5] ;
+extern const char *piMakerNames [5] ;
+
+
+// Intended for the GPIO program Use at your own risk.
+
// 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
+
// 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, int *maker, int *overVolted) ;
extern int wpiPinToGpio (int wpiPin) ;
extern int physPinToGpio (int physPin) ;
extern void setPadDrive (int group, int value) ;
extern int getAlt (int pin) ;
+extern void pwmToneWrite (int pin, int freq) ;
extern void digitalWriteByte (int value) ;
extern void pwmSetMode (int mode) ;
extern void pwmSetRange (unsigned int range) ;