summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stummvoll <michael@stummi.org>2010-11-28 19:49:15 +0000
committerMichael Stummvoll <michael@stummi.org>2010-11-28 19:49:15 +0000
commita0480c734aa30ab00e877dc33daac30ed484cd99 (patch)
tree929101658f49b95a1ade3d2dbeea3bbaf46eda51
parent418b7d4d78d6f4429584b8d1f3a54346e6f91ebe (diff)
downloadrockbox-a0480c734aa30ab00e877dc33daac30ed484cd99.tar.gz
rockbox-a0480c734aa30ab00e877dc33daac30ed484cd99.zip
applying FS#10489: Rockboy - rotate directional keys when screen is rotated
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28695 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/rockboy/sys_rockbox.c62
-rw-r--r--manual/plugins/rockboy.tex6
2 files changed, 59 insertions, 9 deletions
diff --git a/apps/plugins/rockboy/sys_rockbox.c b/apps/plugins/rockboy/sys_rockbox.c
index 0bed7f8de6..faba95ea68 100644
--- a/apps/plugins/rockboy/sys_rockbox.c
+++ b/apps/plugins/rockboy/sys_rockbox.c
@@ -134,10 +134,34 @@ void ev_poll(void)
134#else 134#else
135 if(released) { 135 if(released) {
136 ev.type = EV_RELEASE; 136 ev.type = EV_RELEASE;
137 if(released & options.LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } 137#ifdef HAVE_LCD_COLOR
138 if (options.rotate == 1) /* if screen is rotated, rotate direction keys */
139 {
140 if(released & options.LEFT) {ev.code=PAD_DOWN; ev_postevent(&ev);}
141 if(released & options.RIGHT) {ev.code=PAD_UP; ev_postevent(&ev);}
142 if(released & options.DOWN) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
143 if(released & options.UP) {ev.code=PAD_LEFT; ev_postevent(&ev);}
144 }
145 else if (options.rotate == 2) /* if screen is rotated, rotate direction keys */
146 {
147 if(released & options.LEFT) {ev.code=PAD_UP; ev_postevent(&ev);}
148 if(released & options.RIGHT) {ev.code=PAD_DOWN; ev_postevent(&ev);}
149 if(released & options.DOWN) {ev.code=PAD_LEFT; ev_postevent(&ev);}
150 if(released & options.UP) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
151 }
152 else /* screen is not rotated, do not rotate direction keys */
153 {
154 if(released & options.LEFT) {ev.code=PAD_LEFT; ev_postevent(&ev);}
155 if(released & options.RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
156 if(released & options.DOWN) {ev.code=PAD_DOWN; ev_postevent(&ev);}
157 if(released & options.UP) {ev.code=PAD_UP; ev_postevent(&ev);}
158 }
159#else
160 if(released & options.LEFT) {ev.code=PAD_LEFT; ev_postevent(&ev);}
138 if(released & options.RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);} 161 if(released & options.RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
139 if(released & options.DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } 162 if(released & options.DOWN) {ev.code=PAD_DOWN; ev_postevent(&ev);}
140 if(released & options.UP) { ev.code=PAD_UP; ev_postevent(&ev); } 163 if(released & options.UP) {ev.code=PAD_UP; ev_postevent(&ev);}
164#endif
141 if(released & options.A) { ev.code=PAD_A; ev_postevent(&ev); } 165 if(released & options.A) { ev.code=PAD_A; ev_postevent(&ev); }
142 if(released & options.B) { ev.code=PAD_B; ev_postevent(&ev); } 166 if(released & options.B) { ev.code=PAD_B; ev_postevent(&ev); }
143 if(released & options.START) { 167 if(released & options.START) {
@@ -151,10 +175,34 @@ void ev_poll(void)
151 } 175 }
152 if(pressed) { /* button press */ 176 if(pressed) { /* button press */
153 ev.type = EV_PRESS; 177 ev.type = EV_PRESS;
154 if(pressed & options.LEFT) { ev.code=PAD_LEFT; ev_postevent(&ev); } 178#ifdef HAVE_LCD_COLOR
155 if(pressed & options.RIGHT) { ev.code=PAD_RIGHT; ev_postevent(&ev);} 179 if (options.rotate == 1) /* if screen is rotated, rotate direction keys */
156 if(pressed & options.DOWN) { ev.code=PAD_DOWN; ev_postevent(&ev); } 180 {
157 if(pressed & options.UP) { ev.code=PAD_UP; ev_postevent(&ev); } 181 if(pressed & options.LEFT) {ev.code=PAD_DOWN; ev_postevent(&ev);}
182 if(pressed & options.RIGHT) {ev.code=PAD_UP; ev_postevent(&ev);}
183 if(pressed & options.DOWN) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
184 if(pressed & options.UP) {ev.code=PAD_LEFT; ev_postevent(&ev);}
185 }
186 else if (options.rotate == 2) /* if screen is rotated, rotate direction keys */
187 {
188 if(pressed & options.LEFT) {ev.code=PAD_UP; ev_postevent(&ev);}
189 if(pressed & options.RIGHT) {ev.code=PAD_DOWN; ev_postevent(&ev);}
190 if(pressed & options.DOWN) {ev.code=PAD_LEFT; ev_postevent(&ev);}
191 if(pressed & options.UP) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
192 }
193 else /* screen is not rotated, do not rotate direction keys */
194 {
195 if(pressed & options.LEFT) {ev.code=PAD_LEFT; ev_postevent(&ev);}
196 if(pressed & options.RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
197 if(pressed & options.DOWN) {ev.code=PAD_DOWN; ev_postevent(&ev);}
198 if(pressed & options.UP) {ev.code=PAD_UP; ev_postevent(&ev);}
199 }
200#else
201 if(pressed & options.LEFT) {ev.code=PAD_LEFT; ev_postevent(&ev);}
202 if(pressed & options.RIGHT) {ev.code=PAD_RIGHT; ev_postevent(&ev);}
203 if(pressed & options.DOWN) {ev.code=PAD_DOWN; ev_postevent(&ev);}
204 if(pressed & options.UP) {ev.code=PAD_UP; ev_postevent(&ev);}
205#endif
158 if(pressed & options.A) { ev.code=PAD_A; ev_postevent(&ev); } 206 if(pressed & options.A) { ev.code=PAD_A; ev_postevent(&ev); }
159 if(pressed & options.B) { ev.code=PAD_B; ev_postevent(&ev); } 207 if(pressed & options.B) { ev.code=PAD_B; ev_postevent(&ev); }
160 if(pressed & options.START) { 208 if(pressed & options.START) {
diff --git a/manual/plugins/rockboy.tex b/manual/plugins/rockboy.tex
index e1d757845f..a363a89f7b 100644
--- a/manual/plugins/rockboy.tex
+++ b/manual/plugins/rockboy.tex
@@ -109,15 +109,17 @@ the gnuboy emulator. To start a game, open a ROM file saved as \fname{.gb} or
109 \item[Set Keys (BUGGY)] 109 \item[Set Keys (BUGGY)]
110 Select this option to set a new keymapping. 110 Select this option to set a new keymapping.
111 \opt{lcd_color}{ 111 \opt{lcd_color}{
112 \note{The direction keys are set for the normal screen orientation,
113 not the rotated orientation.}
112 \item[Screen Size.] 114 \item[Screen Size.]
113 Chose whether the original aspect ratio should be kept when scaling 115 Choose whether the original aspect ratio should be kept when scaling
114 the picture to the screen% 116 the picture to the screen%
115 % targets with bigger displays than the original gameboy 117 % targets with bigger displays than the original gameboy
116 \opt{gigabeat,h300,ipodcolor,ipodvideo,e200,e200v2}{ 118 \opt{gigabeat,h300,ipodcolor,ipodvideo,e200,e200v2}{
117 or whether it should be displayed unscaled% 119 or whether it should be displayed unscaled%
118 }. 120 }.
119 \item[Screen Rotate.] 121 \item[Screen Rotate.]
120 Rotate the displayed picture by 90 degrees. 122 Rotate the displayed picture and direction keys by 90 degrees.
121 \item[Set Palette.] 123 \item[Set Palette.]
122 Pick one of a few predefined colour palettes. 124 Pick one of a few predefined colour palettes.
123 } 125 }