blob: e140dc838e154c9def261c3db3f9111bcc424972 [file] [log] [blame]
Phil Howardaee4f5d2016-02-28 09:54:53 +00001HEADERS = [
2"WiringPi/wiringPi/wiringPi.h",
3"WiringPi/wiringPi/wiringPiI2C.h",
4"WiringPi/wiringPi/wiringPiSPI.h",
5"WiringPi/wiringPi/wiringSerial.h",
6"WiringPi/wiringPi/wiringShift.h",
7"WiringPi/wiringPi/wpiExtensions.h",
8
9"WiringPi/wiringPi/drcSerial.h",
10"WiringPi/wiringPi/max31855.h",
11"WiringPi/wiringPi/max5322.h",
12"WiringPi/wiringPi/mcp23008.h",
13"WiringPi/wiringPi/mcp23016.h",
14"WiringPi/wiringPi/mcp23016reg.h",
15"WiringPi/wiringPi/mcp23017.h",
16"WiringPi/wiringPi/mcp23s08.h",
17"WiringPi/wiringPi/mcp23s17.h",
18"WiringPi/wiringPi/mcp23x0817.h",
19"WiringPi/wiringPi/mcp23x08.h",
20"WiringPi/wiringPi/mcp3002.h",
21"WiringPi/wiringPi/mcp3004.h",
22"WiringPi/wiringPi/mcp3422.h",
23"WiringPi/wiringPi/mcp4802.h",
24"WiringPi/wiringPi/pcf8574.h",
25"WiringPi/wiringPi/pcf8591.h",
26"WiringPi/wiringPi/sn3218.h",
27"WiringPi/wiringPi/softPwm.h",
28"WiringPi/wiringPi/softServo.h",
29"WiringPi/wiringPi/softTone.h",
30"WiringPi/wiringPi/sr595.h",
31
32"WiringPi/devLib/ds1302.h",
33"WiringPi/devLib/font.h",
34"WiringPi/devLib/gertboard.h",
35"WiringPi/devLib/lcd128x64.h",
36"WiringPi/devLib/lcd.h",
37"WiringPi/devLib/maxdetect.h",
38"WiringPi/devLib/piFace.h",
39"WiringPi/devLib/piGlow.h",
40"WiringPi/devLib/piNes.h"
41]
42def is_c_decl(line):
Phil Howard8e29d402016-02-28 10:50:21 +000043 for fn in ['wiringPiISR','wiringPiSetupPiFace','wiringPiSetupPiFaceForGpioProg']:
44 if fn in line:
45 return False
Phil Howardaee4f5d2016-02-28 09:54:53 +000046 for prefix in ['extern','void','int','uint8_t']:
47 if line.startswith(prefix):
48 return True
49
Phil Howard8e29d402016-02-28 10:50:21 +000050print("// Generated by generate-bindings.py - do not edit manually!")
51
Phil Howardaee4f5d2016-02-28 09:54:53 +000052for file in HEADERS:
53 print("\n// Header file {}".format(file))
54 h = open(file).read().split('\n')
55 extern = False
56 cont = False
57 if 'extern "C" {' not in h:
58 extern = True
59 for line in h:
60 line = line.strip()
61 if cont:
62 print("\t{}".format(line))
63 cont = ";" not in line
64 continue
65 if line.startswith('extern "C"'):
66 extern = True
67 continue
68 if is_c_decl(line) and extern:
69 print(line)
70 cont = ";" not in line