summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-07-22 08:22:20 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-07-22 08:22:20 +0000
commit81ba38e4a1b83a86dd775eebb0d1b63ae0cd4395 (patch)
tree38520de34911aef95b37afe6deaf7cb60c2c6a26 /utils
parent2a2df2857bf7e4e469a4f49249d1f1d2e2fa3c01 (diff)
downloadrockbox-81ba38e4a1b83a86dd775eebb0d1b63ae0cd4395.tar.gz
rockbox-81ba38e4a1b83a86dd775eebb0d1b63ae0cd4395.tar.bz2
rockbox-81ba38e4a1b83a86dd775eebb0d1b63ae0cd4395.zip
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-xutils/themeeditor/buildtargetdb.php131
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);
+}
+
+?>