The general idea is to record the time of button-down, then on button-up find how long it's been held down. If it's over your threshold, do the long thing, otherwise do the short thing.

That doesn't help, though, if you want to do something like hold-to-fast-forward, though. I suppose there you'd check on hold signals, too, and if it's over the threshold, then do the hold thing. Or you could continue to ignore the hold signal and just start a timer when button-down is heard and do the hold thing if it doesn't get an up in the appropriate amount of time.

But I'm not a professional programmer, so my ideas may well be naive.
_________________________
Bitt Faulk