Minor correction to macros, beautification of loop.
[maemo-rb.git] / tools / builds.pm
blob4f8b129b4b152cdf3c0d5758a09a6c511b13dc77
1 $publicrelease="3.6";
2 $manualrelease="3.6";
3 $voicerelease="3.6";
4 $releasedate="June 3, 2010";
5 $releasenotes="/wiki/ReleaseNotes36";
7 %builds = (
8 'archosav300' => {
9 name => 'Archos AV300',
10 status => 1, # 3=stable, 2=unstable, 1=unusable
12 'archosfmrecorder' => {
13 name => 'Archos FM Recorder',
14 status => 3,
15 ram => 2,
17 'archosondiofm' => {
18 name => 'Archos Ondio FM',
19 status => 3,
20 ram => 2,
22 'archosondiosp' => {
23 name => 'Archos Ondio SP',
24 status => 3,
25 ram => 2,
27 'archosplayer' => {
28 name => 'Archos Player/Studio',
29 status => 3,
30 ram => 2,
32 'archosrecorder' => {
33 name => 'Archos Recorder v1',
34 status => 3,
35 ram => 2,
37 'archosrecorderv2' => {
38 name => 'Archos Recorder v2',
39 status => 3,
40 ram => 2,
41 manual => "archosfmrecorder",
43 'cowond2' => {
44 name => 'Cowon D2',
45 status => 2,
46 manual => 'cowond2',
48 'gigabeatfx' => {
49 name => 'Toshiba Gigabeat F/X',
50 status => 3,
52 'gigabeats' => {
53 name => 'Toshiba Gigabeat S',
54 status => 2,
56 'gogearhdd1630' => {
57 name => 'Philips GoGear HDD1630',
58 status => 1,
60 'gogearsa9200' => {
61 name => 'Philips GoGear SA9200',
62 status => 1,
64 'iaudio7' => {
65 name => 'iAudio 7',
66 status => 1,
68 'iaudiom3' => {
69 name => 'iAudio M3',
70 status => 3,
72 'iaudiom5' => {
73 name => 'iAudio M5',
74 status => 3,
76 'iaudiox5' => {
77 name => 'iAudio X5',
78 status => 3,
80 'ipod1g2g' => {
81 name => 'iPod 1st and 2nd gen',
82 status => 3,
84 'ipod3g' => {
85 name => 'iPod 3rd gen',
86 status => 3,
88 'ipod4g' => {
89 name => 'iPod 4th gen Grayscale',
90 status => 3,
92 'ipodcolor' => {
93 name => 'iPod color/Photo',
94 status => 3,
96 'ipodmini1g' => {
97 name => 'iPod Mini 1st gen',
98 status => 3,
100 'ipodmini2g' => {
101 name => 'iPod Mini 2nd gen',
102 status => 3,
103 icon => 'ipodmini1g',
104 manual => 'ipodmini1g',
106 'ipodnano1g' => {
107 name => 'iPod Nano 1st gen',
108 status => 3,
110 'ipodnano2g' => {
111 name => 'iPod Nano 2nd gen',
112 status => 2,
114 'ipodvideo' => {
115 name => 'iPod Video 30GB',
116 status => 3,
117 ram => 32,
119 'ipodvideo64mb' => {
120 name => 'iPod Video 60/80GB',
121 status => 3,
122 icon => 'ipodvideo',
123 manual => 'ipodvideo',
124 voice => 'ipodvideo',
125 configname => 'ipodvideo',
126 ram => 64,
128 'iriverh10' => {
129 name => 'iriver H10 20GB',
130 status => 3,
132 'iriverh10_5gb' => {
133 name => 'iriver H10 5GB',
134 status => 3,
136 'iriverh100' => {
137 name => 'iriver H100/115',
138 status => 3,
140 'iriverh120' => {
141 name => 'iriver H120/140',
142 status => 3,
143 icon => 'iriverh100',
144 manual => 'iriverh100',
146 'iriverh300' => {
147 name => 'iriver H320/340',
148 status => 3,
150 'iriverifp7xx' => {
151 name => 'iriver iFP-7xx',
152 status => 1,
154 'logikdax' => {
155 name => 'Logik DAX',
156 status => 1,
158 'lyreproto1' => {
159 name => 'Lyre Prototype 1',
160 status => 1,
162 'mini2440' => {
163 name => 'Mini 2440',
164 status => 1,
166 'meizum3' => {
167 name => 'Meizu M3',
168 status => 1,
170 'meizum6sl' => {
171 name => 'Meizu M6SL',
172 status => 1,
174 'meizum6sp' => {
175 name => 'Meizu M6SP',
176 status => 1,
178 'mrobe100' => {
179 name => 'Olympus M-Robe 100',
180 status => 3,
182 'mrobe500' => {
183 name => 'Olympus M-Robe 500',
184 status => 2,
186 'ondavx747' => {
187 name => 'Onda VX747',
188 status => 1,
190 'ondavx747p' => {
191 name => 'Onda VX747+',
192 status => 1,
194 'ondavx767' => {
195 name => 'Onda VX767',
196 status => 1,
198 'ondavx777' => {
199 name => 'Onda VX777',
200 status => 1,
202 'samsungyh820' => {
203 name => 'Samsung YH-820',
204 status => 2,
206 'samsungyh920' => {
207 name => 'Samsung YH-920',
208 status => 2,
210 'samsungyh925' => {
211 name => 'Samsung YH-925',
212 status => 2,
214 'samsungyps3' => {
215 name => 'Samsung YP-S3',
216 status => 1,
218 'sansac100' => {
219 name => 'SanDisk Sansa c100',
220 status => 1,
222 'sansac200' => {
223 name => 'SanDisk Sansa c200',
224 status => 3,
226 'sansac200v2' => {
227 name => 'SanDisk Sansa c200 v2',
228 status => 1,
229 icon => 'sansac200',
231 'sansaclip' => {
232 name => 'SanDisk Sansa Clip v1',
233 status => 2,
235 'sansaclipv2' => {
236 name => 'SanDisk Sansa Clip v2',
237 status => 2,
238 icon => 'sansaclip',
240 'sansaclipplus' => {
241 name => 'SanDisk Sansa Clip+',
242 status => 2,
244 'sansae200' => {
245 name => 'SanDisk Sansa e200',
246 status => 3,
248 'sansae200v2' => {
249 name => 'SanDisk Sansa e200 v2',
250 status => 3,
251 icon => 'sansae200',
253 'sansafuze' => {
254 name => 'SanDisk Sansa Fuze',
255 status => 3,
257 'sansafuzev2' => {
258 name => 'SanDisk Sansa Fuze v2',
259 status => 2,
260 icon => 'sansafuze',
262 'sansam200' => {
263 name => 'SanDisk Sansa m200',
264 status => 1,
266 'sansam200v4' => {
267 name => 'SanDisk Sansa m200 v4',
268 status => 1,
270 'sansaview' => {
271 name => 'SanDisk Sansa View',
272 status => 1,
274 'tatungtpj1022' => {
275 name => 'Tatung Elio TPJ-1022',
276 status => 1,
278 'vibe500' => {
279 name => 'Packard Bell Vibe 500',
280 status => 3,
282 'zenvision' => {
283 name => 'Creative Zen Vision',
284 status => 1,
286 'zenvisionm30gb' => {
287 name => 'Creative Zen Vision:M 30GB',
288 status => 1,
290 'zenvisionm60gb' => {
291 name => 'Creative Zen Vision:M 60GB',
292 status => 1,
294 'hd200' => {
295 name => 'MPIO HD200',
296 status => 1,
300 sub manualname {
301 my $m = shift @_;
303 return $builds{$m}{manual} ? "$builds{$m}{manual}" : $m;
306 sub voicename {
307 my $m = shift @_;
309 return $builds{$m}{voice} ? "$builds{$m}{voice}" : $m;
312 sub byname {
313 return uc $builds{$a}{name} cmp uc $builds{$b}{name};
316 sub usablebuilds {
317 my @list;
319 for my $b (sort byname keys %builds) {
320 push @list, $b if ($builds{$b}{status} >= 2);
323 return @list;
326 sub stablebuilds {
327 my @list;
329 for my $b (sort byname keys %builds) {
330 push @list, $b if ($builds{$b}{status} >= 3);
333 return @list;