WPS: Use helper function to parse int value on album-art directive
[kugel-rb.git] / tools / builds.pm
blobe8d0526cf7ac89801c3c7b684b0f8a5d1161ee24
1 $publicrelease="3.4";
2 $releasedate="September 24, 2009";
3 $releasenotes="/wiki/ReleaseNotes34";
5 %builds = (
6 'archosav300' => {
7 name => 'Archos AV300',
8 status => 1, # 3=stable, 2=unstable, 1=unusable
9 },
10 'archosfmrecorder' => {
11 name => 'Archos FM Recorder',
12 status => 3,
13 ram => 2,
15 'archosondiofm' => {
16 name => 'Archos Ondio FM',
17 status => 3,
18 ram => 2,
20 'archosondiosp' => {
21 name => 'Archos Ondio SP',
22 status => 3,
23 ram => 2,
25 'archosplayer' => {
26 name => 'Archos Player/Studio',
27 status => 3,
28 ram => 2,
30 'archosrecorder' => {
31 name => 'Archos Recorder v1',
32 status => 3,
33 ram => 2,
35 'archosrecorderv2' => {
36 name => 'Archos Recorder v2',
37 status => 3,
38 ram => 2,
39 manual => "archosfmrecorder",
41 'cowond2' => {
42 name => 'Cowon D2',
43 status => 2,
44 manual => 'cowond2',
46 'gigabeatfx' => {
47 name => 'Toshiba Gigabeat F/X',
48 status => 3,
50 'gigabeats' => {
51 name => 'Toshiba Gigabeat S',
52 status => 2,
54 'gogearhdd1630' => {
55 name => 'Philips GoGear HDD1630',
56 status => 1,
58 'gogearsa9200' => {
59 name => 'Philips GoGear SA9200',
60 status => 1,
62 'iaudio7' => {
63 name => 'iAudio 7',
64 status => 1,
66 'iaudiom3' => {
67 name => 'iAudio M3',
68 status => 3,
70 'iaudiom5' => {
71 name => 'iAudio M5',
72 status => 3,
74 'iaudiox5' => {
75 name => 'iAudio X5',
76 status => 3,
78 'ipod1g2g' => {
79 name => 'iPod 1st and 2nd gen',
80 status => 3,
82 'ipod3g' => {
83 name => 'iPod 3rd gen',
84 status => 3,
86 'ipod4g' => {
87 name => 'iPod 4th gen Grayscale',
88 status => 3,
90 'ipodcolor' => {
91 name => 'iPod color/Photo',
92 status => 3,
94 'ipodmini1g' => {
95 name => 'iPod Mini 1st gen',
96 status => 3,
98 'ipodmini2g' => {
99 name => 'iPod Mini 2nd gen',
100 status => 3,
101 icon => 'ipodmini1g',
102 manual => 'ipodmini1g',
104 'ipodnano1g' => {
105 name => 'iPod Nano 1st gen',
106 status => 3,
108 'ipodnano2g' => {
109 name => 'iPod Nano 2nd gen',
110 status => 2,
112 'ipodvideo' => {
113 name => 'iPod Video 30GB',
114 status => 3,
115 ram => 32,
117 'ipodvideo64mb' => {
118 name => 'iPod Video 60/80GB',
119 status => 3,
120 icon => 'ipodvideo',
121 manual => 'ipodvideo',
122 voice => 'ipodvideo',
123 configname => 'ipodvideo',
124 ram => 64,
126 'iriverh10' => {
127 name => 'iriver H10 20GB',
128 status => 3,
130 'iriverh10_5gb' => {
131 name => 'iriver H10 5GB',
132 status => 3,
133 manual => 'iriverh10',
135 'iriverh100' => {
136 name => 'iriver H100/115',
137 status => 3,
139 'iriverh120' => {
140 name => 'iriver H120/140',
141 status => 3,
142 icon => 'iriverh100',
143 manual => 'iriverh100',
145 'iriverh300' => {
146 name => 'iriver H320/340',
147 status => 3,
149 'iriverifp7xx' => {
150 name => 'iriver iFP-7xx',
151 status => 1,
153 'logikdax' => {
154 name => 'Logik DAX',
155 status => 1,
157 'lyreproto1' => {
158 name => 'Lyre Prototype 1',
159 status => 1,
161 'mini2440' => {
162 name => 'Mini 2440',
163 status => 1,
165 'meizum3' => {
166 name => 'Meizu M3',
167 status => 1,
169 'meizum6sl' => {
170 name => 'Meizu M6SL',
171 status => 1,
173 'meizum6sp' => {
174 name => 'Meizu M6SP',
175 status => 1,
177 'mrobe100' => {
178 name => 'Olympus M-Robe 100',
179 status => 3,
181 'mrobe500' => {
182 name => 'Olympus M-Robe 500',
183 status => 2,
185 'ondavx747' => {
186 name => 'Onda VX747',
187 status => 1,
189 'ondavx747p' => {
190 name => 'Onda VX747+',
191 status => 1,
193 'ondavx767' => {
194 name => 'Onda VX767',
195 status => 1,
197 'ondavx777' => {
198 name => 'Onda VX777',
199 status => 1,
201 'samsungyh820' => {
202 name => 'Samsung YH-820',
203 status => 2,
205 'samsungyh920' => {
206 name => 'Samsung YH-920',
207 status => 2,
209 'samsungyh925' => {
210 name => 'Samsung YH-925',
211 status => 2,
213 'samsungyps3' => {
214 name => 'Samsung YP-S3',
215 status => 1,
217 'sansac100' => {
218 name => 'SanDisk Sansa c100',
219 status => 1,
221 'sansac200' => {
222 name => 'SanDisk Sansa c200',
223 status => 3,
225 'sansac200v2' => {
226 name => 'SanDisk Sansa c200 v2',
227 status => 1,
228 icon => 'sansac200',
230 'sansaclip' => {
231 name => 'SanDisk Sansa Clip',
232 status => 2,
234 'sansaclipv2' => {
235 name => 'SanDisk Sansa Clip v2',
236 status => 1,
238 'sansae200' => {
239 name => 'SanDisk Sansa e200',
240 status => 3,
242 'sansae200r' => {
243 name => 'SanDisk Sansa e200R',
244 status => 3,
245 icon => 'sansae200',
246 manual => 'sansae200',
248 'sansae200v2' => {
249 name => 'SanDisk Sansa e200 v2',
250 status => 2,
251 icon => 'sansae200',
253 'sansafuze' => {
254 name => 'SanDisk Sansa Fuze',
255 status => 2,
257 'sansam200' => {
258 name => 'SanDisk Sansa m200',
259 status => 1,
261 'sansam200v4' => {
262 name => 'SanDisk Sansa m200 v4',
263 status => 1,
265 'sansaview' => {
266 name => 'SanDisk Sansa View',
267 status => 1,
269 'tatungtpj1022' => {
270 name => 'Tatung Elio TPJ-1022',
271 status => 1,
273 'zenvision' => {
274 name => 'Creative Zen Vision',
275 status => 1,
277 'zenvisionm30gb' => {
278 name => 'Creative Zen Vision:M 30GB',
279 status => 1,
281 'zenvisionm60gb' => {
282 name => 'Creative Zen Vision:M 60GB',
283 status => 1,
287 sub manualname {
288 my $m = shift @_;
290 return $builds{$m}{manual} ? "$builds{$m}{manual}" : $m;
293 sub voicename {
294 my $m = shift @_;
296 return $builds{$m}{voice} ? "$builds{$m}{voice}" : $m;
299 sub byname {
300 return uc $builds{$a}{name} cmp uc $builds{$b}{name};
303 sub usablebuilds {
304 my @list;
306 for my $b (sort byname keys %builds) {
307 push @list, $b if ($builds{$b}{status} >= 2);
310 return @list;
313 sub stablebuilds {
314 my @list;
316 for my $b (sort byname keys %builds) {
317 push @list, $b if ($builds{$b}{status} >= 3);
320 return @list;