diff options
Diffstat (limited to 'utils/rockbox_api/update.php')
| -rwxr-xr-x | utils/rockbox_api/update.php | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/utils/rockbox_api/update.php b/utils/rockbox_api/update.php new file mode 100755 index 0000000..ef4a456 --- /dev/null +++ b/utils/rockbox_api/update.php @@ -0,0 +1,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"; +?>
\ No newline at end of file |