1#!/bin/bash
2cd `dirname $0`
3cd ../..
4
5set -e
6
7test -f "$1"
8
9echo "# consolidating JSON $1"
10php << EOF
11<?php
12\$json = file_get_contents ('$1');
13\$api = array ();
14foreach (json_decode (\$json, true) as \$a) {
15	if (!isset (\$a['decl'])) { continue; }
16
17	\$a['decl'] = str_replace ('__cxx11::', '', \$a['decl']);
18	\$a['decl'] = str_replace ('size_t', 'unsigned long', \$a['decl']);
19	\$a['decl'] = str_replace ('uint32_t', 'unsigned int', \$a['decl']);
20	\$a['decl'] = str_replace ('int32_t', 'int', \$a['decl']);
21	\$a['decl'] = str_replace ('ARDOUR::samplepos_t', 'long', \$a['decl']);
22	\$a['decl'] = str_replace ('ARDOUR::samplecnt_t', 'long', \$a['decl']);
23	\$a['decl'] = str_replace ('ARDOUR::sampleoffset_t', 'long', \$a['decl']);
24	\$a['decl'] = str_replace ('ARDOUR::frameoffset_t', 'long', \$a['decl']);
25	\$a['decl'] = str_replace ('ARDOUR::pframes_t', 'unsigned int', \$a['decl']);
26	\$a['decl'] = str_replace ('ARDOUR::Sample', 'float', \$a['decl']);
27	\$a['decl'] = str_replace ('ARDOUR::gain_t', 'float', \$a['decl']);
28	\$a['decl'] = str_replace ('samplepos_t', 'long', \$a['decl']);
29	\$a['decl'] = str_replace ('samplecnt_t', 'long', \$a['decl']);
30	\$a['decl'] = str_replace ('sampleoffset_t', 'long', \$a['decl']);
31	\$a['decl'] = str_replace ('frameoffset_t', 'long', \$a['decl']);
32	\$a['decl'] = str_replace ('pframes_t', 'unsigned int', \$a['decl']);
33	\$a['decl'] = preg_replace ('/\bSample\b/', 'float', \$a['decl']);
34	\$a['decl'] = str_replace ('gain_t', 'float', \$a['decl']);
35	\$a['decl'] = str_replace ('int64_t', 'long', \$a['decl']);
36	\$a['decl'] = str_replace ('uint8_t', 'unsigned char', \$a['decl']);
37	\$a['decl'] = str_replace ('uint64_t', 'unsigned long', \$a['decl']);
38	\$a['decl'] = str_replace ('const char', 'char', \$a['decl']);
39	\$a['decl'] = str_replace ('const float', 'float', \$a['decl']);
40	\$a['decl'] = str_replace ('const double', 'double', \$a['decl']);
41	\$a['decl'] = str_replace ('const long', 'long', \$a['decl']);
42	\$a['decl'] = str_replace ('const unsigned int', 'unsigned int', \$a['decl']);
43	\$a['decl'] = str_replace ('const unsigned long', 'unsigned long', \$a['decl']);
44	\$a['decl'] = str_replace (' ::Vamp::', ' Vamp::', \$a['decl']);
45	\$a['decl'] = str_replace ('Cairo::Context::set_line_join(LineJoin)', 'Cairo::Context::set_line_join(Cairo::LineJoin)', \$a['decl']);
46	\$a['decl'] = str_replace ('Cairo::Context::set_line_cap(LineCap)', 'Cairo::Context::set_line_cap(Cairo::LineCap)', \$a['decl']);
47	\$a['decl'] = str_replace ('Cairo::Context::set_operator(Operator)', 'Cairo::Context::set_operator(Cairo::Operator)', \$a['decl']);
48	\$canon = str_replace (' *', '*', \$a['decl']);
49	\$api[\$canon] = \$a;
50}
51\$jout = array ();
52foreach (\$api as \$k => \$a) {
53	\$jout[] = \$a;
54}
55file_put_contents('doc/ardourapi.json.gz', gzencode (json_encode (\$jout, JSON_PRETTY_PRINT)));
56EOF
57
58ls -l doc/ardourapi.json.gz
59