mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-20 02:22:43 -05:00
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
This commit is contained in:
parent
b7508a766d
commit
be716c0be8
20 changed files with 481 additions and 2 deletions
|
|
@ -270,3 +270,7 @@ recording_digital
|
|||
#if MEMORYSIZE <= 2
|
||||
lowmem
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_HARDWARE_CLICK)
|
||||
hardware_click
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -12917,3 +12917,37 @@
|
|||
*: "Shortcuts"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_KEYCLICK_SOFTWARE
|
||||
desc: in keyclick settings menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
hardware_click: "Headphone Keyclick"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
hardware_click: "Headphone Keyclick"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
hardware_click: "Headphone Keyclick"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_KEYCLICK_HARDWARE
|
||||
desc: in keyclick settings menu
|
||||
user: core
|
||||
<source>
|
||||
*: none
|
||||
hardware_click: "Speaker Keyclick"
|
||||
</source>
|
||||
<dest>
|
||||
*: none
|
||||
hardware_click: "Speaker Keyclick"
|
||||
</dest>
|
||||
<voice>
|
||||
*: none
|
||||
hardware_click: "Speaker Keyclick"
|
||||
</voice>
|
||||
</phrase>
|
||||
|
|
|
|||
|
|
@ -118,6 +118,10 @@
|
|||
#include "m5636.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_HARDWARE_CLICK
|
||||
#include "piezo.h"
|
||||
#endif
|
||||
|
||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||
#define MAIN_NORETURN_ATTR NORETURN_ATTR
|
||||
#else
|
||||
|
|
@ -507,6 +511,10 @@ static void init(void)
|
|||
radio_init();
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_HARDWARE_CLICK
|
||||
piezo_init();
|
||||
#endif
|
||||
|
||||
/* Keep the order of this 3 (viewportmanager handles statusbars)
|
||||
* Must be done before any code uses the multi-screen API */
|
||||
CHART(">gui_syncstatusbar_init");
|
||||
|
|
|
|||
|
|
@ -229,9 +229,15 @@ MAKE_MENU(limits_menu, ID2P(LANG_LIMITS_MENU), 0, Icon_NOICON,
|
|||
#if CONFIG_CODEC == SWCODEC
|
||||
MENUITEM_SETTING(keyclick, &global_settings.keyclick, NULL);
|
||||
MENUITEM_SETTING(keyclick_repeats, &global_settings.keyclick_repeats, NULL);
|
||||
#ifdef HAVE_HARDWARE_CLICK
|
||||
MENUITEM_SETTING(keyclick_hardware, &global_settings.keyclick_hardware, NULL);
|
||||
MAKE_MENU(keyclick_menu, ID2P(LANG_KEYCLICK), 0, Icon_NOICON,
|
||||
&keyclick, &keyclick_hardware, &keyclick_repeats);
|
||||
#else
|
||||
MAKE_MENU(keyclick_menu, ID2P(LANG_KEYCLICK), 0, Icon_NOICON,
|
||||
&keyclick, &keyclick_repeats);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if CONFIG_CODEC == MAS3507D
|
||||
|
|
|
|||
26
apps/misc.c
26
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -835,6 +835,13 @@ struct user_settings
|
|||
#endif
|
||||
} hw_eq_bands[AUDIOHW_EQ_BAND_NUM];
|
||||
#endif /* AUDIOHW_HAVE_EQ */
|
||||
|
||||
#ifdef HAVE_HARDWARE_CLICK
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
bool keyclick_hardware; /* hardware piezo keyclick */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
char start_directory[MAX_PATHNAME+1];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1757,12 +1757,23 @@ const struct settings_list settings[] = {
|
|||
#endif /* HAVE_WHEEL_ACCELERATION */
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
/* keyclick */
|
||||
#ifdef HAVE_HARDWARE_CLICK
|
||||
CHOICE_SETTING(0, keyclick, LANG_KEYCLICK_SOFTWARE, 0,
|
||||
"keyclick", "off,weak,moderate,strong", NULL, 4,
|
||||
ID2P(LANG_OFF), ID2P(LANG_WEAK), ID2P(LANG_MODERATE),
|
||||
ID2P(LANG_STRONG)),
|
||||
OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false,
|
||||
"keyclick repeats", NULL),
|
||||
OFFON_SETTING(0, keyclick_hardware, LANG_KEYCLICK_HARDWARE, false,
|
||||
"hardware keyclick", NULL),
|
||||
#else
|
||||
CHOICE_SETTING(0, keyclick, LANG_KEYCLICK, 0,
|
||||
"keyclick", "off,weak,moderate,strong", NULL, 4,
|
||||
ID2P(LANG_OFF), ID2P(LANG_WEAK), ID2P(LANG_MODERATE),
|
||||
ID2P(LANG_STRONG)),
|
||||
OFFON_SETTING(0, keyclick_repeats, LANG_KEYCLICK_REPEATS, false,
|
||||
"keyclick repeats", NULL),
|
||||
#endif
|
||||
#endif /* CONFIG_CODEC == SWCODEC */
|
||||
TEXT_SETTING(0, playlist_catalog_dir, "playlist catalog directory",
|
||||
PLAYLIST_CATALOG_DEFAULT_DIR, NULL, NULL),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue