blob: 8cd7cc535637730ee2e72638efadf16a6abfa5e9 [file] [log] [blame]
Frank Gevaerts2376c4f2011-12-07 20:33:03 +00001$publicrelease="3.10";
2$manualrelease="3.10";
3$voicerelease="3.10";
4$releasedate="December 7, 2011";
Frank Gevaerts81871152011-12-09 22:38:27 +00005$releasenotes="/wiki/ReleaseNotes310";
Björn Stenberg9d4f0762009-12-07 12:20:56 +00006
7%builds = (
8 'archosav300' => {
9 name => 'Archos AV300',
10 status => 1, # 3=stable, 2=unstable, 1=unusable
11 },
12 'archosfmrecorder' => {
13 name => 'Archos FM Recorder',
14 status => 3,
Michael Chicoinef5c70522009-12-10 19:50:25 +000015 ram => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000016 },
17 'archosondiofm' => {
18 name => 'Archos Ondio FM',
19 status => 3,
Michael Chicoinef5c70522009-12-10 19:50:25 +000020 ram => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000021 },
22 'archosondiosp' => {
23 name => 'Archos Ondio SP',
24 status => 3,
Michael Chicoinef5c70522009-12-10 19:50:25 +000025 ram => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000026 },
27 'archosplayer' => {
28 name => 'Archos Player/Studio',
29 status => 3,
Michael Chicoinef5c70522009-12-10 19:50:25 +000030 ram => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000031 },
32 'archosrecorder' => {
33 name => 'Archos Recorder v1',
34 status => 3,
Michael Chicoinef5c70522009-12-10 19:50:25 +000035 ram => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000036 },
37 'archosrecorderv2' => {
38 name => 'Archos Recorder v2',
39 status => 3,
Michael Chicoinef5c70522009-12-10 19:50:25 +000040 ram => 2,
Björn Stenbergbd3b58f2009-12-17 13:53:17 +000041 manual => "archosfmrecorder",
Björn Stenberg9d4f0762009-12-07 12:20:56 +000042 },
43 'cowond2' => {
44 name => 'Cowon D2',
45 status => 2,
Tomer Shalev13c78662009-12-14 20:18:38 +000046 manual => 'cowond2',
Björn Stenberg9d4f0762009-12-07 12:20:56 +000047 },
48 'gigabeatfx' => {
49 name => 'Toshiba Gigabeat F/X',
50 status => 3,
51 },
52 'gigabeats' => {
53 name => 'Toshiba Gigabeat S',
54 status => 2,
55 },
56 'gogearhdd1630' => {
57 name => 'Philips GoGear HDD1630',
Robert Menese68844a2010-11-02 21:46:59 +000058 status => 2,
59 },
Daniel Stenberga6db8262010-11-02 21:58:19 +000060 'gogearhdd6330' => {
61 name => 'Philips GoGear HDD6330',
Robert Menesd249b462010-11-03 14:38:20 +000062 status => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000063 },
64 'gogearsa9200' => {
65 name => 'Philips GoGear SA9200',
Michael Sevakis166c8bf2011-01-26 18:10:42 +000066 status => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +000067 },
68 'iaudio7' => {
69 name => 'iAudio 7',
70 status => 1,
71 },
72 'iaudiom3' => {
73 name => 'iAudio M3',
74 status => 3,
75 },
76 'iaudiom5' => {
77 name => 'iAudio M5',
78 status => 3,
79 },
80 'iaudiox5' => {
81 name => 'iAudio X5',
82 status => 3,
83 },
84 'ipod1g2g' => {
85 name => 'iPod 1st and 2nd gen',
86 status => 3,
87 },
88 'ipod3g' => {
89 name => 'iPod 3rd gen',
90 status => 3,
91 },
92 'ipod4g' => {
93 name => 'iPod 4th gen Grayscale',
94 status => 3,
95 },
96 'ipodcolor' => {
97 name => 'iPod color/Photo',
98 status => 3,
99 },
100 'ipodmini1g' => {
101 name => 'iPod Mini 1st gen',
102 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000103 },
104 'ipodmini2g' => {
105 name => 'iPod Mini 2nd gen',
106 status => 3,
107 icon => 'ipodmini1g',
Björn Stenberg5ce515c2009-12-15 20:42:24 +0000108 manual => 'ipodmini1g',
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000109 },
110 'ipodnano1g' => {
111 name => 'iPod Nano 1st gen',
112 status => 3,
113 },
114 'ipodnano2g' => {
115 name => 'iPod Nano 2nd gen',
Alex Parkere23075b2010-10-30 21:50:20 +0000116 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000117 },
118 'ipodvideo' => {
Alex Parkere23075b2010-10-30 21:50:20 +0000119 name => 'iPod Video',
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000120 status => 3,
121 },
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000122 'iriverh10' => {
123 name => 'iriver H10 20GB',
124 status => 3,
125 },
126 'iriverh10_5gb' => {
127 name => 'iriver H10 5GB',
128 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000129 },
130 'iriverh100' => {
131 name => 'iriver H100/115',
132 status => 3,
133 },
134 'iriverh120' => {
135 name => 'iriver H120/140',
136 status => 3,
137 icon => 'iriverh100',
138 manual => 'iriverh100',
139 },
140 'iriverh300' => {
141 name => 'iriver H320/340',
142 status => 3,
143 },
144 'iriverifp7xx' => {
145 name => 'iriver iFP-7xx',
146 status => 1,
147 },
148 'logikdax' => {
149 name => 'Logik DAX',
150 status => 1,
151 },
152 'lyreproto1' => {
153 name => 'Lyre Prototype 1',
154 status => 1,
155 },
156 'mini2440' => {
157 name => 'Mini 2440',
158 status => 1,
159 },
160 'meizum3' => {
161 name => 'Meizu M3',
162 status => 1,
163 },
164 'meizum6sl' => {
165 name => 'Meizu M6SL',
166 status => 1,
167 },
168 'meizum6sp' => {
169 name => 'Meizu M6SP',
170 status => 1,
171 },
172 'mrobe100' => {
173 name => 'Olympus M-Robe 100',
174 status => 3,
175 },
176 'mrobe500' => {
177 name => 'Olympus M-Robe 500',
178 status => 2,
179 },
180 'ondavx747' => {
181 name => 'Onda VX747',
182 status => 1,
183 },
184 'ondavx747p' => {
185 name => 'Onda VX747+',
186 status => 1,
187 },
188 'ondavx767' => {
189 name => 'Onda VX767',
190 status => 1,
191 },
192 'ondavx777' => {
193 name => 'Onda VX777',
194 status => 1,
195 },
196 'samsungyh820' => {
197 name => 'Samsung YH-820',
198 status => 2,
199 },
200 'samsungyh920' => {
201 name => 'Samsung YH-920',
202 status => 2,
203 },
204 'samsungyh925' => {
205 name => 'Samsung YH-925',
206 status => 2,
207 },
208 'samsungyps3' => {
209 name => 'Samsung YP-S3',
210 status => 1,
211 },
212 'sansac100' => {
213 name => 'SanDisk Sansa c100',
214 status => 1,
215 },
216 'sansac200' => {
217 name => 'SanDisk Sansa c200',
218 status => 3,
219 },
220 'sansac200v2' => {
221 name => 'SanDisk Sansa c200 v2',
Rafaël Carré5848f5f2010-07-29 23:37:07 +0000222 status => 2,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000223 icon => 'sansac200',
224 },
225 'sansaclip' => {
Dave Chapmanc391c112010-03-25 20:16:34 +0000226 name => 'SanDisk Sansa Clip v1',
Rafaël Carré829ddaa2010-09-06 18:48:04 +0000227 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000228 },
229 'sansaclipv2' => {
230 name => 'SanDisk Sansa Clip v2',
Thomas Martitz5ee1c402010-10-30 13:55:20 +0000231 status => 3,
Björn Stenbergab610e82010-03-24 20:28:10 +0000232 icon => 'sansaclip',
Björn Stenbergab610e82010-03-24 20:28:10 +0000233 },
234 'sansaclipplus' => {
235 name => 'SanDisk Sansa Clip+',
Thomas Martitz5ee1c402010-10-30 13:55:20 +0000236 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000237 },
Frank Gevaerts1107bf12011-10-31 20:35:11 +0000238 'sansaclipzip' => {
239 name => 'SanDisk Sansa Clip Zip',
240 status => 2,
241 },
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000242 'sansae200' => {
243 name => 'SanDisk Sansa e200',
244 status => 3,
245 },
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000246 'sansae200v2' => {
247 name => 'SanDisk Sansa e200 v2',
Dominik Wenger97865102010-02-03 21:11:39 +0000248 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000249 icon => 'sansae200',
250 },
251 'sansafuze' => {
252 name => 'SanDisk Sansa Fuze',
Dominik Wenger97865102010-02-03 21:11:39 +0000253 status => 3,
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000254 },
Rafaël Carré68535552010-04-01 07:26:47 +0000255 'sansafuzev2' => {
256 name => 'SanDisk Sansa Fuze v2',
Thomas Martitz5ee1c402010-10-30 13:55:20 +0000257 status => 3,
Rafaël Carré68535552010-04-01 07:26:47 +0000258 icon => 'sansafuze',
259 },
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000260 'sansam200' => {
261 name => 'SanDisk Sansa m200',
262 status => 1,
263 },
264 'sansam200v4' => {
265 name => 'SanDisk Sansa m200 v4',
266 status => 1,
267 },
268 'sansaview' => {
269 name => 'SanDisk Sansa View',
270 status => 1,
271 },
272 'tatungtpj1022' => {
273 name => 'Tatung Elio TPJ-1022',
274 status => 1,
275 },
Björn Stenbergc6f2a902010-02-18 10:30:00 +0000276 'vibe500' => {
277 name => 'Packard Bell Vibe 500',
Szymon Dziokf6a17bd2010-05-15 19:24:28 +0000278 status => 3,
Björn Stenbergc6f2a902010-02-18 10:30:00 +0000279 },
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000280 'zenvision' => {
281 name => 'Creative Zen Vision',
282 status => 1,
283 },
284 'zenvisionm30gb' => {
285 name => 'Creative Zen Vision:M 30GB',
286 status => 1,
287 },
288 'zenvisionm60gb' => {
289 name => 'Creative Zen Vision:M 60GB',
290 status => 1,
291 },
Marcin Bukate0803382010-09-15 08:34:48 +0000292 'mpiohd200' => {
Marcin Bukat021d4db2010-04-29 20:09:19 +0000293 name => 'MPIO HD200',
Marcin Bukat33a5f1a2010-08-08 18:22:44 +0000294 status => 2,
Marcin Bukat021d4db2010-04-29 20:09:19 +0000295 },
Marcin Bukatabc34aa2010-11-29 09:33:26 +0000296 'mpiohd300' => {
297 name => 'MPIO HD300',
Marcin Bukatd00800322010-12-26 22:31:42 +0000298 status => 2,
Marcin Bukatabc34aa2010-11-29 09:33:26 +0000299 },
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000300);
301
302sub manualname {
303 my $m = shift @_;
304
305 return $builds{$m}{manual} ? "$builds{$m}{manual}" : $m;
306}
307
308sub voicename {
309 my $m = shift @_;
310
311 return $builds{$m}{voice} ? "$builds{$m}{voice}" : $m;
312}
313
314sub byname {
Björn Stenbergf74fa912009-12-07 12:51:34 +0000315 return uc $builds{$a}{name} cmp uc $builds{$b}{name};
Björn Stenberg9d4f0762009-12-07 12:20:56 +0000316}
317
318sub usablebuilds {
319 my @list;
320
321 for my $b (sort byname keys %builds) {
322 push @list, $b if ($builds{$b}{status} >= 2);
323 }
324
325 return @list;
326}
327
328sub stablebuilds {
329 my @list;
330
331 for my $b (sort byname keys %builds) {
332 push @list, $b if ($builds{$b}{status} >= 3);
333 }
334
335 return @list;
336}
337
3381;