41
 
         * @oaram pointer to ordered, zero-terminated array of event times
 
43
 
        void set_event_times( int *event_times );
 
46
 
         * Set button press mode
 
48
 
         * @param send_interim send interim presses during a long press?
 
50
 
        void set_press_mode( bool send_interim );
 
53
 
         * Update internal state (call as regularly sa possible!)
 
58
 
         * Get the first pending event.
 
60
 
         * @return event id, 0 if there isn't any
 
 
42
         * Add a duration at which the specified event id should be triggered.
 
 
44
         * @oaram duration the time at which the event should be triggered
 
 
45
         * @param event_id a unique identifier for the event (not 0)
 
 
47
        void add_event_at( int duration, int event_id );
 
 
50
         * Update internal state
 
 
55
         * Retrieve the event id of the event that was triggered at the last
 
 
56
         * update, if there was one.
 
 
58
         * @return event id, or 0
 
 
60
        int get_triggered_event();
 
72
 
        /** time when this state began */
 
73
 
        unsigned long _millis_state;
 
75
 
        /** amount of time that we've already triggered events for this press */
 
76
 
        unsigned long _millis_done;
 
78
 
        /** pointer to event times */
 
84
 
        /** an interim event buffer */
 
87
 
        /** send interim events? */
 
90
 
        /** when not sending interim events, ignore the next unpress */
 
91
 
        bool _ignore_next_unpress;
 
 
70
        /** time when current state began */
 
 
71
        unsigned long _state_millis;
 
 
73
        /** milliseconds that have been accountred for (in terms of
 
 
74
         * triggering events) since current state began */
 
 
75
        unsigned long _state_duration;
 
 
77
        /** triggered event */
 
 
80
        /** press events durations -> event ids */
 
 
81
        std::map< int, int > _press_events;