summaryrefslogtreecommitdiffstats
path: root/utils/rockbox_api/update.php
blob: ef4a456d1269c57a4774b46904a978f597baa005 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/usr/bin/php
<?
require_once("functions.php");

$input = file_get_contents($argv[1]);

$input = parse_documentation($input);

foreach($input as $rootname => $rootel)
{
    foreach($rootel as $name => $el)
        $input[$name] = $el;
    unset($input[$rootname]);
}

$new = get_newest();

foreach($new as $name => $el)
{
    unset($new[$name]);
    $name = clean_func($el["func"]);
    
    $new[$name] = array(
                    "group" => array($el["group"]),
                    "description" => array("")
    );
    
    if(strlen($el["cond"]) > 2)
        $new[$name]["conditions"][0] = $el["cond"];
    
    $args = get_args($el["func"]);
    if(count($args) > 0)
    {
        foreach($args as $n => $arg)
        {
            $tmp = split_var($arg);
            $args[$n] = $tmp[1];
        }
        $new[$name]["param"] = $args;
    }
    
    if(get_return($el["func"]) !== false)
        $new[$name]["return"][0] = "";
}


$merged = array_merge($new, $input);

uksort($merged, "func_sort");

echo   '# Auto generated documentation by Rockbox plugin API generator v2'."\n";
echo   '# Made by Maurus Cuelenaere'."\n";
echo <<<MOO
#             __________               __   ___.
#   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
#   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
#   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
#   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
#                     \/            \/     \/    \/            \/
# \$Id$
#
# Generated from $svn\x61pps/plugin.h
#
# Format:
# \\group memory and strings
# \\conditions defined(HAVE_BACKLIGHT)
# \\param fmt
# \\return
# \\description
# \\see func1 func2 [S[apps/plugin.c]]
#
# Markup:
# [W[wiki url]]
# [S[svn url]]
# [F[function]]
# [[url]]
# %BR%
# =code=

MOO;

foreach($merged as $func => $line)
{
    echo "\n".clean_func($func)."\n";

    if(strlen($line["group"]) > 0)
        echo "    \\group ".trim($line["group"][0])."\n";

    if(strlen($line["conditions"]) > 2)
        echo "    \\conditions ".trim(_simplify($line["conditions"][0]))."\n";

    if(isset($line["param"]))
    {
        foreach($line["param"] as $param)
        {
            if($param != "...")
                echo "    \\param ".trim($param)."\n";
        }
    }

    if(isset($line["return"]))
    {
        if(trim($line["return"]) == "")
            echo "    \\return\n";
        else
            echo "    \\return ".trim($line["return"][0])."\n";
    }
    
    if(trim($line["description"]) == "")
        echo "    \\description\n";
    else
        echo "    \\description ".trim($line["description"][0])."\n";
    
    if(isset($line["see"]))
        echo "    \\see ".trim($line["see"][0])."\n";
}

echo "\n# END\n";
?>