diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-07-22 08:22:20 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-07-22 08:22:20 +0000 |
commit | 81ba38e4a1b83a86dd775eebb0d1b63ae0cd4395 (patch) | |
tree | 38520de34911aef95b37afe6deaf7cb60c2c6a26 /utils | |
parent | 2a2df2857bf7e4e469a4f49249d1f1d2e2fa3c01 (diff) |
Theme Editor: Wrote buildtargetdb.php to automatically generate a targetdb file from the target config files in /firmware/export/config. All that remains is to fill out the names of the targets and run the script to build the db
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27516 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/themeeditor/buildtargetdb.php | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/utils/themeeditor/buildtargetdb.php b/utils/themeeditor/buildtargetdb.php new file mode 100755 index 0000000000..be372e1489 --- /dev/null +++ b/utils/themeeditor/buildtargetdb.php @@ -0,0 +1,131 @@ +#!/usr/bin/php -q +<?php +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Robert Bieber + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +// This is the array of targets, with the target id as the key and the +// plaintext name of the target as the value +$targets = array( 'ipod1g2g' => 'iPod 1st/2nd Gen', + 'ipodcolor' => 'iPod Color', + 'ipodmini2g' => 'iPod Mini 2nd Gen', + 'mrobe500' => 'm%:robe 500' + ); + +// Looping through all the targets +foreach($targets as $target => $plaintext) +{ + // Opening a cpp process + $configfile = '../../firmware/export/config/' . $target . '.h'; + $descriptor = array( 0 => array("pipe", "r"), //stdin + 1 => array("pipe", "w") //stdout + ); + + $proc = proc_open('cpp', $descriptor, $pipes); + + if($proc == false) + die("Failed to open process"); + + // Feeding the input to cpp + $input = "#include \"$configfile\"\n"; + $input .= <<<STR +lcd +LCD_WIDTH +LCD_HEIGHT +LCD_DEPTH +remote +#ifdef HAVE_REMOTE_LCD +LCD_REMOTE_WIDTH +LCD_REMOTE_HEIGHT +LCD_REMOTE_DEPTH +#endif +tuner +#ifdef CONFIG_TUNER +yes +#endif +recording +#ifdef HAVE_RECORDING +yes +#endif +unused +STR; + + fwrite($pipes[0], $input); + fclose($pipes[0]); + + $results = stream_get_contents($pipes[1]); + fclose($pipes[1]); + $results = explode("\n", $results); + + // Header for the target + echo $target . "\n{\n"; + echo ' name : ' . $plaintext . "\n"; + + // Writing the LCD dimensions + echo ' screen : ' . $results[7] . ' x ' . $results[8] . ' @ '; + if($results[9] == 1) + echo 'mono'; + else if($results[10] == 2) + echo 'grey'; + else + echo 'rgb'; + echo "\n"; + + // Writing the remote dimensions if necessary + echo ' remote : '; + if($results[12] == 0) + { + echo 'no'; + } + else + { + echo $results[12] . ' x ' .$results[13] . ' @ '; + if($results[14] == 1) + echo 'mono'; + else if($results[14] == 2) + echo 'grey'; + else + echo 'rgb'; + } + echo "\n"; + + // Writing FM capability + echo ' fm : '; + if($results[18] == 'yes') + echo 'yes'; + else + echo 'no'; + echo "\n"; + + // Writing record capability + echo ' record : '; + if($results[22] == 'yes') + echo 'yes'; + else + echo 'no'; + echo "\n"; + + // Closing the target + echo "}\n\n"; + + proc_close($proc); +} + +?> |