Theme Editor: Modified buildtargetdb.php to read targets list from tools/builds.pm using includetargets.pl

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27630 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-07-30 20:47:25 +00:00
parent 66f8c73dcd
commit d73c81f912
3 changed files with 349 additions and 127 deletions

View file

@ -25,63 +25,21 @@
echo "# ----------------------------------------------------------- #\n";
echo "# ----------------------------------------------------------- #\n";
echo "# --- This file automatically generated, do not modify! --- #\n";
echo "# --- To add a target to the targetdb, add it to the --- #\n";
echo "# --- \$targets array in buildtargetdb.php and run that --- #\n";
echo "# --- script, ensuring that your current directory is --- #\n";
echo "# --- utils/themeeditor, and pipe the output into --- #\n";
echo "# --- utils/themeeditor/resources/targetdb --- #\n";
echo "# ----------------------------------------------------------- #\n";
echo "# ----------------------------------------------------------- #\n\n";
// 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( 'archosfmrecorder' => 'Archos FM Recorder',
'archosondiofm' => 'Archos Ondio FM',
'archosondiosp' => 'Archos Ondio SP',
'archosplayer' => 'Archos Player/Studio',
'archosrecorder' => 'Archos Recorder v1',
'archosrecorderv2' => 'Archos Recorder v2',
'cowond2' => 'Cowon D2',
'iaudiom3' => 'iAudio M3',
'iaudiom5' => 'iAudio M5',
'iaudiox5' => 'iAudio X5',
'ipod1g2g' => 'iPod 1st and 2nd gen',
'ipod3g' => 'iPod 3rd gen',
'ipod4g' => 'iPod 4th gen Grayscale',
'ipodcolor' => 'iPod Color/Photo',
'ipodmini1g' => 'iPod Mini 1st gen',
'ipodmini2g' => 'iPod Mini 2nd gen',
'ipodnano1g' => 'iPod Nano 1st gen',
'ipodnano2g' => 'iPod Nano 2nd gen',
'ipodvideo' => 'iPod Video',
'iriverh10' => 'iriver H10 20GB',
'iriverh10_5gb' => 'iriver H10 5GB',
'iriverh100' => 'iriver H100/115',
'iriverh120' => 'iriver H120/140',
'iriverh300' => 'iriver H320/340',
'mrobe100' => 'Olympus M-Robe 100',
'mrobe500' => 'Olympus M-Robe 500',
'vibe500' => 'Packard Bell Vibe 500',
'samsungyh820' => 'Samsung YH-820',
'samsungyh920' => 'Samsung YH-920',
'samsungyh925' => 'Samsung YH-925',
'sansac200' => 'SanDisk Sansa c200',
'sansaclip' => 'SanDisk Sansa Clip v1',
'sansaclipv2' => 'SanDisk Sansa Clip v2',
'sansaclipplus' => 'SanDisk Sansa Clip+',
'sansae200' => 'SanDisk Sansa e200',
'sansae200v2' => 'SanDisk Sansa e200 v2',
'sansafuze' => 'SanDisk Sansa Fuze',
'sansafuzev2' => 'SanDisk Sansa Fuze v2',
'gigabeatfx' => 'Toshiba Gigabeat F/X',
'gigabeats' => 'Toshiba Gigabeat S'
);
// Importing the target array
system('./includetargets.pl');
require('./targets.php');
unlink('./targets.php');
// Looping through all the targets
foreach($targets as $target => $plaintext)
{
// Opening a cpp process
$configfile = '../../firmware/export/config/' . $target . '.h';
if(!file_exists($configfile))
continue;
$descriptor = array( 0 => array("pipe", "r"), //stdin
1 => array("pipe", "w") //stdout
);
@ -122,15 +80,19 @@ STR;
fclose($pipes[1]);
$results = explode("\n", $results);
$base = 0;
while($results[$base] != 'lcd')
$base++;
// 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 ' screen : ' . $results[$base + 1] . ' x ' . $results[$base + 2] . ' @ ';
if($results[$base + 3] == 1)
echo 'mono';
else if($results[10] == 2)
else if($results[$base + 3] == 2)
echo 'grey';
else
echo 'rgb';
@ -138,16 +100,16 @@ STR;
// Writing the remote dimensions if necessary
echo ' remote : ';
if($results[12] == 0)
if($results[$base + 6] == 0)
{
echo 'no';
}
else
{
echo $results[12] . ' x ' .$results[13] . ' @ ';
if($results[14] == 1)
echo $results[$base + 6] . ' x ' .$results[$base + 7] . ' @ ';
if($results[$base + 8] == 1)
echo 'mono';
else if($results[14] == 2)
else if($results[$base + 8] == 2)
echo 'grey';
else
echo 'rgb';
@ -156,7 +118,7 @@ STR;
// Writing FM capability
echo ' fm : ';
if($results[18] == 'yes')
if($results[$base + 12] == 'yes')
echo 'yes';
else
echo 'no';
@ -164,7 +126,7 @@ STR;
// Writing record capability
echo ' record : ';
if($results[22] == 'yes')
if($results[$base + 16] == 'yes')
echo 'yes';
else
echo 'no';

View file

@ -0,0 +1,58 @@
#!/usr/bin/perl
###########################################################################
# __________ __ ___.
# 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.
#
############################################################################/
require '../../tools/builds.pm';
open(FOUT, ">targets.php");
print FOUT '<?php $targets = array(';
@keys = sort byname keys %builds;
$size = @keys;
$final = @keys[$size - 1];
for my $b (@keys)
{
$key = $b;
$key =~ s/:/%:/;
$name = $builds{$b}{name};
$name =~ s/:/%:/;
print FOUT "\"$key\"" . "=>" . '"' . $name . '"' if ($builds{$b}{status} >= 3);
print FOUT ',' if $b ne $final && $builds{$b}{status} >= 3;
}
for my $b (@keys)
{
$key = $b;
$key =~ s/:/%:/;
$name = $builds{$b}{name};
$name =~ s/:/%:/;
print FOUT "\"$key\"" . "=>" . '"' . $name . '"' if ($builds{$b}{status} < 3);
print FOUT ',' if $b ne $final && $builds{$b}{status} < 3;
}
print FOUT '); ?>';
close(FOUT);

View file

@ -1,11 +1,6 @@
# ----------------------------------------------------------- #
# ----------------------------------------------------------- #
# --- This file automatically generated, do not modify! --- #
# --- To add a target to the targetdb, add it to the --- #
# --- $targets array in buildtargetdb.php and run that --- #
# --- script, ensuring that your current directory is --- #
# --- utils/themeeditor, and pipe the output into --- #
# --- utils/themeeditor/resources/targetdb --- #
# ----------------------------------------------------------- #
# ----------------------------------------------------------- #
@ -63,19 +58,10 @@ archosrecorderv2
record : yes
}
cowond2
{
name : Cowon D2
screen : 320 x 240 @ rgb
remote : no
fm : yes
record : no
}
iaudiom3
{
name : iAudio M3
screen : 128 x 96 @ rgb
screen : 128 x 96 @ grey
remote : no
fm : yes
record : yes
@ -84,7 +70,7 @@ iaudiom3
iaudiom5
{
name : iAudio M5
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : 128 x 96 @ grey
fm : no
record : yes
@ -102,7 +88,7 @@ iaudiox5
ipod1g2g
{
name : iPod 1st and 2nd gen
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : no
fm : no
record : no
@ -111,7 +97,7 @@ ipod1g2g
ipod3g
{
name : iPod 3rd gen
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : no
fm : no
record : no
@ -120,7 +106,7 @@ ipod3g
ipod4g
{
name : iPod 4th gen Grayscale
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : no
fm : yes
record : yes
@ -128,7 +114,7 @@ ipod4g
ipodcolor
{
name : iPod Color/Photo
name : iPod color/Photo
screen : 220 x 176 @ rgb
remote : no
fm : yes
@ -138,7 +124,7 @@ ipodcolor
ipodmini1g
{
name : iPod Mini 1st gen
screen : 138 x 110 @ rgb
screen : 138 x 110 @ grey
remote : no
fm : no
record : no
@ -147,7 +133,7 @@ ipodmini1g
ipodmini2g
{
name : iPod Mini 2nd gen
screen : 138 x 110 @ rgb
screen : 138 x 110 @ grey
remote : no
fm : no
record : no
@ -162,18 +148,9 @@ ipodnano1g
record : yes
}
ipodnano2g
{
name : iPod Nano 2nd gen
screen : 176 x 132 @ rgb
remote : no
fm : no
record : no
}
ipodvideo
{
name : iPod Video
name : iPod Video 30GB
screen : 320 x 240 @ rgb
remote : no
fm : yes
@ -201,7 +178,7 @@ iriverh10_5gb
iriverh100
{
name : iriver H100/115
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : 128 x 64 @ mono
fm : yes
record : yes
@ -210,7 +187,7 @@ iriverh100
iriverh120
{
name : iriver H120/140
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : 128 x 64 @ mono
fm : yes
record : yes
@ -234,6 +211,177 @@ mrobe100
record : no
}
vibe500
{
name : Packard Bell Vibe 500
screen : 160 x 128 @ rgb
remote : no
fm : no
record : yes
}
sansac200
{
name : SanDisk Sansa c200
screen : 132 x 80 @ rgb
remote : no
fm : yes
record : yes
}
sansae200
{
name : SanDisk Sansa e200
screen : 176 x 220 @ rgb
remote : no
fm : yes
record : yes
}
sansae200v2
{
name : SanDisk Sansa e200 v2
screen : 176 x 220 @ rgb
remote : no
fm : yes
record : yes
}
sansafuze
{
name : SanDisk Sansa Fuze
screen : 220 x 176 @ rgb
remote : no
fm : yes
record : yes
}
gigabeatfx
{
name : Toshiba Gigabeat F/X
screen : 240 x 320 @ rgb
remote : no
fm : no
record : no
}
cowond2
{
name : Cowon D2
screen : 320 x 240 @ rgb
remote : no
fm : yes
record : no
}
zenvision
{
name : Creative Zen Vision
screen : 320 x 240 @ rgb
remote : no
fm : no
record : no
}
zenvisionm30gb
{
name : Creative Zen Vision%:M 30GB
screen : 320 x 240 @ rgb
remote : no
fm : no
record : no
}
zenvisionm60gb
{
name : Creative Zen Vision%:M 60GB
screen : 320 x 240 @ rgb
remote : no
fm : no
record : no
}
iaudio7
{
name : iAudio 7
screen : 160 x 128 @ rgb
remote : no
fm : yes
record : yes
}
ipodnano2g
{
name : iPod Nano 2nd gen
screen : 176 x 132 @ rgb
remote : no
fm : no
record : no
}
iriverifp7xx
{
name : iriver iFP-7xx
screen : 128 x 64 @ mono
remote : no
fm : no
record : no
}
logikdax
{
name : Logik DAX
screen : 128 x 64 @ mono
remote : no
fm : no
record : no
}
lyreproto1
{
name : Lyre Prototype 1
screen : 128 x 128 @ rgb
remote : no
fm : no
record : no
}
meizum3
{
name : Meizu M3
screen : 176 x 132 @ rgb
remote : no
fm : yes
record : no
}
meizum6sl
{
name : Meizu M6SL
screen : 320 x 240 @ rgb
remote : no
fm : yes
record : no
}
meizum6sp
{
name : Meizu M6SP
screen : 240 x 320 @ rgb
remote : no
fm : yes
record : no
}
mini2440
{
name : Mini 2440
screen : 240 x 320 @ rgb
remote : no
fm : no
record : no
}
mrobe500
{
name : Olympus M-Robe 500
@ -243,13 +391,49 @@ mrobe500
record : no
}
vibe500
ondavx747
{
name : Packard Bell Vibe 500
screen : 160 x 128 @ rgb
name : Onda VX747
screen : 240 x 400 @ rgb
remote : no
fm : yes
record : no
}
ondavx767
{
name : Onda VX767
screen : 320 x 240 @ rgb
remote : no
fm : yes
record : no
}
ondavx777
{
name : Onda VX777
screen : 240 x 400 @ rgb
remote : no
fm : yes
record : no
}
gogearhdd1630
{
name : Philips GoGear HDD1630
screen : 128 x 128 @ rgb
remote : no
fm : yes
record : yes
}
gogearsa9200
{
name : Philips GoGear SA9200
screen : 128 x 160 @ rgb
remote : no
fm : no
record : yes
record : no
}
samsungyh820
@ -264,7 +448,7 @@ samsungyh820
samsungyh920
{
name : Samsung YH-920
screen : 160 x 128 @ rgb
screen : 160 x 128 @ grey
remote : no
fm : no
record : no
@ -279,9 +463,27 @@ samsungyh925
record : no
}
sansac200
samsungyps3
{
name : SanDisk Sansa c200
name : Samsung YP-S3
screen : 176 x 220 @ rgb
remote : no
fm : yes
record : no
}
sansac100
{
name : SanDisk Sansa c100
screen : 128 x 64 @ rgb
remote : no
fm : no
record : no
}
sansac200v2
{
name : SanDisk Sansa c200 v2
screen : 132 x 80 @ rgb
remote : no
fm : yes
@ -315,33 +517,6 @@ sansaclipplus
record : yes
}
sansae200
{
name : SanDisk Sansa e200
screen : 176 x 220 @ rgb
remote : no
fm : yes
record : yes
}
sansae200v2
{
name : SanDisk Sansa e200 v2
screen : 176 x 220 @ rgb
remote : no
fm : yes
record : yes
}
sansafuze
{
name : SanDisk Sansa Fuze
screen : 220 x 176 @ rgb
remote : no
fm : yes
record : yes
}
sansafuzev2
{
name : SanDisk Sansa Fuze v2
@ -351,15 +526,42 @@ sansafuzev2
record : yes
}
gigabeatfx
sansam200
{
name : Toshiba Gigabeat F/X
name : SanDisk Sansa m200
screen : 128 x 64 @ mono
remote : no
fm : no
record : no
}
sansam200v4
{
name : SanDisk Sansa m200 v4
screen : 128 x 64 @ mono
remote : no
fm : yes
record : yes
}
sansaview
{
name : SanDisk Sansa View
screen : 240 x 320 @ rgb
remote : no
fm : no
record : no
}
tatungtpj1022
{
name : Tatung Elio TPJ-1022
screen : 220 x 176 @ rgb
remote : no
fm : no
record : no
}
gigabeats
{
name : Toshiba Gigabeat S