diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/audio/android.c | 24 | ||||
-rw-r--r-- | firmware/drivers/button.c | 21 |
2 files changed, 21 insertions, 24 deletions
diff --git a/firmware/drivers/audio/android.c b/firmware/drivers/audio/android.c index f26087470b..7a5f34ea48 100644 --- a/firmware/drivers/audio/android.c +++ b/firmware/drivers/audio/android.c | |||
@@ -22,34 +22,12 @@ | |||
22 | 22 | ||
23 | #include "config.h" | 23 | #include "config.h" |
24 | #include "audiohw.h" | 24 | #include "audiohw.h" |
25 | #if defined(DX50) || defined(DX90) | ||
26 | #include "system.h" | ||
27 | #include "pcm_sw_volume.h" | ||
28 | #endif | ||
29 | 25 | ||
30 | #if defined(DX50) || defined(DX90) | ||
31 | void audiohw_set_volume(int vol_l, int vol_r) | ||
32 | { | ||
33 | int hw_volume; | ||
34 | hw_volume = MAX(vol_l, vol_r); | ||
35 | |||
36 | #ifdef HAVE_SW_VOLUME_CONTROL | ||
37 | vol_l-=hw_volume; | ||
38 | vol_r-=hw_volume; | ||
39 | pcm_set_master_volume(vol_l, vol_r); | ||
40 | #endif | ||
41 | |||
42 | extern void pcm_set_mixer_volume(int); | ||
43 | pcm_set_mixer_volume(hw_volume); | ||
44 | |||
45 | } | ||
46 | #else | ||
47 | void audiohw_set_volume(int volume) | 26 | void audiohw_set_volume(int volume) |
48 | { | 27 | { |
49 | extern void pcm_set_mixer_volume(int); | 28 | extern void pcm_set_mixer_volume(int); |
50 | pcm_set_mixer_volume(volume); | 29 | pcm_set_mixer_volume(volume); |
51 | } | 30 | } |
52 | #endif | ||
53 | 31 | ||
54 | void audiohw_set_balance(int balance) | 32 | void audiohw_set_balance(int balance) |
55 | { | 33 | { |
@@ -58,8 +36,6 @@ void audiohw_set_balance(int balance) | |||
58 | 36 | ||
59 | void audiohw_close(void) | 37 | void audiohw_close(void) |
60 | { | 38 | { |
61 | #if !defined(DX50) && !defined(DX90) | ||
62 | extern void pcm_shutdown(void); | 39 | extern void pcm_shutdown(void); |
63 | pcm_shutdown(); | 40 | pcm_shutdown(); |
64 | #endif | ||
65 | } | 41 | } |
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index 718fb6a6da..d47a486b43 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c | |||
@@ -215,6 +215,27 @@ static void button_tick(void) | |||
215 | } | 215 | } |
216 | else /* repeat? */ | 216 | else /* repeat? */ |
217 | { | 217 | { |
218 | |||
219 | #if defined(DX50) || defined(DX90) | ||
220 | /* | ||
221 | Power button on these devices reports two distinct key codes, which are | ||
222 | triggerd by a short or medium duration press. Additionlly a long duration press | ||
223 | will trigger a hard reset, which is hardwired. | ||
224 | |||
225 | The time delta between medium and long duration press is not large enough to | ||
226 | register here as power off repeat. A hard reset is triggered before Rockbox | ||
227 | can power off. | ||
228 | |||
229 | To cirumvent the hard reset, Rockbox will shutdown on the first POWEROFF_BUTTON | ||
230 | repeat. POWEROFF_BUTTON is associated with the a medium duration press of the | ||
231 | power button. | ||
232 | */ | ||
233 | if(btn & POWEROFF_BUTTON) | ||
234 | { | ||
235 | sys_poweroff(); | ||
236 | } | ||
237 | #endif | ||
238 | |||
218 | if ( repeat ) | 239 | if ( repeat ) |
219 | { | 240 | { |
220 | if (!post) | 241 | if (!post) |