I wrote this small Arduino library more than 2 years ago for some of my projects to use a single input button for multiple purposes. This library detects clicks, doubleclicks and long press situations without a lot of coding on the sketch side.
This enables you to reuse the same hardware button and input pin for several functions and lowers the hardware invests.
I just updated it including a new sample that shows how to setup the library and bind a "machine" that can blink the LED slow or fast.
See Arduino OneButton Library on my side.