// SDLOnButtonPress.h
//
#import "SDLRPCNotification.h"
#import "SDLButtonName.h"
#import "SDLButtonPressMode.h"
/**
* Notifies application of button press events for buttons to which the
* application is subscribed. SDL supports two button press events defined as
* follows:
*
*
* - SHORT - Occurs when a button is depressed, then released within two
* seconds. The event is considered to occur immediately after the button is
* released.
* - LONG - Occurs when a button is depressed and held for two seconds or
* more. The event is considered to occur immediately after the two second
* threshold has been crossed, before the button is released
*
* HMI Status Requirements:
*
* HMILevel:
*
* - The application will receive OnButtonPress notifications for all
* subscribed buttons when HMILevel is FULL.
* - The application will receive OnButtonPress notifications for subscribed
* media buttons when HMILevel is LIMITED.
* - Media buttons include SEEKLEFT, SEEKRIGHT, TUNEUP, TUNEDOWN, and
* PRESET_0-PRESET_9.
* - The application will not receive OnButtonPress notification when HMILevel
* is BACKGROUND or NONE.
*
* AudioStreamingState:
*
* SystemContext:
*
* - MAIN, VR. In MENU, only PRESET buttons. In VR, pressing any subscribable
* button will cancel VR.
*
*
*
* @see SDLSubscribeButton
* @see SDLUnsubscribeButton
*
* @since SDL 1.0
*/
@interface SDLOnButtonPress : SDLRPCNotification
/**
* @abstract the button's name
*
* @see SDLButtonName
*
* Required
*/
@property (strong) SDLButtonName buttonName;
/**
* @abstract Indicates whether this is a LONG or SHORT button press event
*
* @see SDLButtonPressMode
*
* Required
*/
@property (strong) SDLButtonPressMode buttonPressMode;
/**
* @abstract If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID)
*
* @since SDL 2.0
*
* Optional, Integer 0 - 65536
*/
@property (strong) NSNumber *customButtonID;
@end