summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMustapha Senhaji <moos@rockbox.org>2009-02-12 13:47:34 +0000
committerMustapha Senhaji <moos@rockbox.org>2009-02-12 13:47:34 +0000
commit281fc2e708980447db4eaa7abdd5f890919c0462 (patch)
tree0324ba36b75768ccff7aec0554bae2c7a6d48883
parentb63c5fdfb94381b10405dd73efc6219389d65d4a (diff)
downloadrockbox-281fc2e708980447db4eaa7abdd5f890919c0462.tar.gz
rockbox-281fc2e708980447db4eaa7abdd5f890919c0462.zip
Goban plugin: FS#9897 by Joshua Simmons
Initial button maps for still unsuported targets (Sansa Fuze, Sansa Clip, Sansa m200, Creative ZV(M) and the Phillips HDD1630). Low targets like archos are still short in memory to be suported. Update the manual for the Sansa players. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19988 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/SUBDIRS8
-rw-r--r--apps/plugins/goban/goban.h51
-rw-r--r--manual/plugins/goban.tex50
3 files changed, 79 insertions, 30 deletions
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index bdae8d2b0c..f07bf861b4 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -20,12 +20,8 @@ chessbox
20jpeg 20jpeg
21sudoku 21sudoku
22reversi 22reversi
23/* Exclude targets without keypads set or with not enough plugin buffer. 23/* Plugin is about 40k, rounding up to 65k to be safe. */
24 Plugin is about 40k, rounding up to 65k to be safe. */ 24#if (defined(PLUGIN_BUFFER_SIZE) && PLUGIN_BUFFER_SIZE >= 0x10000)
25#if (CONFIG_KEYPAD != SANSA_CLIP_PAD && CONFIG_KEYPAD != SANSA_M200_PAD && \
26 CONFIG_KEYPAD != CREATIVEZVM_PAD && CONFIG_KEYPAD != CREATIVEZV_PAD && \
27 CONFIG_KEYPAD != PHILIPS_HDD1630_PAD && defined(PLUGIN_BUFFER_SIZE) && \
28 PLUGIN_BUFFER_SIZE >= 0x10000)
29goban 25goban
30#endif 26#endif
31#ifndef OLYMPUS_MROBE_500 27#ifndef OLYMPUS_MROBE_500
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index c15eead13b..9e9dc73d91 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -100,7 +100,7 @@
100#define GBN_BUTTON_MENU BUTTON_POWER 100#define GBN_BUTTON_MENU BUTTON_POWER
101#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL 101#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
102#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT 102#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
103/* no next var */ 103#define GBN_BUTTON_NEXT_VAR BUTTON_HOME
104 104
105#elif (CONFIG_KEYPAD == SANSA_C200_PAD) 105#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
106#define GBN_BUTTON_UP BUTTON_UP 106#define GBN_BUTTON_UP BUTTON_UP
@@ -114,6 +114,55 @@
114#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT 114#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
115#define GBN_BUTTON_NEXT_VAR BUTTON_REC 115#define GBN_BUTTON_NEXT_VAR BUTTON_REC
116 116
117#elif (CONFIG_KEYPAD == SANSA_CLIP_PAD)
118#define GBN_BUTTON_UP BUTTON_UP
119#define GBN_BUTTON_DOWN BUTTON_DOWN
120#define GBN_BUTTON_LEFT BUTTON_LEFT
121#define GBN_BUTTON_RIGHT BUTTON_RIGHT
122#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
123#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
124#define GBN_BUTTON_MENU BUTTON_POWER
125#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
126#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
127#define GBN_BUTTON_NEXT_VAR BUTTON_HOME
128
129#elif (CONFIG_KEYPAD == SANSA_M200_PAD)
130#define GBN_BUTTON_UP BUTTON_UP
131#define GBN_BUTTON_DOWN BUTTON_DOWN
132#define GBN_BUTTON_LEFT BUTTON_LEFT
133#define GBN_BUTTON_RIGHT BUTTON_RIGHT
134#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
135#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
136#define GBN_BUTTON_MENU BUTTON_POWER
137#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
138#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
139/* No next var */
140
141#elif (CONFIG_KEYPAD == CREATIVEZVM_PAD) \
142 || (CONFIG_KEYPAD == CREATIVEZV_PAD)
143#define GBN_BUTTON_UP BUTTON_UP
144#define GBN_BUTTON_DOWN BUTTON_DOWN
145#define GBN_BUTTON_LEFT BUTTON_LEFT
146#define GBN_BUTTON_RIGHT BUTTON_RIGHT
147#define GBN_BUTTON_RETREAT BUTTON_BACK
148#define GBN_BUTTON_ADVANCE BUTTON_CUSTOM
149#define GBN_BUTTON_MENU BUTTON_MENU
150#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
151#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
152#define GBN_BUTTON_NEXT_VAR BUTTON_PLAY
153
154#elif (CONFIG_KEYPAD == PHILIPS_HDD1630_PAD)
155#define GBN_BUTTON_UP BUTTON_UP
156#define GBN_BUTTON_DOWN BUTTON_DOWN
157#define GBN_BUTTON_LEFT BUTTON_LEFT
158#define GBN_BUTTON_RIGHT BUTTON_RIGHT
159#define GBN_BUTTON_RETREAT BUTTON_VOL_DOWN
160#define GBN_BUTTON_ADVANCE BUTTON_VOL_UP
161#define GBN_BUTTON_MENU BUTTON_MENU
162#define GBN_BUTTON_PLAY BUTTON_SELECT | BUTTON_REL
163#define GBN_BUTTON_CONTEXT BUTTON_SELECT | BUTTON_REPEAT
164#define GBN_BUTTON_NEXT_VAR BUTTON_VIEW
165
117#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 166#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
118#define GBN_BUTTON_UP BUTTON_UP 167#define GBN_BUTTON_UP BUTTON_UP
119#define GBN_BUTTON_DOWN BUTTON_DOWN 168#define GBN_BUTTON_DOWN BUTTON_DOWN
diff --git a/manual/plugins/goban.tex b/manual/plugins/goban.tex
index 79d1cc6046..5ccfdd1a39 100644
--- a/manual/plugins/goban.tex
+++ b/manual/plugins/goban.tex
@@ -37,10 +37,11 @@ these markers: \\
37 \emph{+ } & There are nodes after the current node in the SGF tree. \\ 37 \emph{+ } & There are nodes after the current node in the SGF tree. \\
38 \emph{* } & There are sibling variations which can be navigated to using the % 38 \emph{* } & There are sibling variations which can be navigated to using the %
39 \emph{Next Variation} menu option of the \emph{Context Menu}% 39 \emph{Next Variation} menu option of the \emph{Context Menu}%
40 \opt{SANSA_E200_PAD,SANSA_C200_PAD,SANSA_FUZE_PAD,RECORDER_PAD,% 40 \opt{SANSA_E200_PAD,SANSA_C200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,%
41 MROBE100_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,% 41 RECORDER_PAD,MROBE100_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,%
42 IRIVER_H300_PAD}{ or the % 42 IRIVER_H300_PAD}{ or the %
43 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD}{\ButtonRec}% 43 \opt{SANSA_E200_PAD,SANSA_C200_PAD}{\ButtonRec}%
44 \opt{SANSA_FUZE_PAD,SANSA_CLIP_PAD}{\ButtonHome}%
44 \opt{RECORDER_PAD}{\ButtonOn}% 45 \opt{RECORDER_PAD}{\ButtonOn}%
45 \opt{MROBE100_PAD}{\ButtonPower}% 46 \opt{MROBE100_PAD}{\ButtonPower}%
46 \opt{GIGABEAT_PAD}{\ButtonA}% 47 \opt{GIGABEAT_PAD}{\ButtonA}%
@@ -54,26 +55,26 @@ these markers: \\
54\subsubsection{Controls} 55\subsubsection{Controls}
55\begin{table} 56\begin{table}
56 \begin{btnmap}{}{} 57 \begin{btnmap}{}{}
57 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,% 58 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,%
58 GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,% 59 GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,%
59 IAUDIO_X5_PAD,RECORDER_PAD,ONDIO_PAD}{\ButtonUp}% 60 IAUDIO_X5_PAD,RECORDER_PAD,ONDIO_PAD}{\ButtonUp}%
60 \opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonMenu}% 61 \opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonMenu}%
61 \opt{IRIVER_H10_PAD}{\ButtonScrollUp} & Move cursor up \\ 62 \opt{IRIVER_H10_PAD}{\ButtonScrollUp} & Move cursor up \\
62 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD, 63 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,%
63 IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,RECORDER_PAD, 64 GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,%
64 ONDIO_PAD}{\ButtonDown}% 65 IAUDIO_X5_PAD,RECORDER_PAD,ONDIO_PAD}{\ButtonDown}%
65 \opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonPlay}% 66 \opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonPlay}%
66 \opt{IRIVER_H10_PAD}{\ButtonScrollDown} & Move cursor down \\ 67 \opt{IRIVER_H10_PAD}{\ButtonScrollDown} & Move cursor down \\
67 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,% 68 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,IPOD_1G2G_PAD,%
68 SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H10_PAD,IRIVER_H100_PAD,% 69 IPOD_3G_PAD,IPOD_4G_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H10_PAD,%
69 IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,RECORDER_PAD,% 70 IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,RECORDER_PAD,%
70 ONDIO_PAD}{\ButtonLeft} & Move cursor left % 71 ONDIO_PAD}{\ButtonLeft} & Move cursor left %
71 \opt{ONDIO_PAD}{if in \emph{board} navigation mode, or % 72 \opt{ONDIO_PAD}{if in \emph{board} navigation mode, or %
72 retreat one node in the game tree if in % 73 retreat one node in the game tree if in %
73 \emph{tree} navigation mode} \\ 74 \emph{tree} navigation mode} \\
74 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,% 75 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,IPOD_1G2G_PAD,%
75 SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H10_PAD,IRIVER_H100_PAD,% 76 IPOD_3G_PAD,IPOD_4G_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H10_PAD,%
76 IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,RECORDER_PAD,% 77 IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,RECORDER_PAD,%
77 ONDIO_PAD}{\ButtonRight} & Move cursor right 78 ONDIO_PAD}{\ButtonRight} & Move cursor right
78 \opt{ONDIO_PAD}{if in \emph{board} navigation mode, or advance one node in 79 \opt{ONDIO_PAD}{if in \emph{board} navigation mode, or advance one node in
79 the game tree if in \emph{tree} navigation mode} \\ 80 the game tree if in \emph{tree} navigation mode} \\
@@ -81,14 +82,15 @@ these markers: \\
81 navigation modes \\} 82 navigation modes \\}
82 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,% 83 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,%
83 SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,% 84 SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,%
84 MROBE100_PAD,IAUDIO_X5_PAD}{\ButtonSelect}% 85 MROBE100_PAD,IAUDIO_X5_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD}{\ButtonSelect}%
85 \opt{IRIVER_H10_PAD,RECORDER_PAD}{\ButtonPlay}% 86 \opt{IRIVER_H10_PAD,RECORDER_PAD}{\ButtonPlay}%
86 \opt{ONDIO_PAD}{\ButtonMenu} & Play a move (or use a tool if play-mode has 87 \opt{ONDIO_PAD}{\ButtonMenu} & Play a move (or use a tool if play-mode has
87 been changed). \\ 88 been changed). \\
88 \nopt{ONDIO_PAD}{ 89 \nopt{ONDIO_PAD}{
89 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,% 90 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,%
90 IPOD_4G_PAD}{\ButtonScrollBack}% 91 IPOD_4G_PAD}{\ButtonScrollBack}%
91 \opt{SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonVolDown}% 92 \opt{SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,GIGABEAT_PAD,%
93 GIGABEAT_S_PAD}{\ButtonVolDown}%
92 \opt{IRIVER_H10_PAD}{\ButtonFF}% 94 \opt{IRIVER_H10_PAD}{\ButtonFF}%
93 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}% 95 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}%
94 \opt{MROBE100_PAD}{\ButtonMenu}% 96 \opt{MROBE100_PAD}{\ButtonMenu}%
@@ -96,14 +98,15 @@ these markers: \\
96 \opt{RECORDER_PAD}{\ButtonFOne} & Retreat one node in the game tree \\ 98 \opt{RECORDER_PAD}{\ButtonFOne} & Retreat one node in the game tree \\
97 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,% 99 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD,%
98 IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonScrollFwd}% 100 IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{\ButtonScrollFwd}%
99 \opt{SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonVolUp}% 101 \opt{SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,GIGABEAT_PAD,%
102 GIGABEAT_S_PAD}{\ButtonVolUp}%
100 \opt{IRIVER_H10_PAD}{\ButtonRew}% 103 \opt{IRIVER_H10_PAD}{\ButtonRew}%
101 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}% 104 \opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}%
102 \opt{MROBE100_PAD}{\ButtonPlay}% 105 \opt{MROBE100_PAD}{\ButtonPlay}%
103 \opt{IAUDIO_X5_PAD}{\ButtonRec}% 106 \opt{IAUDIO_X5_PAD}{\ButtonRec}%
104 \opt{RECORDER_PAD}{\ButtonFThree} & Advance one node in the game tree \\ } 107 \opt{RECORDER_PAD}{\ButtonFThree} & Advance one node in the game tree \\ }
105 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,IRIVER_H10_PAD,% 108 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,%
106 IAUDIO_X5_PAD}{\ButtonPower}% 109 IRIVER_H10_PAD,IAUDIO_X5_PAD}{\ButtonPower}%
107 \opt{MROBE100_PAD}{\ButtonDisplay}% 110 \opt{MROBE100_PAD}{\ButtonDisplay}%
108 \opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{Long \ButtonSelect}% 111 \opt{IPOD_1G2G_PAD,IPOD_3G_PAD,IPOD_4G_PAD}{Long \ButtonSelect}%
109 \opt{GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonMenu}% 112 \opt{GIGABEAT_PAD,GIGABEAT_S_PAD}{\ButtonMenu}%
@@ -113,13 +116,14 @@ these markers: \\
113 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,% 116 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,GIGABEAT_S_PAD,%
114 IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,% 117 IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,IAUDIO_X5_PAD,%
115 IRIVER_H10_PAD}{% 118 IRIVER_H10_PAD}{%
116 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_C200_PAD,GIGABEAT_PAD,% 119 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD,SANSA_CLIP_PAD,SANSA_M200_PAD,SANSA_C200_PAD,%
117 GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,% 120 GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,MROBE100_PAD,%
118 IAUDIO_X5_PAD}{Long \ButtonSelect}% 121 IAUDIO_X5_PAD}{Long \ButtonSelect}%
119 \opt{IRIVER_H10_PAD}{Long \ButtonPlay} & Context Menu \\ } 122 \opt{IRIVER_H10_PAD}{Long \ButtonPlay} & Context Menu \\ }
120 \opt{SANSA_E200_PAD,SANSA_C200_PAD,SANSA_FUZE_PAD,RECORDER_PAD,MROBE100_PAD,% 123 \opt{SANSA_E200_PAD,SANSA_C200_PAD,SANSA_FUZE_PAD,RECORDER_PAD,MROBE100_PAD,%
121 GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{% 124 GIGABEAT_PAD,GIGABEAT_S_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,SANSA_CLIP_PAD}{%
122 \opt{SANSA_E200_PAD,SANSA_FUZE_PAD}{\ButtonRec}% 125 \opt{SANSA_E200_PAD}{\ButtonRec}%
126 \opt{SANSA_FUZE_PAD,SANSA_CLIP_PAD}{\ButtonHome}%
123 \opt{SANSA_C200_PAD}{\ButtonRec}% 127 \opt{SANSA_C200_PAD}{\ButtonRec}%
124 \opt{RECORDER_PAD}{\ButtonOn}% 128 \opt{RECORDER_PAD}{\ButtonOn}%
125 \opt{MROBE100_PAD}{\ButtonPower}% 129 \opt{MROBE100_PAD}{\ButtonPower}%