Expand Minimize Picture-in-picture Power Device Status Voice Recognition Skip Back Skip Forward Minus Plus Play Search
Documentation
Sidebar

Classes Reference

Section Contents

Overview

The following classes are available globally.

SDLAddCommand

This class will add a command to the application’s Command Menu SDLMenuParams

A command will be added to the end of the list of elements in the Command Menu under the following conditions:

  • When a SDLCommand is added with no SDLMenuParams value provided
  • When a SDLMenuParams value is provided with a SDLMenuParam.position value greater than or equal to the number of menu items currently defined in the menu specified by the SDLMenuParam.parentID value
  • The set of choices which the application builds using SDLAddCommand can be a mixture of:

  • Choices having only VR synonym definitions, but no SDLMenuParams definitions
  • Choices having only SDLMenuParams definitions, but no VR synonym definitions
  • Choices having both SDLMenuParams and VR synonym definitions
  • HMILevel needs to be FULL, LIMITED or BACKGROUD

    @since SDL 1.0

    See

    SDLDeleteCommand SDLAddSubMenu SDLDeleteSubMenu
    See more

    Objective-C

    @interface SDLAddCommand : SDLRPCRequest

    Swift

    class SDLAddCommand : SDLRPCRequest

    SDLAddCommandResponse

    Response to SDLAddCommand

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLAddCommandResponse : SDLRPCResponse

    Swift

    class SDLAddCommandResponse : SDLRPCResponse

    SDLAddSubMenu

    Add a SDLSubMenu to the Command Menu

    A SDLSubMenu can only be added to the Top Level Menu (i.e.a SDLSubMenu cannot be added to a SDLSubMenu), and may only contain commands as children

    HMILevel needs to be FULL, LIMITED or BACKGROUD

    Since SmartDeviceLink 1.0
    see SDLDeleteSubMenu SDLAddCommand SDLDeleteCommand

    See more

    Objective-C

    @interface SDLAddSubMenu : SDLRPCRequest

    Swift

    class SDLAddSubMenu : SDLRPCRequest

    SDLAddSubMenuResponse

    Response to SDLAddSubMenu

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLAddSubMenuResponse : SDLRPCResponse

    Swift

    class SDLAddSubMenuResponse : SDLRPCResponse

    SDLAirbagStatus

    A vehicle data status struct for airbags

    See more

    Objective-C

    @interface SDLAirbagStatus : SDLRPCStruct

    Swift

    class SDLAirbagStatus : SDLRPCStruct

    SDLAlert

    Shows an alert which typically consists of text-to-speech message and text on the display. At least either alertText1, alertText2 or TTSChunks need to be provided.

    • The displayed portion of the SDLAlert, if any, will persist until the specified timeout has elapsed, or the SDLAlert is preempted
    • An SDLAlert will preempt (abort) any SmartDeviceLink Operation that is in-progress, except an already-in-progress SDLAlert
    • An SDLAlert cannot be preempted by any SmartDeviceLink Operation
    • An SDLAlert can be preempted by a user action (button push)
    • An SDLAlert will fail if it is issued while another SDLAlert is in progress
    • Although each Alert parameter is optional, in fact each SDLAlert request must supply at least one of the following parameters:
      • alertText1
      • alertText2
      • alertText3
      • ttsChunks

    HMILevel needs to be FULL or LIMITED.
    If the app has been granted function group Notification the SDLHMILevel can also be BACKGROUND

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLAlert : SDLRPCRequest

    Swift

    class SDLAlert : SDLRPCRequest

    SDLAlertManeuver

    Shows a SDLShowConstantTBT message with an optional voice command. This message is shown as an overlay over the display’s base screen.

    @since SmartDeviceLink 1.0

    See more

    Objective-C

    @interface SDLAlertManeuver : SDLRPCRequest

    Swift

    class SDLAlertManeuver : SDLRPCRequest

    SDLAlertManeuverResponse

    Response to SDLAlertManeuver

    @since SmartDeviceLink 1.0

    Objective-C

    @interface SDLAlertManeuverResponse : SDLRPCResponse

    Swift

    class SDLAlertManeuverResponse : SDLRPCResponse

    SDLAlertResponse

    Response to SDLAlert

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLAlertResponse : SDLRPCResponse

    Swift

    class SDLAlertResponse : SDLRPCResponse

    SDLAppInfo

    A struct used in register app interface. Contains detailed information about the registered application.

    See more

    Objective-C

    @interface SDLAppInfo : SDLRPCStruct

    Swift

    class SDLAppInfo : SDLRPCStruct

    SDLArtwork

    Undocumented

    See more

    Objective-C

    @interface SDLArtwork : SDLFile
    
    /**
     *  Convenience Helper to create an ephemeral artwork from an image.
     *
     *  This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral.
     *
     *  Persistent files should be created using `persistentArtworkWithImage:name:asImageFormat:`
     *
     *  @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*.
     *
     *  @param image       The UIImage to be sent to the remote head unit
     *  @param name        The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *  @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs.
     *
     *  @return An instance of this class to be passed to the file manager.
     */
    + (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false");
    
    /**
     *  Convenience Helper to create an ephemeral artwork from an image. A unique name will be assigned to the image. This name is a string representation of the image's data which is created by hashing the data using the MD5 algorithm.
     *
     *  This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral.
     *
     *  Persistent files should be created using `persistentArtworkWithImage:name:asImageFormat:`
     *
     *  @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*.
     *
     *  @param image       The UIImage to be sent to the remote head unit
     *  @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs.
     *
     *  @return An instance of this class to be passed to the file manager.
     */
    + (instancetype)artworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false");
    
    /**
     *  Convenience Helper to create a persistent artwork from an image.
     *
     *  This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent.
     *
     *  Ephemeral files should be created using `ephemeralArtworkWithImage:name:asImageFormat:`
     *
     *  @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*.
     *
     *  @param image       The UIImage to be sent to the remote head unit
     *  @param name        The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *  @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs.
     *
     *  @return An instance of this class to be passed to the file manager.
     */
    + (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true");
    
    /**
     *  Convenience Helper to create a persistent artwork from an image. A unique name will be assigned to the image. This name is a string representation of the image's data which is created by hashing the data using the MD5 algorithm.
     *
     *  This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent.
     *
     *  Ephemeral files should be created using `ephemeralArtworkWithImage:name:asImageFormat:`
     *
     *  @warning It is strongly recommended to pass the file url using an SDLFile initializer instead of the image. If you pass the UIImage, it is loaded into memory, and will be dumped to a temporary file. This will create a duplicate file. *Only pass a UIImage if the image is not stored on disk*.
     *
     *  @param image       The UIImage to be sent to the remote head unit
     *  @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs.
     *
     *  @return An instance of this class to be passed to the file manager.
     */
    + (instancetype)persistentArtworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true");
    
    /**
     *  Create a file for transmission to the remote system from a UIImage.
     *
     *  @param image       The UIImage to be sent to the remote head unit
     *  @param name        The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *  @param persistent  Whether or not the artwork should be persistent.
     *  @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs.
     *
     *  @return An instance of this class to be passed to the file manager.
     */
    - (instancetype)initWithImage:(UIImage *)image name:(NSString *)name persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat;
    
    /**
     *  Create a file for transmission to the remote system from a UIImage. A unique name will be assigned to the image. This name is a string representation of the image's data which is created by hashing the data using the MD5 algorithm.
    
     *  @param image       The UIImage to be sent to the remote head unit
     *  @param persistent  Whether or not the artwork should be persistent.
     *  @param imageFormat Whether the image should be converted to a PNG or JPG before transmission. Images with transparency or few colors should be PNGs. Images with many colors should be JPGs.
     *
     *  @return An instance of this class to be passed to the file manager.
     */
    - (instancetype)initWithImage:(UIImage *)image persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat;
    
    @end

    Swift

    class SDLArtwork : SDLFile

    SDLAudioPassThruCapabilities

    Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLAudioPassThruCapabilities : SDLRPCStruct

    Swift

    class SDLAudioPassThruCapabilities : SDLRPCStruct

    SDLAudioStreamManager

    Undocumented

    See more

    Objective-C

    @interface SDLAudioStreamManager : NSObject
    
    /**
     The delegate describing when files are done playing or any errors that occur
     */
    @property (weak, nonatomic) id<SDLAudioStreamManagerDelegate> delegate;
    
    /**
     Whether or not we are currently playing audio
     */
    @property (assign, nonatomic, readonly, getter=isPlaying) BOOL playing;
    
    /**
     The queue of audio files that will be played in sequence
     */
    @property (copy, nonatomic, readonly) NSArray<SDLAudioFile *> *queue;
    
    /**
     Init should only occur with dependencies. use `initWithManager:`
    
     @return A failure
     */
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     Create an audio stream manager with a reference to the parent stream manager.
    
     @warning For internal use
    
     @param streamManager The parent stream manager
     @return The audio stream manager
     */
    - (instancetype)initWithManager:(id<SDLStreamingAudioManagerType>)streamManager NS_DESIGNATED_INITIALIZER;
    
    /**
     Push a new file URL onto the queue after converting it into the correct PCM format for streaming binary data. Call `playNextWhenReady` to start playing the next completed pushed file.
    
     @note This happens on a serial background thread and will provide an error callback using the delegate if the conversion fails.
    
     @param fileURL File URL to convert
     */
    - (void)pushWithFileURL:(NSURL *)fileURL;
    
    /**
     Play the next item in the queue. If an item is currently playing, it will continue playing and this item will begin playing after it is completed.
    
     When complete, this will callback on the delegate.
     */
    - (void)playNextWhenReady;
    
    /**
     Stop playing the queue after the current item completes and clear the queue. If nothing is playing, the queue will be cleared.
     */
    - (void)stop;
    
    @end

    Swift

    class SDLAudioStreamManager : NSObject

    SDLBeltStatus

    Vehicle data struct for the seat belt status

    See more

    Objective-C

    @interface SDLBeltStatus : SDLRPCStruct

    Swift

    class SDLBeltStatus : SDLRPCStruct

    SDLBodyInformation

    The body information including power modes.

    See more

    Objective-C

    @interface SDLBodyInformation : SDLRPCStruct

    Swift

    class SDLBodyInformation : SDLRPCStruct

    SDLButtonCapabilities

    Provides information about the capabilities of a SDL HMI button.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLButtonCapabilities : SDLRPCStruct

    Swift

    class SDLButtonCapabilities : SDLRPCStruct

    SDLButtonPress

    This RPC allows a remote control type mobile application to simulate a hardware button press event.

    See more

    Objective-C

    @interface SDLButtonPress : SDLRPCRequest

    Swift

    class SDLButtonPress : SDLRPCRequest

    SDLButtonPressResponse

    Response to SDLButtonPress

    Objective-C

    @interface SDLButtonPressResponse : SDLRPCResponse

    Swift

    class SDLButtonPressResponse : SDLRPCResponse

    SDLCarWindowViewController

    Note that if this is embedded in a UINavigationController and UITabBarController, it will not lock orientation. You must lock your container controller to a specific orientation.

    See more

    Objective-C

    @interface SDLCarWindowViewController : UIViewController

    Swift

    class SDLCarWindowViewController : UIViewController

    SDLChangeRegistration

    If the app recognizes during the app registration that the SDL HMI language (voice/TTS and/or display) does not match the app language, the app will be able (but does not need) to change this registration with changeRegistration prior to app being brought into focus.

    Any HMILevel allowed

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLChangeRegistration : SDLRPCRequest

    Swift

    class SDLChangeRegistration : SDLRPCRequest

    SDLChangeRegistrationResponse

    Response to SDLChangeRegistrations

    @since SDL 2.0

    Objective-C

    @interface SDLChangeRegistrationResponse : SDLRPCResponse

    Swift

    class SDLChangeRegistrationResponse : SDLRPCResponse

    SDLChoice

    A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction.

    Since SmartDeviceLink 1.0

    See more

    Objective-C

    @interface SDLChoice : SDLRPCStruct

    Swift

    class SDLChoice : SDLRPCStruct

    SDLClimateControlCapabilities

    Contains information about a climate control module’s capabilities.

    See more

    Objective-C

    @interface SDLClimateControlCapabilities : SDLRPCStruct

    Swift

    class SDLClimateControlCapabilities : SDLRPCStruct

    SDLClimateControlData

    The current information for the Climate Remote Control Module

    See more

    Objective-C

    @interface SDLClimateControlData : SDLRPCStruct

    Swift

    class SDLClimateControlData : SDLRPCStruct

    SDLClusterModeStatus

    A vehicle data struct for the cluster mode and power status

    See more

    Objective-C

    @interface SDLClusterModeStatus : SDLRPCStruct

    Swift

    class SDLClusterModeStatus : SDLRPCStruct

    SDLConfiguration

    Undocumented

    See more

    Objective-C

    @interface SDLConfiguration : NSObject <NSCopying>
    
    /**
     *  The lifecycle configuration.
     */
    @property (copy, nonatomic, readonly) SDLLifecycleConfiguration *lifecycleConfig;
    
    /**
     *  The lock screen configuration.
     */
    @property (copy, nonatomic, readonly) SDLLockScreenConfiguration *lockScreenConfig;
    
    /**
     The log configuration.
     */
    @property (copy, nonatomic, readonly) SDLLogConfiguration *loggingConfig;
    
    /**
     The configuration
     */
    @property (copy, nonatomic, readonly) SDLStreamingMediaConfiguration *streamingMediaConfig;
    
    /**
     Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration.
    
     @param lifecycleConfig The lifecycle configuration to be used.
     @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil.
     @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil.
     @return The configuration
     */
    - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig;
    
    /**
     Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration.
    
     @param lifecycleConfig The lifecycle configuration to be used.
     @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil.
     @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil.
     @return The configuration
     */
    + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig NS_SWIFT_UNAVAILABLE("Use an initializer instead");
    
    /**
     Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration.
    
     @param lifecycleConfig The lifecycle configuration to be used.
     @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil.
     @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil.
     @param streamingMediaConfig The streaming media configuration to be used, or nil because it is not needed.
     @return The configuration
     */
    - (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig;
    
    /**
     Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration.
    
     @param lifecycleConfig The lifecycle configuration to be used.
     @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil.
     @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil.
     @param streamingMediaConfig The streaming media configuration to be used, or nil because it is not needed.
     @return The configuration
     */
    + (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig NS_SWIFT_UNAVAILABLE("Use an initializer instead");
    
    @end

    Swift

    class SDLConfiguration : NSObject, NSCopying

    SDLCreateInteractionChoiceSet

    Creates a Choice Set which can be used in subsequent SDLPerformInteraction Operations.

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Before a perform interaction is sent you MUST wait for the success from the CreateInteractionChoiceSet RPC.

    If you do not wait the system may not recognize the first utterance from the user.

    @since SDL 1.0

    See

    SDLDeleteInteractionChoiceSet SDLPerformInteraction
    See more

    Objective-C

    @interface SDLCreateInteractionChoiceSet : SDLRPCRequest

    Swift

    class SDLCreateInteractionChoiceSet : SDLRPCRequest

    SDLCreateInteractionChoiceSetResponse

    Response to SDLCreateInteractionChoiceSet has been called

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse

    Swift

    class SDLCreateInteractionChoiceSetResponse : SDLRPCResponse

    SDLDIDResult

    A vehicle data struct

    See more

    Objective-C

    @interface SDLDIDResult : SDLRPCStruct

    Swift

    class SDLDIDResult : SDLRPCStruct

    SDLDateTime

    A struct referenced in SendLocation for an absolute date

    See more

    Objective-C

    @interface SDLDateTime : SDLRPCStruct

    Swift

    class SDLDateTime : SDLRPCStruct

    SDLDeleteCommand

    Removes a command from the Command Menu

    HMI Status Requirements:
    HMILevel: FULL, LIMITED or BACKGROUND
    AudioStreamingState: N/A
    SystemContext: Should not be attempted when VRSESSION or MENU

    Since SmartDeviceLink 1.0
    see SDLAddCommand SDLAddSubMenu SDLDeleteSubMenu

    See more

    Objective-C

    @interface SDLDeleteCommand : SDLRPCRequest

    Swift

    class SDLDeleteCommand : SDLRPCRequest

    SDLDeleteCommandResponse

    Response to SDLDeleteCommand

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLDeleteCommandResponse : SDLRPCResponse

    Swift

    class SDLDeleteCommandResponse : SDLRPCResponse

    SDLDeleteFile

    Used to delete a file resident on the SDL module in the app’s local cache. Not supported on first generation SDL vehicles

    Since SmartDeviceLink 2.0
    see SDLPutFile SDLListFiles

    See more

    Objective-C

    @interface SDLDeleteFile : SDLRPCRequest

    Swift

    class SDLDeleteFile : SDLRPCRequest

    SDLDeleteFileResponse

    Response to SDLDeleteFile

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLDeleteFileResponse : SDLRPCResponse

    Swift

    class SDLDeleteFileResponse : SDLRPCResponse

    SDLDeleteInteractionChoiceSet

    Deletes an existing Choice Set identified by the parameter interactionChoiceSetID. If the specified interactionChoiceSetID is currently in use by an active SDLPerformInteraction this call to delete the Choice Set will fail returning an IN_USE resultCode

    Function Group: Base

    HMILevel needs to be FULL, LIMITED or BACKGROUD

    Since SmartDeviceLink 1.0
    see SDLCreateInteractionChoiceSet SDLPerformInteraction

    See more

    Objective-C

    @interface SDLDeleteInteractionChoiceSet : SDLRPCRequest

    Swift

    class SDLDeleteInteractionChoiceSet : SDLRPCRequest

    SDLDeleteInteractionChoiceSetResponse

    SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse

    Swift

    class SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse

    SDLDeleteSubMenu

    Deletes a submenu from the Command Menu

    Notes: When an app deletes a submenu that has child commands, those child commands are also deleted

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 1.0
    see SDLAddCommand SDLAddSubMenu SDLDeleteCommand

    See more

    Objective-C

    @interface SDLDeleteSubMenu : SDLRPCRequest

    Swift

    class SDLDeleteSubMenu : SDLRPCRequest

    SDLDeleteSubMenuResponse

    Response to SDLDeleteSubMenu

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLDeleteSubMenuResponse : SDLRPCResponse

    Swift

    class SDLDeleteSubMenuResponse : SDLRPCResponse

    SDLDeviceInfo

    Various information about connecting device. Referenced in RegisterAppInterface

    See more

    Objective-C

    @interface SDLDeviceInfo : SDLRPCStruct

    Swift

    class SDLDeviceInfo : SDLRPCStruct

    SDLDeviceStatus

    Describes the status related to a connected mobile device or SDL and if or how it is represented in the vehicle.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLDeviceStatus : SDLRPCStruct

    Swift

    class SDLDeviceStatus : SDLRPCStruct

    SDLDiagnosticMessage

    Non periodic vehicle diagnostic request

    @since SDL 3.0

    See more

    Objective-C

    @interface SDLDiagnosticMessage : SDLRPCRequest

    Swift

    class SDLDiagnosticMessage : SDLRPCRequest

    SDLDiagnosticMessageResponse

    Response to SDLDiagnosticMessage

    Since SmartDeviceLink 3.0

    See more

    Objective-C

    @interface SDLDiagnosticMessageResponse : SDLRPCResponse

    Swift

    class SDLDiagnosticMessageResponse : SDLRPCResponse

    SDLDialNumber

    This RPC is used to tell the head unit to use bluetooth to dial a phone number using the phone.

    @since SDL 4.0

    See more

    Objective-C

    @interface SDLDialNumber : SDLRPCRequest

    Swift

    class SDLDialNumber : SDLRPCRequest

    SDLDialNumberResponse

    The response to SDLDialNumber

    @since SDL 4.0

    Objective-C

    @interface SDLDialNumberResponse : SDLRPCResponse

    Swift

    class SDLDialNumberResponse : SDLRPCResponse

    SDLDisplayCapabilities

    Contains information about the display for the SDL system to which the application is currently connected.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLDisplayCapabilities : SDLRPCStruct

    Swift

    class SDLDisplayCapabilities : SDLRPCStruct

    SDLECallInfo

    A vehicle data struct for emergency call information

    See more

    Objective-C

    @interface SDLECallInfo : SDLRPCStruct

    Swift

    class SDLECallInfo : SDLRPCStruct

    SDLEmergencyEvent

    A vehicle data struct for an emergency event

    See more

    Objective-C

    @interface SDLEmergencyEvent : SDLRPCStruct

    Swift

    class SDLEmergencyEvent : SDLRPCStruct

    SDLEncodedSyncPData

    Undocumented

    See more

    Objective-C

    @interface SDLEncodedSyncPData : SDLRPCRequest
    
    /**
     *  Contains base64 encoded string of SyncP packets.
     *
     *  Required, Array length 1 - 100, String length 1 - 1,000,000
     *
     *  @see SDLTTSChunk
     */
    @property (strong, nonatomic) NSArray<NSString *> *data;
    
    @end

    Swift

    class SDLEncodedSyncPData : SDLRPCRequest

    SDLEncodedSyncPDataResponse

    The response to SDLEncodedSyncPData

    DEPRECATED

    Objective-C

    @interface SDLEncodedSyncPDataResponse : SDLRPCResponse

    Swift

    class SDLEncodedSyncPDataResponse : SDLRPCResponse

    SDLEndAudioPassThru

    When this request is invoked, the audio capture stops

    Function Group: AudioPassThru

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 2.0
    see SDLPerformAudioPassThru

    Objective-C

    @interface SDLEndAudioPassThru : SDLRPCRequest

    Swift

    class SDLEndAudioPassThru : SDLRPCRequest

    SDLEndAudioPassThruResponse

    Response to SDLEndAudioPassThru

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLEndAudioPassThruResponse : SDLRPCResponse

    Swift

    class SDLEndAudioPassThruResponse : SDLRPCResponse

    SDLFile

    Undocumented

    See more

    Objective-C

    @interface SDLFile : NSObject <NSCopying>
    
    /**
     *  Whether or not the file should persist on disk between car ignition cycles.
     */
    @property (assign, nonatomic, readonly, getter=isPersistent) BOOL persistent;
    
    /**
     *  Whether or not the file should overwrite an existing file on the remote disk with the same name.
     */
    @property (assign, nonatomic) BOOL overwrite;
    
    /**
     *  The name the file should be stored under on the remote disk. This is how the file will be referenced in all later calls.
     */
    @property (copy, nonatomic, readonly) NSString *name;
    
    /**
     *  The url the local file is stored at while waiting to push it to the remote system. If the data has not been passed to the file URL, this will be nil.
     */
    @property (copy, nonatomic, readonly, nullable) NSURL *fileURL;
    
    /**
     *  The binary data of the SDLFile. If initialized with data, this will be a relatively quick call, but if initialized with a file URL, this is a rather expensive call the first time. The data will be cached in RAM after the first call.
     */
    @property (copy, nonatomic, readonly) NSData *data;
    
    /**
     *  The size of the binary data of the SDLFile.
     */
    @property (nonatomic, readonly) unsigned long long fileSize;
    
    /**
     *  The system will attempt to determine the type of file that you have passed in. It will default to BINARY if it does not recognize the file type or the file type is not supported by SDL.
     */
    @property (strong, nonatomic, readonly) SDLFileType fileType;
    
    /**
     * A stream to pull binary data from a SDLFile. The stream only pulls required data from the file on disk or in memory. This reduces memory usage while uploading a large file to the remote system as each chunk of data can be released immediately after it is uploaded.
     */
    @property (nonatomic, readonly) NSInputStream *inputStream;
    
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     *  The designated initializer for an SDL File. The only major property that is not set using this is "overwrite", which defaults to NO.
     *
     *  @param url        The file URL pointing to the local data that will be pushed to the remote system.
     *  @param name       The name that the file will be stored under on the remote system and how it will be referenced from the local system. The max file name length may vary based on remote filesystem limitations.
     *  @param persistent Whether or not the file will persist between ignition cycles.
     *
     *  @return An SDLFile object.
     */
    - (instancetype)initWithFileURL:(NSURL *)url name:(NSString *)name persistent:(BOOL)persistent NS_DESIGNATED_INITIALIZER;
    
    /**
     *  Create an SDL file using a local file URL.
     *
     *  This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent.
     *
     *  Ephemeral files should be created using ephemeralFileAtURL:name:
     *
     *  @warning If this is not a readable file, this will return nil
     *
     *  @param url The url to the file that should be uploaded.
     *  @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote filesystem limitations.
     *
     *  @return An instance of this class, or nil if a readable file at the path could not be found.
     */
    + (instancetype)persistentFileAtFileURL:(NSURL *)url name:(NSString *)name NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true");
    
    /**
     *  Create an SDL file using a local file URL.
     *
     *  This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral.
     *
     *  Persistent files should be created using persistentFileAtURL:name:
     *
     *  @warning If this is not a readable file, this will return nil
     *
     *  @param url The url to the file on disk that will be uploaded
     *  @param name The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *
     *  @return An instance of this class, or nil if a readable file at the url could not be found.
     */
    + (instancetype)fileAtFileURL:(NSURL *)url name:(NSString *)name;
    
    /**
     *  Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent.
     *
     *  @param data         The raw data to be used for the file
     *  @param name         The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *  @param extension    The file extension. For example "png". Currently supported file extensions are: "bmp", "jpg", "jpeg", "png", "wav", "mp3", "aac", "json". All others will be sent as binary files.
     *  @param persistent   Whether or not the remote file with this data should be persistent
     *
     *  @return An instance of this class
     */
    - (instancetype)initWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension persistent:(BOOL)persistent NS_DESIGNATED_INITIALIZER;
    
    /**
     *  Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent.
     *
     *  This is a persistent file, it will be persisted through sessions / ignition cycles. You will only have a limited space for all files, so be sure to only persist files that are required for all or most sessions. For example, menu artwork should be persistent.
     *
     *  @param data         The raw data to be used for the file
     *  @param name         The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *  @param extension    The file extension. For example "png". Currently supported file extensions are: "bmp", "jpg", "jpeg", "png", "wav", "mp3", "aac", "json". All others will be sent as binary files.
     *
     *  @return An instance of this class
     */
    + (instancetype)persistentFileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true");
    
    /**
     *  Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent.
     *
     *  This is an ephemeral file, it will not be persisted through sessions / ignition cycles. Any files that you do not *know* you will use in future sessions should be created through this method. For example, album / artist artwork should be ephemeral.
     *
     *  @param data         The raw data to be used for the file
     *  @param name         The name of the file that will be used to reference the file in the future (for example on the remote file system). The max file name length may vary based on remote file system limitations.
     *  @param extension    The file extension. For example "png". Currently supported file extensions are: "bmp", "jpg", "jpeg", "png", "wav", "mp3", "aac", "json". All others will be sent as binary files.
     *
     *  @return An instance of this class
     */
    + (instancetype)fileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension;
    
    @end

    Swift

    class SDLFile : NSObject, NSCopying

    SDLFileManager

    The SDLFileManager is an RPC manager for the remote file system. After it starts, it will attempt to communicate with the remote file system to get the names of all files. Deleting and Uploading will them queue these changes as transactions. If a delete succeeds, the local list of remote files will remove that file name, and likewise, if an upload succeeds, the local list of remote files will now include that file name.

    See more

    Objective-C

    @interface SDLFileManager : NSObject

    Swift

    class SDLFileManager : NSObject

    SDLGPSData

    Describes the GPS data. Not all data will be available on all carlines.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLGPSData : SDLRPCStruct

    Swift

    class SDLGPSData : SDLRPCStruct

    SDLGenericResponse

    Generic Response is sent when the name of a received request is unknown. It is only used in case of an error. It will have an INVALID_DATA result code.

    Objective-C

    @interface SDLGenericResponse : SDLRPCResponse

    Swift

    class SDLGenericResponse : SDLRPCResponse

    SDLGetDTCs

    This RPC allows to request diagnostic module trouble codes from a certain vehicle module

    Function Group: ProprietaryData

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    See more

    Objective-C

    @interface SDLGetDTCs : SDLRPCRequest

    Swift

    class SDLGetDTCs : SDLRPCRequest

    SDLGetDTCsResponse

    Response to SDLGetDTCs

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLGetDTCsResponse : SDLRPCResponse

    Swift

    class SDLGetDTCsResponse : SDLRPCResponse

    SDLGetInteriorVehicleData

    Reads the current status value of specified remote control module (type). When subscribe is true, subscribes for specific remote control module data items. When subscribe is false, unsubscribes for specific remote control module data items. Once subscribed, the application will be notified by the onInteriorVehicleData RPC notification whenever new data is available for the module.

    See more

    Objective-C

    @interface SDLGetInteriorVehicleData : SDLRPCRequest

    Swift

    class SDLGetInteriorVehicleData : SDLRPCRequest

    SDLGetInteriorVehicleDataResponse

    A response to SDLGetInteriorVehicleData

    See more

    Objective-C

    @interface SDLGetInteriorVehicleDataResponse : SDLRPCResponse

    Swift

    class SDLGetInteriorVehicleDataResponse : SDLRPCResponse

    SDLGetSystemCapability

    Undocumented

    See more

    Objective-C

    @interface SDLGetSystemCapability : SDLRPCRequest
    
    - (instancetype)initWithType:(SDLSystemCapabilityType)type;
    
    /**
     They type of capability you'd like to receive in the response.
    
     Mandatory
     */
    @property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType;
    
    @end

    Swift

    class SDLGetSystemCapability : SDLRPCRequest

    SDLGetSystemCapabilityResponse

    Response to SDLGetSystemCapability

    See more

    Objective-C

    @interface SDLGetSystemCapabilityResponse : SDLRPCResponse

    Swift

    class SDLGetSystemCapabilityResponse : SDLRPCResponse

    SDLGetVehicleData

    Requests surrent values of specific published vehicle data items.

    Function Group: Location, VehicleInfo and DrivingChara

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 2.0
    See SDLSubscribeVehicleData SDLUnsubscribeVehicleData

    See more

    Objective-C

    @interface SDLGetVehicleData : SDLRPCRequest

    Swift

    class SDLGetVehicleData : SDLRPCRequest

    SDLGetVehicleDataResponse

    Response to SDLGetVehicleData

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLGetVehicleDataResponse : SDLRPCResponse

    Swift

    class SDLGetVehicleDataResponse : SDLRPCResponse

    SDLGetWayPoints

    Undocumented

    See more

    Objective-C

    @interface SDLGetWayPoints : SDLRPCRequest
    
    - (instancetype)initWithType:(SDLWayPointType)type;
    
    /**
     * To request for either the destination
     * only or for all waypoints including destination
     *
     * Required
     */
    @property (nullable, strong, nonatomic) SDLWayPointType waypointType;
    
    @end

    Swift

    class SDLGetWayPoints : SDLRPCRequest

    SDLGetWayPointsResponse

    Response to SDLGetWayPoints

    See more

    Objective-C

    @interface SDLGetWayPointsResponse : SDLRPCResponse

    Swift

    class SDLGetWayPointsResponse : SDLRPCResponse

    SDLHMICapabilities

    Undocumented

    See more

    Objective-C

    @interface SDLHMICapabilities : SDLRPCStruct
    
    /**
     Availability of built in Nav. True: Available, False: Not Available
     
     Boolean value. Optional.
     */
    @property (nullable, copy, nonatomic) NSNumber<SDLBool> *navigation;
    
    /**
     Availability of built in phone. True: Available, False: Not Available
     
     Boolean value. Optional.
     */
    @property (nullable, copy, nonatomic) NSNumber<SDLBool> *phoneCall;
    
    /**
     Availability of built in video streaming. True: Available, False: Not Available
    
     Boolean value. Optional.
     */
    @property (nullable, copy, nonatomic) NSNumber<SDLBool> *videoStreaming;
    
    @end

    Swift

    class SDLHMICapabilities : SDLRPCStruct

    SDLHMIPermissions

    Defining sets of HMI levels, which are permitted or prohibited for a given RPC.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLHMIPermissions : SDLRPCStruct

    Swift

    class SDLHMIPermissions : SDLRPCStruct

    SDLHapticRect

    Defines spatial for each user control object for video streaming application

    See more

    Objective-C

    @interface SDLHapticRect : SDLRPCStruct

    Swift

    class SDLHapticRect : SDLRPCStruct

    SDLHeadLampStatus

    Vehicle data struct for status of head lamps

    See more

    Objective-C

    @interface SDLHeadLampStatus : SDLRPCStruct

    Swift

    class SDLHeadLampStatus : SDLRPCStruct

    SDLImage

    Specifies which image shall be used e.g. in SDLAlerts or on SDLSoftbuttons provided the display supports it.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLImage : SDLRPCStruct

    Swift

    class SDLImage : SDLRPCStruct

    SDLImageField

    A struct used in DisplayCapabilities describing the capability of an image field

    See more

    Objective-C

    @interface SDLImageField : SDLRPCStruct

    Swift

    class SDLImageField : SDLRPCStruct

    SDLImageResolution

    The resolution of an image

    See more

    Objective-C

    @interface SDLImageResolution : SDLRPCStruct

    Swift

    class SDLImageResolution : SDLRPCStruct

    SDLKeyboardProperties

    Configuration of on-screen keyboard (if available)

    See more

    Objective-C

    @interface SDLKeyboardProperties : SDLRPCStruct

    Swift

    class SDLKeyboardProperties : SDLRPCStruct

    SDLLifecycleConfiguration

    Configuration options for SDLManager

    See more

    Objective-C

    @interface SDLLifecycleConfiguration : NSObject <NSCopying>

    Swift

    class SDLLifecycleConfiguration : NSObject, NSCopying

    SDLLifecycleConfigurationUpdate

    Configuration update options for SDLManager. This class can be used to update the lifecycle configuration in cases the language of the head unit changes or does not match the app language.

    See more

    Objective-C

    @interface SDLLifecycleConfigurationUpdate : NSObject

    Swift

    class SDLLifecycleConfigurationUpdate : NSObject

    SDLListFiles

    Requests the current list of resident filenames for the registered app. Not supported on First generation SDL vehicles

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLListFiles : SDLRPCRequest

    Swift

    class SDLListFiles : SDLRPCRequest

    SDLListFilesResponse

    Response to SDLListFiles

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLListFilesResponse : SDLRPCResponse

    Swift

    class SDLListFilesResponse : SDLRPCResponse

    SDLLocationCoordinate

    Describes a coordinate on earth

    See more

    Objective-C

    @interface SDLLocationCoordinate : SDLRPCStruct

    Swift

    class SDLLocationCoordinate : SDLRPCStruct

    SDLLocationDetails

    Describes a location, including its coordinate, name, etc. Used in WayPoints.

    See more

    Objective-C

    @interface SDLLocationDetails : SDLRPCStruct

    Swift

    class SDLLocationDetails : SDLRPCStruct

    SDLLockScreenConfiguration

    Undocumented

    See more

    Objective-C

    @interface SDLLockScreenConfiguration : NSObject <NSCopying>
    
    /**
     *  Whether or not the lock screen should be shown in the "lock screen optional" state. Defaults to 'NO'.
     */
    @property (assign, nonatomic) BOOL showInOptionalState;
    
    /**
     *  If YES, the lock screen should be managed by SDL and automatically engage when necessary. If NO, then the lock screen will never be engaged.
     */
    @property (assign, nonatomic, readonly) BOOL enableAutomaticLockScreen;
    
    /**
     *  The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray.
     */
    @property (copy, nonatomic, readonly) UIColor *backgroundColor;
    
    /**
     *  Your app icon as it will appear on the lock screen.
     */
    @property (copy, nonatomic, readonly, nullable) UIImage *appIcon;
    
    /**
     *  A custom view controller that the lock screen will manage the presentation of.
     */
    @property (strong, nonatomic, readonly, nullable) UIViewController *customViewController;
    
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     *  Use this configuration if you wish to manage a lock screen yourself. This may be useful if the automatic presentation feature of SDLLockScreenManager is failing for some reason.
     *
     *  @return The configuration
     */
    + (instancetype)disabledConfiguration;
    
    /**
     *  Use this configuration for the basic default lock screen. A custom app icon will not be used.
     *
     *  @return The configuration
     */
    + (instancetype)enabledConfiguration;
    
    /**
     *  Use this configuration to provide a custom lock screen icon and a custom background color, or nil if you wish to use the default background color. This will use the default lock screen layout.
     *
     *  @param lockScreenAppIcon         The app icon to be shown on the lock screen
     *  @param lockScreenBackgroundColor The color of the lock screen background
     *
     *  @return The configuration
     */
    + (instancetype)enabledConfigurationWithAppIcon:(UIImage *)lockScreenAppIcon backgroundColor:(nullable UIColor *)lockScreenBackgroundColor;
    
    /**
     *  Use this configuration if you wish to provide your own view controller for the lock screen. This view controller's presentation and dismissal will still be managed by the lock screen manager. Note that you may subclass SDLLockScreenViewController and pass it here to continue to have the vehicle icon set to your view controller by the manager.
     *
     *  @param viewController The view controller to be managed
     *
     *  @return The configuration
     */
    + (instancetype)enabledConfigurationWithViewController:(UIViewController *)viewController;
    
    @end

    Swift

    class SDLLockScreenConfiguration : NSObject, NSCopying

    SDLLockScreenViewController

    Undocumented

    See more

    Objective-C

    @interface SDLLockScreenViewController : UIViewController
    
    /**
     *  The app's icon. This will be set by the lock screen configuration.
     */
    @property (copy, nonatomic, nullable) UIImage *appIcon;
    
    /**
     *  The vehicle's designated icon. This will be set by the lock screen manager when it is notified that a lock screen icon has been downloaded.
     */
    @property (copy, nonatomic, nullable) UIImage *vehicleIcon;
    
    /**
     *  The designated background color set in the lock screen configuration, or the default SDL gray-blue.
     */
    @property (copy, nonatomic, nullable) UIColor *backgroundColor;
    
    @end

    Swift

    class SDLLockScreenViewController : UIViewController

    SDLLogConfiguration

    Undocumented

    See more

    Objective-C

    @interface SDLLogConfiguration : NSObject <NSCopying>
    
    /**
     Any custom logging modules used by the developer's code. Defaults to none.
     */
    @property (copy, nonatomic) NSSet<SDLLogFileModule *> *modules;
    
    /**
     Where the logs will attempt to output. Defaults to Console.
     */
    @property (copy, nonatomic) NSSet<id<SDLLogTarget>> *targets;
    
    /**
     What log filters will run over this session. Defaults to none.
     */
    @property (copy, nonatomic) NSSet<SDLLogFilter *> *filters;
    
    /**
     How detailed of logs will be output. Defaults to Default.
     */
    @property (assign, nonatomic) SDLLogFormatType formatType;
    
    /**
     Whether or not logs will be run on a separate queue, asynchronously, allowing the following code to run before the log completes. Or if it will occur synchronously, which will prevent logs from being missed, but will slow down surrounding code. Defaults to YES.
     */
    @property (assign, nonatomic, getter=isAsynchronous) BOOL asynchronous;
    
    /**
     Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO.
     */
    @property (assign, nonatomic, getter=areErrorsAsynchronous) BOOL errorsAsynchronous;
    
    /**
     Any modules that do not have an explicitly specified level will by default use the global log level. Defaults to Error.
     Do not specify Default for this parameter.
     */
    @property (assign, nonatomic) SDLLogLevel globalLogLevel;
    
    
    /**
     A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger.
    
     @return A default configuration that may be customized.
     */
    + (instancetype)defaultConfiguration;
    
    /**
     A debug logger for use in development. This sets the format type to Detailed, the log level to Debug, and enables the Console and ASL loggers.
    
     @return A debug configuration that may be customized.
     */
    + (instancetype)debugConfiguration;
    
    @end

    Swift

    class SDLLogConfiguration : NSObject, NSCopying

    SDLLogFileModule

    Undocumented

    See more

    Objective-C

    @interface SDLLogFileModule : NSObject
    
    /**
     The name of the this module, e.g. "Transport"
     */
    @property (copy, nonatomic, readonly) NSString *name;
    
    /**
     All of the files contained within this module. When a log is logged, the `__FILE__` (in Obj-C) or `#file` (in Swift) is automatically captured and checked to see if any module has a file in this set that matches. If it does, it will be logged using the module's log level and the module's name will be printed in the formatted log.
     */
    @property (copy, nonatomic, readonly) NSSet<NSString *> *files;
    
    /**
     The custom level of the log. This is `SDLLogLevelDefault` (whatever the current global log level is) by default.
     */
    @property (assign, nonatomic) SDLLogLevel logLevel;
    
    /**
     This method is unavailable and may not be used.
    
     @return Always returns nil
     */
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     Returns an initialized `SDLLogFileModule` that contains a custom name, set of files, and associated log level.
    
     @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport".
     @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name.
     @param level The custom logging level logs originating in files contained in this log module will use. For example, if the global level is `SDLLogLevelError` and this module is configured to `SDLLogLevelVerbose`, all logs originating from files within this module will be logged, not merely error logs.
     @return An initialized `SDLLogFileModule`
     */
    - (instancetype)initWithName:(NSString *)name files:(NSSet<NSString *> *)files level:(SDLLogLevel)level NS_DESIGNATED_INITIALIZER;
    
    /**
     Returns an initialized `SDLLogFileModule` that contains a custom name and set of files. The logging level is the same as the current global logging file by using `SDLLogLevelDefault`.
    
     @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport".
     @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name.
     @return An initialized `SDLLogFileModule`
     */
    - (instancetype)initWithName:(NSString *)name files:(NSSet<NSString *> *)files;
    
    /**
     Returns an initialized `SDLLogFileModule` that contains a custom name and set of files. The logging level is the same as the current global logging file by using `SDLLogLevelDefault`.
    
     @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport".
     @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name.
     @return An initialized `SDLLogFileModule`
     */
    + (instancetype)moduleWithName:(NSString *)name files:(NSSet<NSString *> *)files;
    
    /**
     Returns whether or not this module contains a given file.
    
     @param fileName The file name to check
     @return A BOOL, YES if this module contains the given file.
     */
    - (BOOL)containsFile:(NSString *)fileName;
    
    @end

    Swift

    class SDLLogFileModule : NSObject

    SDLLogFilter

    Undocumented

    See more

    Objective-C

    @interface SDLLogFilter : NSObject
    
    @property (strong, nonatomic, readonly) SDLLogFilterBlock filter;
    
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail.
    
     @param filter The custom filter to be used
     @return An instance of SDLLogFilter
     */
    - (instancetype)initWithCustomFilter:(SDLLogFilterBlock)filter NS_DESIGNATED_INITIALIZER;
    
    /**
     Returns a filter that only allows logs not containing the passed string within their message.
    
     @param string The string, which, if present in the message of the log, will prevent the log from being logged.
     @param caseSensitive Whether or not `string` should be checked as case sensitive against the log's message.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByDisallowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive;
    
    /**
     Returns a filter that only allows logs containing the passed string within their message.
    
     @param string The string, which, if present in the message of the log, will allow the log to be logged.
     @param caseSensitive Whether or not `string` should be checked as case sensitive against the log's message.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByAllowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive;
    
    /**
     Returns a filter that only allows logs not passing the passed regex against their message.
    
     @param regex The regex, which, if it matches the message of the log, will prevent the log from being logged.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByDisallowingRegex:(NSRegularExpression *)regex;
    
    /**
     Returns a filter that only allows logs passing the passed regex against their message.
    
     @param regex The regex, which, if it matches the message of the log, will allow the log to be logged.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByAllowingRegex:(NSRegularExpression *)regex;
    
    /**
     Returns a filter that only allows logs not within the specified file modules to be logged.
    
     @param modules A set of module names. If any match, they will not be logged.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByDisallowingModules:(NSSet<NSString *> *)modules;
    
    /**
     Returns a filter that only allows logs of the specified file modules to be logged.
    
     @param modules A set of module names. If any match, they will not be logged.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByAllowingModules:(NSSet<NSString *> *)modules;
    
    /**
     Returns a filter that only allows logs not within the specified files to be logged.
    
     @param fileNames If a log matches any of the passed files, the log will not be logged.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByDisallowingFileNames:(NSSet<NSString *> *)fileNames;
    
    /**
     Returns a filter that only allows logs within the specified files to be logged.
    
     @param fileNames If a log matches any of the passed files, the log will be logged.
     @return A filter that may be passed into the `logConfiguration`.
     */
    + (SDLLogFilter *)filterByAllowingFileNames:(NSSet<NSString *> *)fileNames;
    
    @end

    Swift

    class SDLLogFilter : NSObject

    SDLLogManager

    This is the central manager of logging. A developer should not have to interact with this class, it is exclusively used internally.

    See more

    Objective-C

    @interface SDLLogManager : NSObject

    Swift

    class SDLLogManager : NSObject

    SDLLogTargetAppleSystemLog

    The Apple System Log target is an iOS 2.0+ compatible log target that logs to both the Console and to the System Log.

    Objective-C

    @interface SDLLogTargetAppleSystemLog : NSObject <SDLLogTarget>

    Swift

    class SDLLogTargetAppleSystemLog : NSObject, SDLLogTarget

    SDLLogTargetFile

    The File log will log to a text file on the iPhone in Documents/smartdevicelink/log/#appName##datetime##.log. It will log up to 3 logs which will rollover.

    Objective-C

    @interface SDLLogTargetFile : NSObject <SDLLogTarget>

    Swift

    class SDLLogTargetFile : NSObject, SDLLogTarget

    SDLLogTargetOSLog

    OS_LOG is an iOS 10+ only logging system that logs to the Console and the Apple system console. This is an improved replacement for Apple SysLog (SDLLogTargetAppleSystemLog).

    https://developer.apple.com/reference/os/logging

    Objective-C

    @interface SDLLogTargetOSLog : NSObject <SDLLogTarget>

    Swift

    class SDLLogTargetOSLog : NSObject, SDLLogTarget

    SDLManager

    Undocumented

    See more

    Objective-C

    @interface SDLManager : NSObject
    
    /**
     *  The configuration the manager was set up with.
     */
    @property (copy, nonatomic, readonly) SDLConfiguration *configuration;
    
    /**
     *  The current HMI level of the running app.
     */
    @property (copy, nonatomic, readonly, nullable) SDLHMILevel hmiLevel;
    
    /**
     *  The current audio streaming state of the running app.
     */
    @property (copy, nonatomic, readonly) SDLAudioStreamingState audioStreamingState;
    
    /**
     *  The current system context of the running app.
     */
    @property (copy, nonatomic, readonly) SDLSystemContext systemContext;
    
    /**
     *  The file manager to be used by the running app.
     */
    @property (strong, nonatomic, readonly) SDLFileManager *fileManager;
    
    /**
     *  The permission manager monitoring RPC permissions.
     */
    @property (strong, nonatomic, readonly) SDLPermissionManager *permissionManager;
    
    /**
     *  The streaming media manager to be used for starting video sessions.
     */
    @property (strong, nonatomic, readonly, nullable) SDLStreamingMediaManager *streamManager;
    
    /**
     *  The screen manager for sending UI related RPCs.
     */
    @property (strong, nonatomic, readonly) SDLScreenManager *screenManager;
    
    /**
     *  Centralized manager for retrieving all system capabilities.
     */
    @property (strong, nonatomic, readonly) SDLSystemCapabilityManager *systemCapabilityManager;
    
    /**
     *  The response of a register call after it has been received.
     */
    @property (strong, nonatomic, readonly, nullable) SDLRegisterAppInterfaceResponse *registerResponse;
    
    /**
     *  The manager's delegate.
     */
    @property (weak, nonatomic, nullable) id<SDLManagerDelegate> delegate;
    
    /**
     The currently pending RPC request send transactions
     */
    @property (copy, nonatomic, readonly) NSArray<__kindof NSOperation *> *pendingRPCTransactions;
    
    /**
     * Deprecated internal proxy object. This should only be accessed when the Manager is READY. This property may go to nil at any time.
     * The only reason to use this is to access the `putFileStream:withRequest:` method. All other functionality exists on managers in 4.3. This will be removed in 5.0 and the functionality replicated on `SDLFileManager`.
     */
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"
    @property (strong, nonatomic, readonly, nullable) SDLProxy *proxy;
    #pragma clang diagnostic pop
    
    
    #pragma mark Lifecycle
    
    /**
     *  Initialize the manager with a configuration. Call `startWithHandler` to begin waiting for a connection.
     *
     *  @param configuration Your app's unique configuration for setup.
     *  @param delegate An optional delegate to be notified of hmi level changes and startup and shutdown. It is recommended that you implement this.
     *
     *  @return An instance of SDLManager
     */
    - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id<SDLManagerDelegate>)delegate NS_DESIGNATED_INITIALIZER;
    
    /**
     *  Start the manager, which will tell it to start looking for a connection. Once one does, it will automatically run the setup process and call the readyBlock when done.
     *
     *  @param readyHandler The block called when the manager is ready to be used or an error occurs while attempting to become ready.
     */
    - (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler NS_SWIFT_NAME(start(readyHandler:));
    
    /**
     *  Stop the manager, it will disconnect if needed and no longer look for a connection. You probably don't need to call this method ever.
     *  
     *  If you do call this method, you must wait for SDLManagerDelegate's managerDidDisconnect callback to call startWithReadyHandler:.
     */
    - (void)stop;
    
    
    #pragma mark Manually Send RPC Requests
    
    /**
     *  Send an RPC request and don't bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead.
     *
     *  @param request The RPC request to send
     */
    - (void)sendRequest:(SDLRPCRequest *)request;
    
    /**
     *  Send an RPC request and set a completion handler that will be called with the response when the response returns.
     *
     *  @param request The RPC request to send
     *  @param handler The handler that will be called when the response returns
     */
    - (void)sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler NS_SWIFT_NAME(send(request:responseHandler:));
    
    /**
     Send all of the requests given as quickly as possible, but in order. Call the completionHandler after all requests have either failed or given a response.
    
     @param requests The requests to be sent
     @param progressHandler A handler called every time a response is received
     @param completionHandler A handler to call when all requests have been responded to
     */
    - (void)sendRequests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler;
    
    /**
     Send all of the requests one at a time, with the next one going out only after the previous one has received a response. Call the completionHandler after all requests have either failed or given a response.
    
     @param requests The requests to be sent
     @param progressHandler A handler called every time a response is received. Return NO to cancel any requests that have not yet been sent, YES to continue sending requests.
     @param completionHandler A handler to call when all requests have been responded to
     */
    - (void)sendSequentialRequests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler NS_SWIFT_NAME(sendSequential(requests:progressHandler:completionHandler:));
    
    @end

    Swift

    class SDLManager : NSObject

    SDLMenuCell

    Undocumented

    See more

    Objective-C

    @interface SDLMenuCell : NSObject
    
    /**
     The cell's text to be displayed
     */
    @property (copy, nonatomic, readonly) NSString *title;
    
    /**
     The cell's icon to be displayed
     */
    @property (strong, nonatomic, readonly, nullable) SDLArtwork *icon;
    
    /**
     The strings the user can say to activate this voice command
     */
    @property (copy, nonatomic, readonly, nullable) NSArray<NSString *> *voiceCommands;
    
    /**
     The handler that will be called when the command is activated
     */
    @property (copy, nonatomic, readonly, nullable) SDLMenuCellSelectionHandler handler;
    
    /**
     If this is non-nil, this cell will be a sub-menu button, displaying the subcells in a menu when pressed.
     */
    @property (copy, nonatomic, readonly, nullable) NSArray<SDLMenuCell *> *subCells;
    
    - (instancetype)initWithTitle:(NSString *)title icon:(nullable SDLArtwork *)icon voiceCommands:(nullable NSArray<NSString *> *)voiceCommands handler:(SDLMenuCellSelectionHandler)handler;
    - (instancetype)initWithTitle:(NSString *)title subCells:(NSArray<SDLMenuCell *> *)subCells;
    
    @end

    Swift

    class SDLMenuCell : NSObject

    SDLMenuParams

    Used when adding a sub menu to an application menu or existing sub menu.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLMenuParams : SDLRPCStruct

    Swift

    class SDLMenuParams : SDLRPCStruct

    SDLMetadataTags

    Undocumented

    See more

    Objective-C

    @interface SDLMetadataTags : SDLRPCStruct
    
    /**
     Constructs a newly allocated SDLMetadataType object with NSArrays
     */
    - (instancetype)initWithTextFieldTypes:(nullable NSArray<SDLMetadataType> *)mainField1 mainField2:(nullable NSArray<SDLMetadataType> *)mainField2;
    
    - (instancetype)initWithTextFieldTypes:(nullable NSArray<SDLMetadataType> *)mainField1 mainField2:(nullable NSArray<SDLMetadataType> *)mainField2 mainField3:(nullable NSArray<SDLMetadataType> *)mainField3 mainField4:(nullable NSArray<SDLMetadataType> *)mainField4;
    
    /**
     The type of data contained in the "mainField1" text field.
    
     minsize= 0, maxsize= 5
    
     Optional
     */
    @property (nullable, strong, nonatomic) NSArray<SDLMetadataType> *mainField1;
    
    /**
     The type of data contained in the "mainField2" text field.
    
     minsize= 0, maxsize= 5
    
     Optional
     */
    @property (nullable, strong, nonatomic) NSArray<SDLMetadataType> *mainField2;
    
    /**
     The type of data contained in the "mainField3" text field.
    
     minsize= 0, maxsize= 5
    
     Optional
     */
    @property (nullable, strong, nonatomic) NSArray<SDLMetadataType> *mainField3;
    
    /**
     The type of data contained in the "mainField4" text field.
    
     minsize= 0, maxsize= 5
    
     Optional
     */
    @property (nullable, strong, nonatomic) NSArray<SDLMetadataType> *mainField4;
    
    @end

    Swift

    class SDLMetadataTags : SDLRPCStruct

    SDLModuleData

    Describes a remote control module’s data

    See more

    Objective-C

    @interface SDLModuleData : SDLRPCStruct

    Swift

    class SDLModuleData : SDLRPCStruct

    SDLMyKey

    Vehicle Data struct

    See more

    Objective-C

    @interface SDLMyKey : SDLRPCStruct

    Swift

    class SDLMyKey : SDLRPCStruct

    SDLNavigationCapability

    Extended capabilities for an onboard navigation system

    See more

    Objective-C

    @interface SDLNavigationCapability : SDLRPCStruct

    Swift

    class SDLNavigationCapability : SDLRPCStruct

    SDLNotificationConstants

    Undocumented

    See more

    Objective-C

    @interface SDLNotificationConstants : NSObject
    
    /**
     All of the possible SDL RPC Response notification names
    
     @return The names
     */
    + (NSArray<SDLNotificationName> *)allResponseNames;
    
    /**
     All of the possible SDL Button event notification names
    
     @return The names
     */
    + (NSArray<SDLNotificationName> *)allButtonEventNotifications;
    
    @end

    Swift

    class SDLNotificationConstants : NSObject

    SDLOasisAddress

    Struct used in SendLocation describing an address

    See more

    Objective-C

    @interface SDLOasisAddress : SDLRPCStruct

    Swift

    class SDLOasisAddress : SDLRPCStruct

    SDLOnAppInterfaceUnregistered

    Notifies an application that its interface registration has been terminated. This means that all SDL resources associated with the application are discarded, including the Command Menu, Choice Sets, button subscriptions, etc.

    For more information about SDL resources related to an interface registration, see SDLRegisterAppInterface.

    @since SDL 1.0

    See

    SDLRegisterAppInterface
    See more

    Objective-C

    @interface SDLOnAppInterfaceUnregistered : SDLRPCNotification

    Swift

    class SDLOnAppInterfaceUnregistered : SDLRPCNotification

    SDLOnAudioPassThru

    Binary data is in binary part of hybrid msg.

    HMILevel must be:

    • BACKGROUND, FULL, LIMITED

    Objective-C

    @interface SDLOnAudioPassThru : SDLRPCNotification

    Swift

    class SDLOnAudioPassThru : SDLRPCNotification

    SDLOnButtonEvent

    Notifies application that user has depressed or released a button to which the application has subscribed.

    Further information about button events and button-presses can be found at SDLSubscribeButton.

    HMI Status Requirements:

    HMILevel:

    • The application will receive SDLOnButtonEvent notifications for all subscribed buttons when HMILevel is FULL.

    • The application will receive SDLOnButtonEvent 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 SDLOnButtonEvent notification when HMILevel is BACKGROUND.

    AudioStreamingState:

    • Any

    SystemContext:

  • MAIN, VR. In MENU, only PRESET buttons.

  • In VR, pressing any subscribable button will cancel VR.

  • See

    SDLSubscribeButton

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLOnButtonEvent : SDLRPCNotification

    Swift

    class SDLOnButtonEvent : SDLRPCNotification

    SDLOnButtonPress

    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: Any

    SystemContext: MAIN, VR. In MENU, only PRESET buttons. In VR, pressing any subscribable button will cancel VR.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLOnButtonPress : SDLRPCNotification

    Swift

    class SDLOnButtonPress : SDLRPCNotification

    SDLOnCommand

    This is called when a command was selected via VR after pressing the PTT button, or selected from the menu after pressing the MENU button.

    Note: The sequence of SDLOnHMIStatus and SDLOnCommand notifications for user-initiated interactions is indeterminate.

    @since SDL 1.0

    See

    SDLAddCommand SDLDeleteCommand SDLDeleteSubMenu
    See more

    Objective-C

    @interface SDLOnCommand : SDLRPCNotification

    Swift

    class SDLOnCommand : SDLRPCNotification

    SDLOnDriverDistraction

    Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or not).

    HMI Status Requirements:

    HMILevel: Can be sent with FULL, LIMITED or BACKGROUND

    AudioStreamingState: Any

    SystemContext: Any

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLOnDriverDistraction : SDLRPCNotification

    Swift

    class SDLOnDriverDistraction : SDLRPCNotification

    SDLOnEncodedSyncPData

    Callback including encoded data of any SyncP packets that SYNC needs to send back to the mobile device. Legacy / v1 Protocol implementation; responds to EncodedSyncPData. *** DEPRECATED ***

    See more

    Objective-C

    @interface SDLOnEncodedSyncPData : SDLRPCNotification

    Swift

    class SDLOnEncodedSyncPData : SDLRPCNotification

    SDLOnHMIStatus

    • Notifies an application that HMI conditions have changed for the application. This indicates whether the application can speak phrases, display text, perform interactions, receive button presses and events, stream audio, etc. This notification will be sent to the application when there has been a change in any one or several of the indicated states (SDLHMILevel, SDLAudioStreamingState or SDLSystemContext) for the application.

    All three values are, in principle, independent of each other (though there may be some relationships). A value for one parameter should not be interpreted from the value of another parameter.

    There are no guarantees about the timeliness or latency of the SDLOnHMIStatus notification. Therefore, for example, information such as SDLAudioStreamingState may not indicate that the audio stream became inaudible to the user exactly when the SDLOnHMIStatus notification was received.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLOnHMIStatus : SDLRPCNotification

    Swift

    class SDLOnHMIStatus : SDLRPCNotification

    SDLOnHashChange

    Notification containing an updated hashID which can be used over connection cycles (i.e. loss of connection, ignition cycles, etc.). Sent after initial registration and subsequently after any change in the calculated hash of all persisted app data.

    See more

    Objective-C

    @interface SDLOnHashChange : SDLRPCNotification

    Swift

    class SDLOnHashChange : SDLRPCNotification

    SDLOnInteriorVehicleData

    Notifications when subscribed vehicle data changes.

    See: SDLSubscribeVehicleData

    See more

    Objective-C

    @interface SDLOnInteriorVehicleData : SDLRPCNotification

    Swift

    class SDLOnInteriorVehicleData : SDLRPCNotification

    SDLOnKeyboardInput

    Sent when a keyboard presented by a PerformInteraction has a keyboard input.

    See more

    Objective-C

    @interface SDLOnKeyboardInput : SDLRPCNotification

    Swift

    class SDLOnKeyboardInput : SDLRPCNotification

    SDLOnLanguageChange

    Provides information to what language the SDL HMI language was changed

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLOnLanguageChange : SDLRPCNotification

    Swift

    class SDLOnLanguageChange : SDLRPCNotification

    SDLOnLockScreenStatus

    To help prevent driver distraction, any SmartDeviceLink application is required to implement a lockscreen that must be enforced while the application is active on the system while the vehicle is in motion.

    This lockscreen must perform the following:

    Limit all application control usability from the mobile device with a full-screen static image overlay or separate view.

    For simplicity, the OnLockScreenStatus RPC will be provided via the onOnLockScreenNotification call back. The call back will include the LockScreenStatus enum which indicates if the lockscreen is required, optional or not required.

    The call back also includes details regarding the current HMI_Status level, driver distraction status and user selection status of the application.

    See more

    Objective-C

    @interface SDLOnLockScreenStatus : SDLRPCNotification

    Swift

    class SDLOnLockScreenStatus : SDLRPCNotification

    SDLOnPermissionsChange

    Provides update to app of which sets of functions are available

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLOnPermissionsChange : SDLRPCNotification

    Swift

    class SDLOnPermissionsChange : SDLRPCNotification

    SDLOnSyncPData

    DEPRECATED

    See more

    Objective-C

    @interface SDLOnSyncPData : SDLRPCNotification

    Swift

    class SDLOnSyncPData : SDLRPCNotification

    SDLOnSystemRequest

    An asynchronous request from the system for specific data from the device or the cloud or response to a request from the device or cloud Binary data can be included in hybrid part of message for some requests (such as Authentication request responses)

    See more

    Objective-C

    @interface SDLOnSystemRequest : SDLRPCNotification

    Swift

    class SDLOnSystemRequest : SDLRPCNotification

    SDLOnTBTClientState

    Provides applications with notifications specific to the current TBT client status on the module

    See more

    Objective-C

    @interface SDLOnTBTClientState : SDLRPCNotification

    Swift

    class SDLOnTBTClientState : SDLRPCNotification

    SDLOnTouchEvent

    Notifies about touch events on the screen’s prescribed area during video streaming

    See more

    Objective-C

    @interface SDLOnTouchEvent : SDLRPCNotification

    Swift

    class SDLOnTouchEvent : SDLRPCNotification

    SDLOnVehicleData

    Callback for the periodic and non periodic vehicle data read function.

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLOnVehicleData : SDLRPCNotification

    Swift

    class SDLOnVehicleData : SDLRPCNotification

    SDLOnWayPointChange

    Notification which provides the entire LocationDetails when there is a change to any waypoints or destination.

    See more

    Objective-C

    @interface SDLOnWayPointChange : SDLRPCNotification

    Swift

    class SDLOnWayPointChange : SDLRPCNotification

    SDLParameterPermissions

    Defining sets of parameters, which are permitted or prohibited for a given RPC.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLParameterPermissions : SDLRPCStruct

    Swift

    class SDLParameterPermissions : SDLRPCStruct

    SDLPerformAudioPassThru

    This will open an audio pass thru session. By doing so the app can receive audio data through the vehicle microphone

    Function Group: AudioPassThru

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 2.0

    See SDLEndAudioPassThru

    See more

    Objective-C

    @interface SDLPerformAudioPassThru : SDLRPCRequest

    Swift

    class SDLPerformAudioPassThru : SDLRPCRequest

    SDLPerformAudioPassThruResponse

    Response to SDLPerformAudioPassThru

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLPerformAudioPassThruResponse : SDLRPCResponse

    Swift

    class SDLPerformAudioPassThruResponse : SDLRPCResponse

    SDLPerformInteraction

    Performs an application-initiated interaction in which the user can select a {@linkplain Choice} from among the specified Choice Sets. For instance, an application may use a PerformInteraction to ask a user to say the name of a song to play. The user’s response is only valid if it appears in the specified Choice Sets and is recognized by SDL

    Function Group: Base

    HMILevel needs to be FULL

    Since SmartDeviceLink 1.0
    See SDLCreateInteractionChoiceSet SDLDeleteInteractionChoiceSet

    See more

    Objective-C

    @interface SDLPerformInteraction : SDLRPCRequest

    Swift

    class SDLPerformInteraction : SDLRPCRequest

    SDLPerformInteractionResponse

    PerformInteraction Response is sent, when SDLPerformInteraction has been called

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLPerformInteractionResponse : SDLRPCResponse

    Swift

    class SDLPerformInteractionResponse : SDLRPCResponse

    SDLPermissionItem

    Undocumented

    See more

    Objective-C

    @interface SDLPermissionItem : SDLRPCStruct
    
    /**
     Name of the individual RPC in the policy table.
    
     Required
     */
    @property (strong, nonatomic) NSString *rpcName;
    
    /**
     HMI Permissions for the individual RPC; i.e. which HMI levels may it be used in
    
     Required
     */
    @property (strong, nonatomic) SDLHMIPermissions *hmiPermissions;
    
    /**
     RPC parameters for the individual RPC
    
     Required
     */
    @property (strong, nonatomic) SDLParameterPermissions *parameterPermissions;
    
    @end

    Swift

    class SDLPermissionItem : SDLRPCStruct

    SDLPermissionManager

    Undocumented

    See more

    Objective-C

    @interface SDLPermissionManager : NSObject
    
    /**
     *  Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLPermissionManager, you should use the manager found on `SDLManager`.
     *
     *  @param completionHandler The block to be called when the manager's setup is complete.
     */
    - (void)startWithCompletionHandler:(void (^)(BOOL success, NSError *__nullable error))completionHandler;
    
    /**
     *  Stop the manager. This method is used internally.
     */
    - (void)stop;
    
    /**
     *  Determine if an individual RPC is allowed for the current HMI level
     *
     *  @param rpcName  The name of the RPC to be tested, for example, SDLShow
     *
     *  @return YES if the RPC is allowed at the current HMI level, NO if not
     */
    - (BOOL)isRPCAllowed:(SDLPermissionRPCName)rpcName;
    
    /**
     *  Determine if all RPCs are allowed for the current HMI level
     *
     *  @param rpcNames The RPCs to check
     *
     *  @return AllAllowed if all of the permissions are allowed, AllDisallowed if all the permissions are disallowed, Any if some are allowed, and some are disallowed
     */
    - (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray<SDLPermissionRPCName> *)rpcNames;
    
    /**
     *  Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber<BOOL> specifying if that RPC is currently allowed
     *
     *  @param rpcNames An array of RPC names to check
     *
     *  @return A dictionary specifying if the passed in RPC names are currently allowed or not
     */
    - (NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *)statusOfRPCs:(NSArray<SDLPermissionRPCName> *)rpcNames;
    
    /**
     *  Add an observer for specified RPC names, with a callback that will be called whenever the value changes, as well as immediately with the current status.
     *
     *  @warning This block will be captured by the SDLPermissionsManager, be sure to use [weakself/strongself](http://www.logicsector.com/ios/avoiding-objc-retain-cycles-with-weakself-and-strongself-the-easy-way/) if you are referencing self within your observer block.
     *
     *  @warning The observer may be called before this method returns, do not attempt to remove the observer from within the observer. That could send `nil` to removeObserverForIdentifier:. If you want functionality like that, call groupStatusOfRPCs: instead.
     *
     *  @param rpcNames The RPCs to be observed
     *  @param groupType Affects the times that the observer block will be called. If Any, any change to any RPC in rpcNames will cause the observer block to be called. If AllAllowed, the block will be called when: 1. Every RPC in rpcNames becomes allowed 2. The group of rpcNames goes from all being allowed to some or all being disallowed.
     *  @param handler The block that will be called whenever permissions change.
     *
     *  @return An identifier that can be passed to removeObserverForIdentifer: to remove the observer
     */
    - (SDLPermissionObserverIdentifier)addObserverForRPCs:(NSArray<SDLPermissionRPCName> *)rpcNames groupType:(SDLPermissionGroupType)groupType withHandler:(SDLPermissionsChangedHandler)handler;
    
    /**
     *  Remove every current observer
     */
    - (void)removeAllObservers;
    
    /**
     *  Remove block observers for the specified RPC
     *
     *  @param identifier The identifier specifying which observer to remove
     */
    - (void)removeObserverForIdentifier:(SDLPermissionObserverIdentifier)identifier;
    
    @end

    Swift

    class SDLPermissionManager : NSObject

    SDLPhoneCapability

    Extended capabilities of the module’s phone feature

    See more

    Objective-C

    @interface SDLPhoneCapability : SDLRPCStruct

    Swift

    class SDLPhoneCapability : SDLRPCStruct

    SDLPinchGesture

    Undocumented

    See more

    Objective-C

    @interface SDLPinchGesture : NSObject
    
    /**
     *  @abstract
     *      Initializes a pinch gesture.
     *  @param firstTouch
     *      First touch of the gesture
     *  @param secondTouch
     *      Second touch of the gesture
     *  @return SDLPinchGesture
     *      Instance of SDLPinchGesture.
     */
    - (instancetype)initWithFirstTouch:(SDLTouch *)firstTouch secondTouch:(SDLTouch *)secondTouch;
    
    /**
     *  @abstract
     *      First touch of a pinch gesture.
     */
    @property (nonatomic, strong) SDLTouch *firstTouch;
    
    /**
     *  @abstract
     *      Second touch of a pinch gesture.
     */
    @property (nonatomic, strong) SDLTouch *secondTouch;
    
    /**
     *  @abstract
     *      Distance between first and second touches.
     */
    @property (nonatomic, assign, readonly) CGFloat distance;
    
    /**
     *  @abstract
     *      Center point between first and second touches.
     */
    @property (nonatomic, assign, readonly) CGPoint center;
    
    /**
     *  @abstract
     *      Returns whether or not the pinch gesture is valid. This is true if both touches
     *      are non null.
     */
    @property (nonatomic, assign, readonly) BOOL isValid;
    
    @end

    Swift

    class SDLPinchGesture : NSObject

    SDLPresetBankCapabilities

    Contains information about on-screen preset capabilities.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLPresetBankCapabilities : SDLRPCStruct

    Swift

    class SDLPresetBankCapabilities : SDLRPCStruct

    SDLPutFile

    Used to push a binary data onto the SDL module from a mobile device, such as icons and album art

    Since SmartDeviceLink 2.0

    See

    SDLDeleteFile

    See

    SDLListFiles
    See more

    Objective-C

    @interface SDLPutFile : SDLRPCRequest

    Swift

    class SDLPutFile : SDLRPCRequest

    SDLPutFileResponse

    Response to SDLPutFile

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLPutFileResponse : SDLRPCResponse

    Swift

    class SDLPutFileResponse : SDLRPCResponse

    SDLRDSData

    Include the data defined in Radio Data System, which is a communications protocol standard for embedding small amounts of digital information in conventional FM radio broadcasts.

    See more

    Objective-C

    @interface SDLRDSData : SDLRPCStruct

    Swift

    class SDLRDSData : SDLRPCStruct

    SDLRPCMessage

    Undocumented

    See more

    Objective-C

    @interface SDLRPCMessage : SDLRPCStruct {
        NSMutableDictionary<NSString *, id> *function;
        NSMutableDictionary<NSString *, id> *parameters;
        NSString *messageType;
    }
    
    /**
     *  Convenience init
     *
     *  @param name    The name of the message
     *  @return        A SDLRPCMessage object
     */
    - (instancetype)initWithName:(NSString *)name;
    
    /**
     *  Convenience init
     *
     *  @param dict    A dictionary with the format @{messageType: @{parameters}}
     *  @return        A SDLRPCMessage object
     */
    - (instancetype)initWithDictionary:(NSDictionary<NSString *, id> *)dict;
    
    /**
     *  Returns the function name.
     *
     *  @return The function name
     */
    - (nullable NSString *)getFunctionName;
    
    /**
     *  Sets the function name.
     *
     *  @param functionName The function name
     */
    - (void)setFunctionName:(nullable NSString *)functionName;
    
    /**
     *  Returns the value associated with the provided key. If the key does not exist, null is returned.
     *
     *  @param functionName    The key name
     *  @return                The value associated with the function name
     */
    - (nullable NSObject *)getParameters:(NSString *)functionName;
    
    /**
     *  Sets a key-value pair using the function name as the key.
     *
     *  @param functionName    The name for the key
     *  @param value           The value associated with the function name
     */
    - (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value;
    
    /**
     *  The data in the message
     */
    @property (nullable, strong, nonatomic) NSData *bulkData;
    
    /**
     *  The name of the message
     */
    @property (strong, nonatomic, readonly) NSString *name;
    
    /**
     *  The type of data in the message
     */
    @property (strong, nonatomic, readonly) NSString *messageType;
    
    @end

    Swift

    class SDLRPCMessage : SDLRPCStruct

    SDLRPCNotification

    An RPC sent from the head unit to the app about some data change, such as a button was pressed

    Objective-C

    @interface SDLRPCNotification : SDLRPCMessage

    Swift

    class SDLRPCNotification : SDLRPCMessage

    SDLRPCNotificationNotification

    An NSNotification object that makes retrieving internal SDLRPCNotification data easier

    See more

    Objective-C

    @interface SDLRPCNotificationNotification : NSNotification

    Swift

    class SDLRPCNotificationNotification : NSNotification

    SDLRPCRequest

    Undocumented

    See more

    Objective-C

    @interface SDLRPCRequest : SDLRPCMessage
    
    /**
     *  A unique id assigned to message sent to Core. The Correlation ID is used to map a request to its response.
     */
    @property (strong, nonatomic) NSNumber<SDLInt> *correlationID;
    
    @end

    Swift

    class SDLRPCRequest : SDLRPCMessage

    SDLRPCResponse

    Undocumented

    See more

    Objective-C

    @interface SDLRPCResponse : SDLRPCMessage
    
    /**
     *  The correlation id of the corresponding SDLRPCRequest.
     */
    @property (strong, nonatomic) NSNumber<SDLInt> *correlationID;
    
    /**
     *  Whether or not the SDLRPCRequest was successful.
     */
    @property (strong, nonatomic) NSNumber<SDLBool> *success;
    
    /**
     *  The result of the SDLRPCRequest. If the request failed, the result code contains the failure reason.
     */
    @property (strong, nonatomic) SDLResult resultCode;
    
    /**
     *  More detailed success or error message.
     */
    @property (nullable, strong, nonatomic) NSString *info;
    
    @end

    Swift

    class SDLRPCResponse : SDLRPCMessage

    SDLRPCResponseNotification

    An NSNotification object that makes retrieving internal SDLRPCResponse data easier

    See more

    Objective-C

    @interface SDLRPCResponseNotification : NSNotification

    Swift

    class SDLRPCResponseNotification : NSNotification

    SDLRPCStruct

    Undocumented

    See more

    Objective-C

    @interface SDLRPCStruct : NSObject <NSCopying> {
        NSMutableDictionary<NSString *, id> *store;
    }
    
    /**
     *  Convenience init
     *
     *  @param dict A dictionary
     *  @return     A SDLRPCStruct object
     */
    - (instancetype)initWithDictionary:(NSDictionary<NSString *, id> *)dict;
    
    /**
     *  Init
     *
     *  @return A SDLRPCStruct object
     */
    - (instancetype)init;
    
    /**
     *  Converts struct to JSON formatted data
     *
     *  @param version The protocol version
     *  @return        JSON formatted data
     */
    - (NSDictionary<NSString *, id> *)serializeAsDictionary:(Byte)version;
    
    @end

    Swift

    class SDLRPCStruct : NSObject, NSCopying

    SDLRadioControlCapabilities

    Contains information about a radio control module’s capabilities.

    See more

    Objective-C

    @interface SDLRadioControlCapabilities : SDLRPCStruct

    Swift

    class SDLRadioControlCapabilities : SDLRPCStruct

    SDLRadioControlData

    Include information (both read-only and changeable data) about a remote control radio module.

    See more

    Objective-C

    @interface SDLRadioControlData : SDLRPCStruct

    Swift

    class SDLRadioControlData : SDLRPCStruct

    SDLReadDID

    Non periodic vehicle data read request. This is an RPC to get diagnostics data from certain vehicle modules. DIDs of a certain module might differ from vehicle type to vehicle type

    Function Group: ProprietaryData

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLReadDID : SDLRPCRequest

    Swift

    class SDLReadDID : SDLRPCRequest

    SDLReadDIDResponse

    A response to ReadDID

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLReadDIDResponse : SDLRPCResponse

    Swift

    class SDLReadDIDResponse : SDLRPCResponse

    SDLRectangle

    A struct describing a rectangle

    See more

    Objective-C

    @interface SDLRectangle : SDLRPCStruct

    Swift

    class SDLRectangle : SDLRPCStruct

    SDLRegisterAppInterface

    Registers the application’s interface with SDL®, declaring properties of the registration, including the messaging interface version, the app name, etc. The mobile application must establish its interface registration with SDL before any other interaction with SDL® can take place. The registration lasts until it is terminated either by the application calling the SDLUnregisterAppInterface method, or by SDL® sending an SDLOnAppInterfaceUnregistered notification, or by loss of the underlying transport connection, or closing of the underlying message transmission protocol RPC session

    Until the application receives its first SDLOnHMIStatus Notification, its HMI Status is assumed to be: SDLHMILevel=NONE, SDLAudioStreamingState =NOT_AUDIBLE, SDLSystemContext=MAIN

    All SDL® resources which the application creates or uses (e.g. Choice Sets, Command Menu, etc.) are associated with the application’s interface registration. Therefore, when the interface registration ends, the SDL® resources associated with the application are disposed of. As a result, even though the application itself may continue to run on its host platform (e.g. mobile device) after the interface registration terminates, the application will not be able to use the SDL® HMI without first establishing a new interface registration and re-creating its required SDL® resources. That is, SDL® resources created by (or on behalf of) an application do not persist beyond the life-span of the interface registration

    Resources and settings whose lifespan is tied to the duration of an application’s interface registration:

    • Choice Sets
    • Command Menus (built by successive calls to SDLAddCommand )
    • Media clock timer display value
    • Media clock timer display value
    • Media clock timer display value

    The autoActivateID is used to grant an application the HMILevel and AudioStreamingState it had when it last disconnected

    Notes: The autoActivateID parameter, and associated behavior, is currently ignored by SDL®

    When first calling this method (i.e. first time within life cycle of mobile app), an autoActivateID should not be included. After successfully registering an interface, an autoActivateID is returned to the mobile application for it to use in subsequent connections. If the connection between SDL® and the mobile application is lost, such as the vehicle is turned off while the application is running, the autoActivateID can then be passed in another call to RegisterAppInterface to re-acquire SDLHMILevel=FULL

    If the application intends to stream audio it is important to indicate so via the isMediaApp parameter. When set to true, audio will reliably stream without any configuration required by the user. When not set, audio may stream, depending on what the user might have manually configured as a media source on SDL®

    There is no time limit for how long the autoActivateID is valid (i.e. would confer focus and opt-in)

    HMILevel is not defined before registering

    @since SDL 1.0

    See

    SDLUnregisterAppInterface SDLOnAppInterfaceUnregistered
    See more

    Objective-C

    @interface SDLRegisterAppInterface : SDLRPCRequest

    Swift

    class SDLRegisterAppInterface : SDLRPCRequest

    SDLRegisterAppInterfaceResponse

    Response to SDLRegisterAppInterface

    Since SmartDeviceLink 1.0

    See more

    Objective-C

    @interface SDLRegisterAppInterfaceResponse : SDLRPCResponse

    Swift

    class SDLRegisterAppInterfaceResponse : SDLRPCResponse

    SDLRemoteControlCapabilities

    Capabilities of the remote control feature

    See more

    Objective-C

    @interface SDLRemoteControlCapabilities : SDLRPCStruct

    Swift

    class SDLRemoteControlCapabilities : SDLRPCStruct

    SDLResetGlobalProperties

    Resets the passed global properties to their default values as defined by SDL

    The HELPPROMPT global property default value is generated by SDL consists of the first vrCommand of each Command Menu item defined at the moment PTT is pressed
    The TIMEOUTPROMPT global property default value is the same as the HELPPROMPT global property default value

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 1.0 See SetGlobalProperties

    See more

    Objective-C

    @interface SDLResetGlobalProperties : SDLRPCRequest

    Swift

    class SDLResetGlobalProperties : SDLRPCRequest

    SDLResetGlobalPropertiesResponse

    Response to ResetGlobalProperties

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLResetGlobalPropertiesResponse : SDLRPCResponse

    Swift

    class SDLResetGlobalPropertiesResponse : SDLRPCResponse

    SDLScreenManager

    Undocumented

    See more

    Objective-C

    @interface SDLScreenManager : NSObject
    
    /**
     The top text field within a template layout
     */
    @property (copy, nonatomic, nullable) NSString *textField1;
    
    /**
     The second text field within a template layout
     */
    @property (copy, nonatomic, nullable) NSString *textField2;
    
    /**
     The third text field within a template layout
     */
    @property (copy, nonatomic, nullable) NSString *textField3;
    
    /**
     The fourth text field within a template layout
     */
    @property (copy, nonatomic, nullable) NSString *textField4;
    
    /**
     The media text field available within the media layout. Often less emphasized than textField(1-4)
     */
    @property (copy, nonatomic, nullable) NSString *mediaTrackTextField;
    
    /**
     The primary graphic within a template layout
     */
    @property (strong, nonatomic, nullable) SDLArtwork *primaryGraphic;
    
    /**
     A secondary graphic used in some template layouts
     */
    @property (strong, nonatomic, nullable) SDLArtwork *secondaryGraphic;
    
    /**
     What alignment textField(1-4) should use
     */
    @property (copy, nonatomic) SDLTextAlignment textAlignment;
    
    /**
     The type of data textField1 describes
     */
    @property (copy, nonatomic, nullable) SDLMetadataType textField1Type;
    
    /**
     The type of data textField2 describes
     */
    @property (copy, nonatomic, nullable) SDLMetadataType textField2Type;
    
    /**
     The type of data textField3 describes
     */
    @property (copy, nonatomic, nullable) SDLMetadataType textField3Type;
    
    /**
     The type of data textField4 describes
     */
    @property (copy, nonatomic, nullable) SDLMetadataType textField4Type;
    
    /**
     The current list of soft buttons within a template layout. Set this array to change the displayed soft buttons.
     */
    @property (copy, nonatomic) NSArray<SDLSoftButtonObject *> *softButtonObjects;
    
    /**
     The current list of menu cells displayed in the app's menu.
     */
    @property (copy, nonatomic) NSArray<SDLMenuCell *> *menu;
    
    /**
     The current list of voice commands available for the user to speak and be recognized by the IVI's voice recognition engine.
     */
    @property (copy, nonatomic) NSArray<SDLVoiceCommand *> *voiceCommands;
    
    /**
     Initialize a screen manager
    
     @warning For internal use
    
     @param connectionManager The connection manager used to send RPCs
     @param fileManager The file manager used to upload files
     @return The screen manager
     */
    - (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager fileManager:(SDLFileManager *)fileManager;
    
    /**
     Stops the manager.
    
     @warning For internal use
     */
    - (void)stop;
    
    /**
     Delays all screen updates until endUpdatesWithCompletionHandler: is called.
     */
    - (void)beginUpdates;
    
    /**
     Update text fields with new text set into the text field properties. Pass an empty string `\@""` to clear the text field.
    
     If the system does not support a full 4 fields, this will automatically be concatenated and properly send the field available.
    
     If 3 lines are available: [field1, field2, field3 - field 4]
    
     If 2 lines are available: [field1 - field2, field3 - field4]
    
     If 1 line is available: [field1 - field2 - field3 - field4]
    
     Also updates the primary and secondary images with new image(s) if new one(s) been set. This method will take care of naming the files (based on a hash). This is assumed to be a non-persistant image.
    
     If it needs to be uploaded, it will be. Once the upload is complete, the on-screen graphic will be updated.
    
     @param handler A handler run when the fields have finished updating, with an error if the update failed. This handler may be called multiple times when the text update is sent and the image update is sent.
     */
    - (void)endUpdatesWithCompletionHandler:(nullable SDLScreenManagerUpdateCompletionHandler)handler;
    
    /**
     Find a current soft button object with a specific name
    
     @param name The name of the soft button object to find
     @return The soft button object or nil if there isn't one with that name
     */
    - (nullable SDLSoftButtonObject *)softButtonObjectNamed:(NSString *)name;
    
    @end

    Swift

    class SDLScreenManager : NSObject

    SDLScreenParams

    A struct in DisplayCapabilities describing parameters related to a video / touch input area

    See more

    Objective-C

    @interface SDLScreenParams : SDLRPCStruct

    Swift

    class SDLScreenParams : SDLRPCStruct

    SDLScrollableMessage

    Creates a full screen overlay containing a large block of formatted text that can be scrolled with up to 8 SoftButtons defined

    Function Group: ScrollableMessage

    HMILevel needs to be FULL

    See more

    Objective-C

    @interface SDLScrollableMessage : SDLRPCRequest

    Swift

    class SDLScrollableMessage : SDLRPCRequest

    SDLScrollableMessageResponse

    Response to SDLScrollableMessage

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLScrollableMessageResponse : SDLRPCResponse

    Swift

    class SDLScrollableMessageResponse : SDLRPCResponse

    SDLSendHapticData

    Sends the spatial data gathered from SDLCarWindow or VirtualDisplayEncoder to the HMI. This data will be utilized by the HMI to determine how and when haptic events should occur.

    See more

    Objective-C

    @interface SDLSendHapticData : SDLRPCRequest

    Swift

    class SDLSendHapticData : SDLRPCRequest

    SDLSendHapticDataResponse

    Response to SDLSendHapticData

    Objective-C

    @interface SDLSendHapticDataResponse : SDLRPCResponse

    Swift

    class SDLSendHapticDataResponse : SDLRPCResponse

    SDLSendLocation

    Undocumented

    See more

    Objective-C

    @interface SDLSendLocation : SDLRPCRequest
    
    - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray<NSString *> *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image;
    
    - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray<NSString *> *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address;
    
    /**
     * The longitudinal coordinate of the location.
     *
     * Float, Required, -180.0 - 180.0
     */
    @property (nullable, copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees;
    
    /**
     * The latitudinal coordinate of the location.
     *
     * Float, Required, -90.0 - 90.0
     */
    @property (nullable, copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees;
    
    /**
     * Name / title of intended location
     *
     * Optional, Maxlength = 500 char
     */
    @property (nullable, copy, nonatomic) NSString *locationName;
    
    /**
     * Description of the intended location / establishment
     *
     * Optional, MaxLength = 500 char
     */
    @property (nullable, copy, nonatomic) NSString *locationDescription;
    
    /**
     * Location address for display purposes only
     *
     * Contains String, Optional, Max Array Length = 4, Max String Length = 500
     */
    @property (nullable, copy, nonatomic) NSArray<NSString *> *addressLines;
    
    /**
     * Phone number of intended location / establishment
     *
     * Optional, Max Length = 500
     */
    @property (nullable, copy, nonatomic) NSString *phoneNumber;
    
    /**
     * Image / icon of intended location
     *
     * Optional
     */
    @property (nullable, strong, nonatomic) SDLImage *locationImage;
    
    /**
     * Mode in which the sendLocation request is sent
     *
     * Optional
     */
    @property (nullable, strong, nonatomic) SDLDeliveryMode deliveryMode;
    
    /**
     * Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well.
     *
     * Optional
     */
    @property (nullable, strong, nonatomic) SDLDateTime *timeStamp;
    
    /**
     * Address to be used for setting destination
     *
     * Optional
     */
    @property (nullable, strong, nonatomic) SDLOasisAddress *address;
    
    @end

    Swift

    class SDLSendLocation : SDLRPCRequest

    SDLSendLocationResponse

    Response to SDLSendLocation

    Objective-C

    @interface SDLSendLocationResponse : SDLRPCResponse

    Swift

    class SDLSendLocationResponse : SDLRPCResponse

    SDLSetAppIcon

    Used to set existing local file on SDL as the app’s icon. Not supported on first generation SDL modules.

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSetAppIcon : SDLRPCRequest

    Swift

    class SDLSetAppIcon : SDLRPCRequest

    SDLSetAppIconResponse

    Response to SDLSetAppIcon

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLSetAppIconResponse : SDLRPCResponse

    Swift

    class SDLSetAppIconResponse : SDLRPCResponse

    SDLSetDisplayLayout

    Used to set an alternate display layout. If not sent, default screen for given platform will be shown

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSetDisplayLayout : SDLRPCRequest

    Swift

    class SDLSetDisplayLayout : SDLRPCRequest

    SDLSetDisplayLayoutResponse

    Response to SDLSetDisplayLayout

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSetDisplayLayoutResponse : SDLRPCResponse

    Swift

    class SDLSetDisplayLayoutResponse : SDLRPCResponse

    SDLSetGlobalProperties

    Sets global property values

    Since SmartDeviceLink 1.0

    See SDLResetGlobalProperties

    See more

    Objective-C

    @interface SDLSetGlobalProperties : SDLRPCRequest

    Swift

    class SDLSetGlobalProperties : SDLRPCRequest

    SDLSetGlobalPropertiesResponse

    Response to SDLSetGlobalProperties

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLSetGlobalPropertiesResponse : SDLRPCResponse

    Swift

    class SDLSetGlobalPropertiesResponse : SDLRPCResponse

    SDLSetInteriorVehicleData

    This RPC allows a remote control type mobile application to change the settings of a specific remote control module.

    See more

    Objective-C

    @interface SDLSetInteriorVehicleData : SDLRPCRequest

    Swift

    class SDLSetInteriorVehicleData : SDLRPCRequest

    SDLSetInteriorVehicleDataResponse

    Response to SDLSetInteriorVehicleData

    See more

    Objective-C

    @interface SDLSetInteriorVehicleDataResponse : SDLRPCResponse

    Swift

    class SDLSetInteriorVehicleDataResponse : SDLRPCResponse

    SDLSetMediaClockTimer

    Sets the media clock/timer value and the update method (e.g.count-up, count-down, etc.)

    Function Group: Base

    HMILevel needs to be FULL, LIMITIED or BACKGROUND

    Since SmartDeviceLink 1.0

    See more

    Objective-C

    @interface SDLSetMediaClockTimer : SDLRPCRequest

    Swift

    class SDLSetMediaClockTimer : SDLRPCRequest

    SDLSetMediaClockTimerResponse

    Response to SDLSetMediaClockTimer

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLSetMediaClockTimerResponse : SDLRPCResponse

    Swift

    class SDLSetMediaClockTimerResponse : SDLRPCResponse

    SDLShow

    Updates the application’s display text area, regardless of whether or not this text area is visible to the user at the time of the request. The application’s display text area remains unchanged until updated by subsequent calls to Show

    The content of the application’s display text area is visible to the user when the application is FULL or LIMITED, and the SDLSystemContext=MAIN and no SDLAlert is in progress

    The Show operation cannot be used to create an animated scrolling screen. To avoid distracting the driver, Show commands cannot be issued more than once every 4 seconds. Requests made more frequently than this will be rejected

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 1.0 See SDLAlert SDLSetMediaClockTimer

    See more

    Objective-C

    @interface SDLShow : SDLRPCRequest

    Swift

    class SDLShow : SDLRPCRequest

    SDLShowConstantTBT

    This RPC is used to update the user with navigation information for the constantly shown screen (base screen), but also for the alert maneuver screen.

    @since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLShowConstantTBT : SDLRPCRequest

    Swift

    class SDLShowConstantTBT : SDLRPCRequest

    SDLShowConstantTBTResponse

    Response to SDLShowConstantTBT

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLShowConstantTBTResponse : SDLRPCResponse

    Swift

    class SDLShowConstantTBTResponse : SDLRPCResponse

    SDLShowResponse

    Response to SDLShow

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLShowResponse : SDLRPCResponse

    Swift

    class SDLShowResponse : SDLRPCResponse

    SDLSingleTireStatus

    Tire pressure status of a single tire.

    @since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSingleTireStatus : SDLRPCStruct

    Swift

    class SDLSingleTireStatus : SDLRPCStruct

    SDLSlider

    Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider

    HMILevel needs to be FULL

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSlider : SDLRPCRequest

    Swift

    class SDLSlider : SDLRPCRequest

    SDLSliderResponse

    Response to SDLSlider

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSliderResponse : SDLRPCResponse

    Swift

    class SDLSliderResponse : SDLRPCResponse

    SDLSoftButton

    Describes an on-screen button which may be presented in various contexts, e.g. templates or alerts

    See more

    Objective-C

    @interface SDLSoftButton : SDLRPCStruct

    Swift

    class SDLSoftButton : SDLRPCStruct

    SDLSoftButtonCapabilities

    Contains information about a SoftButton’s capabilities.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLSoftButtonCapabilities : SDLRPCStruct

    Swift

    class SDLSoftButtonCapabilities : SDLRPCStruct

    SDLSoftButtonObject

    A soft button wrapper object that is capable of storing and switching between states

    See more

    Objective-C

    @interface SDLSoftButtonObject : NSObject

    Swift

    class SDLSoftButtonObject : NSObject

    SDLSoftButtonState

    Undocumented

    See more

    Objective-C

    @interface SDLSoftButtonState : NSObject
    
    /**
     The name of this soft button state
     */
    @property (copy, nonatomic, readonly) NSString *name;
    
    /**
     The artwork to be used with this button or nil if it is text-only
     */
    @property (strong, nonatomic, readonly, nullable) SDLArtwork *artwork;
    
    /**
     The text to be used with this button or nil if it is image-only
     */
    @property (copy, nonatomic, readonly, nullable) NSString *text;
    
    /**
     Whether or not the button should be highlighted on the UI
     */
    @property (assign, nonatomic, getter=isHighlighted) BOOL highlighted;
    
    /**
     A special system action
     */
    @property (strong, nonatomic) SDLSystemAction systemAction;
    
    /**
     An SDLSoftButton describing this state
     */
    @property (strong, nonatomic, readonly) SDLSoftButton *softButton;
    
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     Create the soft button state. Either the text or artwork or both may be set.
    
     @param stateName The name of this state for the button
     @param text The text to be displayed on the button
     @param image The image to be displayed on the button. This is assumed to be a PNG, non-persistant. The name will be the same as the state name.
     @return A new soft button state
     */
    - (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text image:(nullable UIImage *)image;
    
    /**
     Create the soft button state. Either the text or artwork or both may be set.
    
     @param stateName The name of this state for the button
     @param text The text to be displayed on the button
     @param artwork The artwork to be displayed on the button
     @return A new soft button state
     */
    - (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text artwork:(nullable SDLArtwork *)artwork;
    
    @end

    Swift

    class SDLSoftButtonState : NSObject

    SDLSpeak

    Speaks a phrase over the vehicle audio system using SDL’s TTS (text-to-speech) engine. The provided text to be spoken can be simply a text phrase, or it can consist of phoneme specifications to direct SDL’s TTS engine to speak a speech-sculpted phrase.

    Receipt of the Response indicates the completion of the Speak operation, regardless of how the Speak operation may have completed (i.e. successfully, interrupted, terminated, etc.).

    Requesting a new Speak operation while the application has another Speak operation already in progress (i.e. no corresponding Response for that in-progress Speak operation has been received yet) will terminate the in-progress Speak operation (causing its corresponding Response to be sent by SDL) and begin the requested Speak operation

    Requesting a new Speak operation while the application has an SDLAlert operation already in progress (i.e. no corresponding Response for that in-progress SDLAlert operation has been received yet) will result in the Speak operation request being rejected (indicated in the Response to the Request)

    Requesting a new SDLAlert operation while the application has a Speak operation already in progress (i.e. no corresponding Response for that in-progress Speak operation has been received yet) will terminate the in-progress Speak operation (causing its corresponding Response to be sent by SDL) and begin the requested SDLAlert operation

    Requesting a new Speak operation while the application has a SDLPerformInteraction operation already in progress (i.e. no corresponding Response for that in-progress SDLPerformInteraction operation has been received yet) will result in the Speak operation request being rejected (indicated in the Response to the Request)

    Requesting a SDLPerformInteraction operation while the application has a Speak operation already in progress (i.e. no corresponding Response for that in-progress Speak operation has been received yet) will terminate the in-progress Speak operation (causing its corresponding Response to be sent by SDL) and begin the requested SDLPerformInteraction operation

    HMI Status Requirements:

  • HMILevel: FULL, Limited
  • AudioStreamingState: Any
  • SystemContext: MAIN, MENU, VR
  • Notes:

  • When SDLAlert is issued with MENU in effect, SDLAlert is queued and played when MENU interaction is completed (i.e. SystemContext reverts to MAIN). When SDLAlert is issued with VR in effect, SDLAlert is queued and played when VR interaction is completed (i.e. SystemContext reverts to MAIN)
  • When both SDLAlert and Speak are queued during MENU or VR, they are played back in the order in which they were queued, with all existing rules for collisions still in effect
  • Additional Notes:

  • Total character limit depends on platform.
  • Chunks are limited to 500 characters; however you can have multiple TTS chunks.
  • On old systems there is a total character limit of 500 characters across all chunks. This could vary according to the VCA.
  • @since SmartDeviceLink 1.0

    See

    SDLAlert
    See more

    Objective-C

    @interface SDLSpeak : SDLRPCRequest

    Swift

    class SDLSpeak : SDLRPCRequest

    SDLSpeakResponse

    Response to SDLSpeak

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLSpeakResponse : SDLRPCResponse

    Swift

    class SDLSpeakResponse : SDLRPCResponse

    SDLStartTime

    Describes the hour, minute and second values used to set the media clock.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLStartTime : SDLRPCStruct

    Swift

    class SDLStartTime : SDLRPCStruct

    SDLStreamingMediaConfiguration

    Undocumented

    See more

    Objective-C

    @interface SDLStreamingMediaConfiguration : NSObject <NSCopying>
    
    /**
     *  Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.
     */
    @property (copy, nonatomic, nullable) NSArray<Class<SDLSecurityType>> *securityManagers;
    
    /**
     *  What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt.
     */
    @property (assign, nonatomic) SDLStreamingEncryptionFlag maximumDesiredEncryption;
    
    /**
     *  Properties to use for applications that utilize the video encoder for streaming. See VTCompressionProperties.h for more details. For example, you can set kVTCompressionPropertyKey_ExpectedFrameRate to set your framerate. Setting the framerate this way will also set the framerate if you use CarWindow automatic streaming.
     *
     *  Other properties you may want to try adjusting include kVTCompressionPropertyKey_AverageBitRate and kVTCompressionPropertyKey_DataRateLimits.
     */
    @property (copy, nonatomic, nullable) NSDictionary<NSString *, id> *customVideoEncoderSettings;
    
    /**
     Usable to change run time video stream setup behavior. Only use this and modify the results if you *really* know what you're doing. The head unit defaults are generally good.
     */
    @property (weak, nonatomic, nullable) id<SDLStreamingMediaManagerDataSource> dataSource;
    
    /**
     Set the initial view controller your video streaming content is within.
    
     Activates the haptic view parser and CarWindow systems when set. This library will also use that information to attempt to return the touched view to you in `SDLTouchManagerDelegate`.
    
     @note If you wish to alter this `rootViewController` while streaming via CarWindow, you must set a new `rootViewController` on `SDLStreamingMediaManager` and this will update both the haptic view parser and CarWindow.
    
     @warning Apps using views outside of the `UIView` heirarchy (such as OpenGL) are currently unsupported. If you app uses partial views in the heirarchy, only those views will be discovered. Your OpenGL views will not be discoverable to a haptic interface head unit and you will have to manually make these views discoverable via the `SDLSendHapticData` RPC request.
    
     @warning If the `rootViewController` is app UI and is set from the `UIViewController` class, it should only be set after viewDidAppear:animated is called. Setting the `rootViewController` in `viewDidLoad` or `viewWillAppear:animated` can cause weird behavior when setting the new frame.
    
     @warning If setting the `rootViewController` when the app returns to the foreground, the app should register for the `UIApplicationDidBecomeActive` notification and not the `UIApplicationWillEnterForeground` notification. Setting the frame after a notification from the latter can also cause weird behavior when setting the new frame.
    
     @warning While `viewDidLoad` will fire, appearance methods will not.
     */
    @property (strong, nonatomic, nullable) UIViewController *rootViewController;
    
    /**
     Declares if CarWindow will use layer rendering or view rendering. Defaults to layer rendering.
     */
    @property (assign, nonatomic) SDLCarWindowRenderingType carWindowRenderingType;
    
    /**
     When YES, the StreamingMediaManager will run a CADisplayLink with the framerate set to the video encoder settings kVTCompressionPropertyKey_ExpectedFrameRate. This then forces TouchManager (and CarWindow, if used) to sync their callbacks to the framerate. If using CarWindow, this *must* be YES. If NO, `enableSyncedPanning` on SDLTouchManager will be set to NO. Defaults to YES.
     */
    @property (assign, nonatomic) BOOL enableForcedFramerateSync;
    
    /**
     When YES, the StreamingMediaManager will disable its internal checks that the `rootViewController` only has one `supportedOrientation`. Having multiple orientations can cause streaming issues. If you wish to disable this check, set it to YES. Defaults to NO.
     */
    @property (assign, nonatomic) BOOL allowMultipleViewControllerOrientations;
    
    /**
     Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually.
    
     @return The configuration
     */
    - (instancetype)init;
    
    /**
     Manually set all the properties to the streaming media configuration
    
     @param securityManagers The security managers to use or nil for none.
     @param encryptionFlag The maximum encrpytion supported. If the connected head unit supports less than set here, it will still connect, but if it supports more than set here, it will not connect.
     @param videoSettings Custom video encoder settings to be used in video streaming.
     @param rootViewController The UIViewController wih the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews)
     @return The configuration
     */
    - (instancetype)initWithSecurityManagers:(nullable NSArray<Class<SDLSecurityType>> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary<NSString *, id> *)videoSettings dataSource:(nullable id<SDLStreamingMediaManagerDataSource>)dataSource rootViewController:(nullable UIViewController *)rootViewController;
    
    /**
     Create a secure configuration for each of the security managers provided.
    
     @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set.
     @return The configuration
     */
    - (instancetype)initWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers;
    
    /**
     Create a secure configuration for each of the security managers provided.
    
     @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set.
     @return The configuration
     */
    + (instancetype)secureConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers NS_SWIFT_UNAVAILABLE("Use an initializer instead");
    
    /**
     Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually. This is equivalent to `init`.
    
     @return The configuration
     */
    + (instancetype)insecureConfiguration NS_SWIFT_UNAVAILABLE("Use the standard initializer instead");
    
    /**
     Create a CarWindow insecure configuration with a view controller
    
     @param initialViewController The initial view controller that will be streamed
     @return The configuration
     */
    + (instancetype)autostreamingInsecureConfigurationWithInitialViewController:(UIViewController *)initialViewController;
    
    /**
     Create a CarWindow secure configuration with a view controller and security managers
    
     @param securityManagers The security managers available for secure streaming use
     @param initialViewController The initial view controller that will be streamed, this can be a basic `UIViewController` if you need to set your actual streaming view controller at a later time on `SDLManager.streamingManager.rootViewController`.
     @return The configuration
     */
    + (instancetype)autostreamingSecureConfigurationWithSecurityManagers:(NSArray<Class<SDLSecurityType>> *)securityManagers initialViewController:(UIViewController *)initialViewController;
    
    @end

    Swift

    class SDLStreamingMediaConfiguration : NSObject, NSCopying

    SDLStreamingMediaManager

    Undocumented

    See more

    Objective-C

    @interface SDLStreamingMediaManager : NSObject <SDLStreamingAudioManagerType>
    
    /**
     *  Touch Manager responsible for providing touch event notifications.
     */
    @property (nonatomic, strong, readonly) SDLTouchManager *touchManager;
    
    /**
     *  Audio Manager responsible for managing streaming audio.
     */
    @property (nonatomic, strong, readonly) SDLAudioStreamManager *audioManager;
    
    /**
     This property is used for SDLCarWindow, the ability to stream any view controller. To start, you must set an initial view controller on `SDLStreamingMediaConfiguration` `rootViewController`. After streaming begins, you can replace that view controller with a new root by placing the new view controller into this property.
     */
    @property (nonatomic, strong) UIViewController *rootViewController;
    
    /**
     A haptic interface that can be updated to reparse views within the window you've provided. Send a `SDLDidUpdateProjectionView` notification or call the `updateInterfaceLayout` method to reparse. The "output" of this haptic interface occurs in the `touchManager` property where it will call the delegate.
     */
    @property (nonatomic, strong, readonly, nullable) id<SDLFocusableItemLocatorType> focusableItemManager;
    
    /**
     *  Whether or not video streaming is supported
     *
     *  @see SDLRegisterAppInterface SDLDisplayCapabilities
     */
    @property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported;
    
    /**
     *  Whether or not the video session is connected.
     */
    @property (assign, nonatomic, readonly, getter=isVideoConnected) BOOL videoConnected;
    
    /**
     *  Whether or not the video session is encrypted. This may be different than the requestedEncryptionType.
     */
    @property (assign, nonatomic, readonly, getter=isVideoEncrypted) BOOL videoEncrypted;
    
    /**
     *  Whether or not the audio session is connected.
     */
    @property (assign, nonatomic, readonly, getter=isAudioConnected) BOOL audioConnected;
    
    /**
     *  Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType.
     */
    @property (assign, nonatomic, readonly, getter=isAudioEncrypted) BOOL audioEncrypted;
    
    /**
     *  Whether or not the video stream is paused due to either the application being backgrounded, the HMI state being either NONE or BACKGROUND, or the video stream not being ready.
     */
    @property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused;
    
    /**
     *  This is the current screen size of a connected display. This will be the size the video encoder uses to encode the raw image data.
     */
    @property (assign, nonatomic, readonly) CGSize screenSize;
    
    /**
     This is the agreed upon format of video encoder that is in use, or nil if not currently connected.
     */
    @property (strong, nonatomic, readonly, nullable) SDLVideoStreamingFormat *videoFormat;
    
    /**
     A list of all supported video formats by this manager
     */
    @property (strong, nonatomic, readonly) NSArray<SDLVideoStreamingFormat *> *supportedFormats;
    
    /**
     *  The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.
     *
     *  @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video     session has started).
     *  @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame.
     */
    @property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool;
    
    /**
     *  The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions.
     *
     *  DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt
     */
    @property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType;
    
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     Create a new streaming media manager for navigation and VPM apps with a specified configuration
    
     @param connectionManager The pass-through for RPCs
     @param configuration The configuration of this streaming media session
     @return A new streaming manager
     */
    - (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER;
    
    /**
     *  Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`.
     */
    - (void)startWithProtocol:(SDLProtocol *)protocol;
    
    /**
     *  Stop the manager. This method is used internally.
     */
    - (void)stop;
    
    /**
     *  This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit.
     *
     *  @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox
     *
     *  @return Whether or not the data was successfully encoded and sent.
     */
    - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer;
    
    /**
     *  This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit.
     *
     *  @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox
     *  @param presentationTimestamp A presentation timestamp for the frame, or kCMTimeInvalid if timestamp is unknown. If it's valid, it must be greater than the previous one.
     *
     *  @return Whether or not the data was successfully encoded and sent.
     */
    - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp;
    
    /**
     *  This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback
     *
     *  @param audioData The data in PCM audio format, to be played
     *
     *  @return Whether or not the data was successfully sent.
     */
    - (BOOL)sendAudioData:(NSData *)audioData;
    
    
    @end

    Swift

    class SDLStreamingMediaManager : NSObject, SDLStreamingAudioManagerType

    SDLSubscribeButton

    Establishes a subscription to button notifications for HMI buttons. Buttons are not necessarily physical buttons, but can also be soft buttons on a touch screen, depending on the display in the vehicle. Once subscribed to a particular button, an application will receive both SDLOnButtonEvent and SDLOnButtonPress notifications whenever that button is pressed. The application may also unsubscribe from notifications for a button by invoking the SDLUnsubscribeButton operation

    When a button is depressed, an SDLOnButtonEvent notification is sent to the application with a ButtonEventMode of BUTTONDOWN. When that same button is released, an SDLOnButtonEvent notification is sent to the application with a ButtonEventMode of BUTTONUP

    When the duration of a button depression (that is, time between depression and release) is less than two seconds, an SDLOnButtonPress notification is sent to the application (at the moment the button is released) with a ButtonPressMode of SHORT. When the duration is two or more seconds, an SDLOnButtonPress notification is sent to the application (at the moment the two seconds have elapsed) with a ButtonPressMode of LONG

    The purpose of SDLOnButtonPress notifications is to allow for programmatic detection of long button presses similar to those used to store presets while listening to the radio, for example

    When a button is depressed and released, the sequence in which notifications will be sent to the application is as follows:

    For short presses:

    • OnButtonEvent (ButtonEventMode = BUTTONDOWN)
    • OnButtonEvent (ButtonEventMode = BUTTONUP)
    • OnButtonPress (ButtonPressMode = SHORT)

    For long presses:

    • OnButtonEvent (ButtonEventMode = BUTTONDOWN)
    • OnButtonEvent (ButtonEventMode = BUTTONUP)
    • OnButtonPress (ButtonPressMode = LONG)

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 1.0
    See SDLUnsubscribeButton

    See more

    Objective-C

    @interface SDLSubscribeButton : SDLRPCRequest

    Swift

    class SDLSubscribeButton : SDLRPCRequest

    SDLSubscribeButtonResponse

    Response to SDLSubscribeButton

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLSubscribeButtonResponse : SDLRPCResponse

    Swift

    class SDLSubscribeButtonResponse : SDLRPCResponse

    SDLSubscribeVehicleData

    Subscribes for specific published vehicle data items. The data will be only sent, if it has changed. The application will be notified by the onVehicleData notification whenever new data is available. The update rate is very much dependent on sensors, vehicle architecture and vehicle type. Be also prepared for the situation that a signal is not available on a vehicle

    Function Group: Location, VehicleInfo and DrivingChara

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    Since SmartDeviceLink 2.0
    See SDLUnsubscribeVehicleData SDLGetVehicleData

    See more

    Objective-C

    @interface SDLSubscribeVehicleData : SDLRPCRequest

    Swift

    class SDLSubscribeVehicleData : SDLRPCRequest

    SDLSubscribeVehicleDataResponse

    Response to SDLSubscribeVehicleData

    Since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLSubscribeVehicleDataResponse : SDLRPCResponse

    Swift

    class SDLSubscribeVehicleDataResponse : SDLRPCResponse

    SDLSubscribeWayPoints

    A SDLSubscribeWaypoints can be sent to subscribe for any changes in waypoints/destinations

    See

    SDLUnsubscribeWaypoints

    Objective-C

    @interface SDLSubscribeWayPoints : SDLRPCRequest

    Swift

    class SDLSubscribeWayPoints : SDLRPCRequest

    SDLSubscribeWayPointsResponse

    Response to SubscribeWayPoints

    Objective-C

    @interface SDLSubscribeWayPointsResponse : SDLRPCResponse

    Swift

    class SDLSubscribeWayPointsResponse : SDLRPCResponse

    SDLSyncMsgVersion

    Specifies the version number of the SDL V4 interface. This is used by both the application and SDL to declare what interface version each is using.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLSyncMsgVersion : SDLRPCStruct

    Swift

    class SDLSyncMsgVersion : SDLRPCStruct

    SDLSyncPData

    Undocumented

    Objective-C

    @interface SDLSyncPData : SDLRPCRequest
    
    @end

    Swift

    class SDLSyncPData : SDLRPCRequest

    SDLSyncPDataResponse

    Response to SyncPData

    DEPRECATED

    Objective-C

    @interface SDLSyncPDataResponse : SDLRPCResponse

    Swift

    class SDLSyncPDataResponse : SDLRPCResponse

    SDLSystemCapability

    The systemCapabilityType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a navigationCapability should exist.

    First implemented in SDL Core v4.4

    See more

    Objective-C

    @interface SDLSystemCapability : SDLRPCStruct

    Swift

    class SDLSystemCapability : SDLRPCStruct

    SDLSystemCapabilityManager

    Undocumented

    See more

    Objective-C

    @interface SDLSystemCapabilityManager : NSObject
    
    /**
     * @see SDLDisplayCapabilities
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLDisplayCapabilities *displayCapabilities;
    
    /**
     * @see SDLHMICapabilities
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLHMICapabilities *hmiCapabilities;
    
    /**
     * If returned, the platform supports on-screen SoftButtons
     *
     * @see SDLSoftButtonCapabilities
     *
     * Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities
     */
    @property (nullable, copy, nonatomic, readonly) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;
    
    /**
     * @see SDLButtonCapabilities
     *
     * Optional, Array of length 1 - 100, of SDLButtonCapabilities
     */
    @property (nullable, copy, nonatomic, readonly) NSArray<SDLButtonCapabilities *> *buttonCapabilities;
    
    /**
     * If returned, the platform supports custom on-screen Presets
     *
     * @see SDLPresetBankCapabilities
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLPresetBankCapabilities *presetBankCapabilities;
    
    /**
     * @see SDLHMIZoneCapabilities
     *
     * Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities
     */
    @property (nullable, copy, nonatomic, readonly) NSArray<SDLHMIZoneCapabilities> *hmiZoneCapabilities;
    
    /**
     * @see SDLSpeechCapabilities
     *
     * Optional, Array of length 1 - 100, of SDLSpeechCapabilities
     */
    @property (nullable, copy, nonatomic, readonly) NSArray<SDLSpeechCapabilities> *speechCapabilities;
    
    /**
     * @see SDLPrerecordedSpeech
     *
     * Optional, Array of length 1 - 100, of SDLPrerecordedSpeech
     */
    @property (nullable, copy, nonatomic, readonly) NSArray<SDLPrerecordedSpeech> *prerecordedSpeechCapabilities;
    
    /**
     * @see SDLVRCapabilities
     *
     * True if the head unit supports voice recognition; false if not.
     */
    @property (nonatomic, assign, readonly) BOOL vrCapability;
    
    /**
     * @see SDLAudioPassThruCapabilities
     *
     * Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities
     */
    @property (nullable, copy, nonatomic, readonly) NSArray<SDLAudioPassThruCapabilities *> *audioPassThruCapabilities;
    
    /**
     * @see SDLAudioPassThruCapabilities
     *
     * Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities
     */
    @property (nullable, strong, nonatomic, readonly) SDLAudioPassThruCapabilities *pcmStreamCapability;
    
    /**
     * If returned, the platform supports navigation
     *
     * @see SDLNavigationCapability
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLNavigationCapability *navigationCapability;
    
    /**
     * If returned, the platform supports making phone calls
     *
     * @see SDLPhoneCapability
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLPhoneCapability *phoneCapability;
    
    /**
     * If returned, the platform supports video streaming
     *
     * @see SDLVideoStreamingCapability
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLVideoStreamingCapability *videoStreamingCapability;
    
    /**
     * If returned, the platform supports remote control capabilities
     *
     * @see SDLRemoteControlCapabilities
     *
     * Optional
     */
    @property (nullable, strong, nonatomic, readonly) SDLRemoteControlCapabilities *remoteControlCapability;
    
    /**
     *  Init is unavailable. Dependencies must be injected using initWithConnectionManager:
     *
     *  @return nil
     */
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     *  Creates a new system capability manager with a specified connection manager
     *
     *  @param manager A connection manager to use to forward on RPCs
     *
     *  @return An instance of SDLSystemCapabilityManager
     */
    - (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)manager NS_DESIGNATED_INITIALIZER;
    
    /**
     *  Stops the manager. This method is used internally.
     */
    - (void)stop;
    
    /**
     *  Retrieves a capability type from the remote system. This function must be called in order to retrieve the values of `navigationCapability`, `phoneCapability`, `videoStreamingCapability` and `remoteControlCapability`. If you do not call this method first, those values will be nil. After calling this method, assuming there is no error in the handler, you may retrieve the capability you requested from the manager within the handler.
     *
     *  @param type The type of capability to retrieve
     *  @param handler The handler to be called when the retrieval is complete
     */
    - (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler;
    
    
    @end

    Swift

    class SDLSystemCapabilityManager : NSObject

    SDLTTSChunk

    Specifies what is to be spoken. This can be simply a text phrase, which SDL will speak according to its own rules. It can also be phonemes from either the Microsoft SAPI phoneme set, or from the LHPLUS phoneme set. It can also be a pre-recorded sound in WAV format (either developer-defined, or provided by the SDL platform).

    In SDL, words, and therefore sentences, can be built up from phonemes and are used to explicitly provide the proper pronounciation to the TTS engine. For example, to have SDL pronounce the word read as red, rather than as when it is pronounced like reed, the developer would use phonemes to express this desired pronounciation.

    For more information about phonemes, see http://en.wikipedia.org/wiki/Phoneme.

    @since SmartDeviceLink 1.0

    See more

    Objective-C

    @interface SDLTTSChunk : SDLRPCStruct

    Swift

    class SDLTTSChunk : SDLRPCStruct

    SDLTemperature

    Struct using in Remote Control representing a temperature.

    See more

    Objective-C

    @interface SDLTemperature : SDLRPCStruct

    Swift

    class SDLTemperature : SDLRPCStruct

    SDLTextField

    Struct defining the characteristics of a displayed field on the HMI.

    @since SDL 1.0

    See more

    Objective-C

    @interface SDLTextField : SDLRPCStruct

    Swift

    class SDLTextField : SDLRPCStruct

    SDLTireStatus

    Struct used in Vehicle Data; the status and pressure of the tires.

    See more

    Objective-C

    @interface SDLTireStatus : SDLRPCStruct

    Swift

    class SDLTireStatus : SDLRPCStruct

    SDLTouch

    Undocumented

    See more

    Objective-C

    @interface SDLTouch : NSObject
    
    /**
     *  @abstract
     *      Initializes a touch.
     *  @param touchEvent
     *      Incoming touch event from onOnTouchEvent notification.
     *  @return SDLTouch
     *      Instance of SDLTouch.
     */
    - (instancetype)initWithTouchEvent:(SDLTouchEvent *)touchEvent;
    
    /**
     *  @abstract
     *      Identifier of the touch's finger. Refer to SDLTouchIdentifier for valid 
     *      identifiers.
     */
    @property (nonatomic, assign, readonly) NSInteger identifier;
    
    /**
     *  @abstract
     *      Location of touch point, in the head unit's coordinate system.
     */
    @property (nonatomic, assign, readonly) CGPoint location;
    
    /**
     *  @abstract
     *      Timestamp in which the touch occured.
     */
    @property (nonatomic, assign, readonly) NSUInteger timeStamp;
    
    /**
     *  @abstract
     *      Returns whether or not this touch is a first finger.
     */
    @property (nonatomic, assign, readonly) BOOL isFirstFinger;
    
    /**
     *  @abstract
     *      Returns whether or not this touch is a second finger.
     */
    @property (nonatomic, assign, readonly) BOOL isSecondFinger;
    
    @end

    Swift

    class SDLTouch : NSObject

    SDLTouchCoord

    The coordinate of a touch, used in a touch event

    See more

    Objective-C

    @interface SDLTouchCoord : SDLRPCStruct

    Swift

    class SDLTouchCoord : SDLRPCStruct

    SDLTouchEvent

    A touch which occurred on the IVI system during projection

    See more

    Objective-C

    @interface SDLTouchEvent : SDLRPCStruct

    Swift

    class SDLTouchEvent : SDLRPCStruct

    SDLTouchEventCapabilities

    The capabilities of touches during projection applications

    See more

    Objective-C

    @interface SDLTouchEventCapabilities : SDLRPCStruct

    Swift

    class SDLTouchEventCapabilities : SDLRPCStruct

    SDLTouchManager

    Undocumented

    See more

    Objective-C

    @interface SDLTouchManager : NSObject
    
    /**
     Notified of processed touches such as pinches, pans, and taps
     */
    @property (nonatomic, weak, nullable) id<SDLTouchManagerDelegate> touchEventDelegate;
    
    /**
     *  @abstract
     *      Returns all OnTouchEvent notifications as SDLTouch and SDLTouchType objects.
     */
    @property (copy, nonatomic, nullable) SDLTouchEventHandler touchEventHandler;
    
    /**
     Distance between two taps on the screen, in the head unit's coordinate system, used for registering double-tap callbacks.
    
     @note Defaults to 50 px.
     */
    @property (nonatomic, assign) CGFloat tapDistanceThreshold;
    
    /**
     Minimum distance for a pan gesture in the head unit's coordinate system, used for registering pan callbacks.
     
     @note Defaults to 8 px.
     */
    @property (nonatomic, assign) CGFloat panDistanceThreshold;
    
    /**
     *  @abstract
     *      Time (in seconds) between tap events to register a double-tap callback.
     *  @remark
     *      Default is 0.4 seconds.
     */
    @property (nonatomic, assign) CGFloat tapTimeThreshold;
    
    /**
     *  @abstract
     *      Time (in seconds) between movement events to register panning or pinching 
     *      callbacks.
     *  @remark
     *      Default is 0.05 seconds.
     */
    @property (nonatomic, assign) CGFloat movementTimeThreshold __deprecated_msg("This is now unused, the movement time threshold is now synced to the framerate automatically");
    
    /**
     If set to NO, the display link syncing will be ignored and `movementTimeThreshold` will be used. Defaults to YES.
     */
    @property (assign, nonatomic) BOOL enableSyncedPanning;
    
    /**
     *  @abstract
     *      Boolean denoting whether or not the touch manager should deliver touch event
     *      callbacks.
     *  @remark
     *      Default is true.
     */
    @property (nonatomic, assign, getter=isTouchEnabled) BOOL touchEnabled;
    
    /**
     *  @abstract
     *      Cancels pending touch event timers that may be in progress.
     *  @remark
     *      Currently only impacts the timer used to register single taps.
     */
    - (void)cancelPendingTouches;
    
    - (instancetype)init NS_UNAVAILABLE;
    
    /**
     Initialize a touch manager with a hit tester if available
    
     @param hitTester The hit tester to be used to correlate a point with a view
     @return The initialized touch manager
     */
    - (instancetype)initWithHitTester:(nullable id<SDLFocusableItemHitTester>)hitTester;
    
    /**
     Called by SDLStreamingMediaManager in sync with the streaming framerate. This helps to moderate panning gestures by allowing the UI to be modified in time with the framerate.
     */
    - (void)syncFrame;
    
    @end

    Swift

    class SDLTouchManager : NSObject

    SDLTurn

    A struct used in UpdateTurnList for Turn-by-Turn navigation applications

    See more

    Objective-C

    @interface SDLTurn : SDLRPCStruct

    Swift

    class SDLTurn : SDLRPCStruct

    SDLUnregisterAppInterface

    Terminates an application’s interface registration. This causes SDL® to dispose of all resources associated with the application’s interface registration (e.g. Command Menu items, Choice Sets, button subscriptions, etc.)

    After the UnregisterAppInterface operation is performed, no other operations can be performed until a new app interface registration is established by calling {@linkplain RegisterAppInterface}

    HMILevel can be FULL, LIMITED, BACKGROUND or NONE

    See SDLRegisterAppInterface SDLOnAppInterfaceUnregistered

    Objective-C

    @interface SDLUnregisterAppInterface : SDLRPCRequest

    Swift

    class SDLUnregisterAppInterface : SDLRPCRequest

    SDLUnregisterAppInterfaceResponse

    Response to UnregisterAppInterface

    SmartDeviceLink 1.0

    Objective-C

    @interface SDLUnregisterAppInterfaceResponse : SDLRPCResponse

    Swift

    class SDLUnregisterAppInterfaceResponse : SDLRPCResponse

    SDLUnsubscribeButton

    Deletes a subscription to button notifications for the specified button. For more information about button subscriptions, see SDLSubscribeButton

    Application can unsubscribe from a button that is currently being pressed (i.e. has not yet been released), but app will not get button event

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    @since SmartDeviceLink 1.0
    See SDLSubscribeButton

    See more

    Objective-C

    @interface SDLUnsubscribeButton : SDLRPCRequest

    Swift

    class SDLUnsubscribeButton : SDLRPCRequest

    SDLUnsubscribeButtonResponse

    Response to UnsubscribeButton

    Since SmartDeviceLink 1.0

    Objective-C

    @interface SDLUnsubscribeButtonResponse : SDLRPCResponse

    Swift

    class SDLUnsubscribeButtonResponse : SDLRPCResponse

    SDLUnsubscribeVehicleData

    This function is used to unsubscribe the notifications from the subscribeVehicleData function

    Function Group: Location, VehicleInfo and DrivingChara

    HMILevel needs to be FULL, LIMITED or BACKGROUND

    @since SmartDeviceLink 2.0
    See SDLSubscribeVehicleData SDLGetVehicleData

    See more

    Objective-C

    @interface SDLUnsubscribeVehicleData : SDLRPCRequest

    Swift

    class SDLUnsubscribeVehicleData : SDLRPCRequest

    SDLUnsubscribeVehicleDataResponse

    Response to UnsubscribeVehicleData

    since SmartDeviceLink 2.0

    See more

    Objective-C

    @interface SDLUnsubscribeVehicleDataResponse : SDLRPCResponse

    Swift

    class SDLUnsubscribeVehicleDataResponse : SDLRPCResponse

    SDLUnsubscribeWayPoints

    Request to unsubscribe from navigation WayPoints and Destination

    Objective-C

    @interface SDLUnsubscribeWayPoints : SDLRPCRequest

    Swift

    class SDLUnsubscribeWayPoints : SDLRPCRequest

    SDLUnsubscribeWayPointsResponse

    Response to UnsubscribeWayPoints

    Objective-C

    @interface SDLUnsubscribeWayPointsResponse : SDLRPCResponse

    Swift

    class SDLUnsubscribeWayPointsResponse : SDLRPCResponse

    SDLUpdateTurnList

    Updates the list of next maneuvers, which can be requested by the user pressing the softbutton

    • “Turns” on the Navigation base screen. Three softbuttons are predefined by the system: Up, Down, Close. *

    • @since SmartDeviceLink 2.0
    See more

    Objective-C

    @interface SDLUpdateTurnList : SDLRPCRequest

    Swift

    class SDLUpdateTurnList : SDLRPCRequest

    SDLUpdateTurnListResponse

    Response to UpdateTurnList

    Since SmartDeviceLink 2.0

    Objective-C

    @interface SDLUpdateTurnListResponse : SDLRPCResponse

    Swift

    class SDLUpdateTurnListResponse : SDLRPCResponse

    SDLVehicleDataResult

    Individual published data request result

    See more

    Objective-C

    @interface SDLVehicleDataResult : SDLRPCStruct

    Swift

    class SDLVehicleDataResult : SDLRPCStruct

    SDLVehicleType

    Describes the type of vehicle the mobile phone is connected with.

    @since SDL 2.0

    See more

    Objective-C

    @interface SDLVehicleType : SDLRPCStruct

    Swift

    class SDLVehicleType : SDLRPCStruct

    SDLVideoStreamingCapability

    Contains information about this system’s video streaming capabilities

    See more

    Objective-C

    @interface SDLVideoStreamingCapability : SDLRPCStruct

    Swift

    class SDLVideoStreamingCapability : SDLRPCStruct

    SDLVideoStreamingFormat

    An available format for video streaming in projection applications

    See more

    Objective-C

    @interface SDLVideoStreamingFormat : SDLRPCStruct

    Swift

    class SDLVideoStreamingFormat : SDLRPCStruct

    SDLVoiceCommand

    Undocumented

    See more

    Objective-C

    @interface SDLVoiceCommand : NSObject
    
    /**
     The strings the user can say to activate this voice command
     */
    @property (copy, nonatomic, readonly) NSArray<NSString *> *voiceCommands;
    
    /**
     The handler that will be called when the command is activated
     */
    @property (copy, nonatomic, readonly, nullable) SDLVoiceCommandSelectionHandler handler;
    
    - (instancetype)initWithVoiceCommands:(NSArray<NSString *> *)voiceCommands handler:(SDLVoiceCommandSelectionHandler)handler;
    
    @end

    Swift

    class SDLVoiceCommand : NSObject

    SDLVRHelpItem

    A help item for voice commands, used locally in interaction lists and globally

    See more

    Objective-C

    @interface SDLVRHelpItem : SDLRPCStruct

    Swift

    class SDLVRHelpItem : SDLRPCStruct
    View on GitHub.com