From 12ddb8ea0d8dbaa38703c37551fcd5c5267819e6 Mon Sep 17 00:00:00 2001 From: Marianne Arnold Date: Thu, 20 Sep 2007 10:49:48 +0000 Subject: [PATCH] Enable plugins on the Sansa C200. Large parts taken from patch FS#7749 by Max Kelley with tweaks, bit of cleanup and additional bitmaps by me. Some of the now enabled plugins could still be improved in regard to screen size adaptation or keymaps but this way it can easily be done later and one by one. The rather ugly 'ifndef's I added temporaryly in plugins/SOURCES will also go one by one. Plugin button actions cause some quirks in a few plugins (e.g. 'clock') but since it's not critical , the bitmaps were already done and it makes a good example for discussing plugin button actions, I thought it could go in. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14771 a1c6a512-1295-4272-9138-f99709370657 --- apps/keymaps/keymap-c200.c | 10 +++---- apps/plugins/SOURCES | 14 +++++++--- apps/plugins/SUBDIRS | 6 +++-- apps/plugins/battery_bench.c | 3 ++- apps/plugins/bitmaps/native/SOURCES | 16 +++++++++++ .../bitmaps/native/clock_binary.132x80x16.bmp | Bin 0 -> 2854 bytes .../bitmaps/native/clock_digits.132x80x16.bmp | Bin 0 -> 14406 bytes .../bitmaps/native/clock_logo.132x80x16.bmp | Bin 0 -> 26190 bytes .../native/clock_messages.132x80x16.bmp | Bin 0 -> 33318 bytes .../native/clock_segments.132x80x16.bmp | Bin 0 -> 14406 bytes .../native/clock_smalldigits.132x80x16.bmp | Bin 0 -> 4786 bytes .../native/clock_smallsegments.132x80x16.bmp | Bin 0 -> 4786 bytes .../bitmaps/native/jewels.132x80x16.bmp | Bin 0 -> 7414 bytes .../native/rockblox_background.132x80x16.bmp | Bin 0 -> 31734 bytes .../native/sudoku_inverse.132x80x16.bmp | Bin 0 -> 2358 bytes .../native/sudoku_normal.132x80x16.bmp | Bin 0 -> 3894 bytes .../bitmaps/native/sudoku_start.132x80x16.bmp | Bin 0 -> 3894 bytes apps/plugins/blackjack.c | 15 +++++++++++ apps/plugins/bounce.c | 6 +++++ apps/plugins/calculator.c | 15 ++++++----- apps/plugins/chessclock.c | 3 ++- apps/plugins/chip8.c | 8 ++++++ apps/plugins/chopper.c | 3 ++- apps/plugins/cube.c | 15 +++++++++++ apps/plugins/dict.c | 3 ++- apps/plugins/disktidy.c | 3 ++- apps/plugins/doom/i_video.c | 10 +++++++ apps/plugins/fire.c | 3 ++- apps/plugins/fireworks.c | 3 ++- apps/plugins/jewels.c | 13 +++++++-- apps/plugins/jpeg.c | 15 +++++++++++ apps/plugins/lib/pluginlib_actions.h | 15 ++++++++--- apps/plugins/logo.c | 3 ++- apps/plugins/mandelbrot.c | 12 +++++++++ apps/plugins/maze.c | 3 +++ apps/plugins/mazezam.c | 3 ++- apps/plugins/midiplay.c | 3 ++- apps/plugins/mosaique.c | 3 ++- apps/plugins/mp3_encoder.c | 3 ++- apps/plugins/mpegplayer/mpegplayer.c | 7 +++++ apps/plugins/oscilloscope.c | 11 ++++++++ apps/plugins/plasma.c | 6 +++-- apps/plugins/pong.c | 3 ++- apps/plugins/reversi/reversi-gui.c | 8 ++++++ apps/plugins/reversi/reversi-gui.h | 3 ++- apps/plugins/rockblox.c | 25 ++++++++++++++++++ apps/plugins/rockpaint.c | 3 ++- apps/plugins/sliding_puzzle.c | 3 ++- apps/plugins/snake.c | 3 ++- apps/plugins/snake2.c | 3 ++- apps/plugins/snow.c | 3 ++- apps/plugins/solitaire.c | 19 +++++++++++++ apps/plugins/spacerocks.c | 13 +++++++++ apps/plugins/star.c | 3 ++- apps/plugins/starfield.c | 3 ++- apps/plugins/stats.c | 3 ++- apps/plugins/stopwatch.c | 7 ++--- apps/plugins/sudoku/sudoku.c | 8 ++++++ apps/plugins/sudoku/sudoku.h | 14 ++++++++++ apps/plugins/viewer.c | 12 +++++++++ apps/plugins/vu_meter.c | 9 +++++++ apps/plugins/wormlet.c | 8 +++++- apps/plugins/xobox.c | 3 ++- apps/plugins/zxbox/keymaps.h | 3 ++- apps/plugins/zxbox/zxbox_keyb.c | 3 ++- docs/CREDITS | 2 ++ tools/configure | 2 +- 67 files changed, 344 insertions(+), 55 deletions(-) create mode 100755 apps/plugins/bitmaps/native/clock_binary.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/clock_digits.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/clock_logo.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/clock_messages.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/clock_segments.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/clock_smalldigits.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/jewels.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/rockblox_background.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/sudoku_inverse.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmp create mode 100755 apps/plugins/bitmaps/native/sudoku_start.132x80x16.bmp diff --git a/apps/keymaps/keymap-c200.c b/apps/keymaps/keymap-c200.c index 9a4c2b4c75..6e541579f7 100644 --- a/apps/keymaps/keymap-c200.c +++ b/apps/keymaps/keymap-c200.c @@ -269,19 +269,16 @@ static const struct button_mapping button_context_radio[] = { static const struct button_mapping button_context_keyboard[] = { { ACTION_KBD_LEFT, BUTTON_LEFT, BUTTON_NONE }, { ACTION_KBD_LEFT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_RIGHT, BUTTON_RIGHT, BUTTON_NONE }, { ACTION_KBD_RIGHT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT, BUTTON_NONE }, { ACTION_KBD_CURSOR_LEFT, BUTTON_REC|BUTTON_LEFT|BUTTON_REPEAT,BUTTON_NONE }, - - { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE }, + { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT, BUTTON_NONE }, { ACTION_KBD_CURSOR_RIGHT, BUTTON_REC|BUTTON_RIGHT|BUTTON_REPEAT,BUTTON_NONE }, { ACTION_KBD_UP, BUTTON_UP, BUTTON_NONE }, { ACTION_KBD_UP, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE }, - { ACTION_KBD_DOWN, BUTTON_DOWN, BUTTON_NONE }, { ACTION_KBD_DOWN, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE }, @@ -291,7 +288,8 @@ static const struct button_mapping button_context_keyboard[] = { { ACTION_KBD_PAGE_FLIP, BUTTON_REC|BUTTON_SELECT, BUTTON_REC }, { ACTION_KBD_SELECT, BUTTON_SELECT, BUTTON_NONE }, - { ACTION_KBD_DONE, BUTTON_UP, BUTTON_NONE }, + { ACTION_KBD_DONE, BUTTON_VOL_UP, BUTTON_NONE }, + { ACTION_KBD_DONE, BUTTON_VOL_DOWN, BUTTON_NONE }, { ACTION_KBD_ABORT, BUTTON_POWER, BUTTON_NONE }, LAST_ITEM_IN_LIST diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES index 31d94d5811..8479cd8b9b 100644 --- a/apps/plugins/SOURCES +++ b/apps/plugins/SOURCES @@ -34,7 +34,9 @@ wavrecord.c #ifndef IRIVER_IFP7XX_SERIES /* Temporarily disable plugins for iFP7xx */ dice.c disktidy.c +#ifndef SANSA_C200 flipit.c +#endif #ifdef HAVE_LCD_BITMAP /* Not for the Player */ maze.c @@ -50,14 +52,16 @@ plasma.c blackjack.c bounce.c +#ifndef SANSA_C200 bubbles.c +#endif -#if (LCD_DEPTH >= 2) && !defined(IPOD_MINI) && !defined(IPOD_MINI2G) && !defined(IRIVER_H10_5GB) +#if (LCD_WIDTH >= 160) invadrox.c #endif -#if LCD_WIDTH != 128 -/* These need adjusting for the iRiver if'p screen */ +#if LCD_WIDTH != 128 && !defined SANSA_C200 +/* These need adjusting for the iRiver if'p and Sansa c200, small H10 screen */ brickmania.c #endif calculator.c @@ -65,14 +69,18 @@ chip8.c chopper.c demystify.c jewels.c +#ifndef SANSA_C200 minesweeper.c +#endif oscilloscope.c pong.c sliding_puzzle.c snake.c snake2.c solitaire.c +#ifndef SANSA_C200 sokoban.c +#endif star.c starfield.c #if CONFIG_LCD == LCD_SSD1815 diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS index 11643a5b2f..f537fb8965 100644 --- a/apps/plugins/SUBDIRS +++ b/apps/plugins/SUBDIRS @@ -16,7 +16,9 @@ rockboy /* For all targets with a bitmap display */ #ifdef HAVE_LCD_BITMAP +#ifndef SANSA_C200 chessbox +#endif sudoku reversi #endif @@ -27,8 +29,8 @@ zxbox #endif /* For all the colour targets, iriver H1x0 and iAudio M5 */ -#if defined(HAVE_LCD_COLOR) || defined(IRIVER_H100_SERIES) \ - || defined(IAUDIO_M5) +#if defined(HAVE_LCD_COLOR) && !defined (SANSA_C200)\ + || defined(IRIVER_H100_SERIES) || defined(IAUDIO_M5) pacbox #endif diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c index 85377e22a9..43bfc7255f 100644 --- a/apps/plugins/battery_bench.c +++ b/apps/plugins/battery_bench.c @@ -80,7 +80,8 @@ PLUGIN_HEADER #define BATTERY_ON BUTTON_SELECT #define BATTERY_OFF BUTTON_PLAY -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define BATTERY_ON BUTTON_SELECT #define BATTERY_OFF BUTTON_POWER diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES index 93939c95f7..55ad8392c3 100644 --- a/apps/plugins/bitmaps/native/SOURCES +++ b/apps/plugins/bitmaps/native/SOURCES @@ -167,6 +167,14 @@ clock_segments.138x110x2.bmp clock_smallsegments.160x128x2.bmp clock_logo.138x110x2.bmp clock_messages.138x110x2.bmp +#elif (LCD_WIDTH >= 132) && (LCD_HEIGHT >= 80) && (LCD_DEPTH >= 16) +clock_binary.132x80x16.bmp +clock_digits.132x80x16.bmp +clock_smalldigits.132x80x16.bmp +clock_segments.132x80x16.bmp +clock_smallsegments.132x80x16.bmp +clock_logo.132x80x16.bmp +clock_messages.132x80x16.bmp #elif (LCD_WIDTH >= 112) && (LCD_HEIGHT >= 64) && (LCD_DEPTH >= 1) clock_binary.112x64x1.bmp clock_digits.112x64x1.bmp @@ -237,6 +245,8 @@ jewels.112x64x1.bmp jewels.112x64x1.bmp #elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) jewels.128x128x16.bmp +#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) +jewels.132x80x16.bmp #elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) jewels.138x110x2.bmp #elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && !defined(HAVE_LCD_COLOR) @@ -283,6 +293,8 @@ rockblox_background.176x220x16.bmp rockblox_background.160x128x16.bmp #elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16) rockblox_background.128x128x16.bmp +#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) && (LCD_DEPTH == 16) +rockblox_background.132x80x16.bmp #elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 2) rockblox_background.160x128x2.bmp #elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) && (LCD_DEPTH == 2) @@ -426,6 +438,10 @@ sudoku_inverse.112x64x1.bmp sudoku_start.138x110x2.bmp sudoku_normal.138x110x2.bmp sudoku_inverse.138x110x2.bmp +#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) && (LCD_DEPTH >= 16) +sudoku_start.132x80x16.bmp +sudoku_normal.132x80x16.bmp +sudoku_inverse.132x80x16.bmp #elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16) sudoku_start.128x128x16.bmp sudoku_normal.128x128x16.bmp diff --git a/apps/plugins/bitmaps/native/clock_binary.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_binary.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..fcf7097f8af51024189e9858f0b7ec43cf314093 GIT binary patch literal 2854 zcmZ?rRpVv=12Z700mMQ;Yy`xN3=%++f#CxePzi7jLx1_m-T0ku$5-}94O zU!C6m=IqY5=XSn6v*X37ZJ2ICwGXJ{-T7TFPi;H9dEutn-76+F?^!(g*51`XL7)N1 zx{>q&WuBhcGOMl9-rP`tpO2H1i+aFarb7+fR;d0@?(O(D)GF zhetL7gX6_1sC$4)fZly`X2?b#g%R?pSb)0dMHySaB2(7uyfJsquq`ewA0zrU~>t`Lp!9BA?BZRPn{jLa-E zTFMw0POO`&uB;>>Dtu$lN}!X_lp}M2VYhB}zmSMnw7)w8!|LgsGBVQ6RwlsE0UC;| z5RDB?3}-ek*3i&!umC3dRUmybfo^s{FB5_ z0YeoYt!O$R+_z_UZk*l2%F62F1PqV+hc`rq1hBKS1CtamO=8sn5d?->c3dbh1S>P+ z85rK3+c~qRiI-n6%FpfHd7R-1^u_57^F)LMIM~_uFPp}|@apuo>w8xR1^BbEvM%nc z|8!|Da->6S0=fg3Jc2zPftJMtdH}hQbas0Cj-@lq%+2|EdD=@e9~@o}bP_O80PO(g z1Rw&&m7lXMP?MgP+Qn^4fB_3j*T6X4v~Zf6n=1z=w}z5jXWE(nOG-kC~YX zm>_|PT}f6tF~sNK3Owbmiw&p-#0vO$d728-fJp+Q+|^Q1#Hs^XuplV{wcK^F29>)6 z0V5;hw5C$ja+jbchyq|W121@wr^fA#o5_~o0|up zRz@a$^l}%N;nvNW=;!MzE+GkQQlRN(Vq)gv=5e&P02bV+r zR#s638XzbnEG!}l^t!pJNlktlfpT}tiA{@^OzG-ts%|JR=%^`KKDFcG_N8d0C`LI5 aEO&vWHhQ@WD#uZ(a14ED^0>I<>jMDdv!RXv literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/clock_digits.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_digits.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..eff4c370a87a82f1d242a20ff404269595f1a91b GIT binary patch literal 14406 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 UxV3_mhxnu-Hxt%CAL+{f1?xViq5uE@ literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/clock_logo.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_logo.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..b3d620954e2d2dd071f23be545319b943f06bc11 GIT binary patch literal 26190 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 Af&c&j literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/clock_segments.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_segments.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..0b9d436e1c3d81ad05f0729246c8dbdb6b75abb0 GIT binary patch literal 14406 zcmeI3TdY>a703VQsDL+$wNk4h2WYHKxx@z%uP6y(NF|~aFRA7sjV2~yDYa5B2paXFX}yqW;)7Lx{Kq|+Z_j)ed{C4NZM8OU#xjEtVFT7D~rh zf|bH&+RP9o@%1L@L^u6j`n&W@MNdex%s)>$P8y3wr5{PBNpsA*Ar9LEG zVHP?ZAuY0IU|cHQA4GjUL3+`ZB^95UA8)lkXFdakO1Oy$Z1NoDReTomTWKFp8<{Cq z(KS+_>n;B?>F2IoEj=qef4gAdvIVFm8YtvB`%r+~5vOw1_8o-wPRT>}MA);t3#D!;_ah zL#DT-geUvj5iXE^WnwvNrI}thZdk++7flU35?76_L`(xa}m z!;?$ww($-ysxzL~bG%orP)TWC`*_ZX>%&J1+f?^uBav55hr&sC%Gi;qSNLL}{tCT)Ijk zS|*AP2On4JmpWgF8X(9yNBV!YL1CNH>t<<%vy5=d-VzB5VZ&dgN2G_Pzxb5APg*VA z>Nw$ZX<9YFp3->xV8y6^uJ_R72%!+nhpik@acZB8!t_{0D9j%RXUR;gST45wT}d0c z5Ar`qIB7K?5&=ek#YGZ%?kbkUq)(-H6NK5z^31AOXx%D(=2$BT5Lyg)6)a)jj6k`+ zc?olp?oiID(yP*&8NK1GYE>&dPH_yj&HbdC8|oiOw@VX}{)arnWlrLVY*RW?I?Mg6 zOQPjJnR8>(Ls}&k{aE^6qQgPU6L}U3HuJiaTG33)zb4UCEF`(CC0Y?{`9xy93|%ZM zEx)8{L+xmi9tfw4WwBfDNZN+YIXmH`)sx(ciekCb9DHzrv@oMZ(tBQYlxM_^(mTG3 ziRHxe2b?aJQTBRPfy1J`lrV`c(v#9p`}(4MsDS(srk)ZeibA63xC&3MG^DWCpbA6< z!oSi@0UTD?Bk~Cc4%0(`Awn6H{wqChBzdFx<92}e9f>KGH1 z8bxFX_KtD#xN^WpDyMLb;A4tcB&R>-eW*i}v3}GUt_S!j0q(G$p9Es7(<*NQyTy%AkRij@K_8N2_^()PD=V`E0M%9FN75FouATfzm5SmWsFWd&aL%=`hxi0PJ*qlezi@B0Yb`!upbH%OZf*@u z(BvEK;}gsbAB@HpDh!R4Mpch%;*+?GyJUPqa78=@8pP5$K6%gYn6RZ-hT7*l7&##s zHikpRLfnhB-x$AVmGP}-%An=fW@3R6ynDcC7C194-yz=tnkFVuG|137-vRoNk1FaK zp8(*<@1IO~*i&kk@2~{skgDiT%NO&Vv!r>MNW zc1j%OJNo=2$CD`?pPw{%vdiKLCI?}YDFr(O8A2h(!v&grCun15%Xhv3Jb6x9)tc{g z#*^mxNmo3{^PORzJLi7obM=o?+`2AdhxlZXe>xSsI9@RclFhdrUBo*s^utM>Ee!a0 z;)F_x)agX;a+Iexj--Q}|I%6`l463Z-TNX)#QVyX{)ElAOH1!}u4&%ySW842s3^v| ziRQLf=YALB6D)ASj=bL?NB*_ncaW9jl;a61!UCr{g`eKT`s&)0*x(iRX%r?{{8wW*2d7u>Jd;d!$>eG4wW~vZdMG-tUaHcjF+TV0&9^ z^O$k5)X-p$Ztr(kEa<^qvE1$cm&Na`6&?mo@b6M08*s)4IbVu}35>V*^;gaFEk9g+ z%|Fr4K=Rv+$(ASWWs)3}Il*TLCKd|daEV|4{X2WP^QJjNrAM7)`X6~9)>5Nwe%^wX zV&N>?Q9R*6Mn`EN1b;W5{JHrHvDJ>doT0%03o zkQbO6EZ@A}!Pr2goKV^tt7uN5K0KF$fLrkT8WHr)Xx{HsR);SX%Sx+sN!5n$piIt@ zcJFKQdK8$Ouln`!YCZC-`(Gz zfc$T@K93FY$yQq$R?*)|m`n{%0AZF7v3E5v;cF33rby@8%my49rB~1%!eB7zSca@* zLK>nkTr4Fx$GUZ0az=#rJ2%JsTPqW?d}q)-tZfyG-#CL_Z+_3#?fp*eeeozqt*=P` Sl3w;Dhd&dtjy@t-m7 zns_b5i;dSe)LPsrDjN9mALy6(3*4rMJ6;X8z8d7d=x^>U&6wbp&4{@8W_qYig3SzZ zf9( z<1UV)6=Sfz;LUJ5y|Xl)v*Y}8{@$0*9)CYhk|*60@7|7fbe7-1(r33DzRn-EeKFX& z*U_dSCmFw+w+V|}oX=ZA?->@QtM+d0u*`J|@~Y55!MpYr-kTFg5S z09b=<>9eKS>*4nMyvoCS94c9HfAL|YUDQ~ty|{zGSKN zJR1A*F2P_MG6!;s?>s4A-i>$mROK9Tb8@gW^>K4zXIy?Y&KnAG1zF!*pe1?T3%)i zCnuSDKPikp>9c6zLRM_(D7T!Q#k6K@UA*{*{3}t^J$|*W)_Om$U7w}|Fz?f(fSr^2 z)6!*mNs-h*W3jr5Qg(b8T|tOIZ%y8hOO{k+CQws+wxOO*O2o;JlLEvHZWJU(FIu#4 zq`8E8Gu9b;!e`4S-AA45Kkjv*#y0C}*_dvAC2FJIj`1IM)$Vb&XBg=pKd=XP9SwC} z$#r~B{ChLf{(PXdEF%$Kvo3`{5Y&L(B%U)Pyy-!1eJ<0-ZRcKlYkx0S&;pz%wF3Xr zqk?fbiuP*E+0YY5)Kpc#Zh}qmsyAw?qg>yNbbOo;z}mX}v{frtbX8_k{f#AR%Ik6x z!f6WOr191=IhnP@_osK7?W`@lciW>@XGeK|-s?(>JoW82-wMjJsM+z(#zK~^wpQ>F zPf>kg^7)`uE0zZxawq=52b5%2Rj#t4{EB5uzyI#L)W~2Ej@W`6{dTv}+tq%vo=!$W z)Lv%?7h8+R!kX739n{CE?yUImpO!4<7G3>gO8D$<6T@WlsYC9h-v9i$H^AFti@px@ z6G=yoE}Zh!QdPo_u&yifa-^z~Vn65RzwdXWY3(rIVxq4D!Jx4ANl*QLw_V1YbPzBH zOEV=!`Le5*Bs{}!pAWQDXQzY(_*@P57qH_<%sWI@lg25&x?ukMYV_2}%lb_u9+pl9#T-=ZC`DO}g65 z@IabyQViSTr1L??%r@)&cBfHNV~90cdF-sY%>3p|;J zVfDMQj?!zFwbWIiH6#zD#*i)X^>(EFm!5ikUF{o}&V85=P%lO8PkZW~baTkn!+}!! z?%Qp>)sXBt++6CiecM(;JyY?;FxsT6rLpA4AB7cJ)Z?Cp5>`T9^2NgR_`b;sm`HhCj=f&I~=V{NuLpM-wd@q?&fUVpph6BKt1Vg zFw)cUbh5=FxR0Qthw5sohaLB(9tb%m26_fM8qe-D!UXKuev7qe;ez7Si`0WI&Mtdf z6-9Xn9Va`fI5kFBL(M>2^Xct+#HDSwgYAj^yK|Bv?JUhKO}F?T^cZTmMY#KEsyoEb z+s4!gdHJoc8SzAH#X8tV>})H}P>`4Hsmw-gf{%2vNIc;?%sa5xWjn(dB?1^0J-gHJ zO2j2Og5A&tcNYg}ov)Xxm-CLZ$M(G({EVTX!Qk55w5U^lP?EYFCfQT0*V)HBT%2qe zo=)4rGqUq!C&3WU>+$DZ?5vp)r;?+BZMT^jZqyRh7mz&640oWHprSsE6TN=k-(qKF z?z-KAtb;AI(KHj0%bdih)hn0((#;_l{VjdR>YT)g9~Lcq)Kx3ynOMuA7634XT5d5w z=+PKZxBRL03Xm=%_8jJyZ6=0_aj;7h>O<=c)zAhAxa1c2HvB2eAW=!^#=)C0EoGUS{MOTT|(Qy$sO`^M^hQfq% z$M1K1uCckeAgk4xiO^48F^lNZ+i?NC2zL;$sUTfJPNuu!2Kp(550$L=()3uc59)u; zZ~xLIi{sAt-Dc-eyB&9++8DEn>~X;2*NeiVH{biqm2hWY4?`uZ>jPX-Qk))tuf2k37V^+ikao<&*~!LykApQc zJm8UljldHB&`o{3c6&J6rCvD0j10E1Fx_gnaikfw*+IP+=Yr2kM4wMAdWTdNw!jNzt1Ik!S38Q(o$1yE=ZU591Lrio_lL) zxK2T?_C_Mf5p01WbbrDd)G4}4!dd@MQ(dJ0jWpdtkl^2+_q!^t#i1P+Fr$c;zn>7) zWHGmGHS+UvJ+yZx1~5l!#;?6~l0Hp(TzU58@KaHz{VOt(5C=vJAL#9lR8#O@SezqCqrd4x^(A*#s@{u<$iTb{^xiV#C(S%RcR`C+n~q3X>kI zaZ&*@dcpS#9tms3^DZ;0IwJuM6+;#XzSGK7LuDPAQQl7qIJqeXdO9xKEdssWY#7EW zN{U4(F_QBzC*0?=p&=0`k0oC?JJei)4L}Q`*S*!b2r;gR6W+K^A9g?E<2lh*PB39r z&LIz1&s~n|)l}tV)_~*g&US+hMH2r|>=?-0obBCr+J2f8;!$7HJBZif#|?W+GqhZ& z3<>vKtnmSPfrbFXs6|5fzrkPyBnHWIur{A(%j~3(lYM2cgVptz5G^$&F$Vv{cD@~q;M&j;iMTte}8v-6v7rlYK-{-KEe#jlDCIOJr_2=aF8s>mX# zhVQ5&%sm(?4Rp0qB2Nb#^3+sQk?7f{d);v%{;O9k!vhI~0GSK+^%g&`aH$sq-0kKj zZjRQ3vSQ*0DzYJIeVm)5R&+Gg<3s#Vn=k?Co@%dzEaxUh;JKq@z4*BU8b+|8HZaUU zcf*B~N5z<`GAi>+%y6T2M8IKclv|;#sm_WyGlxAC)aYqzMg<+A9``m{ni_{6KZs_8 zJ;AxrmQu95toSg@AwvIy?)KZZLSd18Slg7Jx?sWgg7O=L*Y)}7C@oG_(tm#LA-uLU z)8DY3)HLcAM2bBZsG+8O)WaF`waPlhnj4AaS!QO04=KTaHyR3A7tS2N5*Y$Te+x~9 Gw*D8g7G=x; literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmp b/apps/plugins/bitmaps/native/clock_smallsegments.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..e4bd9448657118e4f073ee7a829d34ec79b26ce0 GIT binary patch literal 4786 zcmeH~Nr+WP6ox-%TW!%caYkDO+W`}Ztp+5DE~1S#D1r;;MLR7tSwvhIm3D}lUPN(` zfJ+e!4Jy(bvDN2{3qiCM6a^OwBGHhA;7I)I)O~fQ=fZ`r8}U%Ds9UG*ty6#f_1Af` z>rYl;HdXaF{VMePTfa^WRt>+(U)9_HtRr0wgkI^M=t-|#g93ERyNAIOcnm%BKJ|=& zp(Pz(Iy*iB2jMszv(gNck`XV4UC;!*l3g(yiV>B^@8x*%>ClcUFYi6c`!4p!0vh(0T`N;We~Dt#?a|M!;AYWeq9N zCD`qK5|m8P`{AhfX+Dij+Df$3ghd%zn>J@O#Ki0rg*a%BtsnweDdKjt$ zcH7XpWsSSA#rp)<_b?ykLA|x3#Wlb~L-{4Bynq|w)A(_|j=XzMXIi*cmb94H3N^EgnAdt^xWTc!B(LWf+uGn( zhSxPPv*YsmUypT3UQ1FU4N3A^r+FJp3;^aeMCfZboaHq{4w1@PUPIIw5lomRHDnnq zN?ykb=XOFv?!jWctIZpq(-2X_twGGWV0!&3uOSL|L|ODY!dl_zj0xOALPPZE;*>Qd z^m=FeW35vosSg4YVeLcBYlvGzc{C)}YfYIs(38u5H~x{l8y}=2T5CJ%ARA{_S+!lO zU5&BRjF`?Rn{Icigw9K?q;HaXJ+IZ0G)^^wkG9dS3cP*`Z;E+{mhbEn@j4@rDXevT zkED6s9C)p8)>(eN!>&hBJI+Jo6Kj&z67rDp=(Ttq-HjQ&{vn7`Lpl!;+)W|kqv)L%lYQ!@(|G?LU^qG1&ub-4R$6yb0)q187^7|QZU3@;YV}1N*`Hm zIj6^Z7hJYm$obj<>-vO%cqNIjRyax`h1QomL{P*Uq9dP4i((DYK>2hkw8<(On$i#{ zusEXPHDmyMqc>!tlei=S$!bW0@%o*m*jWw9@LCgJ3jbyDyxt#jKJogQC2oFh)vH3z z=XqTlJSJ>W&L>{4H`S}Ox3vb5V^hfa8exq|g^rerl8HY<&UXk-Ccdd=ob%=L5QW<8 ZN7sGSe;FO9>tUAP;7&2^YqQ2?-UIoaPCWns literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/jewels.132x80x16.bmp b/apps/plugins/bitmaps/native/jewels.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..c6c8e04eba9533bad7a0100061b7fb2e9cfaa62c GIT binary patch literal 7414 zcmeHMdr(x@8UOBU-z%_!EMcFpJVXWrL>mGt4}%rN7sheYnT{dxks(&isFPq?9dvY> zWEu^%I1SPQR){Ph4^g32jBFwg2QWx*5;~$nu!s(&O`;vUJ$vuoyJzENm=sCVne3c< z`R(^R-|Kh2y?T`>V`~Nrb1)oWP zE8)!RCp3ZsY<_UFfdBXWB(e$S?@d3H(K#L5K|Q_s5Tq6b)7M`RY7*dT=>LEIX8L?4 z)6YE$*nIGEV&~^kpExg;LKq7Ve|J)x7yL0J2C@3Y{n_zmALruybmI&D7!a>dTpxFR z;ye~sfI@sxfSu0|ofkUt1VY)!Je59E@t%>nZ{qQ1U_OLIICzTZBi5W#Gj}U9tDlev z2UvdGEa30JJ9}Y2o=st)+zMbu42t@@oiKzsp_I;q{M`kRfn6BG?RtX8qPig--yO=C z$Lr6BEGvQ3}HpP8k%|igq%3|4)cY(33%rHG1c4<&(AA|Skd#Ff_DeS5FY>g znm-{Y4yLa!)|DFyDOk;rU6?`_a5pV5+^#2hcTf!B@%d1K4F}WjPlz^2eK;>vh#4{H zRN;yKaDKY}GadiO`dkWNhbBN#@D%57rsE5Ti-3^J15P==Kiv8A_lw5+6Ix{ZvqUFb z)-Uq=t&YrR$ej{;t2B5+q*@(-Q~>a`gy=TSPwUQBT=0WB8cJw*k4WrWnVP@S%L~0P zBPrVYN%s7^S<18iOu0%@tdbU}eCvZ^&m{#sAB5hmkyKb;>fAf&vPvH~Lck%C+(%PK zrQ{A;x=iil$?)E^h@qvj1`QNbP(YFIFm#y$3Q5@tFH|T&So)Gf?xaeZy`h|dA`%K{ z(k6!!AYC_$ZE8#R8@c2A4A)|P+e7^9p>tZo{5vD!dr|{eg|Pj3dmEcZTCyfKN8HPZ z8e1NDKl7&#a+c<2tJLVVA9vJf%cAO~`l?t{RlK=2e%|h%D3yL}|H3G6;F&p*xP|xU zY?^tAWbW2*bGonv<9$LF5bqx*8|q}~%fk#Q+!mhqF-F0bT;u@@%7g)jCuHpI;Y|u>LRScYQT(_@ou`4?xZ< zp7o(`y2$6&HZ^L0S16E}Ket;SW!2`q%wg`%#t#o)W-vq>3^9QLQ2}%28jTC}`ncer zB-YhN2Kb@G0|sJ66=!^suf=4 zv}6IxOJp5t?=~Nwejl%~yqt-${QHG@L)vE=Nyh5p+ob9ynYvM~y!vL&-O~IAg>Q~% z^~Izlj^$}-M?~1i)@N;r3mcatT+K)vUi$2q(&s};>U>d*Mx5zfoi_Z|rW?C*+5&Yp zmFl{e`VJ+#OiNQ-eD~_q2XAd0-u2RFM$;*c=8B)DpO$<g6cye$Yf~F3jp2*Di>4-SPAxl@(os>077d7g9(gig+fR)M4`0+ z;^HA*L;5=3T@yQGTYnBOZiJV9344w~;Ym1o5Dp+a>u)k8eQy2C#@H%}%6hV)iEQqI zuGgqvn9Yk>9^KH^-jLoZs6I{B){r&F;3((J^CnZ`?exJ0>6seh^dI4P29+5Ul#EE8 z=R)+)>qnV)z-xjt#v6^#eYtGtL+Qz6GC3&7HT)RQh4|B~65QF7HyRVN6>EcoQ;}I% z{QPnTq=vxo7TgeONi*vg;TFu_KOolmG_vl%qp-Yx0Gbm5V%{ZE>WICAaIlX|$>Vl8 z&zFG3?-9whWLiD7q>fsCj@;ZyZs;V^s-%WACr!fZ9Yjt$opPGC*3e1Sw6&T_Zy-`? znc#JZCMei;1-4zMRyNa%Yq&+Fo`wabjD8gwK9Xj3b?6V@q;k6H~RWrGyf!x*yM~9hs6d!eK3|@rt?6Y6~V0lw^ftapjOtwCffXA1VkK4l>cDn0b`eL5q>uX!?_8gj} zWLTacz%gF$_`1{au-7rs_3zPhj{9Yw)~#^bUHTx{Wk23+FYjrqzTR1Nv3|dlfk*I& z=h0t_G0J~-;2e$CVu}tnyGM-gA8ip`7;iQ^pH>?;y^5>M^9;ij6ujTu)bwfZHT#v; z?XPd=!m&L1eHIn{{=|tBWo2bIZ{8dp8NM;lpSEN<+QRZEU`0hmU0q#iY3abg!05fv z!8?O_d-7PGVdOSjWov7z-EMDbY3buCE!NwGqK{ujn>g0Zo&TeoiAzJ0s7 zxw)jIq`Ibh=kDEn{J_Atk&)ri(b2)d!BeMBp(<)?YqGMkcpm-LY6DtZFZcCbFD@=V ka^&#ZwJ&(;hqmZ+@iLig&6*d)`bWIz;`I?Fk?}|VKR4A>xBvhE literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/rockblox_background.132x80x16.bmp b/apps/plugins/bitmaps/native/rockblox_background.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..d4d720f0889a43ac3650877b365b6435daa457a6 GIT binary patch literal 31734 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 literal 0 HcmV?d00001 diff --git a/apps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmp b/apps/plugins/bitmaps/native/sudoku_normal.132x80x16.bmp new file mode 100755 index 0000000000000000000000000000000000000000..ff2a824464e77ddc5bf2bf672f53eaaf0a381177 GIT binary patch literal 3894 zcmeH@F;BxV6ogGz1`rcJp$ls_76t|+1Y3UqV`s!vG4zMSYp(fvaq1{WxMCo(o%8wL zy|W*lS68X~R_$zs%#pXVSGs3m{sH!cg z)z54pTVHh}-PBj{XIRH!)HJPk3}X1R3~(p*!UOI^C-9`6NXNbwCQ==F^M?$e$zgC6f875;TAV-`i&Xaq2DTyXU)-vEEBu?Ha=>^l9J7 zXLKy3WR58e;CkoBdLp?j@Hh{GndUeHUnKg$4jVlUj|PILrM>WOsdYhfbQfj58107~u* z81n#-luQ)5_!n_0&+B@@q@BdtI+jwrV+sSf-g(!1n83(L;^LW}n4tGAI?eoJ>s2Sf zrN>FP+n5CK(@<{zitg1$SxD;ev(#Pwd1@su3l`(WdvMoj6x?+=Md zYkx+^QcC8S!T_#!eyk^w%L0${Aed>6Ge8bF18{B%hyhT$^tQ<+F{ES*ke;oB%$y@y zz&M!G$Tb7p<(FF)j4%NP?d;0Vx5lMBk7>iqGWbpXNP1_4o9fA*^(}=DS#6%oxwQTI IAAkA+-@|3b+W-In literal 0 HcmV?d00001 diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index c4b424143d..2ece48d75d 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c @@ -173,6 +173,21 @@ PLUGIN_HEADER #define BJACK_RIGHT BUTTON_RIGHT #define BJACK_LEFT BUTTON_LEFT +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define BJACK_START BUTTON_SELECT +#define BJACK_QUIT BUTTON_POWER +#define BJACK_MAX (BUTTON_REC|BUTTON_UP) +#define BJACK_MIN (BUTTON_REC|BUTTON_VOL_DOWN) +#define BJACK_HIT BUTTON_SELECT +#define BJACK_STAY BUTTON_RIGHT +#define BJACK_DOUBLEDOWN BUTTON_LEFT +#define BJACK_SCORES BUTTON_VOL_UP +#define BJACK_RESUME BUTTON_REC +#define BJACK_UP BUTTON_UP +#define BJACK_DOWN BUTTON_DOWN +#define BJACK_RIGHT BUTTON_RIGHT +#define BJACK_LEFT BUTTON_LEFT + #elif CONFIG_KEYPAD == ELIO_TPJ1022_PAD #define BJACK_START BUTTON_MAIN #define BJACK_QUIT BUTTON_POWER diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c index eac6933815..9373050292 100644 --- a/apps/plugins/bounce.c +++ b/apps/plugins/bounce.c @@ -82,6 +82,12 @@ PLUGIN_HEADER #define BOUNCE_QUIT BUTTON_POWER #define BOUNCE_MODE BUTTON_SELECT +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define BOUNCE_UP BUTTON_UP +#define BOUNCE_DOWN BUTTON_DOWN +#define BOUNCE_QUIT BUTTON_POWER +#define BOUNCE_MODE BUTTON_SELECT + #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) #define BOUNCE_UP BUTTON_SCROLL_UP #define BOUNCE_DOWN BUTTON_SCROLL_DOWN diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index e16f58a412..103ce50a07 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -176,14 +176,15 @@ PLUGIN_HEADER #define CALCULATOR_CALC BUTTON_SELECT #define CALCULATOR_CLEAR BUTTON_A -#elif CONFIG_KEYPAD == SANSA_E200_PAD -#define CALCULATOR_UP BUTTON_UP -#define CALCULATOR_DOWN BUTTON_DOWN -#define CALCULATOR_QUIT BUTTON_POWER +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) +#define CALCULATOR_UP BUTTON_UP +#define CALCULATOR_DOWN BUTTON_DOWN +#define CALCULATOR_QUIT BUTTON_POWER #define CALCULATOR_INPUT_CALC_PRE BUTTON_SELECT -#define CALCULATOR_INPUT (BUTTON_SELECT|BUTTON_REL) -#define CALCULATOR_CALC BUTTON_SELECT -#define CALCULATOR_CLEAR BUTTON_REC +#define CALCULATOR_INPUT (BUTTON_SELECT|BUTTON_REL) +#define CALCULATOR_CALC (BUTTON_SELECT|BUTTON_REPEAT) +#define CALCULATOR_CLEAR BUTTON_REC #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c index 73c49767f9..56d2709bb7 100644 --- a/apps/plugins/chessclock.c +++ b/apps/plugins/chessclock.c @@ -119,7 +119,8 @@ PLUGIN_HEADER #define CHC_SETTINGS_OK BUTTON_SELECT #define CHC_SETTINGS_CANCEL BUTTON_POWER -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define CHC_QUIT BUTTON_POWER #define CHC_STARTSTOP BUTTON_SELECT #define CHC_RESET BUTTON_DOWN diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index 0b06ace784..ae6e3bfd29 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c @@ -1028,6 +1028,14 @@ STATIC void chip8 (void) #define CHIP8_KEY6 BUTTON_RIGHT #define CHIP8_KEY8 BUTTON_SCROLL_DOWN +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define CHIP8_OFF BUTTON_POWER +#define CHIP8_KEY2 BUTTON_VOL_UP +#define CHIP8_KEY4 BUTTON_LEFT +#define CHIP8_KEY5 BUTTON_SELECT +#define CHIP8_KEY6 BUTTON_RIGHT +#define CHIP8_KEY8 BUTTON_VOL_DOWN + #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) #define CHIP8_OFF BUTTON_POWER #define CHIP8_KEY2 BUTTON_SCROLL_UP diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c index 5e27a5e6e7..46acf2c74e 100644 --- a/apps/plugins/chopper.c +++ b/apps/plugins/chopper.c @@ -64,7 +64,8 @@ Still To do: #define ACTION BUTTON_RIGHT #define ACTIONTEXT "RIGHT" -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define QUIT BUTTON_POWER #define ACTION BUTTON_SELECT #define ACTIONTEXT "SELECT" diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index f5158e9b7a..3294b37fab 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -163,6 +163,21 @@ PLUGIN_HEADER #define CUBE_PAUSE (BUTTON_SELECT|BUTTON_REL) #define CUBE_HIGHSPEED BUTTON_REC +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +#define CUBE_QUIT BUTTON_POWER +#define CUBE_X_INC BUTTON_LEFT +#define CUBE_X_DEC BUTTON_RIGHT +#define CUBE_Y_INC BUTTON_VOL_UP +#define CUBE_Y_DEC BUTTON_VOL_DOWN +#define CUBE_Z_INC BUTTON_UP +#define CUBE_Z_DEC BUTTON_DOWN +#define CUBE_MODE_PRE BUTTON_SELECT +#define CUBE_MODE (BUTTON_SELECT|BUTTON_REPEAT) +#define CUBE_PAUSE_PRE BUTTON_SELECT +#define CUBE_PAUSE (BUTTON_SELECT|BUTTON_REL) +#define CUBE_HIGHSPEED BUTTON_REC + + #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) #define CUBE_QUIT BUTTON_POWER #define CUBE_X_INC BUTTON_LEFT diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c index 32793cbc9f..257a0c6147 100644 --- a/apps/plugins/dict.c +++ b/apps/plugins/dict.c @@ -114,7 +114,8 @@ long reverse (long N) { #define LP_QUIT BUTTON_POWER #elif CONFIG_KEYPAD == GIGABEAT_PAD #define LP_QUIT BUTTON_POWER -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define LP_QUIT BUTTON_POWER #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define LP_QUIT BUTTON_POWER diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c index aba78afb3e..a1c51d762a 100644 --- a/apps/plugins/disktidy.c +++ b/apps/plugins/disktidy.c @@ -66,7 +66,8 @@ enum tidy_system #elif CONFIG_KEYPAD == GIGABEAT_PAD #define TIDY_STOP BUTTON_POWER -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define TIDY_STOP BUTTON_POWER #elif CONFIG_KEYPAD == IRIVER_H10_PAD diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c index 24079a0f71..32990f3923 100644 --- a/apps/plugins/doom/i_video.c +++ b/apps/plugins/doom/i_video.c @@ -192,6 +192,16 @@ void I_ShutdownGraphics(void) #define DOOMBUTTON_ESC BUTTON_POWER #define DOOMBUTTON_ENTER BUTTON_SELECT #define DOOMBUTTON_WEAPON DOOMBUTTON_SCROLLWHEEL_CW +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define DOOMBUTTON_UP BUTTON_UP +#define DOOMBUTTON_DOWN BUTTON_DOWN +#define DOOMBUTTON_LEFT BUTTON_LEFT +#define DOOMBUTTON_RIGHT BUTTON_RIGHT +#define DOOMBUTTON_SHOOT BUTTON_SELECT +#define DOOMBUTTON_OPEN BUTTON_REC +#define DOOMBUTTON_ESC BUTTON_POWER +#define DOOMBUTTON_ENTER BUTTON_SELECT +#define DOOMBUTTON_WEAPON BUTTON_VOL_UP #elif CONFIG_KEYPAD == GIGABEAT_PAD #define DOOMBUTTON_UP BUTTON_UP #define DOOMBUTTON_DOWN BUTTON_DOWN diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c index 5d6f0618a7..7b8a104ec0 100644 --- a/apps/plugins/fire.c +++ b/apps/plugins/fire.c @@ -96,7 +96,8 @@ static unsigned char draw_buffer[8*LCD_WIDTH]; #define FIRE_INCREASE_MULT BUTTON_UP #define FIRE_DECREASE_MULT BUTTON_DOWN -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define FIRE_QUIT BUTTON_POWER #define FIRE_SWITCH_FLAMES_TYPE BUTTON_LEFT #define FIRE_SWITCH_FLAMES_MOVING BUTTON_RIGHT diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c index e8439dff15..bedf82ffda 100644 --- a/apps/plugins/fireworks.c +++ b/apps/plugins/fireworks.c @@ -57,7 +57,8 @@ static struct plugin_api* rb; #elif (CONFIG_KEYPAD == GIGABEAT_PAD) #define BTN_MENU BUTTON_MENU #define BTN_FIRE BUTTON_SELECT -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define BTN_MENU BUTTON_POWER #define BTN_FIRE BUTTON_SELECT #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index cb4ab88048..dde53a0933 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c @@ -95,7 +95,8 @@ PLUGIN_HEADER #define JEWELS_SELECT BUTTON_SELECT #define JEWELS_CANCEL BUTTON_POWER -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define JEWELS_UP BUTTON_UP #define JEWELS_DOWN BUTTON_DOWN #define JEWELS_LEFT BUTTON_LEFT @@ -159,6 +160,13 @@ PLUGIN_HEADER #define YOFS 6 #define NUM_SCORES 10 ++/* use 10x10 tiles (Sansa c200) */ +#elif (LCD_HEIGHT == 80) && (LCD_WIDTH == 132) +#define TILE_WIDTH 10 +#define TILE_HEIGHT 10 +#define YOFS 0 +#define NUM_SCORES 8 + /* use 10x8 tiles (iFP 700) */ #elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 128) #define TILE_WIDTH 10 @@ -1480,7 +1488,8 @@ static int jewels_main(struct game_context* bj) { rb->lcd_puts(0, 9, "SELECT to select"); rb->lcd_puts(0, 10, "Long SELECT to show menu"); rb->lcd_puts(0, 11, "POWER to cancel"); -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif CONFIG_KEYPAD == SANSA_E200_PAD \ + || CONFIG_KEYPAD == SANSA_C200_PAD rb->lcd_puts(0, 2, "Swap pairs of jewels to"); rb->lcd_puts(0, 3, "form connected segments"); rb->lcd_puts(0, 4, "of three or more of the"); diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c index 2c8942f8bc..09f7455f8b 100644 --- a/apps/plugins/jpeg.c +++ b/apps/plugins/jpeg.c @@ -142,6 +142,21 @@ PLUGIN_HEADER #define JPEG_PREVIOUS BUTTON_SCROLL_UP #define JPEG_PREVIOUS_REPEAT (BUTTON_SCROLL_UP|BUTTON_REPEAT) +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define JPEG_ZOOM_PRE BUTTON_SELECT +#define JPEG_ZOOM_IN (BUTTON_SELECT | BUTTON_REL) +#define JPEG_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT) +#define JPEG_UP BUTTON_UP +#define JPEG_DOWN BUTTON_DOWN +#define JPEG_LEFT BUTTON_LEFT +#define JPEG_RIGHT BUTTON_RIGHT +#define JPEG_MENU BUTTON_POWER +#define JPEG_SLIDE_SHOW BUTTON_REC +#define JPEG_NEXT BUTTON_VOL_UP +#define JPEG_NEXT_REPEAT (BUTTON_VOL_UP|BUTTON_REPEAT) +#define JPEG_PREVIOUS BUTTON_VOL_DOWN +#define JPEG_PREVIOUS_REPEAT (BUTTON_VOL_DOWN|BUTTON_REPEAT) + #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define JPEG_ZOOM_PRE BUTTON_PLAY #define JPEG_ZOOM_IN (BUTTON_PLAY | BUTTON_REL) diff --git a/apps/plugins/lib/pluginlib_actions.h b/apps/plugins/lib/pluginlib_actions.h index c38745a4f1..7b2b0a42e2 100644 --- a/apps/plugins/lib/pluginlib_actions.h +++ b/apps/plugins/lib/pluginlib_actions.h @@ -94,7 +94,8 @@ static const struct button_mapping generic_directions[] = || (CONFIG_KEYPAD == GIGABEAT_PAD) \ || (CONFIG_KEYPAD == RECORDER_PAD) \ || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) \ - || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) + || (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) \ + || (CONFIG_KEYPAD == SANSA_C200_PAD) { PLA_UP, BUTTON_UP, BUTTON_NONE}, { PLA_DOWN, BUTTON_DOWN, BUTTON_NONE}, { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, @@ -142,6 +143,7 @@ static const struct button_mapping generic_directions[] = { PLA_DOWN_REPEAT, BUTTON_SCROLL_DOWN|BUTTON_REPEAT, BUTTON_NONE}, { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, + #else #error pluginlib_actions: Unsupported keypad #endif @@ -191,14 +193,15 @@ static const struct button_mapping generic_left_right_fire[] = { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, { PLA_FIRE, BUTTON_PLAY, BUTTON_NONE}, { PLA_FIRE_REPEAT, BUTTON_PLAY|BUTTON_REPEAT, BUTTON_NONE}, -#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) \ + || (CONFIG_KEYPAD == ARCHOS_AV300_PAD) { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, { PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE}, { PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, { PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT,BUTTON_NONE}, -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) { PLA_LEFT, BUTTON_LEFT, BUTTON_NONE}, { PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE}, { PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE}, @@ -285,6 +288,12 @@ static const struct button_mapping generic_actions[] = {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, +#elif CONFIG_KEYPAD == SANSA_C200_PAD + {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, + {PLA_START, BUTTON_UP, BUTTON_NONE}, + {PLA_MENU, BUTTON_DOWN, BUTTON_NONE}, + {PLA_FIRE, BUTTON_SELECT, BUTTON_NONE}, + {PLA_FIRE_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE}, #elif CONFIG_KEYPAD == IRIVER_H10_PAD {PLA_QUIT, BUTTON_POWER, BUTTON_NONE}, {PLA_START, BUTTON_PLAY, BUTTON_NONE}, diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c index 6a37e3602d..88821c8a78 100644 --- a/apps/plugins/logo.c +++ b/apps/plugins/logo.c @@ -210,7 +210,8 @@ const unsigned char rockbox16x7[] = { #define LP_DEC_Y BUTTON_DOWN #define LP_INC_Y BUTTON_UP -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define LP_QUIT BUTTON_POWER #define LP_DEC_X BUTTON_LEFT #define LP_INC_X BUTTON_RIGHT diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c index 48450ae455..b1f243b01c 100644 --- a/apps/plugins/mandelbrot.c +++ b/apps/plugins/mandelbrot.c @@ -132,6 +132,18 @@ PLUGIN_HEADER #define MANDELBROT_MAXITER_DEC (BUTTON_SELECT | BUTTON_LEFT) #define MANDELBROT_RESET BUTTON_REC +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define MANDELBROT_QUIT BUTTON_POWER +#define MANDELBROT_UP BUTTON_UP +#define MANDELBROT_DOWN BUTTON_DOWN +#define MANDELBROT_LEFT BUTTON_LEFT +#define MANDELBROT_RIGHT BUTTON_RIGHT +#define MANDELBROT_ZOOM_IN BUTTON_VOL_UP +#define MANDELBROT_ZOOM_OUT BUTTON_VOL_DOWN +#define MANDELBROT_MAXITER_INC (BUTTON_SELECT | BUTTON_RIGHT) +#define MANDELBROT_MAXITER_DEC (BUTTON_SELECT | BUTTON_LEFT) +#define MANDELBROT_RESET BUTTON_REC + #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define MANDELBROT_QUIT BUTTON_POWER #define MANDELBROT_UP BUTTON_SCROLL_UP diff --git a/apps/plugins/maze.c b/apps/plugins/maze.c index 2948eb2aec..8967f59132 100644 --- a/apps/plugins/maze.c +++ b/apps/plugins/maze.c @@ -89,6 +89,9 @@ const struct button_mapping *plugin_contexts[] #if ( LCD_WIDTH == 112 ) #define MAZE_WIDTH 16 #define MAZE_HEIGHT 12 +#elif( LCD_WIDTH == 132 ) +#define MAZE_WIDTH 26 +#define MAZE_HEIGHT 16 #else #define MAZE_WIDTH 32 #define MAZE_HEIGHT 24 diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c index 48c564ab8a..41edd3a5e5 100644 --- a/apps/plugins/mazezam.c +++ b/apps/plugins/mazezam.c @@ -116,7 +116,8 @@ MEM_FUNCTION_WRAPPERS(rb); #define MAZEZAM_QUIT BUTTON_POWER #define MAZEZAM_QUIT_KEYNAME "[POWER]" -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define MAZEZAM_UP BUTTON_UP #define MAZEZAM_DOWN BUTTON_DOWN #define MAZEZAM_LEFT BUTTON_LEFT diff --git a/apps/plugins/midiplay.c b/apps/plugins/midiplay.c index 59594a97f7..f8a6929661 100644 --- a/apps/plugins/midiplay.c +++ b/apps/plugins/midiplay.c @@ -55,7 +55,8 @@ PLUGIN_IRAM_DECLARE #define BTN_UP BUTTON_UP #define BTN_DOWN BUTTON_DOWN -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define BTN_QUIT BUTTON_POWER #define BTN_RIGHT BUTTON_RIGHT #define BTN_UP BUTTON_UP diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c index bfcd53af66..45d2319101 100644 --- a/apps/plugins/mosaique.c +++ b/apps/plugins/mosaique.c @@ -91,7 +91,8 @@ PLUGIN_HEADER #define MOSAIQUE_SPEED BUTTON_A #define MOSAIQUE_RESTART BUTTON_SELECT -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define MOSAIQUE_QUIT BUTTON_POWER #define MOSAIQUE_SPEED BUTTON_DOWN #define MOSAIQUE_RESTART BUTTON_SELECT diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c index 55cfac3899..453c755f10 100644 --- a/apps/plugins/mp3_encoder.c +++ b/apps/plugins/mp3_encoder.c @@ -2343,7 +2343,8 @@ void get_mp3_filename(char *wav_name) #define MP3ENC_NEXT BUTTON_DOWN #define MP3ENC_DONE BUTTON_POWER #define MP3ENC_SELECT BUTTON_SELECT -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define MP3ENC_PREV BUTTON_UP #define MP3ENC_NEXT BUTTON_DOWN #define MP3ENC_DONE BUTTON_POWER diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index 481454dc87..af0567c0d1 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c @@ -160,6 +160,13 @@ PLUGIN_IRAM_DECLARE #define MPEG_VOLDOWN BUTTON_SCROLL_UP #define MPEG_VOLUP BUTTON_SCROLL_DOWN +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define MPEG_MENU BUTTON_SELECT +#define MPEG_STOP BUTTON_POWER +#define MPEG_PAUSE BUTTON_UP +#define MPEG_VOLDOWN BUTTON_VOL_DOWN +#define MPEG_VOLUP BUTTON_VOL_UP + #else #error MPEGPLAYER: Unsupported keypad #endif diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c index bd16341008..ee4b089ac1 100644 --- a/apps/plugins/oscilloscope.c +++ b/apps/plugins/oscilloscope.c @@ -109,6 +109,17 @@ PLUGIN_HEADER #define OSCILLOSCOPE_VOL_UP BUTTON_SCROLL_DOWN #define OSCILLOSCOPE_VOL_DOWN BUTTON_SCROLL_UP +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +#define OSCILLOSCOPE_QUIT BUTTON_POWER +#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT +#define OSCILLOSCOPE_ADVMODE BUTTON_DOWN +#define OSCILLOSCOPE_ORIENTATION BUTTON_UP +#define OSCILLOSCOPE_PAUSE BUTTON_REC +#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT +#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT +#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP +#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN + #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD #define OSCILLOSCOPE_QUIT BUTTON_POWER #define OSCILLOSCOPE_DRAWMODE_PRE BUTTON_SELECT diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c index 1fae239e53..76c54122e0 100644 --- a/apps/plugins/plasma.c +++ b/apps/plugins/plasma.c @@ -63,7 +63,8 @@ static int plasma_frequency; #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define PLASMA_QUIT BUTTON_POWER #define PLASMA_INCREASE_FREQUENCY BUTTON_UP #define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN @@ -90,7 +91,8 @@ static int plasma_frequency; #define PLASMA_REGEN_COLORS BUTTON_PLAY #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define PLASMA_REGEN_COLORS BUTTON_PLAY -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define PLASMA_REGEN_COLORS BUTTON_SELECT #elif CONFIG_KEYPAD == IPOD_4G_PAD #define PLASMA_REGEN_COLORS BUTTON_SELECT diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index b88b95bb91..79069b9285 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -100,7 +100,8 @@ PLUGIN_HEADER #define PONG_RIGHT_UP BUTTON_VOL_UP #define PONG_RIGHT_DOWN BUTTON_VOL_DOWN -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define PONG_QUIT BUTTON_POWER #define PONG_PAUSE BUTTON_SELECT #define PONG_LEFT_UP BUTTON_LEFT diff --git a/apps/plugins/reversi/reversi-gui.c b/apps/plugins/reversi/reversi-gui.c index 374cc0f151..f99f616668 100644 --- a/apps/plugins/reversi/reversi-gui.c +++ b/apps/plugins/reversi/reversi-gui.c @@ -67,6 +67,14 @@ static struct plugin_api* rb; #define CELL_HEIGHT 6 #define SMALL_BOARD +#elif (LCD_HEIGHT==80) && (LCD_WIDTH==132) +/* Sansa C200 - 132x80, 8 cells @ 9x9 with 9 border lines */ + +/* Internal dimensions of a cell */ +#define CELL_WIDTH 8 +#define CELL_HEIGHT 8 +#define SMALL_BOARD + #elif (LCD_HEIGHT==110) && (LCD_WIDTH==138) /* iPod Mini - 138x110, 8 cells @ 10x10 with 9 border lines */ diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h index b82e40d275..5543ea8fd6 100644 --- a/apps/plugins/reversi/reversi-gui.h +++ b/apps/plugins/reversi/reversi-gui.h @@ -95,7 +95,8 @@ #define REVERSI_BUTTON_MAKE_MOVE BUTTON_REW #define REVERSI_BUTTON_MENU BUTTON_PLAY -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define REVERSI_BUTTON_QUIT BUTTON_POWER #define REVERSI_BUTTON_UP BUTTON_UP #define REVERSI_BUTTON_DOWN BUTTON_DOWN diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index 8625e35cfb..0b3382ff19 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -121,6 +121,18 @@ PLUGIN_HEADER #define ROCKBLOX_DROP BUTTON_SELECT #define ROCKBLOX_RESTART BUTTON_REC +#elif CONFIG_KEYPAD == SANSA_C200_PAD + +#define ROCKBLOX_OFF BUTTON_POWER +#define ROCKBLOX_ROTATE_RIGHT BUTTON_UP +#define ROCKBLOX_ROTATE_RIGHT2 BUTTON_VOL_DOWN +#define ROCKBLOX_ROTATE_LEFT BUTTON_VOL_UP +#define ROCKBLOX_DOWN BUTTON_DOWN +#define ROCKBLOX_LEFT BUTTON_LEFT +#define ROCKBLOX_RIGHT BUTTON_RIGHT +#define ROCKBLOX_DROP BUTTON_SELECT +#define ROCKBLOX_RESTART BUTTON_REC + #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define ROCKBLOX_OFF BUTTON_POWER @@ -259,6 +271,19 @@ PLUGIN_HEADER #define LEVEL_Y 49 #define LINES_Y 82 +#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) + +#define BLOCK_WIDTH 4 +#define BLOCK_HEIGHT 4 +#define BOARD_X 10 +#define BOARD_Y 0 +#define PREVIEW_X 89 +#define PREVIEW_Y 61 +#define LABEL_X 78 +#define SCORE_Y 10 +#define LEVEL_Y 30 +#define LINES_Y 50 + #elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64) #define BLOCK_WIDTH 3 diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c index 3038a06bee..41519f66e1 100644 --- a/apps/plugins/rockpaint.c +++ b/apps/plugins/rockpaint.c @@ -82,7 +82,8 @@ PLUGIN_HEADER #define ROCKPAINT_LEFT BUTTON_LEFT #define ROCKPAINT_RIGHT BUTTON_RIGHT -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define ROCKPAINT_QUIT BUTTON_POWER #define ROCKPAINT_DRAW BUTTON_SELECT #define ROCKPAINT_MENU ( BUTTON_SELECT | BUTTON_POWER ) diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index b819f354cc..17a96baf2a 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c @@ -77,7 +77,8 @@ PLUGIN_HEADER #define PUZZLE_SHUFFLE BUTTON_SELECT #define PUZZLE_PICTURE BUTTON_A -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define PUZZLE_QUIT BUTTON_POWER #define PUZZLE_UP BUTTON_UP #define PUZZLE_DOWN BUTTON_DOWN diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index eeca6bd547..2beeaa4c5b 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -83,7 +83,8 @@ PLUGIN_HEADER #define SNAKE_DOWN BUTTON_DOWN #define SNAKE_PLAYPAUSE BUTTON_SELECT -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define SNAKE_QUIT BUTTON_POWER #define SNAKE_UP BUTTON_UP #define SNAKE_DOWN BUTTON_DOWN diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index 385af159e4..1d13b0523b 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -232,7 +232,8 @@ PLUGIN_HEADER #define SNAKE2_PLAYPAUSE BUTTON_SELECT #define SNAKE2_PLAYPAUSE_TEXT "Select" -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define SNAKE2_UP BUTTON_UP #define SNAKE2_DOWN BUTTON_DOWN #define SNAKE2_QUIT BUTTON_POWER diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c index c815471e11..6078f87708 100644 --- a/apps/plugins/snow.c +++ b/apps/plugins/snow.c @@ -46,7 +46,8 @@ PLUGIN_HEADER #define SNOW_QUIT BUTTON_POWER #elif CONFIG_KEYPAD == GIGABEAT_PAD #define SNOW_QUIT BUTTON_POWER -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define SNOW_QUIT BUTTON_POWER #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define SNOW_QUIT BUTTON_POWER diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 05ff25b721..ae1294cbc5 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -213,6 +213,25 @@ static struct plugin_api* rb; # define HK_CUR2STACK "DOUBLE SELECT" # define HK_REM2STACK "RIGHT" +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +# define SOL_QUIT BUTTON_POWER +# define SOL_UP BUTTON_UP +# define SOL_DOWN BUTTON_DOWN +# define SOL_LEFT BUTTON_LEFT +# define SOL_RIGHT BUTTON_RIGHT +# define SOL_MOVE_PRE BUTTON_SELECT +# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL) +# define SOL_DRAW BUTTON_VOL_DOWN +# define SOL_REM2CUR BUTTON_REC +# define SOL_CUR2STACK_PRE BUTTON_SELECT +# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT) +# define SOL_REM2STACK BUTTON_VOL_UP +# define HK_MOVE "SELECT" +# define HK_DRAW "REC" +# define HK_REM2CUR "LEFT" +# define HK_CUR2STACK "DOUBLE SELECT" +# define HK_REM2STACK "RIGHT" + #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) # define SOL_QUIT BUTTON_POWER # define SOL_UP BUTTON_SCROLL_UP diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index 1278a611ce..d98041da39 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -135,6 +135,19 @@ static struct plugin_api* rb; /* global api struct pointer */ #define AST_FIRE BUTTON_SELECT #define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT) +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +#define AST_PAUSE BUTTON_REC +#define AST_QUIT BUTTON_POWER +#define AST_THRUST_REP (BUTTON_UP | BUTTON_REPEAT) +#define AST_THRUST BUTTON_UP +#define AST_HYPERSPACE BUTTON_DOWN +#define AST_LEFT BUTTON_LEFT +#define AST_LEFT_REP (BUTTON_LEFT | BUTTON_REPEAT) +#define AST_RIGHT BUTTON_RIGHT +#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT) +#define AST_FIRE BUTTON_SELECT +#define AST_FIRE_REP (BUTTON_SELECT | BUTTON_REPEAT) + #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) #define AST_PAUSE BUTTON_PLAY #define AST_QUIT BUTTON_POWER diff --git a/apps/plugins/star.c b/apps/plugins/star.c index c9d31a6c9a..1c2501d6a4 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -144,7 +144,8 @@ PLUGIN_HEADER #define STAR_LEVEL_REPEAT BUTTON_A #define STAR_MENU_RUN BUTTON_SELECT -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define STAR_QUIT BUTTON_POWER #define STAR_UP BUTTON_UP diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c index 278d24fbc7..333fd32fcd 100644 --- a/apps/plugins/starfield.c +++ b/apps/plugins/starfield.c @@ -57,7 +57,8 @@ static struct plugin_api* rb; /* global api struct pointer */ #define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT #define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT #define STARFIELD_TOGGLE_COLOR BUTTON_SELECT -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define STARFIELD_QUIT BUTTON_POWER #define STARFIELD_INCREASE_ZMOVE BUTTON_UP #define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c index a33331a429..03dc9fa038 100644 --- a/apps/plugins/stats.c +++ b/apps/plugins/stats.c @@ -53,7 +53,8 @@ static bool abort; #elif CONFIG_KEYPAD == GIGABEAT_PAD #define STATS_STOP BUTTON_POWER -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define STATS_STOP BUTTON_POWER #elif CONFIG_KEYPAD == IRIVER_H10_PAD diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index 6f18617d2d..d36a774447 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -100,10 +100,11 @@ PLUGIN_HEADER #define STOPWATCH_LAP_TIMER BUTTON_MENU #define STOPWATCH_SCROLL_UP BUTTON_UP #define STOPWATCH_SCROLL_DOWN BUTTON_DOWN -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define STOPWATCH_QUIT BUTTON_POWER -#define STOPWATCH_START_STOP BUTTON_LEFT -#define STOPWATCH_RESET_TIMER BUTTON_REC +#define STOPWATCH_START_STOP BUTTON_RIGHT +#define STOPWATCH_RESET_TIMER BUTTON_LEFT #define STOPWATCH_LAP_TIMER BUTTON_SELECT #define STOPWATCH_SCROLL_UP BUTTON_UP #define STOPWATCH_SCROLL_DOWN BUTTON_DOWN diff --git a/apps/plugins/sudoku/sudoku.c b/apps/plugins/sudoku/sudoku.c index 9485f2de23..1d548ace6d 100644 --- a/apps/plugins/sudoku/sudoku.c +++ b/apps/plugins/sudoku/sudoku.c @@ -108,6 +108,14 @@ static const char default_game[9][9] = #define CELL_HEIGHT 6 #define SMALL_BOARD +#elif ((LCD_HEIGHT==80) && (LCD_WIDTH==132)) +/* C200, 9 cells @ 8x8 with 8 border lines */ + +/* Internal dimensions of a cell */ +#define CELL_WIDTH 8 +#define CELL_HEIGHT 8 +#define SMALL_BOARD + #elif (LCD_HEIGHT==110) && (LCD_WIDTH==138) /* iPod Mini - 138x110, 9 cells @ 10x10 with 14 border lines */ diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h index d41c0b879d..f888bd7090 100644 --- a/apps/plugins/sudoku/sudoku.h +++ b/apps/plugins/sudoku/sudoku.h @@ -122,6 +122,20 @@ #define SUDOKU_BUTTON_MENU BUTTON_SELECT #define SUDOKU_BUTTON_POSSIBLE BUTTON_REC +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +#define SUDOKU_BUTTON_QUIT_PRE BUTTON_POWER +#define SUDOKU_BUTTON_QUIT (BUTTON_POWER | BUTTON_REPEAT) +#define SUDOKU_BUTTON_UP BUTTON_UP +#define SUDOKU_BUTTON_DOWN BUTTON_DOWN +#define SUDOKU_BUTTON_LEFT BUTTON_LEFT +#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT +#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_VOL_DOWN +#define SUDOKU_BUTTON_TOGGLE BUTTON_VOL_UP +#define SUDOKU_BUTTON_ALTTOGGLE BUTTON_SELECT +#define SUDOKU_BUTTON_MENU_PRE BUTTON_POWER +#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL) +#define SUDOKU_BUTTON_POSSIBLE BUTTON_REC + #elif #error SUDOKU: Unsupported keypad #endif diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c index 055ace08c5..7f87b7caa2 100644 --- a/apps/plugins/viewer.c +++ b/apps/plugins/viewer.c @@ -184,6 +184,18 @@ PLUGIN_HEADER #define VIEWER_LINE_UP BUTTON_SCROLL_UP #define VIEWER_LINE_DOWN BUTTON_SCROLL_DOWN +/* Sansa C200 keys */ +#elif CONFIG_KEYPAD == SANSA_C200_PAD +#define VIEWER_QUIT BUTTON_POWER +#define VIEWER_PAGE_UP BUTTON_VOL_UP +#define VIEWER_PAGE_DOWN BUTTON_VOL_DOWN +#define VIEWER_SCREEN_LEFT BUTTON_LEFT +#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT +#define VIEWER_MENU BUTTON_SELECT +#define VIEWER_AUTOSCROLL BUTTON_REC +#define VIEWER_LINE_UP BUTTON_UP +#define VIEWER_LINE_DOWN BUTTON_DOWN + /* iriver H10 keys */ #elif CONFIG_KEYPAD == IRIVER_H10_PAD #define VIEWER_QUIT BUTTON_POWER diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c index f054a5946e..9175e1d4d3 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c @@ -94,6 +94,15 @@ PLUGIN_HEADER #define VUMETER_UP BUTTON_SCROLL_DOWN #define VUMETER_DOWN BUTTON_SCROLL_UP +#elif (CONFIG_KEYPAD == SANSA_C200_PAD) +#define VUMETER_QUIT BUTTON_POWER +#define VUMETER_HELP BUTTON_REC +#define VUMETER_MENU BUTTON_SELECT +#define VUMETER_MENU_EXIT BUTTON_SELECT +#define VUMETER_MENU_EXIT2 BUTTON_POWER +#define VUMETER_UP BUTTON_VOL_UP +#define VUMETER_DOWN BUTTON_VOL_DOWN + #elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD #define VUMETER_QUIT BUTTON_POWER #define VUMETER_HELP BUTTON_PLAY diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c index 1c78f33ad0..c05918e9b4 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c @@ -148,7 +148,8 @@ PLUGIN_HEADER #define WORMS_TEXT "Left/Right" -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define BTN_DIR_UP BUTTON_UP #define BTN_DIR_DOWN BUTTON_DOWN @@ -182,6 +183,11 @@ PLUGIN_HEADER #define ARGH_SIZE 4 #define SPEED 14 #define MAX_WORM_SEGMENTS 128 +#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80) +#define FOOD_SIZE 3 +#define ARGH_SIZE 4 +#define SPEED 14 +#define MAX_WORM_SEGMENTS 128 #elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110) #define FOOD_SIZE 4 #define ARGH_SIZE 5 diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index c91e20aedd..f51e98ecff 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -74,7 +74,8 @@ PLUGIN_HEADER #define DOWN BUTTON_DOWN #define PAUSE BUTTON_A -#elif (CONFIG_KEYPAD == SANSA_E200_PAD) +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define QUIT BUTTON_POWER #define LEFT BUTTON_LEFT diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h index 603869d454..6af84719ff 100644 --- a/apps/plugins/zxbox/keymaps.h +++ b/apps/plugins/zxbox/keymaps.h @@ -77,7 +77,8 @@ #define ZX_UP BUTTON_SCROLL_UP #define ZX_DOWN BUTTON_SCROLL_DOWN -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) #define ZX_SELECT BUTTON_SELECT #define ZX_MENU BUTTON_POWER #define ZX_LEFT BUTTON_LEFT diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c index 5bea491a51..2b1d171c11 100644 --- a/apps/plugins/zxbox/zxbox_keyb.c +++ b/apps/plugins/zxbox/zxbox_keyb.c @@ -101,7 +101,8 @@ #define KBD_UP BUTTON_SCROLL_UP #define KBD_DOWN BUTTON_SCROLL_DOWN -#elif CONFIG_KEYPAD == SANSA_E200_PAD +#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ +(CONFIG_KEYPAD == SANSA_C200_PAD) /* TODO: Check keyboard mappings */ diff --git a/docs/CREDITS b/docs/CREDITS index 9edfa7ffcc..edbea3515f 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -331,6 +331,8 @@ Sofian Babai Costas Calamvokis Catalin Patulea Peter Harley +Max Kelley + The libmad team The wavpack team The ffmpeg team diff --git a/tools/configure b/tools/configure index a928e3060c..63e5512c01 100755 --- a/tools/configure +++ b/tools/configure @@ -1349,7 +1349,7 @@ EOF appextra="recorder:gui" archosrom="" flash="" - plugins="" + plugins="yes" swcodec="yes" boottool="$rootdir/tools/scramble -mi4v3 -model=c200 -type=RBBL" bootoutput="firmware.mi4"