summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2011-11-16 10:25:43 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2011-11-16 10:25:43 +0000
commitbe716c0be80e3f64a81a3f19b683db40489f47a1 (patch)
treebc461ad1de8b5fda6c3c14d0cfd737bdc69ddc83 /apps/misc.c
parentb7508a766df991539bec5e10fd7739001c1fdb99 (diff)
downloadrockbox-be716c0be80e3f64a81a3f19b683db40489f47a1.zip
rockbox-be716c0be80e3f64a81a3f19b683db40489f47a1.tar.gz
rockbox-be716c0be80e3f64a81a3f19b683db40489f47a1.tar.bz2
rockbox-be716c0be80e3f64a81a3f19b683db40489f47a1.tar.xz
Finally commit FS#5111 - piezo clicker for ipods!
Origional implementation by Robert Keevil with contributions from Frederik Vestre, Stoyan Stratev, Craig Elliott, Michael Sparmann, Thomas Schott, Rosso Maltese, and syncs from a bunch of other people! git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30995 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 0608595..04a6d05 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -94,6 +94,10 @@
#endif
#endif
+#ifdef HAVE_HARDWARE_CLICK
+#include "piezo.h"
+#endif
+
/* units used with output_dyn_value */
const unsigned char * const byte_units[] =
{
@@ -873,14 +877,32 @@ void system_sound_play(enum system_sound sound)
void keyclick_click(int button)
{
/* Settings filters */
- if (global_settings.keyclick &&
- (global_settings.keyclick_repeats || !(button & BUTTON_REPEAT)))
+ if (
+#ifdef HAVE_HARDWARE_CLICK
+ (global_settings.keyclick || global_settings.keyclick_hardware)
+#else
+ global_settings.keyclick
+#endif
+ && (global_settings.keyclick_repeats || !(button & BUTTON_REPEAT)))
{
/* Button filters */
if (button != BUTTON_NONE && !(button & BUTTON_REL)
&& !(button & (SYS_EVENT|BUTTON_MULTIMEDIA)) )
{
+#ifdef HAVE_HARDWARE_CLICK
+ if (global_settings.keyclick)
+ {
+ system_sound_play(SOUND_KEYCLICK);
+ }
+ if (global_settings.keyclick_hardware)
+ {
+#if !defined(SIMULATOR)
+ piezo_button_beep(false, false);
+#endif
+ }
+#else
system_sound_play(SOUND_KEYCLICK);
+#endif
}
}
}