A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Pacbox - a Pacman Emulator for Rockbox
11 *
12 * Based on PIE - Pacman Instructional Emulator
13 *
14 * Copyright (c) 1997-2003,2004 Alessandro Scotti
15 * http://www.ascotti.org/
16 *
17 * This program is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU General Public License
19 * as published by the Free Software Foundation; either version 2
20 * of the License, or (at your option) any later version.
21 *
22 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
23 * KIND, either express or implied.
24 *
25 ****************************************************************************/
26
27/* Platform-specific defines - used in both C and ASM files */
28
29#ifndef _PACBOX_H
30#define _PACBOX_H
31
32#include "config.h"
33
34#if CONFIG_KEYPAD == IPOD_4G_PAD
35
36#define PACMAN_UP BUTTON_RIGHT
37#define PACMAN_DOWN BUTTON_LEFT
38#define PACMAN_LEFT BUTTON_MENU
39#define PACMAN_RIGHT BUTTON_PLAY
40#define PACMAN_1UP BUTTON_SELECT
41#define PACMAN_COIN BUTTON_SELECT
42#define PACMAN_MENU (BUTTON_MENU | BUTTON_SELECT)
43
44#elif CONFIG_KEYPAD == IRIVER_H100_PAD || CONFIG_KEYPAD == IRIVER_H300_PAD
45
46#define PACMAN_UP BUTTON_RIGHT
47#define PACMAN_DOWN BUTTON_LEFT
48#define PACMAN_LEFT BUTTON_UP
49#define PACMAN_RIGHT BUTTON_DOWN
50#define PACMAN_1UP BUTTON_SELECT
51#define PACMAN_2UP BUTTON_ON
52#define PACMAN_COIN BUTTON_REC
53#define PACMAN_MENU BUTTON_MODE
54
55#ifdef HAVE_REMOTE_LCD
56
57#define PACMAN_HAS_REMOTE
58
59#define PACMAN_RC_UP BUTTON_RC_VOL_UP
60#define PACMAN_RC_DOWN BUTTON_RC_VOL_DOWN
61#define PACMAN_RC_LEFT BUTTON_RC_REW
62#define PACMAN_RC_RIGHT BUTTON_RC_FF
63#define PACMAN_RC_1UP BUTTON_RC_SOURCE
64#define PACMAN_RC_2UP BUTTON_RC_BITRATE
65#define PACMAN_RC_COIN BUTTON_RC_REC
66#define PACMAN_RC_MENU BUTTON_RC_MODE
67
68#endif
69
70#elif CONFIG_KEYPAD == GIGABEAT_PAD
71
72#define PACMAN_UP BUTTON_UP
73#define PACMAN_DOWN BUTTON_DOWN
74#define PACMAN_LEFT BUTTON_LEFT
75#define PACMAN_RIGHT BUTTON_RIGHT
76#define PACMAN_1UP BUTTON_SELECT
77#define PACMAN_2UP BUTTON_POWER
78#define PACMAN_COIN BUTTON_A
79#define PACMAN_MENU BUTTON_MENU
80
81#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
82
83#define PACMAN_UP BUTTON_UP
84#define PACMAN_DOWN BUTTON_DOWN
85#define PACMAN_LEFT BUTTON_LEFT
86#define PACMAN_RIGHT BUTTON_RIGHT
87#define PACMAN_1UP BUTTON_SELECT
88#define PACMAN_2UP BUTTON_POWER
89#define PACMAN_COIN BUTTON_PLAY
90#define PACMAN_MENU BUTTON_MENU
91
92#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
93
94#define PACMAN_UP BUTTON_RIGHT
95#define PACMAN_DOWN BUTTON_LEFT
96#define PACMAN_LEFT BUTTON_UP
97#define PACMAN_RIGHT BUTTON_DOWN
98#define PACMAN_1UP BUTTON_SELECT
99#define PACMAN_2UP BUTTON_POWER
100#define PACMAN_COIN BUTTON_REC
101#define PACMAN_MENU BUTTON_PLAY
102
103#elif CONFIG_KEYPAD == SANSA_E200_PAD
104
105#define PACMAN_UP BUTTON_UP
106#define PACMAN_DOWN BUTTON_DOWN
107#define PACMAN_LEFT BUTTON_LEFT
108#define PACMAN_RIGHT BUTTON_RIGHT
109#define PACMAN_1UP BUTTON_SELECT
110#define PACMAN_2UP BUTTON_REC
111#define PACMAN_COIN_PRE BUTTON_SELECT
112#define PACMAN_COIN (BUTTON_SELECT | BUTTON_DOWN)
113#define PACMAN_MENU BUTTON_POWER
114
115#elif CONFIG_KEYPAD == SANSA_FUZE_PAD
116
117#define PACMAN_UP BUTTON_RIGHT
118#define PACMAN_DOWN BUTTON_LEFT
119#define PACMAN_LEFT BUTTON_UP
120#define PACMAN_RIGHT BUTTON_DOWN
121#define PACMAN_1UP BUTTON_SELECT
122#define PACMAN_COIN_PRE BUTTON_SELECT
123#define PACMAN_COIN (BUTTON_SELECT | BUTTON_DOWN)
124#define PACMAN_MENU BUTTON_HOME
125
126#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
127
128#define PACMAN_UP BUTTON_UP
129#define PACMAN_DOWN BUTTON_DOWN
130#define PACMAN_LEFT BUTTON_LEFT
131#define PACMAN_RIGHT BUTTON_RIGHT
132#define PACMAN_1UP BUTTON_SELECT
133#define PACMAN_COIN_PRE BUTTON_SELECT
134#define PACMAN_COIN (BUTTON_SELECT | BUTTON_DOWN)
135#define PACMAN_MENU BUTTON_HOME
136
137#elif CONFIG_KEYPAD == IRIVER_H10_PAD
138
139#if defined(IRIVER_H10_5GB)
140#define PACMAN_UP BUTTON_SCROLL_UP
141#define PACMAN_DOWN BUTTON_SCROLL_DOWN
142#define PACMAN_LEFT BUTTON_LEFT
143#define PACMAN_RIGHT BUTTON_RIGHT
144#else
145#define PACMAN_UP BUTTON_RIGHT
146#define PACMAN_DOWN BUTTON_LEFT
147#define PACMAN_LEFT BUTTON_SCROLL_UP
148#define PACMAN_RIGHT BUTTON_SCROLL_DOWN
149#endif
150
151#define PACMAN_1UP BUTTON_REW
152#define PACMAN_2UP BUTTON_POWER
153#define PACMAN_COIN BUTTON_FF
154#define PACMAN_MENU BUTTON_PLAY
155
156#elif CONFIG_KEYPAD == MROBE500_PAD
157
158#define PACMAN_UP BUTTON_RC_PLAY
159#define PACMAN_DOWN BUTTON_RC_DOWN
160#define PACMAN_LEFT BUTTON_RC_REW
161#define PACMAN_RIGHT BUTTON_RC_FF
162#define PACMAN_1UP BUTTON_RC_VOL_DOWN
163#define PACMAN_2UP BUTTON_RC_VOL_UP
164#define PACMAN_COIN_PRE BUTTON_RC_MODE
165#define PACMAN_COIN (BUTTON_RC_MODE | BUTTON_RC_DOWN)
166#define PACMAN_MENU BUTTON_POWER
167
168#elif CONFIG_KEYPAD == COWON_D2_PAD
169
170#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL)
171
172#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
173
174#define PACMAN_UP BUTTON_UP
175#define PACMAN_DOWN BUTTON_DOWN
176#define PACMAN_LEFT BUTTON_LEFT
177#define PACMAN_RIGHT BUTTON_RIGHT
178#define PACMAN_1UP BUTTON_CUSTOM
179#define PACMAN_2UP BUTTON_PLAY
180#define PACMAN_COIN BUTTON_SELECT
181#define PACMAN_MENU BUTTON_MENU
182
183#elif CONFIG_KEYPAD == CREATIVE_ZENXFI3_PAD
184
185#define PACMAN_UP BUTTON_UP
186#define PACMAN_DOWN BUTTON_DOWN
187#define PACMAN_LEFT BUTTON_BACK
188#define PACMAN_RIGHT BUTTON_MENU
189#define PACMAN_1UP BUTTON_PLAY
190#define PACMAN_COIN_PRE BUTTON_PLAY
191#define PACMAN_COIN (BUTTON_PLAY | BUTTON_DOWN)
192#define PACMAN_MENU BUTTON_POWER
193
194#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
195
196#define PACMAN_UP BUTTON_UP
197#define PACMAN_DOWN BUTTON_DOWN
198#define PACMAN_LEFT BUTTON_LEFT
199#define PACMAN_RIGHT BUTTON_RIGHT
200#define PACMAN_1UP BUTTON_VOL_UP
201#define PACMAN_2UP BUTTON_VOL_DOWN
202#define PACMAN_COIN BUTTON_VIEW
203#define PACMAN_MENU BUTTON_MENU
204
205#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
206
207#define PACMAN_UP BUTTON_NEXT
208#define PACMAN_DOWN BUTTON_PREV
209#define PACMAN_LEFT BUTTON_UP
210#define PACMAN_RIGHT BUTTON_DOWN
211#define PACMAN_1UP BUTTON_VOL_UP
212#define PACMAN_2UP BUTTON_DOWN
213#define PACMAN_COIN BUTTON_RIGHT
214#define PACMAN_MENU BUTTON_MENU
215
216#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
217
218#define PACMAN_UP BUTTON_UP
219#define PACMAN_DOWN BUTTON_DOWN
220#define PACMAN_LEFT BUTTON_PREV
221#define PACMAN_RIGHT BUTTON_NEXT
222#define PACMAN_1UP BUTTON_VOL_UP
223#define PACMAN_2UP BUTTON_VOL_DOWN
224#define PACMAN_COIN BUTTON_MENU
225#define PACMAN_MENU BUTTON_POWER
226
227#elif CONFIG_KEYPAD == ONDAVX747_PAD
228
229#define PACMAN_MENU (BUTTON_MENU|BUTTON_REL)
230
231#elif CONFIG_KEYPAD == ONDAVX777_PAD
232#define PACMAN_MENU BUTTON_POWER
233
234#elif CONFIG_KEYPAD == SAMSUNG_YH92X_PAD
235
236#define PACMAN_UP BUTTON_RIGHT
237#define PACMAN_DOWN BUTTON_LEFT
238#define PACMAN_LEFT BUTTON_UP
239#define PACMAN_RIGHT BUTTON_DOWN
240#define PACMAN_1UP BUTTON_FFWD
241#define PACMAN_COIN BUTTON_PLAY
242#define PACMAN_MENU BUTTON_REW
243
244#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
245
246#define PACMAN_UP BUTTON_RIGHT
247#define PACMAN_DOWN BUTTON_LEFT
248#define PACMAN_LEFT BUTTON_UP
249#define PACMAN_RIGHT BUTTON_DOWN
250#define PACMAN_1UP BUTTON_FFWD
251#define PACMAN_2UP BUTTON_REW
252#define PACMAN_COIN BUTTON_PLAY
253#define PACMAN_MENU BUTTON_REC
254
255#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
256
257#define PACMAN_UP BUTTON_UP
258#define PACMAN_DOWN BUTTON_DOWN
259#define PACMAN_LEFT BUTTON_PREV
260#define PACMAN_RIGHT BUTTON_NEXT
261#define PACMAN_1UP BUTTON_PLAY
262#define PACMAN_2UP BUTTON_REC
263#define PACMAN_COIN BUTTON_OK
264#define PACMAN_MENU BUTTON_MENU
265
266#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
267
268#define PACMAN_UP BUTTON_UP
269#define PACMAN_DOWN BUTTON_DOWN
270#define PACMAN_LEFT BUTTON_LEFT
271#define PACMAN_RIGHT BUTTON_RIGHT
272#define PACMAN_1UP BUTTON_SELECT
273#define PACMAN_2UP BUTTON_BOTTOMRIGHT
274#define PACMAN_COIN BUTTON_PLAYPAUSE
275#define PACMAN_MENU BUTTON_POWER
276#define SKIP_LEVEL BUTTON_VOL_DOWN
277
278#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
279
280#define PACMAN_UP BUTTON_UP
281#define PACMAN_DOWN BUTTON_DOWN
282#define PACMAN_LEFT BUTTON_LEFT
283#define PACMAN_RIGHT BUTTON_RIGHT
284#define PACMAN_1UP BUTTON_SELECT
285#define PACMAN_2UP BUTTON_NEXT
286#define PACMAN_COIN BUTTON_VOL_DOWN
287#define PACMAN_MENU BUTTON_POWER
288
289#elif CONFIG_KEYPAD == SAMSUNG_YPR0_PAD
290
291#define PACMAN_UP BUTTON_UP
292#define PACMAN_DOWN BUTTON_DOWN
293#define PACMAN_LEFT BUTTON_LEFT
294#define PACMAN_RIGHT BUTTON_RIGHT
295#define PACMAN_1UP BUTTON_SELECT
296#define PACMAN_2UP BUTTON_POWER
297#define PACMAN_COIN BUTTON_USER
298#define PACMAN_MENU BUTTON_MENU
299
300#elif CONFIG_KEYPAD == HM60X_PAD
301
302#define PACMAN_UP BUTTON_UP
303#define PACMAN_DOWN BUTTON_DOWN
304#define PACMAN_LEFT BUTTON_LEFT
305#define PACMAN_RIGHT BUTTON_RIGHT
306#define PACMAN_1UP BUTTON_SELECT
307#define PACMAN_2UP (BUTTON_POWER | BUTTON_UP)
308#define PACMAN_COIN (BUTTON_POWER | BUTTON_DOWN)
309#define PACMAN_MENU BUTTON_POWER
310
311#elif CONFIG_KEYPAD == HM801_PAD
312
313#define PACMAN_UP BUTTON_UP
314#define PACMAN_DOWN BUTTON_DOWN
315#define PACMAN_LEFT BUTTON_LEFT
316#define PACMAN_RIGHT BUTTON_RIGHT
317#define PACMAN_1UP BUTTON_SELECT
318#define PACMAN_2UP BUTTON_PLAY
319#define PACMAN_COIN BUTTON_PREV
320#define PACMAN_MENU BUTTON_POWER
321
322#elif CONFIG_KEYPAD == SONY_NWZ_PAD
323#define PACMAN_UP BUTTON_UP
324#define PACMAN_DOWN BUTTON_DOWN
325#define PACMAN_LEFT BUTTON_LEFT
326#define PACMAN_RIGHT BUTTON_RIGHT
327#define PACMAN_MENU BUTTON_BACK
328#define PACMAN_1UP BUTTON_POWER
329#define PACMAN_COIN BUTTON_PLAY
330
331#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
332#define PACMAN_UP BUTTON_LEFT
333#define PACMAN_DOWN BUTTON_RIGHT
334#define PACMAN_LEFT BUTTON_DOWN
335#define PACMAN_RIGHT BUTTON_UP
336#define PACMAN_MENU BUTTON_MENU
337#define PACMAN_1UP BUTTON_SELECT
338#define PACMAN_COIN BUTTON_PLAYPAUSE
339
340#elif CONFIG_KEYPAD == DX50_PAD
341#define PACMAN_MENU BUTTON_POWER
342
343#elif CONFIG_KEYPAD == CREATIVE_ZENXFI2_PAD
344#define PACMAN_MENU BUTTON_MENU
345
346#elif CONFIG_KEYPAD == AGPTEK_ROCKER_PAD
347#define PACMAN_UP BUTTON_UP
348#define PACMAN_DOWN BUTTON_DOWN
349#define PACMAN_LEFT BUTTON_LEFT
350#define PACMAN_RIGHT BUTTON_RIGHT
351#define PACMAN_MENU BUTTON_POWER
352#define PACMAN_1UP BUTTON_VOLUP
353#define PACMAN_COIN BUTTON_VOLDOWN
354
355#elif CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD
356#define PACMAN_UP BUTTON_PREV
357#define PACMAN_DOWN BUTTON_NEXT
358#define PACMAN_LEFT BUTTON_HOME
359#define PACMAN_RIGHT BUTTON_VOL_DOWN
360#define PACMAN_MENU BUTTON_POWER
361#define PACMAN_1UP BUTTON_VOL_UP
362#define PACMAN_COIN BUTTON_PLAY
363
364#elif CONFIG_KEYPAD == FIIO_M3K_LINUX_PAD
365#define PACMAN_UP BUTTON_PREV
366#define PACMAN_DOWN BUTTON_NEXT
367#define PACMAN_LEFT BUTTON_HOME
368#define PACMAN_RIGHT BUTTON_VOL_DOWN
369#define PACMAN_MENU BUTTON_POWER
370#define PACMAN_1UP BUTTON_VOL_UP
371#define PACMAN_COIN BUTTON_PLAY
372
373#elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD
374
375#define PACMAN_UP BUTTON_PREV
376#define PACMAN_DOWN BUTTON_NEXT
377#define PACMAN_LEFT BUTTON_HOME
378#define PACMAN_RIGHT BUTTON_VOL_DOWN
379#define PACMAN_MENU BUTTON_POWER
380#define PACMAN_1UP BUTTON_VOL_UP
381#define PACMAN_COIN BUTTON_PLAY
382
383#elif CONFIG_KEYPAD == EROSQ_PAD
384#define PACMAN_UP BUTTON_PREV
385#define PACMAN_DOWN BUTTON_NEXT
386#define PACMAN_LEFT BUTTON_SCROLL_BACK
387#define PACMAN_RIGHT BUTTON_SCROLL_FWD
388#define PACMAN_MENU BUTTON_MENU
389#define PACMAN_1UP BUTTON_VOL_UP
390#define PACMAN_COIN BUTTON_PLAY
391
392#elif CONFIG_KEYPAD == FIIO_M3K_PAD
393#define PACMAN_UP BUTTON_UP
394#define PACMAN_DOWN BUTTON_DOWN
395#define PACMAN_LEFT BUTTON_LEFT
396#define PACMAN_RIGHT BUTTON_RIGHT
397#define PACMAN_MENU BUTTON_MENU
398#define PACMAN_1UP BUTTON_VOL_UP
399#define PACMAN_COIN BUTTON_PLAY
400
401#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
402#define PACMAN_UP BUTTON_TOPMIDDLE
403#define PACMAN_DOWN BUTTON_BOTTOMMIDDLE
404#define PACMAN_LEFT BUTTON_MIDLEFT
405#define PACMAN_RIGHT BUTTON_MIDRIGHT
406#define PACMAN_MENU BUTTON_TOPLEFT
407#define PACMAN_1UP BUTTON_BOTTOMLEFT
408#define PACMAN_2UP BUTTON_BOTTOMRIGHT
409#define PACMAN_COIN BUTTON_CENTER
410
411#elif CONFIG_KEYPAD == MA_PAD
412
413#define PACMAN_UP BUTTON_UP
414#define PACMAN_DOWN BUTTON_DOWN
415#define PACMAN_LEFT BUTTON_LEFT
416#define PACMAN_RIGHT BUTTON_RIGHT
417#define PACMAN_1UP BUTTON_BACK
418#define PACMAN_COIN BUTTON_PLAY
419#define PACMAN_MENU BUTTON_MENU
420
421#elif CONFIG_KEYPAD == RG_NANO_PAD
422
423#define PACMAN_UP BUTTON_UP
424#define PACMAN_DOWN BUTTON_DOWN
425#define PACMAN_LEFT BUTTON_LEFT
426#define PACMAN_RIGHT BUTTON_RIGHT
427#define PACMAN_1UP BUTTON_L
428#define PACMAN_2UP BUTTON_R
429#define PACMAN_COIN BUTTON_A
430#define PACMAN_MENU BUTTON_START
431
432#else
433
434#error Keymap not defined!
435
436#endif
437
438#ifdef HAVE_TOUCHSCREEN
439#ifndef PACMAN_UP
440#define PACMAN_UP BUTTON_MIDRIGHT
441#endif
442#ifndef PACMAN_DOWN
443#define PACMAN_DOWN BUTTON_MIDLEFT
444#endif
445#ifndef PACMAN_LEFT
446#define PACMAN_LEFT BUTTON_TOPMIDDLE
447#endif
448#ifndef PACMAN_RIGHT
449#define PACMAN_RIGHT BUTTON_BOTTOMMIDDLE
450#endif
451#ifndef PACMAN_1UP
452#define PACMAN_1UP BUTTON_BOTTOMLEFT
453#endif
454#ifndef PACMAN_2UP
455#define PACMAN_2UP BUTTON_BOTTOMRIGHT
456#endif
457#ifndef PACMAN_COIN
458#define PACMAN_COIN BUTTON_CENTER
459#endif
460#ifndef PACMAN_MENU
461#define PACMAN_MENU (BUTTON_TOPLEFT|BUTTON_REL)
462#endif
463#endif
464
465/* Calculate scaling and screen offset/clipping.
466 Put native portrait mode before landscape, if a screen resulution allows both.
467 */
468#if (LCD_WIDTH >= 224) && (LCD_HEIGHT >= 288)
469#define LCD_SCALE 100
470#define LCD_ROTATE 0
471#define XOFS ((LCD_WIDTH-224)/2)
472#define YOFS ((LCD_HEIGHT-288)/2)
473
474#elif (LCD_WIDTH >= 288) && (LCD_HEIGHT >= 224)
475#if defined(CREATIVE_ZEN)
476#define LCD_SCALE 100
477#define LCD_ROTATE 2
478#define XOFS ((LCD_WIDTH-288)/2)
479#define YOFS ((LCD_HEIGHT-224)/2)
480#else
481#define LCD_SCALE 100
482#define LCD_ROTATE 1
483#define XOFS ((LCD_WIDTH-288)/2)
484#define YOFS ((LCD_HEIGHT-224)/2)
485#endif
486
487#elif (LCD_WIDTH >= 168) && (LCD_HEIGHT >= 216)
488#define LCD_SCALE 75
489#define LCD_ROTATE 0
490#define XOFS ((LCD_WIDTH-(224*3/4))/2)
491#define YOFS ((LCD_HEIGHT-(288*3/4))/2)
492
493#elif (LCD_WIDTH >= 216) && (LCD_HEIGHT >= 168)
494#define LCD_SCALE 75
495#define LCD_ROTATE 1
496#define XOFS ((LCD_WIDTH-(288*3/4))/2)
497#define YOFS ((LCD_HEIGHT-(224*3/4))/2)
498
499#elif (LCD_WIDTH >= 144) && (LCD_HEIGHT >= 112)
500#define LCD_SCALE 50
501#define LCD_ROTATE 1
502#define XOFS ((LCD_WIDTH-288/2)/2)
503#define YOFS ((LCD_HEIGHT-224/2)/2)
504
505#elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 128)
506#define LCD_SCALE 50
507#define LCD_ROTATE 0
508#define XOFS ((LCD_WIDTH-224/2)/2)
509#if LCD_HEIGHT < 144
510#define YCLIP ((288-2*LCD_HEIGHT)/2)
511#define YOFS 0
512#else
513#define YCLIP 0
514#define YOFS ((LCD_HEIGHT-288/2)/2)
515#endif
516
517#elif (LCD_WIDTH >= 116) && (LCD_HEIGHT >= 90)
518#define LCD_SCALE 40
519#define LCD_ROTATE 1
520#define XOFS ((LCD_HEIGHT-224*2/5)/2)
521#define YOFS ((LCD_WIDTH-288*2/5)/2)
522
523#elif (LCD_WIDTH >= 75) && (LCD_HEIGHT >= 96)
524#define LCD_SCALE 33
525#define LCD_ROTATE 0
526#define XOFS ((LCD_HEIGHT-224/3)/2)
527#define YOFS ((LCD_WIDTH-288/3)/2)
528
529#else
530#error "unsupported screen resolution"
531#endif
532
533/* How many video frames (out of a possible 60) we display each second.
534 NOTE: pacbox.c assumes this is an integer divisor of 60
535 */
536#if defined(TOSHIBA_GIGABEAT_S) || defined (TOSHIBA_GIGABEAT_F) || \
537 defined(SANSA_FUZEPLUS)
538/* Gigabeat S,F and Sansa Fuze+ can manage the full framerate
539 (1 in 1 frames) */
540#define FPS 60
541#elif defined(IPOD_NANO)
542/* The Nano can manage full-speed at 30fps (1 in 2 frames) */
543#define FPS 30
544#else
545/* We aim for 20fps on the other targets (1 in 3 frames) */
546#define FPS 20
547#endif
548
549/* 16kHz sounds pretty good - use it if available */
550#define PREFERRED_SAMPLING_RATE SAMPR_16
551
552#endif