Index: button-clickwheel.c
===================================================================
--- button-clickwheel.c (revision 23108)
+++ button-clickwheel.c (working copy)
@@ -85,6 +85,10 @@
unsigned int wheel_velocity = 0;
unsigned long last_wheel_usec = 0;

+#ifdef IPOD_NANO2G
+int oldhold;
+#endif
+
/* Variable to use for setting button status in interrupt handler */
int int_btn = BUTTON_NONE;
#ifdef HAVE_WHEEL_POSITION
@@ -350,6 +354,23 @@

bool button_hold(void)
{
+#ifdef IPOD_NANO2G
+ int newhold = PDAT14 & (1 << 6);
+ if (oldhold != newhold)
+ {
+ oldhold = newhold;
+ if (newhold)
+ {
+ CLICKWHEEL00 = 0x280000;
+ CLICKWHEEL10 = 3;
+ }
+ else
+ {
+ CLICKWHEEL00 = 0;
+ CLICKWHEEL10 = 0;
+ }
+ }
+#endif
return ((PDAT14 & (1 << 6)) == 0);
}