A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 552 lines 16 kB view raw
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