diff options
793 files changed, 34647 insertions, 6908 deletions
diff --git a/.travis.yml b/.travis.yml index 8294a7830..a9201e483 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode10 +osx_image: xcode10.2 xcode_project: SmartDeviceLink-iOS.xcodeproj xcode_scheme: SmartDeviceLink xcode_sdk: iphonesimulator12.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 44b020c05..b85ae2367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,36 @@ +# 6.2.0 +### Versions +* Supports [SDL RPC Spec 5.1.0]() and [SDL Protocol Spec 5.2.0](). + +### Enhancements +* Added a screen informing the user what they must do if a video streaming app is not in the foreground on their mobile device (https://github.com/smartdevicelink/sdl_ios/issues/1058). +* `SDLArtwork` added an initializer for static icons, allowing the screen manager to handle displaying static icons in its supported fields (https://github.com/smartdevicelink/sdl_ios/issues/1062). +* Added better `SetMediaClockTimer` initializers (https://github.com/smartdevicelink/sdl_ios/issues/1071). +* All received messages are logged in verbose logging (https://github.com/smartdevicelink/sdl_ios/issues/1133). +* Added `SDLLifecycleConfiguration` properties for enforcing minimum `protocolVersion` and `rpcVersion` connections to head units, effectively blocking older head units as desired (https://github.com/smartdevicelink/sdl_ios/issues/1142). +* Added RPC support for app services, including all three current app service types: `media`, `weather`, and `navigation` (https://github.com/smartdevicelink/sdl_ios/issues/1147, https://github.com/smartdevicelink/sdl_ios/issues/1148 https://github.com/smartdevicelink/sdl_ios/issues/1162). +* Added support for the cloud app transport, enabling OEM apps to expose endpoints for cloud apps to the system policy table (https://github.com/smartdevicelink/sdl_ios/issues/1166). +* Updated Swift example app to Swift 4.2 (https://github.com/smartdevicelink/sdl_ios/issues/1185). +* Updated testing dependencies and Travis CI (https://github.com/smartdevicelink/sdl_ios/issues/1208). +* Added automatic updates and caching to the System Capability Manager for v5.1+ head units (https://github.com/smartdevicelink/sdl_ios/issues/1212). + +### Bug Fixes +* Fixed IAP-Bluetooth to IAP-USB transport switching (https://github.com/smartdevicelink/sdl_ios/issues/1079). +* Fixed an issue where the manager would attempt to reconnect even if the head unit unregistered the app for a reason where the app should not reconnect (https://github.com/smartdevicelink/sdl_ios/issues/1084, https://github.com/smartdevicelink/sdl_ios/issues/1097). +* Fixed duplicate HMI status logs (https://github.com/smartdevicelink/sdl_ios/issues/1124). +* Fixed `SDLChoiceManager` not deleting test choice (https://github.com/smartdevicelink/sdl_ios/issues/1129). +* Fixed video streaming reference cycle (https://github.com/smartdevicelink/sdl_ios/issues/1130). +* Improved RTC video streaming resumption (https://github.com/smartdevicelink/sdl_ios/issues/1137). +* Updated `SendLocation` API documentation (https://github.com/smartdevicelink/sdl_ios/issues/1170). +* Added more informative exception on creation of an invalid `SDLSoftButtonState` (https://github.com/smartdevicelink/sdl_ios/issues/1126). +* Fixed numerous crashes in RELEASE builds when connected to head units that are providing invalid data (DEBUG builds will continue to crash unless the log configuration is altered to disable those assertions in DEBUG as well). (https://github.com/smartdevicelink/sdl_ios/issues/1153, https://github.com/smartdevicelink/sdl_ios/issues/1159, https://github.com/smartdevicelink/sdl_ios/issues/1161, https://github.com/smartdevicelink/sdl_ios/issues/1198, https://github.com/smartdevicelink/sdl_ios/issues/1218, https://github.com/smartdevicelink/sdl_ios/issues/1230) +* Fixed Swift 4.2 support in `SDLPermissionManager` by removing some `SDLBool` specifier protocols from `NSNumber` callbacks in `NSDictionary` (https://github.com/smartdevicelink/sdl_ios/issues/1190). +* Fix calling single tap callback checks for the hit view in the `SDLTouchManager` from a background thread. The callback itself will continue to occur on a background thread until the next major version change. (https://github.com/smartdevicelink/sdl_ios/issues/1207) +* Fixed max automatic correlation id to match protocol spec max of `INT32_MAX` instead of `UINT16_MAX`. (https://github.com/smartdevicelink/sdl_ios/issues/1214) +* Fixed some `SDLAppInterfaceUnregisteredReason` enums not being available in the sdl_ios library. (https://github.com/smartdevicelink/sdl_ios/issues/1216) +* Fixed head units that don't support choice set `menuName` required parameter causing issues. Proper errors will now be thrown. (https://github.com/smartdevicelink/sdl_ios/issues/1220) +* Fixed app attempting a reconnect after being unregistered for a `PROTOCOL_VIOLATION`. (https://github.com/smartdevicelink/sdl_ios/issues/1223) + # 6.1.2 ### Bug Fixes * Fix external accessories never reconnecting if connected over both Bluetooth and USB when one transport is disconnected (https://github.com/smartdevicelink/sdl_ios/issues/1113). diff --git a/Cartfile.private b/Cartfile.private index 7ef1104ea..6b9ca7aa6 100644 --- a/Cartfile.private +++ b/Cartfile.private @@ -1,4 +1,4 @@ -github "Quick/Quick" ~> 1.2 -github "Quick/Nimble" ~> 7.0 +github "Quick/Quick" ~> 2.0 +github "Quick/Nimble" ~> 8.0 github "erikdoe/ocmock" ~> 3.4 -github "facebook/ios-snapshot-test-case" ~> 2.1 +github "uber/ios-snapshot-test-case" ~> 6.0 diff --git a/Cartfile.resolved b/Cartfile.resolved index 45a305d09..ad013b84e 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1,4 +1,4 @@ -github "Quick/Nimble" "v7.3.0" -github "Quick/Quick" "v1.3.1" -github "erikdoe/ocmock" "v3.4.2" -github "facebook/ios-snapshot-test-case" "2.1.4" +github "Quick/Nimble" "v8.0.1" +github "Quick/Quick" "v2.0.0" +github "erikdoe/ocmock" "v3.4.3" +github "uber/ios-snapshot-test-case" "6.0.3" diff --git a/Example Apps/Example ObjC/ButtonManager.m b/Example Apps/Example ObjC/ButtonManager.m index 9c7a0779f..786d5027b 100644 --- a/Example Apps/Example ObjC/ButtonManager.m +++ b/Example Apps/Example ObjC/ButtonManager.m @@ -73,7 +73,7 @@ NS_ASSUME_NONNULL_BEGIN } - (SDLSoftButtonObject *)sdlex_softButtonAlertWithManager:(SDLManager *)manager { - SDLSoftButtonState *alertImageAndTextState = [[SDLSoftButtonState alloc] initWithStateName:AlertSoftButtonImageState text:AlertSoftButtonText image:[[UIImage imageNamed:AlertBWIconName] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]]; + SDLSoftButtonState *alertImageAndTextState = [[SDLSoftButtonState alloc] initWithStateName:AlertSoftButtonImageState text:AlertSoftButtonText artwork:[SDLArtwork artworkWithImage:[[UIImage imageNamed:CarBWIconImageName] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] asImageFormat:SDLArtworkImageFormatPNG]]; SDLSoftButtonState *alertTextState = [[SDLSoftButtonState alloc] initWithStateName:AlertSoftButtonTextState text:AlertSoftButtonText image:nil]; __weak typeof(self) weakself = self; diff --git a/Example Apps/Example ObjC/MenuManager.m b/Example Apps/Example ObjC/MenuManager.m index 083d368d8..b0b8c2138 100644 --- a/Example Apps/Example ObjC/MenuManager.m +++ b/Example Apps/Example ObjC/MenuManager.m @@ -25,6 +25,7 @@ NS_ASSUME_NONNULL_BEGIN [self sdlex_menuCellShowPerformInteractionWithManager:manager performManager:performManager], [self sdlex_menuCellRecordInCarMicrophoneAudioWithManager:manager], [self sdlex_menuCellDialNumberWithManager:manager], + [self sdlex_menuCellChangeTemplateWithManager:manager], [self sdlex_menuCellWithSubmenuWithManager:manager]]; } @@ -86,6 +87,37 @@ NS_ASSUME_NONNULL_BEGIN }]; } ++ (SDLMenuCell *)sdlex_menuCellChangeTemplateWithManager:(SDLManager *)manager { + + /// Lets give an example of 2 templates + NSMutableArray *submenuItems = [NSMutableArray array]; + NSString *errorMessage = @"Changing the template failed"; + + // Non - Media + SDLMenuCell *cell = [[SDLMenuCell alloc] initWithTitle:@"Non - Media (Default)" icon:nil voiceCommands:nil handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLSetDisplayLayout* display = [[SDLSetDisplayLayout alloc] initWithPredefinedLayout:SDLPredefinedLayoutNonMedia]; + [manager sendRequest:display withResponseHandler:^(SDLRPCRequest *request, SDLRPCResponse *response, NSError *error) { + if (![response.resultCode isEqualToEnum:SDLResultSuccess]) { + [manager sendRequest:[AlertManager alertWithMessageAndCloseButton:errorMessage textField2:nil]]; + } + }]; + }]; + [submenuItems addObject:cell]; + + // Graphic With Text + SDLMenuCell *cell2 = [[SDLMenuCell alloc] initWithTitle:@"Graphic With Text" icon:nil voiceCommands:nil handler:^(SDLTriggerSource _Nonnull triggerSource) { + SDLSetDisplayLayout* display = [[SDLSetDisplayLayout alloc] initWithPredefinedLayout:SDLPredefinedLayoutGraphicWithText]; + [manager sendRequest:display withResponseHandler:^(SDLRPCRequest *request, SDLRPCResponse *response, NSError *error) { + if (![response.resultCode isEqualToEnum:SDLResultSuccess]) { + [manager sendRequest:[AlertManager alertWithMessageAndCloseButton:errorMessage textField2:nil]]; + } + }]; + }]; + [submenuItems addObject:cell2]; + + return [[SDLMenuCell alloc] initWithTitle:ACSubmenuTemplateMenuName icon:nil subCells:[submenuItems copy]]; +} + + (SDLMenuCell *)sdlex_menuCellWithSubmenuWithManager:(SDLManager *)manager { NSMutableArray *submenuItems = [NSMutableArray array]; for (int i = 0; i < 75; i++) { diff --git a/Example Apps/Example ObjC/PerformInteractionManager.m b/Example Apps/Example ObjC/PerformInteractionManager.m index 82c8a6535..ea4c42503 100644 --- a/Example Apps/Example ObjC/PerformInteractionManager.m +++ b/Example Apps/Example ObjC/PerformInteractionManager.m @@ -43,7 +43,7 @@ NS_ASSUME_NONNULL_BEGIN } - (NSArray<SDLChoiceCell *> *)cells { - SDLChoiceCell *firstChoice = [[SDLChoiceCell alloc] initWithText:PICSFirstChoice]; + SDLChoiceCell *firstChoice = [[SDLChoiceCell alloc] initWithText:PICSFirstChoice artwork:[SDLArtwork artworkWithStaticIcon:SDLStaticIconNameKey] voiceCommands:nil]; SDLChoiceCell *secondChoice = [[SDLChoiceCell alloc] initWithText:PICSSecondChoice]; SDLChoiceCell *thirdChoice = [[SDLChoiceCell alloc] initWithText:PICSThirdChoice]; diff --git a/Example Apps/Example ObjC/ProxyManager.m b/Example Apps/Example ObjC/ProxyManager.m index 317b9cb92..a510c79ee 100644 --- a/Example Apps/Example ObjC/ProxyManager.m +++ b/Example Apps/Example ObjC/ProxyManager.m @@ -129,7 +129,7 @@ NS_ASSUME_NONNULL_BEGIN config.ttsName = [SDLTTSChunk textChunksFromString:ExampleAppName]; config.language = SDLLanguageEnUs; config.languagesSupported = @[SDLLanguageEnUs, SDLLanguageFrCa, SDLLanguageEsMx]; - config.appType = SDLAppHMITypeMedia; + config.appType = SDLAppHMITypeDefault; SDLRGBColor *green = [[SDLRGBColor alloc] initWithRed:126 green:188 blue:121]; SDLRGBColor *white = [[SDLRGBColor alloc] initWithRed:249 green:251 blue:254]; diff --git a/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist b/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist index 3cb8ebe7d..a89d8894e 100644 --- a/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist +++ b/Example Apps/Example ObjC/SmartDeviceLink-Example-ObjC-Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>6.1.2</string> + <string>6.2.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> diff --git a/Example Apps/Example Swift/AppDelegate.swift b/Example Apps/Example Swift/AppDelegate.swift index fd42468d3..d602970c7 100644 --- a/Example Apps/Example Swift/AppDelegate.swift +++ b/Example Apps/Example Swift/AppDelegate.swift @@ -13,7 +13,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { AppUserDefaults.setDefaults() diff --git a/Example Apps/Example Swift/AudioManager.swift b/Example Apps/Example Swift/AudioManager.swift index a2e80929d..6ea7e8813 100644 --- a/Example Apps/Example Swift/AudioManager.swift +++ b/Example Apps/Example Swift/AudioManager.swift @@ -127,12 +127,12 @@ private extension AudioManager { /// /// - Parameter data: The audio data /// - Returns: An AVAudioPCMBuffer object - func createPCMBuffer(with data: Data) -> AVAudioPCMBuffer { + func createPCMBuffer(with data: Data) -> AVAudioPCMBuffer? { audioData?.append(data) - let audioFormat = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: 16000, channels: 1, interleaved: false) + guard let audioFormat = AVAudioFormat(commonFormat: .pcmFormatInt16, sampleRate: 16000, channels: 1, interleaved: false) else { return nil } let numFrames = UInt32(data.count) / (audioFormat.streamDescription.pointee.mBytesPerFrame) - let buffer = AVAudioPCMBuffer(pcmFormat: audioFormat, frameCapacity: numFrames) + guard let buffer = AVAudioPCMBuffer(pcmFormat: audioFormat, frameCapacity: numFrames) else { return nil } buffer.frameLength = numFrames let bufferChannels = buffer.int16ChannelData! let bufferDataCount = data.copyBytes(to: UnsafeMutableBufferPointer(start: bufferChannels[0], count: data.count)) diff --git a/Example Apps/Example Swift/ConnectionContainerViewController.swift b/Example Apps/Example Swift/ConnectionContainerViewController.swift index 431888dc9..4e6dd3895 100644 --- a/Example Apps/Example Swift/ConnectionContainerViewController.swift +++ b/Example Apps/Example Swift/ConnectionContainerViewController.swift @@ -69,16 +69,16 @@ class ConnectionContainerViewController: UIViewController { } // Mark: - View functions func removeFromView() { - let vc = self.childViewControllers.last + let vc = self.children.last vc?.view.removeFromSuperview() - vc?.removeFromParentViewController() + vc?.removeFromParent() } func loadChildViewController(index: Int?) { AppUserDefaults.shared.lastUsedSegment = index let initialViewController: UIViewController = viewControllers[index!] - self.addChildViewController(initialViewController) + self.addChild(initialViewController) view.addSubview(initialViewController.view) - initialViewController.didMove(toParentViewController: self) + initialViewController.didMove(toParent: self) } } diff --git a/Example Apps/Example Swift/MenuManager.swift b/Example Apps/Example Swift/MenuManager.swift index 959265a74..c5171510d 100644 --- a/Example Apps/Example Swift/MenuManager.swift +++ b/Example Apps/Example Swift/MenuManager.swift @@ -21,6 +21,7 @@ class MenuManager: NSObject { menuCellShowPerformInteraction(with: manager, choiceSetManager: choiceSetManager), menuCellRecordInCarMicrophoneAudio(with: manager), menuCellDialNumber(with: manager), + menuCellChangeTemplate(with: manager), menuCellWithSubmenu(with: manager)] } @@ -113,6 +114,43 @@ private extension MenuManager { VehicleDataManager.checkPhoneCallCapability(manager: manager, phoneNumber:"555-555-5555") }) } + + /// Menu item that changes the default template + /// + /// - Parameter manager: The SDL Manager + /// - Returns: A SDLMenuCell object + class func menuCellChangeTemplate(with manager: SDLManager) -> SDLMenuCell { + + /// Lets give an example of 2 templates + var submenuItems = [SDLMenuCell]() + let errorMessage = "Changing the template failed" + + /// Non-Media + let submenuTitleNonMedia = "Non - Media (Default)" + submenuItems.append(SDLMenuCell(title: submenuTitleNonMedia, icon: nil, voiceCommands: nil, handler: { (triggerSource) in + let display = SDLSetDisplayLayout(predefinedLayout: .nonMedia) + manager.send(request: display) { (request, response, error) in + guard response?.resultCode == .success else { + manager.send(AlertManager.alertWithMessageAndCloseButton(errorMessage)) + return + } + } + })) + + /// Graphic with Text + let submenuTitleGraphicText = "Graphic With Text" + submenuItems.append(SDLMenuCell(title: submenuTitleGraphicText, icon: nil, voiceCommands: nil, handler: { (triggerSource) in + let display = SDLSetDisplayLayout(predefinedLayout: .graphicWithText) + manager.send(request: display) { (request, response, error) in + guard response?.resultCode == .success else { + manager.send(AlertManager.alertWithMessageAndCloseButton(errorMessage)) + return + } + } + })) + + return SDLMenuCell(title: ACSubmenuTemplateMenuName, icon: nil, subCells: submenuItems) + } /// Menu item that opens a submenu when selected /// diff --git a/Example Apps/Example Swift/PerformInteractionManager.swift b/Example Apps/Example Swift/PerformInteractionManager.swift index fcf330f86..13e26e7fe 100644 --- a/Example Apps/Example Swift/PerformInteractionManager.swift +++ b/Example Apps/Example Swift/PerformInteractionManager.swift @@ -30,9 +30,9 @@ class PerformInteractionManager: NSObject { private extension PerformInteractionManager { /// The PICS menu items var choiceCells: [SDLChoiceCell] { - let firstChoice = SDLChoiceCell(text: PICSFirstChoice, artwork: nil, voiceCommands: nil) - let secondChoice = SDLChoiceCell(text: PICSSecondChoice, artwork: nil, voiceCommands: nil) - let thirdChoice = SDLChoiceCell(text: PICSThirdChoice, artwork: nil, voiceCommands: nil) + let firstChoice = SDLChoiceCell(text: PICSFirstChoice, artwork: SDLArtwork(staticIcon: .key), voiceCommands: nil) + let secondChoice = SDLChoiceCell(text: PICSSecondChoice) + let thirdChoice = SDLChoiceCell(text: PICSThirdChoice) return [firstChoice, secondChoice, thirdChoice] } diff --git a/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist b/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist index 70b921dce..3d6caffc6 100644 --- a/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist +++ b/Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>6.1.2</string> + <string>6.2.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> diff --git a/Example Apps/Example Swift/VehicleDataManager.swift b/Example Apps/Example Swift/VehicleDataManager.swift index 08b2881c3..c5e2b187e 100644 --- a/Example Apps/Example Swift/VehicleDataManager.swift +++ b/Example Apps/Example Swift/VehicleDataManager.swift @@ -33,7 +33,7 @@ extension VehicleDataManager { /// Subscribes to odometer data. You must subscribe to a notification with name `SDLDidReceiveVehicleData` to get the new data when the odometer data changes. func subscribeToVehicleOdometer() { let subscribeToVehicleOdometer = SDLSubscribeVehicleData() - subscribeToVehicleOdometer.odometer = true + subscribeToVehicleOdometer.odometer = true as NSNumber & SDLBool sdlManager.send(request: subscribeToVehicleOdometer) { [unowned self] (request, response, error) in guard let result = response?.resultCode else { return } @@ -73,7 +73,7 @@ extension VehicleDataManager { /// Unsubscribes to vehicle odometer data. func unsubscribeToVehicleOdometer() { let unsubscribeToVehicleOdometer = SDLUnsubscribeVehicleData() - unsubscribeToVehicleOdometer.odometer = true + unsubscribeToVehicleOdometer.odometer = true as NSNumber & SDLBool sdlManager.send(request: unsubscribeToVehicleOdometer) { (request, response, error) in guard let response = response, response.resultCode == .success else { return } self.resetOdometer() @@ -83,7 +83,7 @@ extension VehicleDataManager { /// Notification containing the updated vehicle data. /// /// - Parameter notification: A SDLOnVehicleData notification - func vehicleDataNotification(_ notification: SDLRPCNotificationNotification) { + @objc func vehicleDataNotification(_ notification: SDLRPCNotificationNotification) { guard let handler = refreshUIHandler, let onVehicleData = notification.notification as? SDLOnVehicleData, let odometer = onVehicleData.odometer else { return } diff --git a/Example Apps/Shared/AppConstants.h b/Example Apps/Shared/AppConstants.h index 4ec2851b1..1c557c969 100644 --- a/Example Apps/Shared/AppConstants.h +++ b/Example Apps/Shared/AppConstants.h @@ -73,6 +73,7 @@ extern NSString * const ACRecordInCarMicrophoneAudioMenuName; extern NSString * const ACDialPhoneNumberMenuName; extern NSString * const ACSubmenuMenuName; extern NSString * const ACSubmenuItemMenuName; +extern NSString * const ACSubmenuTemplateMenuName; extern NSString * const ACAccelerationPedalPositionMenuName; extern NSString * const ACAirbagStatusMenuName; diff --git a/Example Apps/Shared/AppConstants.m b/Example Apps/Shared/AppConstants.m index 016985ff2..c96464d63 100644 --- a/Example Apps/Shared/AppConstants.m +++ b/Example Apps/Shared/AppConstants.m @@ -71,6 +71,7 @@ NSString * const ACRecordInCarMicrophoneAudioMenuName = @"Record In-Car Micropho NSString * const ACDialPhoneNumberMenuName = @"Dial Phone Number"; NSString * const ACSubmenuMenuName = @"Submenu"; NSString * const ACSubmenuItemMenuName = @"Item"; +NSString * const ACSubmenuTemplateMenuName = @"Change Template"; NSString * const ACAccelerationPedalPositionMenuName = @"Acceleration Pedal Position"; NSString * const ACAirbagStatusMenuName = @"Airbag Status"; @@ -39,10 +39,10 @@ See the [changelog](https://github.com/smartdevicelink/sdl_ios/blob/master/CHANG You can install this library using [Cocoapods](https://cocoapods.org/pods/SmartDeviceLink-iOS). You can get started with Cocoapods by [following their install guide](https://guides.cocoapods.org/using/getting-started.html#getting-started), and learn how to use Cocoapods to install dependencies [by following this guide](https://guides.cocoapods.org/using/using-cocoapods.html). -In your podfile, you want to add `pod 'SmartDeviceLink', '~> 6.1'`. Then run `pod install` inside your terminal. With Cocoapods, we support iOS 8.0+. +In your podfile, you want to add `pod 'SmartDeviceLink', '~> 6.2'`. Then run `pod install` inside your terminal. With Cocoapods, we support iOS 8.0+. ###### Swift -If you are building a Swift app, then add this instead `pod 'SmartDeviceLink/Swift', '~> 6.1'`. Then run `pod install` in your terminal. +If you are building a Swift app, then add this instead `pod 'SmartDeviceLink/Swift', '~> 6.2'`. Then run `pod install` in your terminal. ##### Carthage diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec index 326450640..9ce9d29ac 100644 --- a/SmartDeviceLink-iOS.podspec +++ b/SmartDeviceLink-iOS.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SmartDeviceLink-iOS" -s.version = "6.1.2" +s.version = "6.2.0" s.summary = "Connect your app with cars!" s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS" s.license = { :type => "New BSD", :file => "LICENSE" } @@ -28,6 +28,12 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLAlertManeuver.h', 'SmartDeviceLink/SDLAlertManeuverResponse.h', 'SmartDeviceLink/SDLAlertResponse.h', +'SmartDeviceLink/SDLAppServiceCapability.h', +'SmartDeviceLink/SDLAppServiceData.h', +'SmartDeviceLink/SDLAppServiceManifest.h', +'SmartDeviceLink/SDLAppServiceRecord.h', +'SmartDeviceLink/SDLAppServicesCapabilities.h', +'SmartDeviceLink/SDLAppServiceType.h', 'SmartDeviceLink/SDLButtonPressResponse.h', 'SmartDeviceLink/SDLAmbientLightStatus.h', 'SmartDeviceLink/SDLAppHMIType.h', @@ -62,6 +68,7 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLChoiceSetDelegate.h', 'SmartDeviceLink/SDLClimateControlCapabilities.h', 'SmartDeviceLink/SDLClimateControlData.h', +'SmartDeviceLink/SDLCloudAppProperties.h', 'SmartDeviceLink/SDLClusterModeStatus.h', 'SmartDeviceLink/SDLCompassDirection.h', 'SmartDeviceLink/SDLComponentVolumeStatus.h', @@ -92,6 +99,7 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLDisplayMode.h', 'SmartDeviceLink/SDLDisplayType.h', 'SmartDeviceLink/SDLDistanceUnit.h', +'SmartDeviceLink/SDLDirection.h', 'SmartDeviceLink/SDLDriverDistractionState.h', 'SmartDeviceLink/SDLECallConfirmationStatus.h', 'SmartDeviceLink/SDLECallInfo.h', @@ -113,10 +121,17 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLFuelCutoffStatus.h', 'SmartDeviceLink/SDLFuelRange.h', 'SmartDeviceLink/SDLFuelType.h', +'SmartDeviceLink/SDLFunctionID.h', 'SmartDeviceLink/SDLGenericResponse.h', +'SmartDeviceLink/SDLGetCloudAppProperties.h', +'SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h', +'SmartDeviceLink/SDLGetAppServiceData.h', +'SmartDeviceLink/SDLGetAppServiceDataResponse.h', 'SmartDeviceLink/SDLGetDTCs.h', -'SmartDeviceLink/SDLGetInteriorVehicleData.h', 'SmartDeviceLink/SDLGetDTCsResponse.h', +'SmartDeviceLink/SDLGetFile.h', +'SmartDeviceLink/SDLGetFileResponse.h', +'SmartDeviceLink/SDLGetInteriorVehicleData.h', 'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h', 'SmartDeviceLink/SDLGetSystemCapability.h', 'SmartDeviceLink/SDLGetSystemCapabilityResponse.h', @@ -134,6 +149,7 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLHMISettingsControlCapabilities.h', 'SmartDeviceLink/SDLHMISettingsControlData.h', 'SmartDeviceLink/SDLHMIZoneCapabilities.h', +'SmartDeviceLink/SDLHybridAppPreference.h', 'SmartDeviceLink/SDLIgnitionStableStatus.h', 'SmartDeviceLink/SDLIgnitionStatus.h', 'SmartDeviceLink/SDLImage.h', @@ -184,6 +200,9 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLManager.h', 'SmartDeviceLink/SDLManagerDelegate.h', 'SmartDeviceLink/SDLMediaClockFormat.h', +'SmartDeviceLink/SDLMediaServiceData.h', +'SmartDeviceLink/SDLMediaServiceManifest.h', +'SmartDeviceLink/SDLMediaType.h', 'SmartDeviceLink/SDLMenuCell.h', 'SmartDeviceLink/SDLMenuParams.h', 'SmartDeviceLink/SDLMetadataTags.h', @@ -191,10 +210,16 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLModuleData.h', 'SmartDeviceLink/SDLModuleType.h', 'SmartDeviceLink/SDLMyKey.h', +'SmartDeviceLink/SDLNavigationAction.h', 'SmartDeviceLink/SDLNavigationCapability.h', +'SmartDeviceLink/SDLNavigationInstruction.h', +'SmartDeviceLink/SDLNavigationJunction.h', +'SmartDeviceLink/SDLNavigationServiceData.h', +'SmartDeviceLink/SDLNavigationServiceManifest.h', 'SmartDeviceLink/SDLNotificationConstants.h', 'SmartDeviceLink/SDLOasisAddress.h', 'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h', +'SmartDeviceLink/SDLOnAppServiceData.h', 'SmartDeviceLink/SDLOnAudioPassThru.h', 'SmartDeviceLink/SDLOnButtonEvent.h', 'SmartDeviceLink/SDLOnButtonPress.h', @@ -210,12 +235,15 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLOnPermissionsChange.h', 'SmartDeviceLink/SDLOnRCStatus.h', 'SmartDeviceLink/SDLOnSyncPData.h', +'SmartDeviceLink/SDLOnSystemCapabilityUpdated.h', 'SmartDeviceLink/SDLOnSystemRequest.h', 'SmartDeviceLink/SDLOnTBTClientState.h', 'SmartDeviceLink/SDLOnTouchEvent.h', 'SmartDeviceLink/SDLOnVehicleData.h', 'SmartDeviceLink/SDLOnWayPointChange.h', 'SmartDeviceLink/SDLParameterPermissions.h', +'SmartDeviceLink/SDLPerformAppServiceInteraction.h', +'SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h', 'SmartDeviceLink/SDLPerformAudioPassThru.h', 'SmartDeviceLink/SDLPerformAudioPassThruResponse.h', 'SmartDeviceLink/SDLPerformInteraction.h', @@ -233,6 +261,8 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLPresetBankCapabilities.h', 'SmartDeviceLink/SDLPrimaryAudioSource.h', 'SmartDeviceLink/SDLPRNDL.h', +'SmartDeviceLink/SDLPublishAppService.h', +'SmartDeviceLink/SDLPublishAppServiceResponse.h', 'SmartDeviceLink/SDLPutFile.h', 'SmartDeviceLink/SDLPutFileResponse.h', 'SmartDeviceLink/SDLRadioBand.h', @@ -252,11 +282,13 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h', 'SmartDeviceLink/SDLResult.h', 'SmartDeviceLink/SDLRGBColor.h', +'SmartDeviceLink/SDLRPCFunctionNames.h', 'SmartDeviceLink/SDLRPCMessage.h', 'SmartDeviceLink/SDLRPCMessageType.h', 'SmartDeviceLink/SDLRPCNotification.h', 'SmartDeviceLink/SDLRPCNotificationNotification.h', 'SmartDeviceLink/SDLRPCRequest.h', +'SmartDeviceLink/SDLRPCRequestNotification.h', 'SmartDeviceLink/SDLRPCResponse.h', 'SmartDeviceLink/SDLRPCResponseNotification.h', 'SmartDeviceLink/SDLRPCStruct.h', @@ -275,8 +307,11 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLSendHapticDataResponse.h', 'SmartDeviceLink/SDLSendLocation.h', 'SmartDeviceLink/SDLSendLocationResponse.h', +'SmartDeviceLink/SDLServiceUpdateReason.h', 'SmartDeviceLink/SDLSetAppIcon.h', 'SmartDeviceLink/SDLSetAppIconResponse.h', +'SmartDeviceLink/SDLSetCloudAppProperties.h', +'SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h', 'SmartDeviceLink/SDLSetDisplayLayout.h', 'SmartDeviceLink/SDLSetDisplayLayoutResponse.h', 'SmartDeviceLink/SDLSetGlobalProperties.h', @@ -322,6 +357,7 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLSystemCapabilityManager.h', 'SmartDeviceLink/SDLSystemCapabilityType.h', 'SmartDeviceLink/SDLSystemContext.h', +'SmartDeviceLink/SDLSystemRequest.h', 'SmartDeviceLink/SDLTBTState.h', 'SmartDeviceLink/SDLTemperature.h', 'SmartDeviceLink/SDLTemperatureUnit.h', @@ -363,6 +399,7 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLVehicleDataType.h', 'SmartDeviceLink/SDLVentilationMode.h', 'SmartDeviceLink/SDLVehicleType.h', +'SmartDeviceLink/SDLVersion.h', 'SmartDeviceLink/SDLVideoStreamingCapability.h', 'SmartDeviceLink/SDLVideoStreamingCodec.h', 'SmartDeviceLink/SDLVideoStreamingFormat.h', @@ -373,6 +410,10 @@ ss.public_header_files = [ 'SmartDeviceLink/SDLVrHelpItem.h', 'SmartDeviceLink/SDLWarningLightStatus.h', 'SmartDeviceLink/SDLWayPointType.h', +'SmartDeviceLink/SDLWeatherAlert.h', +'SmartDeviceLink/SDLWeatherData.h', +'SmartDeviceLink/SDLWeatherServiceData.h', +'SmartDeviceLink/SDLWeatherServiceManifest.h', 'SmartDeviceLink/SDLWiperStatus.h', 'SmartDeviceLink/SmartDeviceLink.h', ] diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 7937c15bf..2fc6f2bd7 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -452,7 +452,6 @@ 5D1FF2C7213045F2000EB9B4 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5D1FF2C5213045F1000EB9B4 /* Images.xcassets */; }; 5D1FF2CA2130463F000EB9B4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1FF2C92130463F000EB9B4 /* AppDelegate.m */; }; 5D1FF2CC2130464E000EB9B4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1FF2CB2130464D000EB9B4 /* main.m */; }; - 5D1FF2CE21304654000EB9B4 /* SmartDeviceLink-Example-ObjC-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5D1FF2CD21304654000EB9B4 /* SmartDeviceLink-Example-ObjC-Info.plist */; }; 5D1FF2D12130466D000EB9B4 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5D1FF2CF2130466D000EB9B4 /* LaunchScreen.xib */; }; 5D1FF2DA21304746000EB9B4 /* ButtonManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1FF2D221304745000EB9B4 /* ButtonManager.swift */; }; 5D1FF2DB21304746000EB9B4 /* ProxyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1FF2D321304745000EB9B4 /* ProxyManager.swift */; }; @@ -473,7 +472,6 @@ 5D1FF2F3213047AB000EB9B4 /* ConnectionTCPTableViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D1FF2F0213047AB000EB9B4 /* ConnectionTCPTableViewController.storyboard */; }; 5D1FF2F5213047B3000EB9B4 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5D1FF2F4213047B2000EB9B4 /* LaunchScreen.xib */; }; 5D1FF2F8213047C1000EB9B4 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D1FF2F7213047C1000EB9B4 /* AppDelegate.swift */; }; - 5D1FF2FA2130480C000EB9B4 /* SmartDeviceLink-Example-Swift-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 5D1FF2F92130480C000EB9B4 /* SmartDeviceLink-Example-Swift-Info.plist */; }; 5D293AFE1FE078A9000CBD7E /* SDLCarWindowViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D293AFC1FE078A9000CBD7E /* SDLCarWindowViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D293AFF1FE078A9000CBD7E /* SDLCarWindowViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D293AFD1FE078A9000CBD7E /* SDLCarWindowViewController.m */; }; 5D2F58081D0717D5001085CE /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D2F58071D0717D5001085CE /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -655,7 +653,7 @@ 5D61FCAA1A84238C00846EE7 /* SDLFileType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FABD1A84238A00846EE7 /* SDLFileType.m */; }; 5D61FCAB1A84238C00846EE7 /* SDLFuelCutoffStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FABE1A84238A00846EE7 /* SDLFuelCutoffStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCAC1A84238C00846EE7 /* SDLFuelCutoffStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FABF1A84238A00846EE7 /* SDLFuelCutoffStatus.m */; }; - 5D61FCAD1A84238C00846EE7 /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAC01A84238A00846EE7 /* SDLFunctionID.h */; }; + 5D61FCAD1A84238C00846EE7 /* SDLFunctionID.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAC01A84238A00846EE7 /* SDLFunctionID.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCAE1A84238C00846EE7 /* SDLFunctionID.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAC11A84238A00846EE7 /* SDLFunctionID.m */; }; 5D61FCAF1A84238C00846EE7 /* SDLGenericResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAC21A84238A00846EE7 /* SDLGenericResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCB01A84238C00846EE7 /* SDLGenericResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAC31A84238A00846EE7 /* SDLGenericResponse.m */; }; @@ -727,7 +725,7 @@ 5D61FCF91A84238C00846EE7 /* SDLMenuParams.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */; }; 5D61FCFA1A84238C00846EE7 /* SDLMyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCFB1A84238C00846EE7 /* SDLMyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */; }; - 5D61FCFC1A84238C00846EE7 /* SDLNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB0F1A84238A00846EE7 /* SDLNames.h */; }; + 5D61FCFC1A84238C00846EE7 /* SDLRPCParameterNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB0F1A84238A00846EE7 /* SDLRPCParameterNames.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5D61FCFD1A84238C00846EE7 /* SDLObjectWithPriority.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB101A84238A00846EE7 /* SDLObjectWithPriority.h */; }; 5D61FCFE1A84238C00846EE7 /* SDLObjectWithPriority.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB111A84238A00846EE7 /* SDLObjectWithPriority.m */; }; 5D61FCFF1A84238C00846EE7 /* SDLOnAppInterfaceUnregistered.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB121A84238B00846EE7 /* SDLOnAppInterfaceUnregistered.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1175,6 +1173,7 @@ 5DBF0D601F3B3DB4008AF2C9 /* SDLControlFrameVideoStartServiceAckSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF0D5F1F3B3DB4008AF2C9 /* SDLControlFrameVideoStartServiceAckSpec.m */; }; 5DC09EDA1F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DC09ED91F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m */; }; 5DC978261B7A38640012C2F1 /* SDLGlobalsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DC978251B7A38640012C2F1 /* SDLGlobalsSpec.m */; }; + 5DCC458D221C9F6600036C2F /* SDLVersionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC458C221C9F6600036C2F /* SDLVersionSpec.m */; }; 5DCD7AE01FCCA8D200A0FC7F /* SDLCarWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DCD7ADC1FCCA8D100A0FC7F /* SDLCarWindow.h */; }; 5DCD7AE11FCCA8D200A0FC7F /* SDLCarWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCD7ADD1FCCA8D200A0FC7F /* SDLCarWindow.m */; }; 5DCD7AF31FCCA8E400A0FC7F /* SDLScreenshotViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DCD7AE61FCCA8E400A0FC7F /* SDLScreenshotViewController.h */; }; @@ -1185,6 +1184,8 @@ 5DCF76FA1ACDD7CD00BB647B /* SDLSendLocationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCF76F81ACDD7CD00BB647B /* SDLSendLocationResponse.m */; }; 5DCF76FC1ACDDB4200BB647B /* SDLSendLocationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCF76FB1ACDDB4200BB647B /* SDLSendLocationSpec.m */; }; 5DCF76FE1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCF76FD1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m */; }; + 5DD60D98221C5D7D00A82A4F /* SDLVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD60D96221C5D7D00A82A4F /* SDLVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DD60D99221C5D7D00A82A4F /* SDLVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD60D97221C5D7D00A82A4F /* SDLVersion.m */; }; 5DD67CB01E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD67CAE1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5DD67CB11E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD67CAF1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m */; }; 5DD67CB81E661C4A009CD394 /* SDLLogTargetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD67CB61E661C4A009CD394 /* SDLLogTargetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1208,7 +1209,7 @@ 5DE372A11ACB2ED300849FAA /* SDLHMICapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DE3729F1ACB2ED300849FAA /* SDLHMICapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5DE372A21ACB2ED300849FAA /* SDLHMICapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DE372A01ACB2ED300849FAA /* SDLHMICapabilities.m */; }; 5DE372A41ACB336600849FAA /* SDLHMICapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DE372A31ACB336600849FAA /* SDLHMICapabilitiesSpec.m */; }; - 5DE5ABB71B0E38C90067BB02 /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBD21A84238B00846EE7 /* SDLSystemRequest.h */; }; + 5DE5ABB71B0E38C90067BB02 /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBD21A84238B00846EE7 /* SDLSystemRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5DE5ABB81B0E38C90067BB02 /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBD41A84238B00846EE7 /* SDLSystemRequestResponse.h */; }; 5DEF695B1FD6F82D004B8C2F /* SDLStreamingAudioManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DEF695A1FD6F82D004B8C2F /* SDLStreamingAudioManagerType.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5DEF695D1FD6FA01004B8C2F /* testAudio.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 5DEF695C1FD6FA01004B8C2F /* testAudio.mp3 */; }; @@ -1221,20 +1222,78 @@ 5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; }; 880245A420F79C3400ED195B /* SDLFileManagerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 880245A220F79C3400ED195B /* SDLFileManagerConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 880245A520F79C3400ED195B /* SDLFileManagerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 880245A320F79C3400ED195B /* SDLFileManagerConfiguration.m */; }; + 880D267A220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 880D2679220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m */; }; + 880D267D220DE5DF00B3F496 /* SDLWeatherServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 880D267B220DE5DF00B3F496 /* SDLWeatherServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 880D267E220DE5DF00B3F496 /* SDLWeatherServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 880D267C220DE5DF00B3F496 /* SDLWeatherServiceManifest.m */; }; + 880D2680220E038800B3F496 /* SDLWeatherServiceManifestSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 880D267F220E038800B3F496 /* SDLWeatherServiceManifestSpec.m */; }; 880E35B42088F75A00181259 /* SDLSystemCapabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 880E35B22088F75A00181259 /* SDLSystemCapabilityManager.m */; }; 880E35B52088F75A00181259 /* SDLSystemCapabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 880E35B32088F75A00181259 /* SDLSystemCapabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; 880E35B82088F78E00181259 /* SDLSystemCapabilityManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 880E35B72088F78E00181259 /* SDLSystemCapabilityManagerSpec.m */; }; + 8815D0EF22330753000F24E6 /* SDLRPCRequestNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 88D6F17E22319FE000D4BFB3 /* SDLRPCRequestNotification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8815D0F022330765000F24E6 /* SDLRPCRequestNotificationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C23E8522297BD500EA171F /* SDLRPCRequestNotificationSpec.m */; }; + 8815D0F122330781000F24E6 /* SDLRPCRequestNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = 88D6F17D22319FE000D4BFB3 /* SDLRPCRequestNotification.m */; }; + 8816772922208B82001FACFF /* SDLNavigationInstructionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8816772822208B82001FACFF /* SDLNavigationInstructionSpec.m */; }; + 8816772C222097C3001FACFF /* SDLNavigationServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8816772A222097C3001FACFF /* SDLNavigationServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8816772D222097C3001FACFF /* SDLNavigationServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8816772B222097C3001FACFF /* SDLNavigationServiceData.m */; }; 8818ADD82100FC18007D6F19 /* SDLTurnSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8818ADD62100FC18007D6F19 /* SDLTurnSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8818ADD92100FC18007D6F19 /* SDLTurnSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = 8818ADD72100FC18007D6F19 /* SDLTurnSignal.m */; }; 8818ADDD2100FE0C007D6F19 /* SDLTurnSignalSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8818ADDC2100FE0C007D6F19 /* SDLTurnSignalSpec.m */; }; 8829568B207CF68800EF056C /* SmartDeviceLink.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 88295693207CF68800EF056C /* SmartDeviceLink.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 882C42CE2108CDB100A44B58 /* (null) in Sources */ = {isa = PBXBuildFile; }; + 882FAC4D2209D7EF0062385D /* SDLAppServiceDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 882FAC4C2209D7EF0062385D /* SDLAppServiceDataSpec.m */; }; + 8831FA392201E3D100B8FFB7 /* SDLAppServiceManifestSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA382201E3D100B8FFB7 /* SDLAppServiceManifestSpec.m */; }; + 8831FA3D220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA3C220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m */; }; + 8831FA3F2202227000B8FFB7 /* SDLAppServiceTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA3E2202227000B8FFB7 /* SDLAppServiceTypeSpec.m */; }; + 8831FA4222022AB300B8FFB7 /* SDLAppServiceCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8831FA4022022AB300B8FFB7 /* SDLAppServiceCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8831FA4322022AB300B8FFB7 /* SDLAppServiceCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA4122022AB300B8FFB7 /* SDLAppServiceCapability.m */; }; + 8831FA452202307500B8FFB7 /* SDLAppServiceCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA442202307500B8FFB7 /* SDLAppServiceCapabilitySpec.m */; }; + 8831FA48220235B000B8FFB7 /* SDLAppServicesCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 8831FA46220235B000B8FFB7 /* SDLAppServicesCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8831FA49220235B000B8FFB7 /* SDLAppServicesCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA47220235B000B8FFB7 /* SDLAppServicesCapabilities.m */; }; + 8831FA4B2202402B00B8FFB7 /* SDLAppServicesCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8831FA4A2202402B00B8FFB7 /* SDLAppServicesCapabilitiesSpec.m */; }; + 883C22C8222ED84D00939C4C /* SDLRPCFunctionNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 883C22C6222ED84D00939C4C /* SDLRPCFunctionNames.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 883C22C9222ED84D00939C4C /* SDLRPCFunctionNames.m in Sources */ = {isa = PBXBuildFile; fileRef = 883C22C7222ED84D00939C4C /* SDLRPCFunctionNames.m */; }; + 883C22CB222EEF0900939C4C /* SDLRPCFunctionNamesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 883C22CA222EEF0900939C4C /* SDLRPCFunctionNamesSpec.m */; }; + 884554AC222453A800BAFB6C /* SDLNavigationServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 884554AA222453A800BAFB6C /* SDLNavigationServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884554AD222453A800BAFB6C /* SDLNavigationServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 884554AB222453A800BAFB6C /* SDLNavigationServiceManifest.m */; }; + 884554AF2224554300BAFB6C /* SDLNavigationServiceManifestSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 884554AE2224554300BAFB6C /* SDLNavigationServiceManifestSpec.m */; }; + 884AF94C220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 884AF94B220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m */; }; + 884AF94F220B488900E22928 /* SDLOnSystemCapabilityUpdated.h in Headers */ = {isa = PBXBuildFile; fileRef = 884AF94D220B488900E22928 /* SDLOnSystemCapabilityUpdated.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884AF950220B488900E22928 /* SDLOnSystemCapabilityUpdated.m in Sources */ = {isa = PBXBuildFile; fileRef = 884AF94E220B488900E22928 /* SDLOnSystemCapabilityUpdated.m */; }; + 884E701B21FB8D0F008D53BA /* SDLPublishAppService.h in Headers */ = {isa = PBXBuildFile; fileRef = 884E701921FB8D0F008D53BA /* SDLPublishAppService.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884E701C21FB8D0F008D53BA /* SDLPublishAppService.m in Sources */ = {isa = PBXBuildFile; fileRef = 884E701A21FB8D0F008D53BA /* SDLPublishAppService.m */; }; + 884E701F21FB983F008D53BA /* SDLAppServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 884E701D21FB983F008D53BA /* SDLAppServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884E702021FB983F008D53BA /* SDLAppServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 884E701E21FB983F008D53BA /* SDLAppServiceManifest.m */; }; + 884E702321FBA952008D53BA /* SDLAppServiceType.h in Headers */ = {isa = PBXBuildFile; fileRef = 884E702121FBA952008D53BA /* SDLAppServiceType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884E702421FBA952008D53BA /* SDLAppServiceType.m in Sources */ = {isa = PBXBuildFile; fileRef = 884E702221FBA952008D53BA /* SDLAppServiceType.m */; }; + 884E702721FBAC5B008D53BA /* SDLServiceUpdateReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 884E702521FBAC5B008D53BA /* SDLServiceUpdateReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884E702821FBAC5B008D53BA /* SDLServiceUpdateReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 884E702621FBAC5B008D53BA /* SDLServiceUpdateReason.m */; }; + 884E702B21FBB151008D53BA /* SDLAppServiceRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 884E702921FBB151008D53BA /* SDLAppServiceRecord.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 884E702C21FBB151008D53BA /* SDLAppServiceRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 884E702A21FBB151008D53BA /* SDLAppServiceRecord.m */; }; 8850DB601F4475D30053A48D /* TestMultipleFilesConnectionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */; }; + 8854682F2225BDAE00994D8D /* SDLHybridAppPreference.h in Headers */ = {isa = PBXBuildFile; fileRef = 8854682D2225BDAE00994D8D /* SDLHybridAppPreference.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 885468302225BDAE00994D8D /* SDLHybridAppPreference.m in Sources */ = {isa = PBXBuildFile; fileRef = 8854682E2225BDAE00994D8D /* SDLHybridAppPreference.m */; }; + 885468322225BF2800994D8D /* SDLHybridAppPreferenceSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 885468312225BF2800994D8D /* SDLHybridAppPreferenceSpec.m */; }; + 885468352225C1F800994D8D /* SDLCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 885468332225C1F800994D8D /* SDLCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 885468362225C1F800994D8D /* SDLCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 885468342225C1F800994D8D /* SDLCloudAppProperties.m */; }; + 885468382225CBA400994D8D /* SDLCloudAppPropertiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 885468372225CBA400994D8D /* SDLCloudAppPropertiesSpec.m */; }; + 8855F9E0220C93B700A5C897 /* SDLWeatherDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8855F9DF220C93B700A5C897 /* SDLWeatherDataSpec.m */; }; + 8855F9E3220CB04000A5C897 /* SDLOnAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8855F9E1220CB04000A5C897 /* SDLOnAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8855F9E4220CB04000A5C897 /* SDLOnAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 8855F9E2220CB04000A5C897 /* SDLOnAppServiceData.m */; }; + 8855F9E6220CB60700A5C897 /* SDLOnAppServiceDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8855F9E5220CB60700A5C897 /* SDLOnAppServiceDataSpec.m */; }; + 8855F9E9220CBA9200A5C897 /* SDLGetFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8855F9E7220CBA9200A5C897 /* SDLGetFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8855F9EA220CBA9200A5C897 /* SDLGetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 8855F9E8220CBA9200A5C897 /* SDLGetFile.m */; }; + 8855F9EC220CBFB700A5C897 /* SDLGetFileSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8855F9EB220CBFB700A5C897 /* SDLGetFileSpec.m */; }; + 88665B69220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88665B67220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88665B6A220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88665B68220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.m */; }; + 88665B6C220B796A00D9DA77 /* SDLPerformAppServiceInteractionResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88665B6B220B796A00D9DA77 /* SDLPerformAppServiceInteractionResponseSpec.m */; }; + 88665B73220B80F400D9DA77 /* SDLWeatherAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 88665B71220B80F400D9DA77 /* SDLWeatherAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88665B74220B80F400D9DA77 /* SDLWeatherAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 88665B72220B80F400D9DA77 /* SDLWeatherAlert.m */; }; 8877F5EB1F34A3BE00DC128A /* SDLSendHapticDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */; }; 8877F5EE1F34A72200DC128A /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8877F5EC1F34A72200DC128A /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8877F5EF1F34A72200DC128A /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8877F5ED1F34A72200DC128A /* SDLSendHapticDataResponse.m */; }; 8877F5F11F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8877F5F01F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m */; }; + 887BE4D422272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 887BE4D322272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m */; }; 88802FE920853AE600E9EBC6 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 5D9FDA971F2A7D3F00A495C8 /* LICENSE */; }; 88802FEA20853AE600E9EBC6 /* SDLAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5D6F7A3D1BC811FC0070BF37 /* SDLAssets.xcassets */; }; 88802FEB20853AE600E9EBC6 /* SDLLockScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D616B481D552F7A00553F6B /* SDLLockScreen.storyboard */; }; @@ -1242,25 +1301,91 @@ 88802FF420853BED00E9EBC6 /* SmartDeviceLinkSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4346631E6F38E600B639C6 /* SmartDeviceLinkSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88802FF520853CD500E9EBC6 /* SmartDeviceLinkSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88802FEF20853AE600E9EBC6 /* SmartDeviceLinkSwift.framework */; }; 88802FF620853CD500E9EBC6 /* SmartDeviceLinkSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 88802FEF20853AE600E9EBC6 /* SmartDeviceLinkSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 8880D24722205B1B00964F6A /* SDLNavigationInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 8880D24522205B1B00964F6A /* SDLNavigationInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8880D24822205B1B00964F6A /* SDLNavigationInstruction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8880D24622205B1B00964F6A /* SDLNavigationInstruction.m */; }; + 8881AFAC2225D61900EA870B /* SDLSetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 8881AFAA2225D61900EA870B /* SDLSetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8881AFAD2225D61900EA870B /* SDLSetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFAB2225D61900EA870B /* SDLSetCloudAppProperties.m */; }; + 8881AFAF2225D8EB00EA870B /* SDLSetCloudAppPropertiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFAE2225D8EB00EA870B /* SDLSetCloudAppPropertiesSpec.m */; }; + 8881AFB22225DED900EA870B /* SDLSetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8881AFB02225DED900EA870B /* SDLSetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8881AFB32225DED900EA870B /* SDLSetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFB12225DED900EA870B /* SDLSetCloudAppPropertiesResponse.m */; }; + 8881AFB52225E37800EA870B /* SDLSetCloudAppPropertiesResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFB42225E37800EA870B /* SDLSetCloudAppPropertiesResponseSpec.m */; }; + 8881AFB82225E5EE00EA870B /* SDLGetCloudAppProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 8881AFB62225E5EE00EA870B /* SDLGetCloudAppProperties.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8881AFB92225E5EE00EA870B /* SDLGetCloudAppProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFB72225E5EE00EA870B /* SDLGetCloudAppProperties.m */; }; + 8881AFBB2225E7FA00EA870B /* SDLGetCloudAppPropertiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFBA2225E7FA00EA870B /* SDLGetCloudAppPropertiesSpec.m */; }; + 8881AFBE2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 8881AFBC2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8881AFBF2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFBD2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.m */; }; + 8881AFC12225EB9300EA870B /* SDLGetCloudAppPropertiesResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8881AFC02225EB9300EA870B /* SDLGetCloudAppPropertiesResponseSpec.m */; }; 8886EB982111F4FA008294A5 /* SDLFileManagerConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8886EB972111F4FA008294A5 /* SDLFileManagerConfigurationSpec.m */; }; + 888F86FE221DEE200052FE4C /* SDLAsynchronousRPCOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 888F86FD221DEE1F0052FE4C /* SDLAsynchronousRPCOperation.m */; }; + 888F8700221DF4880052FE4C /* SDLAsynchronousRPCOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 888F86FF221DF4880052FE4C /* SDLAsynchronousRPCOperationSpec.m */; }; 88A1CF1E21669AC7001ACC75 /* SDLLifecycleConfigurationUpdateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A1CF1D21669AC7001ACC75 /* SDLLifecycleConfigurationUpdateSpec.m */; }; + 88A4A0FA22242AB400C6F01D /* SDLNavigationServiceDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A4A0F922242AB400C6F01D /* SDLNavigationServiceDataSpec.m */; }; + 88A5E7F4220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A5E7F3220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m */; }; + 88A5E7F7220B5BBC00495E8A /* SDLGetAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A5E7F5220B5BBC00495E8A /* SDLGetAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88A5E7F8220B5BBC00495E8A /* SDLGetAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A5E7F6220B5BBC00495E8A /* SDLGetAppServiceData.m */; }; + 88A5E7FA220B60EC00495E8A /* SDLGetAppServiceDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A5E7F9220B60EC00495E8A /* SDLGetAppServiceDataSpec.m */; }; + 88A5E7FD220B642200495E8A /* SDLGetAppServiceDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A5E7FB220B642200495E8A /* SDLGetAppServiceDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88A5E7FE220B642200495E8A /* SDLGetAppServiceDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A5E7FC220B642200495E8A /* SDLGetAppServiceDataResponse.m */; }; 88A795D22106787400056542 /* SDLStaticIconName.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A795D02106787400056542 /* SDLStaticIconName.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88A795D32106787400056542 /* SDLStaticIconName.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A795D12106787400056542 /* SDLStaticIconName.m */; }; 88A795D5210678E000056542 /* SDLStaticIconNameSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A795D4210678E000056542 /* SDLStaticIconNameSpec.m */; }; + 88A7A3C6220CCEA100A9E435 /* SDLGetFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88A7A3C4220CCEA100A9E435 /* SDLGetFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88A7A3C7220CCEA100A9E435 /* SDLGetFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A7A3C5220CCEA100A9E435 /* SDLGetFileResponse.m */; }; + 88A81F6C2200FD4A00A691A9 /* SDLAppServiceRecordSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88A81F6B2200FD4A00A691A9 /* SDLAppServiceRecordSpec.m */; }; + 88AAD4BC2211B76800F1E6D7 /* SDLMediaServiceManifest.h in Headers */ = {isa = PBXBuildFile; fileRef = 88AAD4BA2211B76800F1E6D7 /* SDLMediaServiceManifest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88AAD4BD2211B76800F1E6D7 /* SDLMediaServiceManifest.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AAD4BB2211B76800F1E6D7 /* SDLMediaServiceManifest.m */; }; + 88AAD4C02211B7E200F1E6D7 /* SDLMediaServiceManifestSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AAD4BF2211B7E200F1E6D7 /* SDLMediaServiceManifestSpec.m */; }; + 88AF11D9220B66FD00A59985 /* SDLGetAppServiceDataResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AF11D8220B66FD00A59985 /* SDLGetAppServiceDataResponseSpec.m */; }; + 88AF11DC220B6B3D00A59985 /* SDLPerformAppServiceInteraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 88AF11DA220B6B3D00A59985 /* SDLPerformAppServiceInteraction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88AF11DD220B6B3D00A59985 /* SDLPerformAppServiceInteraction.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AF11DB220B6B3D00A59985 /* SDLPerformAppServiceInteraction.m */; }; 88B3BF9820DA859800943565 /* SDLFuelType.h in Headers */ = {isa = PBXBuildFile; fileRef = 88B3BF9620DA859800943565 /* SDLFuelType.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88B3BF9920DA859800943565 /* SDLFuelType.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3BF9720DA859800943565 /* SDLFuelType.m */; }; 88B3BF9C20DA8BBC00943565 /* SDLFuelRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 88B3BF9A20DA8BBC00943565 /* SDLFuelRange.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88B3BF9D20DA8BBC00943565 /* SDLFuelRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3BF9B20DA8BBC00943565 /* SDLFuelRange.m */; }; 88B3BFA020DA8FD000943565 /* SDLFuelTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3BF9F20DA8FD000943565 /* SDLFuelTypeSpec.m */; }; 88B3BFA220DA911E00943565 /* SDLFuelRangeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B3BFA120DA911E00943565 /* SDLFuelRangeSpec.m */; }; + 88B58DBA222040FF0011B063 /* SDLDirection.h in Headers */ = {isa = PBXBuildFile; fileRef = 88B58DB8222040FF0011B063 /* SDLDirection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88B58DBB222040FF0011B063 /* SDLDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B58DB9222040FF0011B063 /* SDLDirection.m */; }; + 88B58DBD222042500011B063 /* SDLDirectionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B58DBC222042500011B063 /* SDLDirectionSpec.m */; }; + 88B58DC0222045320011B063 /* SDLNavigationJunction.h in Headers */ = {isa = PBXBuildFile; fileRef = 88B58DBE222045320011B063 /* SDLNavigationJunction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88B58DC1222045320011B063 /* SDLNavigationJunction.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B58DBF222045320011B063 /* SDLNavigationJunction.m */; }; + 88B58DC3222047F50011B063 /* SDLNavigationJunctionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B58DC2222047F50011B063 /* SDLNavigationJunctionSpec.m */; }; + 88B58DC622204AF10011B063 /* SDLNavigationAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 88B58DC422204AF10011B063 /* SDLNavigationAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88B58DC722204AF10011B063 /* SDLNavigationAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B58DC522204AF10011B063 /* SDLNavigationAction.m */; }; + 88B58DC922204C9E0011B063 /* SDLNavigationActionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B58DC822204C9E0011B063 /* SDLNavigationActionSpec.m */; }; 88B848C31F45E1A600DED768 /* TestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B848C21F45E1A600DED768 /* TestResponse.m */; }; 88B848C91F462E3600DED768 /* TestFileProgressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B848C81F462E3600DED768 /* TestFileProgressResponse.m */; }; + 88C23E8822297C6000EA171F /* SDLRPCResponseNotificationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C23E8722297C6000EA171F /* SDLRPCResponseNotificationSpec.m */; }; + 88C23E8A22297DE400EA171F /* SDLRPCNotificationNotificationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C23E8922297DE400EA171F /* SDLRPCNotificationNotificationSpec.m */; }; + 88C282CA220CD17200D02F90 /* SDLGetFileResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C282C9220CD17200D02F90 /* SDLGetFileResponseSpec.m */; }; + 88C37F632204EBF000901DC6 /* SDLAppServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88C37F612204EBF000901DC6 /* SDLAppServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88C37F642204EBF000901DC6 /* SDLAppServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C37F622204EBF000901DC6 /* SDLAppServiceData.m */; }; 88D2AAE41F682BB20078D5B2 /* SDLLogConstantsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88D2AAE31F682BB20078D5B2 /* SDLLogConstantsSpec.m */; }; + 88D5EB37220CD95000EC3782 /* SDLWeatherServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88D5EB35220CD95000EC3782 /* SDLWeatherServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88D5EB38220CD95000EC3782 /* SDLWeatherServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88D5EB36220CD95000EC3782 /* SDLWeatherServiceData.m */; }; + 88DF998D22035CC600477AC1 /* EAAccessory+OCMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 88DF998C22035CC600477AC1 /* EAAccessory+OCMock.m */; }; + 88DF998F22035D1700477AC1 /* SDLIAPSessionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88DF998E22035D1700477AC1 /* SDLIAPSessionSpec.m */; }; + 88DF999122035D5A00477AC1 /* SDLIAPTransportSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88DF999022035D5A00477AC1 /* SDLIAPTransportSpec.m */; }; + 88E6F1A7220E1588006156F9 /* SDLMediaType.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E6F1A5220E1588006156F9 /* SDLMediaType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88E6F1A8220E1588006156F9 /* SDLMediaType.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E6F1A6220E1588006156F9 /* SDLMediaType.m */; }; + 88E6F1AA220E1720006156F9 /* SDLMediaTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E6F1A9220E1720006156F9 /* SDLMediaTypeSpec.m */; }; + 88E6F1AD220E19DF006156F9 /* SDLMediaServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E6F1AB220E19DF006156F9 /* SDLMediaServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88E6F1AE220E19DF006156F9 /* SDLMediaServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E6F1AC220E19DF006156F9 /* SDLMediaServiceData.m */; }; + 88E6F1B0220E25B2006156F9 /* SDLMediaServiceDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E6F1AF220E25B2006156F9 /* SDLMediaServiceDataSpec.m */; }; + 88EEC5B8220A2144005AA2F9 /* SDLPublishAppServiceSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EEC5B7220A2144005AA2F9 /* SDLPublishAppServiceSpec.m */; }; + 88EEC5BB220A327B005AA2F9 /* SDLPublishAppServiceResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88EEC5B9220A327B005AA2F9 /* SDLPublishAppServiceResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88EEC5BC220A327B005AA2F9 /* SDLPublishAppServiceResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EEC5BA220A327B005AA2F9 /* SDLPublishAppServiceResponse.m */; }; + 88EEC5BE220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EEC5BD220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m */; }; 88EED8381F33AE1700E6C42E /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 88EED8361F33AE1700E6C42E /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88EED8391F33AE1700E6C42E /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EED8371F33AE1700E6C42E /* SDLHapticRect.m */; }; 88EED83B1F33BECB00E6C42E /* SDLHapticRectSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */; }; 88EED83E1F33C5A400E6C42E /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88EED83C1F33C5A400E6C42E /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 88EED83F1F33C5A400E6C42E /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88EED83D1F33C5A400E6C42E /* SDLSendHapticData.m */; }; + 88F50D5F220B720E00F34648 /* SDLPerformAppServiceInteractionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88F50D5E220B720E00F34648 /* SDLPerformAppServiceInteractionSpec.m */; }; + 88F65133220C6DC300CAF321 /* SDLWeatherAlertSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88F65132220C6DC300CAF321 /* SDLWeatherAlertSpec.m */; }; + 88F65136220C74FD00CAF321 /* SDLWeatherData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88F65134220C74FD00CAF321 /* SDLWeatherData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 88F65137220C74FD00CAF321 /* SDLWeatherData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88F65135220C74FD00CAF321 /* SDLWeatherData.m */; }; + 88F89103221DE29A00E056AD /* SDLAsynchronousRPCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 88F89101221DE29A00E056AD /* SDLAsynchronousRPCOperation.h */; }; 8B7B319A1F2F7B5700BDC38D /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7B31981F2F7B5700BDC38D /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8B7B319B1F2F7B5700BDC38D /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31991F2F7B5700BDC38D /* SDLVideoStreamingCodec.m */; }; 8B7B319E1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7B319C1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1281,7 +1406,7 @@ 8BBEA6091F324832003EEA26 /* SDLMetadataTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */; }; 97E26DEC1E807AD70074A3C7 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */; }; 97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */; }; - DA0C46AD1DCD35080001F2A8 /* SDLNames.m in Sources */ = {isa = PBXBuildFile; fileRef = DA0C46AC1DCD35080001F2A8 /* SDLNames.m */; }; + DA0C46AD1DCD35080001F2A8 /* SDLRPCParameterNames.m in Sources */ = {isa = PBXBuildFile; fileRef = DA0C46AC1DCD35080001F2A8 /* SDLRPCParameterNames.m */; }; DA0C46AF1DCD41E30001F2A8 /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA318C1F1DD0F06C00C035AC /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = DA318C1D1DD0F06C00C035AC /* NSMutableDictionary+Store.h */; }; DA318C201DD0F06C00C035AC /* NSMutableDictionary+Store.m in Sources */ = {isa = PBXBuildFile; fileRef = DA318C1E1DD0F06C00C035AC /* NSMutableDictionary+Store.m */; }; @@ -1888,7 +2013,7 @@ 5D1665A41CF5D5DA00CC4CA1 /* DEPENDENCIES.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = DEPENDENCIES.md; sourceTree = SOURCE_ROOT; }; 5D1665A51CF5D5DA00CC4CA1 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = SOURCE_ROOT; }; 5D1665A61CF5D5DA00CC4CA1 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = SOURCE_ROOT; }; - 5D1665A71CF5D5DA00CC4CA1 /* SmartDeviceLink-iOS.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SmartDeviceLink-iOS.podspec"; sourceTree = SOURCE_ROOT; }; + 5D1665A71CF5D5DA00CC4CA1 /* SmartDeviceLink-iOS.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = "SmartDeviceLink-iOS.podspec"; sourceTree = SOURCE_ROOT; }; 5D1665C21CF8CA2700CC4CA1 /* SDLListFilesOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLListFilesOperation.h; sourceTree = "<group>"; }; 5D1665C31CF8CA2700CC4CA1 /* SDLListFilesOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLListFilesOperation.m; sourceTree = "<group>"; }; 5D1665C61CF8CA3D00CC4CA1 /* SDLPermissionFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLPermissionFilter.h; sourceTree = "<group>"; }; @@ -1945,7 +2070,7 @@ 5D1FF2D621304746000EB9B4 /* AudioManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AudioManager.swift; path = "Example Apps/Example Swift/AudioManager.swift"; sourceTree = SOURCE_ROOT; }; 5D1FF2D721304746000EB9B4 /* PerformInteractionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PerformInteractionManager.swift; path = "Example Apps/Example Swift/PerformInteractionManager.swift"; sourceTree = SOURCE_ROOT; }; 5D1FF2D821304746000EB9B4 /* MenuManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MenuManager.swift; path = "Example Apps/Example Swift/MenuManager.swift"; sourceTree = SOURCE_ROOT; }; - 5D1FF2D921304746000EB9B4 /* VehicleDataManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VehicleDataManager.swift; path = "Example Apps/Example Swift/VehicleDataManager.swift"; sourceTree = SOURCE_ROOT; }; + 5D1FF2D921304746000EB9B4 /* VehicleDataManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = VehicleDataManager.swift; path = "Example Apps/Example Swift/VehicleDataManager.swift"; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; 5D1FF2E221304761000EB9B4 /* AppUserDefaults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppUserDefaults.swift; path = "Example Apps/Example Swift/AppUserDefaults.swift"; sourceTree = SOURCE_ROOT; }; 5D1FF2E321304761000EB9B4 /* Protocol+ProxyManagerDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Protocol+ProxyManagerDelegate.swift"; path = "Example Apps/Example Swift/Protocol+ProxyManagerDelegate.swift"; sourceTree = SOURCE_ROOT; }; 5D1FF2E421304761000EB9B4 /* TextValidator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TextValidator.swift; path = "Example Apps/Example Swift/TextValidator.swift"; sourceTree = SOURCE_ROOT; }; @@ -2226,7 +2351,7 @@ 5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMenuParams.m; sourceTree = "<group>"; }; 5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMyKey.h; sourceTree = "<group>"; }; 5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMyKey.m; sourceTree = "<group>"; }; - 5D61FB0F1A84238A00846EE7 /* SDLNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLNames.h; sourceTree = "<group>"; }; + 5D61FB0F1A84238A00846EE7 /* SDLRPCParameterNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRPCParameterNames.h; sourceTree = "<group>"; }; 5D61FB101A84238A00846EE7 /* SDLObjectWithPriority.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLObjectWithPriority.h; sourceTree = "<group>"; }; 5D61FB111A84238A00846EE7 /* SDLObjectWithPriority.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLObjectWithPriority.m; sourceTree = "<group>"; }; 5D61FB121A84238B00846EE7 /* SDLOnAppInterfaceUnregistered.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOnAppInterfaceUnregistered.h; sourceTree = "<group>"; }; @@ -2628,10 +2753,6 @@ 5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangleSpec.m; sourceTree = "<group>"; }; 5DAE06721BDEC6C000F9B498 /* SDLFileSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLFileSpec.m; path = DevAPISpecs/SDLFileSpec.m; sourceTree = "<group>"; }; 5DAE06741BDEC6D600F9B498 /* SDLArtworkSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLArtworkSpec.m; path = DevAPISpecs/SDLArtworkSpec.m; sourceTree = "<group>"; }; - 5DB16142202115FC00F310DF /* SDLAsynchronousRPCRequestOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAsynchronousRPCRequestOperation.h; sourceTree = "<group>"; }; - 5DB16143202115FC00F310DF /* SDLAsynchronousRPCRequestOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAsynchronousRPCRequestOperation.m; sourceTree = "<group>"; }; - 5DB1616A2022276A00F310DF /* SDLSequentialRPCRequestOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLSequentialRPCRequestOperation.h; sourceTree = "<group>"; }; - 5DB1616B2022276A00F310DF /* SDLSequentialRPCRequestOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSequentialRPCRequestOperation.m; sourceTree = "<group>"; }; 5DB1BCD01D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperationSpec.m; path = DevAPISpecs/SDLDeleteFileOperationSpec.m; sourceTree = "<group>"; }; 5DB1BCD11D243A8E002FFC37 /* SDLListFilesOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLListFilesOperationSpec.m; path = DevAPISpecs/SDLListFilesOperationSpec.m; sourceTree = "<group>"; }; 5DB1BCD21D243A8E002FFC37 /* SDLUploadFileOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLUploadFileOperationSpec.m; path = DevAPISpecs/SDLUploadFileOperationSpec.m; sourceTree = "<group>"; }; @@ -2658,8 +2779,8 @@ 5DB9965B1F268F97002D8795 /* SDLControlFramePayloadVideoStartService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadVideoStartService.m; sourceTree = "<group>"; }; 5DB9965E1F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLControlFramePayloadVideoStartServiceAck.h; sourceTree = "<group>"; }; 5DB9965F1F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = "<group>"; }; - 5DBAE0AA1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcherSpec.m; path = DevAPISpecs/SDLNotificationDispatcherSpec.m; sourceTree = "<group>"; }; - 5DBAE0AC1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcherSpec.m; path = DevAPISpecs/SDLResponseDispatcherSpec.m; sourceTree = "<group>"; }; + 5DBAE0AA1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLNotificationDispatcherSpec.m; sourceTree = "<group>"; }; + 5DBAE0AC1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLResponseDispatcherSpec.m; sourceTree = "<group>"; }; 5DBEFA531F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfigurationSpec.m; path = DevAPISpecs/SDLStreamingMediaConfigurationSpec.m; sourceTree = "<group>"; }; 5DBEFA561F436132009EE295 /* SDLFakeSecurityManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLFakeSecurityManager.h; path = DevAPISpecs/SDLFakeSecurityManager.h; sourceTree = "<group>"; }; 5DBEFA571F436132009EE295 /* SDLFakeSecurityManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLFakeSecurityManager.m; path = DevAPISpecs/SDLFakeSecurityManager.m; sourceTree = "<group>"; }; @@ -2679,7 +2800,8 @@ 5DBF0D5F1F3B3DB4008AF2C9 /* SDLControlFrameVideoStartServiceAckSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLControlFrameVideoStartServiceAckSpec.m; path = ControlFramePayloadSpecs/SDLControlFrameVideoStartServiceAckSpec.m; sourceTree = "<group>"; }; 5DC09ED91F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNakSpec.m; path = ControlFramePayloadSpecs/SDLControlFramePayloadNakSpec.m; sourceTree = "<group>"; }; 5DC978251B7A38640012C2F1 /* SDLGlobalsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalsSpec.m; path = UtilitiesSpecs/SDLGlobalsSpec.m; sourceTree = "<group>"; }; - 5DCA93821EE0844D0015768E /* SmartDeviceLink.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmartDeviceLink.podspec; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 5DCA93821EE0844D0015768E /* SmartDeviceLink.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = SmartDeviceLink.podspec; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 5DCC458C221C9F6600036C2F /* SDLVersionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLVersionSpec.m; path = DevAPISpecs/SDLVersionSpec.m; sourceTree = "<group>"; }; 5DCD7ADC1FCCA8D100A0FC7F /* SDLCarWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLCarWindow.h; sourceTree = "<group>"; }; 5DCD7ADD1FCCA8D200A0FC7F /* SDLCarWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLCarWindow.m; sourceTree = "<group>"; }; 5DCD7AE61FCCA8E400A0FC7F /* SDLScreenshotViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLScreenshotViewController.h; sourceTree = "<group>"; }; @@ -2690,6 +2812,8 @@ 5DCF76F81ACDD7CD00BB647B /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocationResponse.m; sourceTree = "<group>"; }; 5DCF76FB1ACDDB4200BB647B /* SDLSendLocationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocationSpec.m; sourceTree = "<group>"; }; 5DCF76FD1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocationResponseSpec.m; sourceTree = "<group>"; }; + 5DD60D96221C5D7D00A82A4F /* SDLVersion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLVersion.h; sourceTree = "<group>"; }; + 5DD60D97221C5D7D00A82A4F /* SDLVersion.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLVersion.m; sourceTree = "<group>"; }; 5DD67CAE1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogTargetAppleSystemLog.h; sourceTree = "<group>"; }; 5DD67CAF1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogTargetAppleSystemLog.m; sourceTree = "<group>"; }; 5DD67CB61E661C4A009CD394 /* SDLLogTargetFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogTargetFile.h; sourceTree = "<group>"; }; @@ -2727,41 +2851,165 @@ 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConnectionManagerType.h; sourceTree = "<group>"; }; 880245A220F79C3400ED195B /* SDLFileManagerConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLFileManagerConfiguration.h; sourceTree = "<group>"; }; 880245A320F79C3400ED195B /* SDLFileManagerConfiguration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLFileManagerConfiguration.m; sourceTree = "<group>"; }; + 880D2679220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherServiceDataSpec.m; sourceTree = "<group>"; }; + 880D267B220DE5DF00B3F496 /* SDLWeatherServiceManifest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWeatherServiceManifest.h; sourceTree = "<group>"; }; + 880D267C220DE5DF00B3F496 /* SDLWeatherServiceManifest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherServiceManifest.m; sourceTree = "<group>"; }; + 880D267F220E038800B3F496 /* SDLWeatherServiceManifestSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherServiceManifestSpec.m; sourceTree = "<group>"; }; 880E35B22088F75A00181259 /* SDLSystemCapabilityManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityManager.m; sourceTree = "<group>"; }; 880E35B32088F75A00181259 /* SDLSystemCapabilityManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSystemCapabilityManager.h; sourceTree = "<group>"; }; 880E35B72088F78E00181259 /* SDLSystemCapabilityManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityManagerSpec.m; sourceTree = "<group>"; }; + 8816772822208B82001FACFF /* SDLNavigationInstructionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationInstructionSpec.m; sourceTree = "<group>"; }; + 8816772A222097C3001FACFF /* SDLNavigationServiceData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLNavigationServiceData.h; sourceTree = "<group>"; }; + 8816772B222097C3001FACFF /* SDLNavigationServiceData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationServiceData.m; sourceTree = "<group>"; }; 8818ADD62100FC18007D6F19 /* SDLTurnSignal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLTurnSignal.h; sourceTree = "<group>"; }; 8818ADD72100FC18007D6F19 /* SDLTurnSignal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTurnSignal.m; sourceTree = "<group>"; }; 8818ADDC2100FE0C007D6F19 /* SDLTurnSignalSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTurnSignalSpec.m; sourceTree = "<group>"; }; - 88295697207CF68800EF056C /* SDL Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = "SDL Example.app"; path = "SDL Example Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 88295697207CF68800EF056C /* SDL Example Swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "SDL Example Swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 882FAC4C2209D7EF0062385D /* SDLAppServiceDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceDataSpec.m; sourceTree = "<group>"; }; + 8831FA382201E3D100B8FFB7 /* SDLAppServiceManifestSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceManifestSpec.m; sourceTree = "<group>"; }; + 8831FA3C220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLServiceUpdateReasonSpec.m; sourceTree = "<group>"; }; + 8831FA3E2202227000B8FFB7 /* SDLAppServiceTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceTypeSpec.m; sourceTree = "<group>"; }; + 8831FA4022022AB300B8FFB7 /* SDLAppServiceCapability.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAppServiceCapability.h; sourceTree = "<group>"; }; + 8831FA4122022AB300B8FFB7 /* SDLAppServiceCapability.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceCapability.m; sourceTree = "<group>"; }; + 8831FA442202307500B8FFB7 /* SDLAppServiceCapabilitySpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceCapabilitySpec.m; sourceTree = "<group>"; }; + 8831FA46220235B000B8FFB7 /* SDLAppServicesCapabilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAppServicesCapabilities.h; sourceTree = "<group>"; }; + 8831FA47220235B000B8FFB7 /* SDLAppServicesCapabilities.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServicesCapabilities.m; sourceTree = "<group>"; }; + 8831FA4A2202402B00B8FFB7 /* SDLAppServicesCapabilitiesSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServicesCapabilitiesSpec.m; sourceTree = "<group>"; }; + 883C22C6222ED84D00939C4C /* SDLRPCFunctionNames.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLRPCFunctionNames.h; sourceTree = "<group>"; }; + 883C22C7222ED84D00939C4C /* SDLRPCFunctionNames.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLRPCFunctionNames.m; sourceTree = "<group>"; }; + 883C22CA222EEF0900939C4C /* SDLRPCFunctionNamesSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLRPCFunctionNamesSpec.m; sourceTree = "<group>"; }; + 884554AA222453A800BAFB6C /* SDLNavigationServiceManifest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLNavigationServiceManifest.h; sourceTree = "<group>"; }; + 884554AB222453A800BAFB6C /* SDLNavigationServiceManifest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationServiceManifest.m; sourceTree = "<group>"; }; + 884554AE2224554300BAFB6C /* SDLNavigationServiceManifestSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationServiceManifestSpec.m; sourceTree = "<group>"; }; + 884AF94B220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilitySpec.m; sourceTree = "<group>"; }; + 884AF94D220B488900E22928 /* SDLOnSystemCapabilityUpdated.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLOnSystemCapabilityUpdated.h; sourceTree = "<group>"; }; + 884AF94E220B488900E22928 /* SDLOnSystemCapabilityUpdated.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLOnSystemCapabilityUpdated.m; sourceTree = "<group>"; }; + 884E701921FB8D0F008D53BA /* SDLPublishAppService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLPublishAppService.h; sourceTree = "<group>"; }; + 884E701A21FB8D0F008D53BA /* SDLPublishAppService.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPublishAppService.m; sourceTree = "<group>"; }; + 884E701D21FB983F008D53BA /* SDLAppServiceManifest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAppServiceManifest.h; sourceTree = "<group>"; }; + 884E701E21FB983F008D53BA /* SDLAppServiceManifest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceManifest.m; sourceTree = "<group>"; }; + 884E702121FBA952008D53BA /* SDLAppServiceType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAppServiceType.h; sourceTree = "<group>"; }; + 884E702221FBA952008D53BA /* SDLAppServiceType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceType.m; sourceTree = "<group>"; }; + 884E702521FBAC5B008D53BA /* SDLServiceUpdateReason.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLServiceUpdateReason.h; sourceTree = "<group>"; }; + 884E702621FBAC5B008D53BA /* SDLServiceUpdateReason.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLServiceUpdateReason.m; sourceTree = "<group>"; }; + 884E702921FBB151008D53BA /* SDLAppServiceRecord.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAppServiceRecord.h; sourceTree = "<group>"; }; + 884E702A21FBB151008D53BA /* SDLAppServiceRecord.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceRecord.m; sourceTree = "<group>"; }; 8850DB5E1F4475D30053A48D /* TestMultipleFilesConnectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestMultipleFilesConnectionManager.h; sourceTree = "<group>"; }; 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestMultipleFilesConnectionManager.m; sourceTree = "<group>"; }; + 8854682D2225BDAE00994D8D /* SDLHybridAppPreference.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLHybridAppPreference.h; sourceTree = "<group>"; }; + 8854682E2225BDAE00994D8D /* SDLHybridAppPreference.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLHybridAppPreference.m; sourceTree = "<group>"; }; + 885468312225BF2800994D8D /* SDLHybridAppPreferenceSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLHybridAppPreferenceSpec.m; sourceTree = "<group>"; }; + 885468332225C1F800994D8D /* SDLCloudAppProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLCloudAppProperties.h; sourceTree = "<group>"; }; + 885468342225C1F800994D8D /* SDLCloudAppProperties.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCloudAppProperties.m; sourceTree = "<group>"; }; + 885468372225CBA400994D8D /* SDLCloudAppPropertiesSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCloudAppPropertiesSpec.m; sourceTree = "<group>"; }; + 8855F9DF220C93B700A5C897 /* SDLWeatherDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherDataSpec.m; sourceTree = "<group>"; }; + 8855F9E1220CB04000A5C897 /* SDLOnAppServiceData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLOnAppServiceData.h; sourceTree = "<group>"; }; + 8855F9E2220CB04000A5C897 /* SDLOnAppServiceData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLOnAppServiceData.m; sourceTree = "<group>"; }; + 8855F9E5220CB60700A5C897 /* SDLOnAppServiceDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLOnAppServiceDataSpec.m; sourceTree = "<group>"; }; + 8855F9E7220CBA9200A5C897 /* SDLGetFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetFile.h; sourceTree = "<group>"; }; + 8855F9E8220CBA9200A5C897 /* SDLGetFile.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetFile.m; sourceTree = "<group>"; }; + 8855F9EB220CBFB700A5C897 /* SDLGetFileSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetFileSpec.m; sourceTree = "<group>"; }; + 88665B67220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLPerformAppServiceInteractionResponse.h; sourceTree = "<group>"; }; + 88665B68220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPerformAppServiceInteractionResponse.m; sourceTree = "<group>"; }; + 88665B6B220B796A00D9DA77 /* SDLPerformAppServiceInteractionResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPerformAppServiceInteractionResponseSpec.m; sourceTree = "<group>"; }; + 88665B71220B80F400D9DA77 /* SDLWeatherAlert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWeatherAlert.h; sourceTree = "<group>"; }; + 88665B72220B80F400D9DA77 /* SDLWeatherAlert.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherAlert.m; sourceTree = "<group>"; }; 8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataSpec.m; sourceTree = "<group>"; }; 8877F5EC1F34A72200DC128A /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticDataResponse.h; sourceTree = "<group>"; }; 8877F5ED1F34A72200DC128A /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponse.m; sourceTree = "<group>"; }; 8877F5F01F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponseSpec.m; sourceTree = "<group>"; }; + 887BE4D322272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadConstantsSpec.m; sourceTree = "<group>"; }; 88802FEF20853AE600E9EBC6 /* SmartDeviceLinkSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartDeviceLinkSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8880D24522205B1B00964F6A /* SDLNavigationInstruction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLNavigationInstruction.h; sourceTree = "<group>"; }; + 8880D24622205B1B00964F6A /* SDLNavigationInstruction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationInstruction.m; sourceTree = "<group>"; }; + 8881AFAA2225D61900EA870B /* SDLSetCloudAppProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLSetCloudAppProperties.h; sourceTree = "<group>"; }; + 8881AFAB2225D61900EA870B /* SDLSetCloudAppProperties.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSetCloudAppProperties.m; sourceTree = "<group>"; }; + 8881AFAE2225D8EB00EA870B /* SDLSetCloudAppPropertiesSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSetCloudAppPropertiesSpec.m; sourceTree = "<group>"; }; + 8881AFB02225DED900EA870B /* SDLSetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLSetCloudAppPropertiesResponse.h; sourceTree = "<group>"; }; + 8881AFB12225DED900EA870B /* SDLSetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSetCloudAppPropertiesResponse.m; sourceTree = "<group>"; }; + 8881AFB42225E37800EA870B /* SDLSetCloudAppPropertiesResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSetCloudAppPropertiesResponseSpec.m; sourceTree = "<group>"; }; + 8881AFB62225E5EE00EA870B /* SDLGetCloudAppProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetCloudAppProperties.h; sourceTree = "<group>"; }; + 8881AFB72225E5EE00EA870B /* SDLGetCloudAppProperties.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetCloudAppProperties.m; sourceTree = "<group>"; }; + 8881AFBA2225E7FA00EA870B /* SDLGetCloudAppPropertiesSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetCloudAppPropertiesSpec.m; sourceTree = "<group>"; }; + 8881AFBC2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetCloudAppPropertiesResponse.h; sourceTree = "<group>"; }; + 8881AFBD2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetCloudAppPropertiesResponse.m; sourceTree = "<group>"; }; + 8881AFC02225EB9300EA870B /* SDLGetCloudAppPropertiesResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetCloudAppPropertiesResponseSpec.m; sourceTree = "<group>"; }; 8886EB972111F4FA008294A5 /* SDLFileManagerConfigurationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLFileManagerConfigurationSpec.m; sourceTree = "<group>"; }; + 888F86FD221DEE1F0052FE4C /* SDLAsynchronousRPCOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAsynchronousRPCOperation.m; sourceTree = "<group>"; }; + 888F86FF221DF4880052FE4C /* SDLAsynchronousRPCOperationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAsynchronousRPCOperationSpec.m; sourceTree = "<group>"; }; 88A1CF1D21669AC7001ACC75 /* SDLLifecycleConfigurationUpdateSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLLifecycleConfigurationUpdateSpec.m; sourceTree = "<group>"; }; + 88A4A0F922242AB400C6F01D /* SDLNavigationServiceDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationServiceDataSpec.m; sourceTree = "<group>"; }; + 88A5E7F3220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLOnSystemCapabilityUpdatedSpec.m; sourceTree = "<group>"; }; + 88A5E7F5220B5BBC00495E8A /* SDLGetAppServiceData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetAppServiceData.h; sourceTree = "<group>"; }; + 88A5E7F6220B5BBC00495E8A /* SDLGetAppServiceData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetAppServiceData.m; sourceTree = "<group>"; }; + 88A5E7F9220B60EC00495E8A /* SDLGetAppServiceDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetAppServiceDataSpec.m; sourceTree = "<group>"; }; + 88A5E7FB220B642200495E8A /* SDLGetAppServiceDataResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetAppServiceDataResponse.h; sourceTree = "<group>"; }; + 88A5E7FC220B642200495E8A /* SDLGetAppServiceDataResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetAppServiceDataResponse.m; sourceTree = "<group>"; }; 88A795D02106787400056542 /* SDLStaticIconName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLStaticIconName.h; sourceTree = "<group>"; }; 88A795D12106787400056542 /* SDLStaticIconName.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLStaticIconName.m; sourceTree = "<group>"; }; 88A795D4210678E000056542 /* SDLStaticIconNameSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLStaticIconNameSpec.m; sourceTree = "<group>"; }; + 88A7A3C4220CCEA100A9E435 /* SDLGetFileResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetFileResponse.h; sourceTree = "<group>"; }; + 88A7A3C5220CCEA100A9E435 /* SDLGetFileResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetFileResponse.m; sourceTree = "<group>"; }; + 88A81F6B2200FD4A00A691A9 /* SDLAppServiceRecordSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceRecordSpec.m; sourceTree = "<group>"; }; + 88AAD4BA2211B76800F1E6D7 /* SDLMediaServiceManifest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLMediaServiceManifest.h; sourceTree = "<group>"; }; + 88AAD4BB2211B76800F1E6D7 /* SDLMediaServiceManifest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMediaServiceManifest.m; sourceTree = "<group>"; }; + 88AAD4BF2211B7E200F1E6D7 /* SDLMediaServiceManifestSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMediaServiceManifestSpec.m; sourceTree = "<group>"; }; + 88AF11D8220B66FD00A59985 /* SDLGetAppServiceDataResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetAppServiceDataResponseSpec.m; sourceTree = "<group>"; }; + 88AF11DA220B6B3D00A59985 /* SDLPerformAppServiceInteraction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLPerformAppServiceInteraction.h; sourceTree = "<group>"; }; + 88AF11DB220B6B3D00A59985 /* SDLPerformAppServiceInteraction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPerformAppServiceInteraction.m; sourceTree = "<group>"; }; 88B3BF9620DA859800943565 /* SDLFuelType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLFuelType.h; sourceTree = "<group>"; }; 88B3BF9720DA859800943565 /* SDLFuelType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLFuelType.m; sourceTree = "<group>"; }; 88B3BF9A20DA8BBC00943565 /* SDLFuelRange.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLFuelRange.h; sourceTree = "<group>"; }; 88B3BF9B20DA8BBC00943565 /* SDLFuelRange.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLFuelRange.m; sourceTree = "<group>"; }; 88B3BF9F20DA8FD000943565 /* SDLFuelTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLFuelTypeSpec.m; sourceTree = "<group>"; }; 88B3BFA120DA911E00943565 /* SDLFuelRangeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLFuelRangeSpec.m; sourceTree = "<group>"; }; + 88B58DB8222040FF0011B063 /* SDLDirection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLDirection.h; sourceTree = "<group>"; }; + 88B58DB9222040FF0011B063 /* SDLDirection.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDirection.m; sourceTree = "<group>"; }; + 88B58DBC222042500011B063 /* SDLDirectionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDirectionSpec.m; sourceTree = "<group>"; }; + 88B58DBE222045320011B063 /* SDLNavigationJunction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLNavigationJunction.h; sourceTree = "<group>"; }; + 88B58DBF222045320011B063 /* SDLNavigationJunction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationJunction.m; sourceTree = "<group>"; }; + 88B58DC2222047F50011B063 /* SDLNavigationJunctionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationJunctionSpec.m; sourceTree = "<group>"; }; + 88B58DC422204AF10011B063 /* SDLNavigationAction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLNavigationAction.h; sourceTree = "<group>"; }; + 88B58DC522204AF10011B063 /* SDLNavigationAction.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationAction.m; sourceTree = "<group>"; }; + 88B58DC822204C9E0011B063 /* SDLNavigationActionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationActionSpec.m; sourceTree = "<group>"; }; 88B848C11F45E1A600DED768 /* TestResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestResponse.h; sourceTree = "<group>"; }; 88B848C21F45E1A600DED768 /* TestResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestResponse.m; sourceTree = "<group>"; }; 88B848C71F462E3600DED768 /* TestFileProgressResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestFileProgressResponse.h; sourceTree = "<group>"; }; 88B848C81F462E3600DED768 /* TestFileProgressResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestFileProgressResponse.m; sourceTree = "<group>"; }; + 88C23E8522297BD500EA171F /* SDLRPCRequestNotificationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCRequestNotificationSpec.m; sourceTree = "<group>"; }; + 88C23E8722297C6000EA171F /* SDLRPCResponseNotificationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLRPCResponseNotificationSpec.m; sourceTree = "<group>"; }; + 88C23E8922297DE400EA171F /* SDLRPCNotificationNotificationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLRPCNotificationNotificationSpec.m; sourceTree = "<group>"; }; + 88C282C9220CD17200D02F90 /* SDLGetFileResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetFileResponseSpec.m; sourceTree = "<group>"; }; + 88C37F612204EBF000901DC6 /* SDLAppServiceData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAppServiceData.h; sourceTree = "<group>"; }; + 88C37F622204EBF000901DC6 /* SDLAppServiceData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLAppServiceData.m; sourceTree = "<group>"; }; 88D2AAE31F682BB20078D5B2 /* SDLLogConstantsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogConstantsSpec.m; sourceTree = "<group>"; }; + 88D5EB35220CD95000EC3782 /* SDLWeatherServiceData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWeatherServiceData.h; sourceTree = "<group>"; }; + 88D5EB36220CD95000EC3782 /* SDLWeatherServiceData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherServiceData.m; sourceTree = "<group>"; }; + 88D6F17D22319FE000D4BFB3 /* SDLRPCRequestNotification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLRPCRequestNotification.m; sourceTree = "<group>"; }; + 88D6F17E22319FE000D4BFB3 /* SDLRPCRequestNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLRPCRequestNotification.h; sourceTree = "<group>"; }; + 88DF998C22035CC600477AC1 /* EAAccessory+OCMock.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "EAAccessory+OCMock.m"; sourceTree = "<group>"; }; + 88DF998E22035D1700477AC1 /* SDLIAPSessionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLIAPSessionSpec.m; sourceTree = "<group>"; }; + 88DF999022035D5A00477AC1 /* SDLIAPTransportSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLIAPTransportSpec.m; sourceTree = "<group>"; }; + 88E6F1A5220E1588006156F9 /* SDLMediaType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLMediaType.h; sourceTree = "<group>"; }; + 88E6F1A6220E1588006156F9 /* SDLMediaType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMediaType.m; sourceTree = "<group>"; }; + 88E6F1A9220E1720006156F9 /* SDLMediaTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMediaTypeSpec.m; sourceTree = "<group>"; }; + 88E6F1AB220E19DF006156F9 /* SDLMediaServiceData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLMediaServiceData.h; sourceTree = "<group>"; }; + 88E6F1AC220E19DF006156F9 /* SDLMediaServiceData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMediaServiceData.m; sourceTree = "<group>"; }; + 88E6F1AF220E25B2006156F9 /* SDLMediaServiceDataSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLMediaServiceDataSpec.m; sourceTree = "<group>"; }; + 88EEC5B7220A2144005AA2F9 /* SDLPublishAppServiceSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPublishAppServiceSpec.m; sourceTree = "<group>"; }; + 88EEC5B9220A327B005AA2F9 /* SDLPublishAppServiceResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLPublishAppServiceResponse.h; sourceTree = "<group>"; }; + 88EEC5BA220A327B005AA2F9 /* SDLPublishAppServiceResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPublishAppServiceResponse.m; sourceTree = "<group>"; }; + 88EEC5BD220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPublishAppServiceResponseSpec.m; sourceTree = "<group>"; }; 88EED8361F33AE1700E6C42E /* SDLHapticRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLHapticRect.h; sourceTree = "<group>"; }; 88EED8371F33AE1700E6C42E /* SDLHapticRect.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRect.m; sourceTree = "<group>"; }; 88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRectSpec.m; sourceTree = "<group>"; }; 88EED83C1F33C5A400E6C42E /* SDLSendHapticData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticData.h; sourceTree = "<group>"; }; 88EED83D1F33C5A400E6C42E /* SDLSendHapticData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticData.m; sourceTree = "<group>"; }; + 88F50D5E220B720E00F34648 /* SDLPerformAppServiceInteractionSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPerformAppServiceInteractionSpec.m; sourceTree = "<group>"; }; + 88F65132220C6DC300CAF321 /* SDLWeatherAlertSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherAlertSpec.m; sourceTree = "<group>"; }; + 88F65134220C74FD00CAF321 /* SDLWeatherData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWeatherData.h; sourceTree = "<group>"; }; + 88F65135220C74FD00CAF321 /* SDLWeatherData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWeatherData.m; sourceTree = "<group>"; }; + 88F89101221DE29A00E056AD /* SDLAsynchronousRPCOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLAsynchronousRPCOperation.h; sourceTree = "<group>"; }; 8B7B31981F2F7B5700BDC38D /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingCodec.h; sourceTree = "<group>"; }; 8B7B31991F2F7B5700BDC38D /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCodec.m; sourceTree = "<group>"; }; 8B7B319C1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingProtocol.h; sourceTree = "<group>"; }; @@ -2782,7 +3030,8 @@ 8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTypeSpec.m; sourceTree = "<group>"; }; 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMutableDataQueue.h; sourceTree = "<group>"; }; 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMutableDataQueue.m; sourceTree = "<group>"; }; - DA0C46AC1DCD35080001F2A8 /* SDLNames.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLNames.m; sourceTree = "<group>"; }; + BB3C600D221AEF37007DD4CA /* NSMutableDictionary+StoreSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+StoreSpec.m"; path = "DevAPISpecs/NSMutableDictionary+StoreSpec.m"; sourceTree = "<group>"; }; + DA0C46AC1DCD35080001F2A8 /* SDLRPCParameterNames.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCParameterNames.m; sourceTree = "<group>"; }; DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMacros.h; sourceTree = "<group>"; }; DA318C1D1DD0F06C00C035AC /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableDictionary+Store.h"; sourceTree = "<group>"; }; DA318C1E1DD0F06C00C035AC /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+Store.m"; sourceTree = "<group>"; }; @@ -2955,6 +3204,7 @@ 162E81E21A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m */, 162E81E31A9BDE8A00906325 /* SDLAppHMITypeSpec.m */, 162E81E41A9BDE8A00906325 /* SDLAppInterfaceUnregisteredReasonSpec.m */, + 8831FA3E2202227000B8FFB7 /* SDLAppServiceTypeSpec.m */, 2BF2F85120ED068200A26EF2 /* SDLAudioStreamingIndicatorSpec.m */, 162E81E51A9BDE8A00906325 /* SDLAudioStreamingStateSpec.m */, 162E81E61A9BDE8A00906325 /* SDLAudioTypeSpec.m */, @@ -2969,6 +3219,7 @@ DA9F7EB11DCC084300ACAE48 /* SDLDeliveryModeSpec.m */, 162E81EF1A9BDE8A00906325 /* SDLDeviceLevelStatusSpec.m */, 162E81F01A9BDE8A00906325 /* SDLDimensionSpec.m */, + 88B58DBC222042500011B063 /* SDLDirectionSpec.m */, 162E81F11A9BDE8A00906325 /* SDLDisplayTypeSpec.m */, 1EAA475D2035B177000FE74B /* SDLDisplayModeSpec.m */, 1EAA47612035B1AE000FE74B /* SDLDistanceUnitSpec.m */, @@ -2982,6 +3233,7 @@ 162E81F71A9BDE8A00906325 /* SDLGlobalProperySpec.m */, 162E81F81A9BDE8A00906325 /* SDLHMILevelSpec.m */, 162E81F91A9BDE8A00906325 /* SDLHMIZoneCapabilitiesSpec.m */, + 885468312225BF2800994D8D /* SDLHybridAppPreferenceSpec.m */, 162E81FA1A9BDE8A00906325 /* SDLIgnitionStableStatusSpec.m */, 162E81FB1A9BDE8A00906325 /* SDLIgnitionStatusSpec.m */, 162E81FC1A9BDE8A00906325 /* SDLImageFieldNameSpec.m */, @@ -2997,10 +3249,14 @@ 162E82041A9BDE8A00906325 /* SDLLockScreenStatusSpec.m */, 162E82051A9BDE8A00906325 /* SDLMaintenanceModeStatusSpec.m */, 1EB59CCD202DC97900343A61 /* SDLMassageCushionSpec.m */, + 1EB59CD1202DCA9B00343A61 /* SDLMassageModeSpec.m */, 1EB59CC9202DC8E300343A61 /* SDLMassageZoneSpec.m */, 162E82061A9BDE8A00906325 /* SDLMediaClockFormatSpec.m */, + 88E6F1A9220E1720006156F9 /* SDLMediaTypeSpec.m */, 8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */, 1EB59CC7202DC86A00343A61 /* SDLModuleTypeSpec.m */, + 88B58DC822204C9E0011B063 /* SDLNavigationActionSpec.m */, + 88B58DC2222047F50011B063 /* SDLNavigationJunctionSpec.m */, 162E82071A9BDE8A00906325 /* SDLPermissionStatusSpec.m */, 162E82081A9BDE8A00906325 /* SDLPowerModeQualificationStatusSpec.m */, 162E82091A9BDE8A00906325 /* SDLPowerModeStatusSpec.m */, @@ -3012,6 +3268,7 @@ 162E820E1A9BDE8A00906325 /* SDLRequestTypeSpec.m */, 162E820F1A9BDE8A00906325 /* SDLResultSpec.m */, 162E82111A9BDE8A00906325 /* SDLSamplingRateSpec.m */, + 8831FA3C220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m */, 162E82121A9BDE8A00906325 /* SDLSoftButtonTypeSpec.m */, 162E82131A9BDE8A00906325 /* SDLSpeechCapabilitiesSpec.m */, 1EB59CCF202DC9F200343A61 /* SDLSupportedSeatSpec.m */, @@ -3043,7 +3300,6 @@ 1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */, 1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */, 5D64FE6C20DA9CE600792F9F /* SDLVideoStreamingStateSpec.m */, - 1EB59CD1202DCA9B00343A61 /* SDLMassageModeSpec.m */, ); path = EnumSpecs; sourceTree = "<group>"; @@ -3052,6 +3308,7 @@ isa = PBXGroup; children = ( 162E82291A9BDE8A00906325 /* SDLOnAppInterfaceUnregisteredSpec.m */, + 8855F9E5220CB60700A5C897 /* SDLOnAppServiceDataSpec.m */, 162E822A1A9BDE8A00906325 /* SDLOnAudioPassThruSpec.m */, 162E822B1A9BDE8A00906325 /* SDLOnButtonEventSpec.m */, 162E822C1A9BDE8A00906325 /* SDLOnButtonPressSpec.m */, @@ -3067,6 +3324,7 @@ 162E82351A9BDE8A00906325 /* SDLOnPermissionsChangeSpec.m */, 1EAA470D2032BF1D000FE74B /* SDLOnRCStatusSpec.m */, 162E82361A9BDE8A00906325 /* SDLOnSyncPDataSpec.m */, + 88A5E7F3220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m */, 162E82371A9BDE8A00906325 /* SDLOnSystemRequestSpec.m */, 162E82381A9BDE8A00906325 /* SDLOnTBTClientStateSpec.m */, 162E82391A9BDE8A00906325 /* SDLOnTouchEventSpec.m */, @@ -3102,14 +3360,20 @@ 5D8B17551AC9E399006A6E1C /* SDLDialNumberSpec.m */, 162E82491A9BDE8A00906325 /* SDLEncodedSyncPDataSpec.m */, 162E824A1A9BDE8A00906325 /* SDLEndAudioPassThruSpec.m */, + 8881AFBA2225E7FA00EA870B /* SDLGetCloudAppPropertiesSpec.m */, + 88A5E7F9220B60EC00495E8A /* SDLGetAppServiceDataSpec.m */, + 8855F9EB220CBFB700A5C897 /* SDLGetFileSpec.m */, 162E824B1A9BDE8A00906325 /* SDLGetDTCsSpec.m */, 1EE8C4591F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m */, + 884AF94B220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m */, 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */, 162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */, DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */, 162E824D1A9BDE8A00906325 /* SDLListFilesSpec.m */, 162E824E1A9BDE8A00906325 /* SDLPerformAudioPassThruSpec.m */, + 88F50D5E220B720E00F34648 /* SDLPerformAppServiceInteractionSpec.m */, 162E824F1A9BDE8A00906325 /* SDLPerformInteractionSpec.m */, + 88EEC5B7220A2144005AA2F9 /* SDLPublishAppServiceSpec.m */, 162E82501A9BDE8A00906325 /* SDLPutFileSpec.m */, 162E82511A9BDE8A00906325 /* SDLReadDIDSpec.m */, 162E82521A9BDE8A00906325 /* SDLRegisterAppInterfaceSpec.m */, @@ -3117,6 +3381,7 @@ 162E82541A9BDE8A00906325 /* SDLScrollableMessageSpec.m */, 5DCF76FB1ACDDB4200BB647B /* SDLSendLocationSpec.m */, 162E82551A9BDE8A00906325 /* SDLSetAppIconSpec.m */, + 8881AFAE2225D8EB00EA870B /* SDLSetCloudAppPropertiesSpec.m */, 162E82561A9BDE8A00906325 /* SDLSetDisplayLayoutSpec.m */, 162E82571A9BDE8A00906325 /* SDLSetGlobalPropertiesSpec.m */, 162E82581A9BDE8A00906325 /* SDLSetMediaClockTimerSpec.m */, @@ -3159,14 +3424,19 @@ 162E82711A9BDE8A00906325 /* SDLEncodedSyncPDataResponseSpec.m */, 162E82721A9BDE8A00906325 /* SDLEndAudioPassThruResponseSpec.m */, 162E82731A9BDE8A00906325 /* SDLGenericResponseSpec.m */, + 8881AFC02225EB9300EA870B /* SDLGetCloudAppPropertiesResponseSpec.m */, + 88AF11D8220B66FD00A59985 /* SDLGetAppServiceDataResponseSpec.m */, 162E82741A9BDE8A00906325 /* SDLGetDTCsResponseSpec.m */, + 88C282C9220CD17200D02F90 /* SDLGetFileResponseSpec.m */, 1EE8C45C1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m */, 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m */, 162E82751A9BDE8A00906325 /* SDLGetVehicleDataResponseSpec.m */, DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */, 162E82761A9BDE8A00906325 /* SDLListFilesResponseSpec.m */, + 88665B6B220B796A00D9DA77 /* SDLPerformAppServiceInteractionResponseSpec.m */, 162E82771A9BDE8A00906325 /* SDLPerformAudioPassThruResponseSpec.m */, 162E82781A9BDE8A00906325 /* SDLPerformInteractionResponseSpec.m */, + 88EEC5BD220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m */, 162E82791A9BDE8A00906325 /* SDLPutFileResponseSpec.m */, 162E827A1A9BDE8A00906325 /* SDLReadDIDResponseSpec.m */, 162E827B1A9BDE8A00906325 /* SDLRegisterAppInterfaceResponseSpec.m */, @@ -3174,6 +3444,7 @@ 162E827D1A9BDE8A00906325 /* SDLScrollableMessageResponseSpec.m */, 5DCF76FD1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m */, 162E827E1A9BDE8A00906325 /* SDLSetAppIconResponseSpec.m */, + 8881AFB42225E37800EA870B /* SDLSetCloudAppPropertiesResponseSpec.m */, 162E827F1A9BDE8A00906325 /* SDLSetDisplayLayoutResponseSpec.m */, 162E82801A9BDE8A00906325 /* SDLSetGlobalPropertiesResponseSpec.m */, 1EE8C4601F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m */, @@ -3202,6 +3473,11 @@ children = ( 162E828F1A9BDE8A00906325 /* SDLAirbagStatusSpec.m */, DA96C0651D4D4F730022F520 /* SDLAppInfoSpec.m */, + 8831FA4A2202402B00B8FFB7 /* SDLAppServicesCapabilitiesSpec.m */, + 8831FA442202307500B8FFB7 /* SDLAppServiceCapabilitySpec.m */, + 882FAC4C2209D7EF0062385D /* SDLAppServiceDataSpec.m */, + 8831FA382201E3D100B8FFB7 /* SDLAppServiceManifestSpec.m */, + 88A81F6B2200FD4A00A691A9 /* SDLAppServiceRecordSpec.m */, 1EAA47772036BA74000FE74B /* SDLAudioControlCapabilitiesSpec.m */, 1EAA47732036B31E000FE74B /* SDLAudioControlDataSpec.m */, 162E82901A9BDE8A00906325 /* SDLAudioPassThruCapabilitiesSpec.m */, @@ -3211,6 +3487,7 @@ 162E82941A9BDE8A00906325 /* SDLChoiceSpec.m */, 1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */, 1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */, + 885468372225CBA400994D8D /* SDLCloudAppPropertiesSpec.m */, 162E82951A9BDE8A00906325 /* SDLClusterModeStatusSpec.m */, DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */, 162E82961A9BDE8A00906325 /* SDLDeviceInfoSpec.m */, @@ -3240,11 +3517,16 @@ DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */, 1EB59CD7202DCCD500343A61 /* SDLMassageCushionFirmnessSpec.m */, 1EB59CD3202DCAE900343A61 /* SDLMassageModeDataSpec.m */, + 88E6F1AF220E25B2006156F9 /* SDLMediaServiceDataSpec.m */, + 88AAD4BF2211B7E200F1E6D7 /* SDLMediaServiceManifestSpec.m */, 162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */, 1EE8C4451F3837D200FDC2CF /* SDLModuleDataSpec.m */, 8B9376DA1F33656C009605C4 /* SDLMetadataTagsSpec.m */, 162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */, 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */, + 8816772822208B82001FACFF /* SDLNavigationInstructionSpec.m */, + 88A4A0F922242AB400C6F01D /* SDLNavigationServiceDataSpec.m */, + 884554AE2224554300BAFB6C /* SDLNavigationServiceManifestSpec.m */, DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */, 162E82A41A9BDE8A00906325 /* SDLParameterPermissionsSpec.m */, 162E82A51A9BDE8A00906325 /* SDLPermissionItemSpec.m */, @@ -3282,6 +3564,10 @@ 162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */, 8B7B31AE1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m */, 8B7B31B01F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m */, + 88F65132220C6DC300CAF321 /* SDLWeatherAlertSpec.m */, + 8855F9DF220C93B700A5C897 /* SDLWeatherDataSpec.m */, + 880D2679220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m */, + 880D267F220E038800B3F496 /* SDLWeatherServiceManifestSpec.m */, ); path = StructSpecs; sourceTree = "<group>"; @@ -3341,6 +3627,7 @@ 1680B10A1A9CD7AD00DBD79E /* SDLProtocolMessageSpec.m */, 1680B10C1A9CD7AD00DBD79E /* SDLV1ProtocolMessageSpec.m */, 1680B10D1A9CD7AD00DBD79E /* SDLV2ProtocolMessageSpec.m */, + 887BE4D322272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m */, ); path = MessageSpecs; sourceTree = "<group>"; @@ -3369,17 +3656,6 @@ name = Connection; sourceTree = "<group>"; }; - 5D07C02A2044963400D1ECDC /* Recovered References */ = { - isa = PBXGroup; - children = ( - 5DB1616B2022276A00F310DF /* SDLSequentialRPCRequestOperation.m */, - 5DB16143202115FC00F310DF /* SDLAsynchronousRPCRequestOperation.m */, - 5DB16142202115FC00F310DF /* SDLAsynchronousRPCRequestOperation.h */, - 5DB1616A2022276A00F310DF /* SDLSequentialRPCRequestOperation.h */, - ); - name = "Recovered References"; - sourceTree = "<group>"; - }; 5D07C0342044AD1900D1ECDC /* Request Operations */ = { isa = PBXGroup; children = ( @@ -3387,6 +3663,8 @@ 5D07C0302044AD0C00D1ECDC /* SDLAsynchronousRPCRequestOperation.m */, 5D07C02B2044AC9000D1ECDC /* SDLSequentialRPCRequestOperation.h */, 5D07C02C2044AC9100D1ECDC /* SDLSequentialRPCRequestOperation.m */, + 88F89101221DE29A00E056AD /* SDLAsynchronousRPCOperation.h */, + 888F86FD221DEE1F0052FE4C /* SDLAsynchronousRPCOperation.m */, ); name = "Request Operations"; sourceTree = "<group>"; @@ -3460,6 +3738,7 @@ isa = PBXGroup; children = ( 5D1654551D3E754F00554D93 /* SDLLifecycleManagerSpec.m */, + 888F86FF221DF4880052FE4C /* SDLAsynchronousRPCOperationSpec.m */, 5D60DF23202B7A80001EDA01 /* SDLAsynchronousRPCRequestOperationSpec.m */, 5D60DF25202B7A97001EDA01 /* SDLSequentialRPCRequestOperationSpec.m */, 88A1CF1D21669AC7001ACC75 /* SDLLifecycleConfigurationUpdateSpec.m */, @@ -3571,7 +3850,6 @@ 5D61FA2C1A84237100846EE7 /* SmartDeviceLinkTests */, 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */, 5D4019B01A76EC350006B0C2 /* Products */, - 5D07C02A2044963400D1ECDC /* Recovered References */, ); sourceTree = "<group>"; }; @@ -3581,7 +3859,7 @@ 5D4019AF1A76EC350006B0C2 /* SDL Example.app */, 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */, 5D61FA261A84237100846EE7 /* SmartDeviceLinkTests.xctest */, - 88295697207CF68800EF056C /* SDL Example.app */, + 88295697207CF68800EF056C /* SDL Example Swift.app */, 88802FEF20853AE600E9EBC6 /* SmartDeviceLinkSwift.framework */, ); name = Products; @@ -3827,8 +4105,14 @@ 5D61FAB21A84238A00846EE7 /* SDLEncodedSyncPData.m */, 5D61FAB61A84238A00846EE7 /* SDLEndAudioPassThru.h */, 5D61FAB71A84238A00846EE7 /* SDLEndAudioPassThru.m */, + 8881AFB62225E5EE00EA870B /* SDLGetCloudAppProperties.h */, + 8881AFB72225E5EE00EA870B /* SDLGetCloudAppProperties.m */, + 88A5E7F5220B5BBC00495E8A /* SDLGetAppServiceData.h */, + 88A5E7F6220B5BBC00495E8A /* SDLGetAppServiceData.m */, 5D61FAC41A84238A00846EE7 /* SDLGetDTCs.h */, 5D61FAC51A84238A00846EE7 /* SDLGetDTCs.m */, + 8855F9E7220CBA9200A5C897 /* SDLGetFile.h */, + 8855F9E8220CBA9200A5C897 /* SDLGetFile.m */, 1E5AD0861F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h */, 1E5AD0871F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m */, 5D00AC6D1F1511B9004000D9 /* SDLGetSystemCapability.h */, @@ -3839,10 +4123,14 @@ DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWayPoints.m */, 5D61FAFF1A84238A00846EE7 /* SDLListFiles.h */, 5D61FB001A84238A00846EE7 /* SDLListFiles.m */, + 88AF11DA220B6B3D00A59985 /* SDLPerformAppServiceInteraction.h */, + 88AF11DB220B6B3D00A59985 /* SDLPerformAppServiceInteraction.m */, 5D61FB381A84238B00846EE7 /* SDLPerformAudioPassThru.h */, 5D61FB391A84238B00846EE7 /* SDLPerformAudioPassThru.m */, 5D61FB3C1A84238B00846EE7 /* SDLPerformInteraction.h */, 5D61FB3D1A84238B00846EE7 /* SDLPerformInteraction.m */, + 884E701921FB8D0F008D53BA /* SDLPublishAppService.h */, + 884E701A21FB8D0F008D53BA /* SDLPublishAppService.m */, 5D61FB681A84238B00846EE7 /* SDLPutFile.h */, 5D61FB691A84238B00846EE7 /* SDLPutFile.m */, 5D61FB6C1A84238B00846EE7 /* SDLReadDID.h */, @@ -3859,6 +4147,8 @@ 5DCF76F41ACDBAD300BB647B /* SDLSendLocation.m */, 5D61FB921A84238B00846EE7 /* SDLSetAppIcon.h */, 5D61FB931A84238B00846EE7 /* SDLSetAppIcon.m */, + 8881AFAA2225D61900EA870B /* SDLSetCloudAppProperties.h */, + 8881AFAB2225D61900EA870B /* SDLSetCloudAppProperties.m */, 5D61FB961A84238B00846EE7 /* SDLSetDisplayLayout.h */, 5D61FB971A84238B00846EE7 /* SDLSetDisplayLayout.m */, 5D61FB9A1A84238B00846EE7 /* SDLSetGlobalProperties.h */, @@ -3934,8 +4224,14 @@ 5D61FAB91A84238A00846EE7 /* SDLEndAudioPassThruResponse.m */, 5D61FAC21A84238A00846EE7 /* SDLGenericResponse.h */, 5D61FAC31A84238A00846EE7 /* SDLGenericResponse.m */, + 8881AFBC2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.h */, + 8881AFBD2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.m */, + 88A5E7FB220B642200495E8A /* SDLGetAppServiceDataResponse.h */, + 88A5E7FC220B642200495E8A /* SDLGetAppServiceDataResponse.m */, 5D61FAC61A84238A00846EE7 /* SDLGetDTCsResponse.h */, 5D61FAC71A84238A00846EE7 /* SDLGetDTCsResponse.m */, + 88A7A3C4220CCEA100A9E435 /* SDLGetFileResponse.h */, + 88A7A3C5220CCEA100A9E435 /* SDLGetFileResponse.m */, 1E5AD08A1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h */, 1E5AD08B1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.m */, 5D00AC711F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h */, @@ -3946,10 +4242,14 @@ DA9F7E721DCC004C00ACAE48 /* SDLGetWayPointsResponse.m */, 5D61FB011A84238A00846EE7 /* SDLListFilesResponse.h */, 5D61FB021A84238A00846EE7 /* SDLListFilesResponse.m */, + 88665B67220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.h */, + 88665B68220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.m */, 5D61FB3A1A84238B00846EE7 /* SDLPerformAudioPassThruResponse.h */, 5D61FB3B1A84238B00846EE7 /* SDLPerformAudioPassThruResponse.m */, 5D61FB3E1A84238B00846EE7 /* SDLPerformInteractionResponse.h */, 5D61FB3F1A84238B00846EE7 /* SDLPerformInteractionResponse.m */, + 88EEC5B9220A327B005AA2F9 /* SDLPublishAppServiceResponse.h */, + 88EEC5BA220A327B005AA2F9 /* SDLPublishAppServiceResponse.m */, 5D61FB6A1A84238B00846EE7 /* SDLPutFileResponse.h */, 5D61FB6B1A84238B00846EE7 /* SDLPutFileResponse.m */, 5D61FB6E1A84238B00846EE7 /* SDLReadDIDResponse.h */, @@ -3966,6 +4266,8 @@ 5DCF76F81ACDD7CD00BB647B /* SDLSendLocationResponse.m */, 5D61FB941A84238B00846EE7 /* SDLSetAppIconResponse.h */, 5D61FB951A84238B00846EE7 /* SDLSetAppIconResponse.m */, + 8881AFB02225DED900EA870B /* SDLSetCloudAppPropertiesResponse.h */, + 8881AFB12225DED900EA870B /* SDLSetCloudAppPropertiesResponse.m */, 5D61FB981A84238B00846EE7 /* SDLSetDisplayLayoutResponse.h */, 5D61FB991A84238B00846EE7 /* SDLSetDisplayLayoutResponse.m */, 5D61FB9C1A84238B00846EE7 /* SDLSetGlobalPropertiesResponse.h */, @@ -4013,6 +4315,16 @@ 5D61FA491A84238A00846EE7 /* SDLAirbagStatus.m */, 332A913C1CED87F80043824C /* SDLAppInfo.h */, 332A913D1CED87F80043824C /* SDLAppInfo.m */, + 8831FA46220235B000B8FFB7 /* SDLAppServicesCapabilities.h */, + 8831FA47220235B000B8FFB7 /* SDLAppServicesCapabilities.m */, + 8831FA4022022AB300B8FFB7 /* SDLAppServiceCapability.h */, + 8831FA4122022AB300B8FFB7 /* SDLAppServiceCapability.m */, + 88C37F612204EBF000901DC6 /* SDLAppServiceData.h */, + 88C37F622204EBF000901DC6 /* SDLAppServiceData.m */, + 884E701D21FB983F008D53BA /* SDLAppServiceManifest.h */, + 884E701E21FB983F008D53BA /* SDLAppServiceManifest.m */, + 884E702921FBB151008D53BA /* SDLAppServiceRecord.h */, + 884E702A21FBB151008D53BA /* SDLAppServiceRecord.m */, 1EAA471B203410BB000FE74B /* SDLAudioControlCapabilities.h */, 1EAA471C203410BB000FE74B /* SDLAudioControlCapabilities.m */, 1EAA47272034388D000FE74B /* SDLAudioControlData.h */, @@ -4031,6 +4343,8 @@ 1E5AD0371F1F4E390029B8AF /* SDLClimateControlCapabilities.m */, 1E5AD06A1F208BAB0029B8AF /* SDLClimateControlData.h */, 1E5AD06B1F208BAB0029B8AF /* SDLClimateControlData.m */, + 885468332225C1F800994D8D /* SDLCloudAppProperties.h */, + 885468342225C1F800994D8D /* SDLCloudAppProperties.m */, 5D61FA761A84238A00846EE7 /* SDLClusterModeStatus.h */, 5D61FA771A84238A00846EE7 /* SDLClusterModeStatus.m */, DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */, @@ -4089,16 +4403,26 @@ 1EB59CAE202D97AC00343A61 /* SDLMassageCushionFirmness.m */, 1EB59CA5202D946500343A61 /* SDLMassageModeData.h */, 1EB59CA6202D946500343A61 /* SDLMassageModeData.m */, + 88E6F1AB220E19DF006156F9 /* SDLMediaServiceData.h */, + 88E6F1AC220E19DF006156F9 /* SDLMediaServiceData.m */, + 88AAD4BA2211B76800F1E6D7 /* SDLMediaServiceManifest.h */, + 88AAD4BB2211B76800F1E6D7 /* SDLMediaServiceManifest.m */, 5D61FB0B1A84238A00846EE7 /* SDLMenuParams.h */, 5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */, - 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */, - 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */, 8B9376D51F3349FC009605C4 /* SDLMetadataTags.h */, 8B9376D61F3349FC009605C4 /* SDLMetadataTags.m */, + 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */, + 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */, 5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */, 5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */, 5D00AC751F15283E004000D9 /* SDLNavigationCapability.h */, 5D00AC761F15283E004000D9 /* SDLNavigationCapability.m */, + 8880D24522205B1B00964F6A /* SDLNavigationInstruction.h */, + 8880D24622205B1B00964F6A /* SDLNavigationInstruction.m */, + 8816772A222097C3001FACFF /* SDLNavigationServiceData.h */, + 8816772B222097C3001FACFF /* SDLNavigationServiceData.m */, + 884554AA222453A800BAFB6C /* SDLNavigationServiceManifest.h */, + 884554AB222453A800BAFB6C /* SDLNavigationServiceManifest.m */, DA9F7E651DCBFAD400ACAE48 /* SDLOasisAddress.h */, DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */, 5D61FB361A84238B00846EE7 /* SDLParameterPermissions.h */, @@ -4173,6 +4497,14 @@ 8B7B31A11F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m */, 8B7B31A41F2F875200BDC38D /* SDLVideoStreamingCapability.h */, 8B7B31A51F2F875200BDC38D /* SDLVideoStreamingCapability.m */, + 88665B71220B80F400D9DA77 /* SDLWeatherAlert.h */, + 88665B72220B80F400D9DA77 /* SDLWeatherAlert.m */, + 88F65134220C74FD00CAF321 /* SDLWeatherData.h */, + 88F65135220C74FD00CAF321 /* SDLWeatherData.m */, + 88D5EB35220CD95000EC3782 /* SDLWeatherServiceData.h */, + 88D5EB36220CD95000EC3782 /* SDLWeatherServiceData.m */, + 880D267B220DE5DF00B3F496 /* SDLWeatherServiceManifest.h */, + 880D267C220DE5DF00B3F496 /* SDLWeatherServiceManifest.m */, ); name = Structs; sourceTree = "<group>"; @@ -4186,6 +4518,8 @@ 5D61FA551A84238A00846EE7 /* SDLAppHMIType.m */, 5D61FA561A84238A00846EE7 /* SDLAppInterfaceUnregisteredReason.h */, 5D61FA571A84238A00846EE7 /* SDLAppInterfaceUnregisteredReason.m */, + 884E702121FBA952008D53BA /* SDLAppServiceType.h */, + 884E702221FBA952008D53BA /* SDLAppServiceType.m */, 2BF2F84D20ED004000A26EF2 /* SDLAudioStreamingIndicator.h */, 2BF2F84E20ED004000A26EF2 /* SDLAudioStreamingIndicator.m */, 5D61FA5A1A84238A00846EE7 /* SDLAudioStreamingState.h */, @@ -4216,6 +4550,8 @@ 5D61FA981A84238A00846EE7 /* SDLDeviceLevelStatus.m */, 5D61FAA11A84238A00846EE7 /* SDLDimension.h */, 5D61FAA21A84238A00846EE7 /* SDLDimension.m */, + 88B58DB8222040FF0011B063 /* SDLDirection.h */, + 88B58DB9222040FF0011B063 /* SDLDirection.m */, 1EAA474B20356B2D000FE74B /* SDLDisplayMode.h */, 1EAA474C20356B2D000FE74B /* SDLDisplayMode.m */, 1EAA474F20356CD2000FE74B /* SDLDistanceUnit.h */, @@ -4242,6 +4578,8 @@ 5D61FAD51A84238A00846EE7 /* SDLHMILevel.m */, 5D61FAD81A84238A00846EE7 /* SDLHMIZoneCapabilities.h */, 5D61FAD91A84238A00846EE7 /* SDLHMIZoneCapabilities.m */, + 8854682D2225BDAE00994D8D /* SDLHybridAppPreference.h */, + 8854682E2225BDAE00994D8D /* SDLHybridAppPreference.m */, 5D61FADC1A84238A00846EE7 /* SDLIgnitionStableStatus.h */, 5D61FADD1A84238A00846EE7 /* SDLIgnitionStableStatus.m */, 5D61FADE1A84238A00846EE7 /* SDLIgnitionStatus.h */, @@ -4278,10 +4616,16 @@ 1EB59C9E202D925500343A61 /* SDLMassageZone.m */, 5D61FB091A84238A00846EE7 /* SDLMediaClockFormat.h */, 5D61FB0A1A84238A00846EE7 /* SDLMediaClockFormat.m */, + 88E6F1A5220E1588006156F9 /* SDLMediaType.h */, + 88E6F1A6220E1588006156F9 /* SDLMediaType.m */, 1E5AD0461F1F773E0029B8AF /* SDLModuleType.h */, 1E5AD0471F1F773E0029B8AF /* SDLModuleType.m */, 8BBEA6041F324165003EEA26 /* SDLMetadataType.h */, 8BBEA6051F324165003EEA26 /* SDLMetadataType.m */, + 88B58DC422204AF10011B063 /* SDLNavigationAction.h */, + 88B58DC522204AF10011B063 /* SDLNavigationAction.m */, + 88B58DBE222045320011B063 /* SDLNavigationJunction.h */, + 88B58DBF222045320011B063 /* SDLNavigationJunction.m */, 5D61FB421A84238B00846EE7 /* SDLPermissionStatus.h */, 5D61FB431A84238B00846EE7 /* SDLPermissionStatus.m */, 5D61FB461A84238B00846EE7 /* SDLPowerModeQualificationStatus.h */, @@ -4309,6 +4653,8 @@ 5D61FB8B1A84238B00846EE7 /* SDLSamplingRate.m */, 1EB59CB1202D9B5F00343A61 /* SDLSeatMemoryActionType.h */, 1EB59CB2202D9B5F00343A61 /* SDLSeatMemoryActionType.m */, + 884E702521FBAC5B008D53BA /* SDLServiceUpdateReason.h */, + 884E702621FBAC5B008D53BA /* SDLServiceUpdateReason.m */, 5D61FBB61A84238B00846EE7 /* SDLSoftButtonType.h */, 5D61FBB71A84238B00846EE7 /* SDLSoftButtonType.m */, 5D61FBBC1A84238B00846EE7 /* SDLSpeechCapabilities.h */, @@ -4401,14 +4747,16 @@ 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */, E9C32B831AB20B2900F283AF /* @categories */, 5D5934F91A851A8000687FB9 /* Prioritized Objects */, + 5D535DC31B72473800CF7760 /* SDLGlobals.h */, + 5D535DC41B72473800CF7760 /* SDLGlobals.m */, 5D61FAD21A84238A00846EE7 /* SDLHexUtility.h */, 5D61FAD31A84238A00846EE7 /* SDLHexUtility.m */, + 883C22C6222ED84D00939C4C /* SDLRPCFunctionNames.h */, + 883C22C7222ED84D00939C4C /* SDLRPCFunctionNames.m */, + 5D61FB0F1A84238A00846EE7 /* SDLRPCParameterNames.h */, + DA0C46AC1DCD35080001F2A8 /* SDLRPCParameterNames.m */, E9C32B8E1AB20BA200F283AF /* SDLTimer.h */, E9C32B8F1AB20BA200F283AF /* SDLTimer.m */, - 5D61FB0F1A84238A00846EE7 /* SDLNames.h */, - DA0C46AC1DCD35080001F2A8 /* SDLNames.m */, - 5D535DC31B72473800CF7760 /* SDLGlobals.h */, - 5D535DC41B72473800CF7760 /* SDLGlobals.m */, DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */, ); name = Utilities; @@ -4419,6 +4767,8 @@ children = ( 5D61FB121A84238B00846EE7 /* SDLOnAppInterfaceUnregistered.h */, 5D61FB131A84238B00846EE7 /* SDLOnAppInterfaceUnregistered.m */, + 8855F9E1220CB04000A5C897 /* SDLOnAppServiceData.h */, + 8855F9E2220CB04000A5C897 /* SDLOnAppServiceData.m */, 5D61FB141A84238B00846EE7 /* SDLOnAudioPassThru.h */, 5D61FB151A84238B00846EE7 /* SDLOnAudioPassThru.m */, 5D61FB161A84238B00846EE7 /* SDLOnButtonEvent.h */, @@ -4449,6 +4799,8 @@ 1EAA470A2032BAE5000FE74B /* SDLOnRCStatus.m */, 5D61FB2C1A84238B00846EE7 /* SDLOnSyncPData.h */, 5D61FB2D1A84238B00846EE7 /* SDLOnSyncPData.m */, + 884AF94D220B488900E22928 /* SDLOnSystemCapabilityUpdated.h */, + 884AF94E220B488900E22928 /* SDLOnSystemCapabilityUpdated.m */, 5D61FB2E1A84238B00846EE7 /* SDLOnSystemRequest.h */, 5D61FB2F1A84238B00846EE7 /* SDLOnSystemRequest.m */, 5D61FB301A84238B00846EE7 /* SDLOnTBTClientState.h */, @@ -4583,6 +4935,7 @@ 5D6035D1202CD46200A429C9 /* SDLSpecUtilities.m */, EEA41D43210BA89B0006CB6E /* TestTCPServer.h */, EEA41D44210BA8CF0006CB6E /* TestTCPServer.m */, + 883C22CA222EEF0900939C4C /* SDLRPCFunctionNamesSpec.m */, ); name = "Test Utilities"; sourceTree = "<group>"; @@ -4670,6 +5023,7 @@ children = ( 5DB1BCE41D245629002FFC37 /* State Machine */, 5D6EB4C71BF28D6800693731 /* Categories */, + 5DCC458C221C9F6600036C2F /* SDLVersionSpec.m */, ); name = Utilities; sourceTree = "<group>"; @@ -4678,6 +5032,7 @@ isa = PBXGroup; children = ( 5D6EB4CB1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m */, + BB3C600D221AEF37007DD4CA /* NSMutableDictionary+StoreSpec.m */, ); name = Categories; sourceTree = "<group>"; @@ -4904,6 +5259,8 @@ 5DA3F35C1BC4484B0026F2D0 /* Notifications */, 5DA3F3571BC448160026F2D0 /* Categories */, 5D6008871BE3ED470094A505 /* State Machine */, + 5DD60D96221C5D7D00A82A4F /* SDLVersion.h */, + 5DD60D97221C5D7D00A82A4F /* SDLVersion.m */, ); name = Utilities; sourceTree = "<group>"; @@ -5174,6 +5531,7 @@ 5DBAE0A71D355F0C00CE00BF /* Dispatchers */ = { isa = PBXGroup; children = ( + 88A70C392233087500574CA4 /* Requests */, 5D3E48781D6F86EC0000BFEF /* Notifications */, 5D3E48821D74813B0000BFEF /* Responses */, ); @@ -5198,8 +5556,8 @@ 5DBAE0A91D35888D00CE00BF /* Dispatchers */ = { isa = PBXGroup; children = ( - 5DBAE0AA1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m */, - 5DBAE0AC1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m */, + 88C23E8422297BD500EA171F /* Notification Tests */, + 88FF4E792215FEAF00A71361 /* Notifications */, ); name = Dispatchers; sourceTree = "<group>"; @@ -5493,6 +5851,15 @@ name = Storyboards; sourceTree = "<group>"; }; + 88A70C392233087500574CA4 /* Requests */ = { + isa = PBXGroup; + children = ( + 88D6F17E22319FE000D4BFB3 /* SDLRPCRequestNotification.h */, + 88D6F17D22319FE000D4BFB3 /* SDLRPCRequestNotification.m */, + ); + name = Requests; + sourceTree = "<group>"; + }; 88B848C41F45E20900DED768 /* Helpers */ = { isa = PBXGroup; children = ( @@ -5506,6 +5873,44 @@ name = Helpers; sourceTree = "<group>"; }; + 88C23E8422297BD500EA171F /* Notification Tests */ = { + isa = PBXGroup; + children = ( + 88C23E8522297BD500EA171F /* SDLRPCRequestNotificationSpec.m */, + 88C23E8722297C6000EA171F /* SDLRPCResponseNotificationSpec.m */, + 88C23E8922297DE400EA171F /* SDLRPCNotificationNotificationSpec.m */, + ); + name = "Notification Tests"; + path = "DevAPISpecs/Notification Tests"; + sourceTree = "<group>"; + }; + 88DF998A22035CA400477AC1 /* TCP */ = { + isa = PBXGroup; + children = ( + EE5D1B32208EBCA900D17216 /* SDLTCPTransportSpec.m */, + ); + path = TCP; + sourceTree = "<group>"; + }; + 88DF998B22035CB100477AC1 /* iAP */ = { + isa = PBXGroup; + children = ( + 88DF998C22035CC600477AC1 /* EAAccessory+OCMock.m */, + 88DF998E22035D1700477AC1 /* SDLIAPSessionSpec.m */, + 88DF999022035D5A00477AC1 /* SDLIAPTransportSpec.m */, + ); + path = iAP; + sourceTree = "<group>"; + }; + 88FF4E792215FEAF00A71361 /* Notifications */ = { + isa = PBXGroup; + children = ( + 5DBAE0AA1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m */, + 5DBAE0AC1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m */, + ); + path = Notifications; + sourceTree = "<group>"; + }; DA1166D71D14601C00438CEA /* Touches */ = { isa = PBXGroup; children = ( @@ -5618,7 +6023,8 @@ EE5D1B31208EBC7100D17216 /* TransportSpecs */ = { isa = PBXGroup; children = ( - EE5D1B32208EBCA900D17216 /* SDLTCPTransportSpec.m */, + 88DF998B22035CB100477AC1 /* iAP */, + 88DF998A22035CA400477AC1 /* TCP */, ); path = TransportSpecs; sourceTree = "<group>"; @@ -5643,6 +6049,7 @@ files = ( 1EB59CBF202DA26000343A61 /* SDLSeatControlData.h in Headers */, 1EB59CB3202D9B5F00343A61 /* SDLSeatMemoryActionType.h in Headers */, + 88665B73220B80F400D9DA77 /* SDLWeatherAlert.h in Headers */, 1EB59CC3202DB40400343A61 /* SDLSeatControlCapabilities.h in Headers */, 1EB59CB7202D9C8100343A61 /* SDLSeatMemoryAction.h in Headers */, 1EB59CBB202DA1B400343A61 /* SDLSupportedSeat.h in Headers */, @@ -5650,6 +6057,7 @@ 1EB59CAB202D96A200343A61 /* SDLMassageCushion.h in Headers */, 1EB59C9F202D925500343A61 /* SDLMassageZone.h in Headers */, 1EB59CA3202D92F600343A61 /* SDLMassageMode.h in Headers */, + 8881AFB22225DED900EA870B /* SDLSetCloudAppPropertiesResponse.h in Headers */, 1EB59CAF202D97AC00343A61 /* SDLMassageCushionFirmness.h in Headers */, 1EAA470B2032BAE5000FE74B /* SDLOnRCStatus.h in Headers */, 2BF2F84F20ED004000A26EF2 /* SDLAudioStreamingIndicator.h in Headers */, @@ -5657,6 +6065,7 @@ 1EAA4755203583BC000FE74B /* SDLHMISettingsControlData.h in Headers */, 1EAA4731203442C0000FE74B /* SDLLightName.h in Headers */, 1EAA472D20344108000FE74B /* SDLLightStatus.h in Headers */, + 8831FA4222022AB300B8FFB7 /* SDLAppServiceCapability.h in Headers */, 1EAA474D20356B2D000FE74B /* SDLDisplayMode.h in Headers */, 1EAA473D203554B5000FE74B /* SDLLightState.h in Headers */, 1EAA4749203567FA000FE74B /* SDLHMISettingsControlCapabilities.h in Headers */, @@ -5689,12 +6098,14 @@ 5DB92D321AC9C8BA00C15BB0 /* SDLRPCStruct.h in Headers */, 5D61FD151A84238C00846EE7 /* SDLOnLockScreenStatus.h in Headers */, 5D61FD291A84238C00846EE7 /* SDLPerformInteraction.h in Headers */, + 884E702321FBA952008D53BA /* SDLAppServiceType.h in Headers */, DAC572571D1067270004288B /* SDLTouchManager.h in Headers */, 5D61FE0D1A84238C00846EE7 /* SDLVrCapabilities.h in Headers */, EEB1932E205028B700A8940C /* SDLControlFramePayloadTransportEventUpdate.h in Headers */, EE798CA420561210008EDE8E /* SDLSecondaryTransportManager.h in Headers */, 5DBF06271E64A91D00A5CF03 /* SDLLogFileModule.h in Headers */, 5D61FC531A84238C00846EE7 /* SDLButtonEventMode.h in Headers */, + 88E6F1AD220E19DF006156F9 /* SDLMediaServiceData.h in Headers */, 1FF7DAB61F75B27300B46C30 /* SDLFocusableItemLocatorType.h in Headers */, 5D61FC781A84238C00846EE7 /* SDLDeleteFileResponse.h in Headers */, 5DA240001F325621009C0313 /* SDLStreamingMediaConfiguration.h in Headers */, @@ -5708,6 +6119,7 @@ 5D92937820B6FB6200FCC775 /* SDLPresentChoiceSetOperation.h in Headers */, 5D61FD831A84238C00846EE7 /* SDLSetDisplayLayout.h in Headers */, 5D61FCC91A84238C00846EE7 /* SDLIgnitionStableStatus.h in Headers */, + 884E701F21FB983F008D53BA /* SDLAppServiceManifest.h in Headers */, DA9F7E6B1DCBFB0700ACAE48 /* SDLDeliveryMode.h in Headers */, E9C32B941AB20BA200F283AF /* SDLStreamDelegate.h in Headers */, DA9F7E871DCC049900ACAE48 /* SDLSubscribeWayPoints.h in Headers */, @@ -5723,9 +6135,11 @@ 5D1665C81CF8CA3D00CC4CA1 /* SDLPermissionFilter.h in Headers */, E9C32B911AB20BA200F283AF /* SDLIAPSession.h in Headers */, 5D61FCD71A84238C00846EE7 /* SDLInteractionMode.h in Headers */, + 8881AFBE2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.h in Headers */, 5D61FC391A84238C00846EE7 /* SDLAlertManeuver.h in Headers */, 5D61FC861A84238C00846EE7 /* SDLDeviceStatus.h in Headers */, DA0C46AF1DCD41E30001F2A8 /* SDLMacros.h in Headers */, + 884E702721FBAC5B008D53BA /* SDLServiceUpdateReason.h in Headers */, 5D61FCC71A84238C00846EE7 /* SDLIAPTransport.h in Headers */, 5D61FC6D1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.h in Headers */, 5D8204221BCEA89A00D0A41B /* SDLFileManager.h in Headers */, @@ -5738,6 +6152,7 @@ 5D9FDA991F2A7D3F00A495C8 /* emhashmap.h in Headers */, 5D61FDB71A84238C00846EE7 /* SDLSyncPData.h in Headers */, 5D61FD011A84238C00846EE7 /* SDLOnAudioPassThru.h in Headers */, + 8854682F2225BDAE00994D8D /* SDLHybridAppPreference.h in Headers */, 5D9FDA901F2A7D3400A495C8 /* bson_array.h in Headers */, 5D61FDCB1A84238C00846EE7 /* SDLTextFieldName.h in Headers */, 5D61FD8B1A84238C00846EE7 /* SDLSetMediaClockTimer.h in Headers */, @@ -5760,6 +6175,7 @@ 5D61FD9F1A84238C00846EE7 /* SDLSoftButton.h in Headers */, 5DD67CBC1E661C84009CD394 /* SDLLogTargetOSLog.h in Headers */, 5D61FD551A84238C00846EE7 /* SDLPutFile.h in Headers */, + 88A7A3C6220CCEA100A9E435 /* SDLGetFileResponse.h in Headers */, 5D61FD091A84238C00846EE7 /* SDLOnDriverDistraction.h in Headers */, E9C32B9E1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h in Headers */, 5DAD5F7F204DEDEB0025624C /* SDLScreenManager.h in Headers */, @@ -5779,24 +6195,30 @@ 5D61FCB71A84238C00846EE7 /* SDLGetVehicleDataResponse.h in Headers */, 5D61FDA91A84238C00846EE7 /* SDLSpeechCapabilities.h in Headers */, 5D92935320B2F76500FCC775 /* SDLTemplateColorScheme.h in Headers */, + 884E701B21FB8D0F008D53BA /* SDLPublishAppService.h in Headers */, 5DA23FFD1F312DBA009C0313 /* SDLVideoEncoderDelegate.h in Headers */, EE7B6124205BF97B00E0655B /* SDLControlFramePayloadRegisterSecondaryTransportNak.h in Headers */, 5D61FCE01A84238C00846EE7 /* SDLKeyboardEvent.h in Headers */, 5D3E48751D6F3B330000BFEF /* SDLAsynchronousOperation.h in Headers */, + 88AF11DC220B6B3D00A59985 /* SDLPerformAppServiceInteraction.h in Headers */, DA9F7E631DCBFAC800ACAE48 /* SDLDateTime.h in Headers */, 5D61FCEA1A84238C00846EE7 /* SDLLayoutMode.h in Headers */, DA318C1F1DD0F06C00C035AC /* NSMutableDictionary+Store.h in Headers */, 5D61FD7F1A84238C00846EE7 /* SDLSetAppIcon.h in Headers */, 5D61FDD11A84238C00846EE7 /* SDLTouchCoord.h in Headers */, + 8881AFAC2225D61900EA870B /* SDLSetCloudAppProperties.h in Headers */, 5D61FC7E1A84238C00846EE7 /* SDLDeleteSubMenu.h in Headers */, 1EE48E901F2F0EE700B98D08 /* SDLTemperatureUnit.h in Headers */, 5D61FC451A84238C00846EE7 /* SDLAudioPassThruCapabilities.h in Headers */, 5D61FDC71A84238C00846EE7 /* SDLTextAlignment.h in Headers */, 5D61FD051A84238C00846EE7 /* SDLOnButtonPress.h in Headers */, 5D61FCC51A84238C00846EE7 /* SDLHMIZoneCapabilities.h in Headers */, + 884AF94F220B488900E22928 /* SDLOnSystemCapabilityUpdated.h in Headers */, + 880D267D220DE5DF00B3F496 /* SDLWeatherServiceManifest.h in Headers */, DAA41D551DF66B2000BC7337 /* SDLH264VideoEncoder.h in Headers */, 8B7B319A1F2F7B5700BDC38D /* SDLVideoStreamingCodec.h in Headers */, 5D61FCAF1A84238C00846EE7 /* SDLGenericResponse.h in Headers */, + 885468352225C1F800994D8D /* SDLCloudAppProperties.h in Headers */, 5D61FC4F1A84238C00846EE7 /* SDLBodyInformation.h in Headers */, 5D61FDAB1A84238C00846EE7 /* SDLStartTime.h in Headers */, 5D61FD071A84238C00846EE7 /* SDLOnCommand.h in Headers */, @@ -5808,6 +6230,7 @@ 5D61FDDA1A84238C00846EE7 /* SDLTransportDelegate.h in Headers */, 5D61FC411A84238C00846EE7 /* SDLAppHMIType.h in Headers */, 5D61FCEE1A84238C00846EE7 /* SDLListFilesResponse.h in Headers */, + 8831FA48220235B000B8FFB7 /* SDLAppServicesCapabilities.h in Headers */, 880245A420F79C3400ED195B /* SDLFileManagerConfiguration.h in Headers */, 5D61FC491A84238C00846EE7 /* SDLAudioType.h in Headers */, 5D61FC761A84238C00846EE7 /* SDLDeleteFile.h in Headers */, @@ -5823,6 +6246,7 @@ 5D61FC921A84238C00846EE7 /* SDLDisplayType.h in Headers */, 5D61FD0D1A84238C00846EE7 /* SDLOnHashChange.h in Headers */, 5D61FC6B1A84238C00846EE7 /* SDLCreateInteractionChoiceSet.h in Headers */, + 8855F9E3220CB04000A5C897 /* SDLOnAppServiceData.h in Headers */, 5D0A7386203F24060001595D /* SDLSoftButtonState.h in Headers */, 5D61FCE61A84238C00846EE7 /* SDLKeypressMode.h in Headers */, 5D61FD871A84238C00846EE7 /* SDLSetGlobalProperties.h in Headers */, @@ -5862,6 +6286,7 @@ 5D61FC2F1A84238C00846EE7 /* SDLAddCommandResponse.h in Headers */, 5D0C2A0020D9479B008B56CD /* SDLStreamingVideoLifecycleManager.h in Headers */, 5D61FD631A84238C00846EE7 /* SDLResetGlobalProperties.h in Headers */, + 88B58DC0222045320011B063 /* SDLNavigationJunction.h in Headers */, 5D61FDD71A84238C00846EE7 /* SDLTouchType.h in Headers */, 5D92935E20B33FF700FCC775 /* SDLChoiceSet.h in Headers */, 5D61FDD31A84238C00846EE7 /* SDLTouchEvent.h in Headers */, @@ -5877,6 +6302,7 @@ 5D6F7A2E1BC5650B0070BF37 /* SDLLifecycleConfiguration.h in Headers */, 5D61FCCD1A84238C00846EE7 /* SDLImage.h in Headers */, 5D61FD481A84238C00846EE7 /* SDLProtocolMessage.h in Headers */, + 88AAD4BC2211B76800F1E6D7 /* SDLMediaServiceManifest.h in Headers */, 5D1665CD1CF8CA8A00CC4CA1 /* SDLPermissionConstants.h in Headers */, 5D61FC8C1A84238C00846EE7 /* SDLDIDResult.h in Headers */, 5D61FD1F1A84238C00846EE7 /* SDLOnTouchEvent.h in Headers */, @@ -5887,6 +6313,7 @@ 5D61FD111A84238C00846EE7 /* SDLOnKeyboardInput.h in Headers */, 5D76E3211D39742300647CFA /* SDLViewControllerPresentable.h in Headers */, 5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */, + 88C37F632204EBF000901DC6 /* SDLAppServiceData.h in Headers */, 5D61FC941A84238C00846EE7 /* SDLDriverDistractionState.h in Headers */, 5D61FD571A84238C00846EE7 /* SDLPutFileResponse.h in Headers */, 5D61FD411A84238C00846EE7 /* SDLPRNDL.h in Headers */, @@ -5896,6 +6323,7 @@ DA9F7E671DCBFAD400ACAE48 /* SDLOasisAddress.h in Headers */, 5D61FD611A84238C00846EE7 /* SDLRequestType.h in Headers */, DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.h in Headers */, + 8855F9E9220CBA9200A5C897 /* SDLGetFile.h in Headers */, 5D61FCEC1A84238C00846EE7 /* SDLListFiles.h in Headers */, 5D2F58081D0717D5001085CE /* SDLManagerDelegate.h in Headers */, 5D61FC881A84238C00846EE7 /* SDLDiagnosticMessage.h in Headers */, @@ -5915,10 +6343,13 @@ 88EED83E1F33C5A400E6C42E /* SDLSendHapticData.h in Headers */, 5D61FCD31A84238C00846EE7 /* SDLImageResolution.h in Headers */, 8B7B319E1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h in Headers */, + 88E6F1A7220E1588006156F9 /* SDLMediaType.h in Headers */, 5D61FD541A84238C00846EE7 /* SDLProxyListener.h in Headers */, + 88A5E7FD220B642200495E8A /* SDLGetAppServiceDataResponse.h in Headers */, 5D61FC5D1A84238C00846EE7 /* SDLChangeRegistrationResponse.h in Headers */, 5D61FDCD1A84238C00846EE7 /* SDLTimerMode.h in Headers */, E9C32B961AB20BA200F283AF /* SDLTimer.h in Headers */, + 88D5EB37220CD95000EC3782 /* SDLWeatherServiceData.h in Headers */, 1FF7DAB81F75B28E00B46C30 /* SDLFocusableItemHitTester.h in Headers */, 5D61FC3D1A84238C00846EE7 /* SDLAlertResponse.h in Headers */, 5D61FDAD1A84238C00846EE7 /* SDLSubscribeButton.h in Headers */, @@ -5926,6 +6357,7 @@ 5D61FCF41A84238C00846EE7 /* SDLMaintenanceModeStatus.h in Headers */, 5D61FC571A84238C00846EE7 /* SDLButtonPressMode.h in Headers */, 5D3E487B1D6F888E0000BFEF /* SDLRPCResponseNotification.h in Headers */, + 88665B69220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.h in Headers */, 5D92934D20AF4BEF00FCC775 /* SDLRGBColor.h in Headers */, 5D61FC471A84238C00846EE7 /* SDLAudioStreamingState.h in Headers */, 5D61FE071A84238C00846EE7 /* SDLVehicleDataStatus.h in Headers */, @@ -5939,10 +6371,13 @@ 5D61FE0F1A84238C00846EE7 /* SDLVrHelpItem.h in Headers */, 5D60088A1BE3ED540094A505 /* SDLStateMachine.h in Headers */, 5D61FC721A84238C00846EE7 /* SDLDeleteCommand.h in Headers */, + 8881AFB82225E5EE00EA870B /* SDLGetCloudAppProperties.h in Headers */, 5D61FC821A84238C00846EE7 /* SDLDeviceInfo.h in Headers */, + 5DD60D98221C5D7D00A82A4F /* SDLVersion.h in Headers */, 5D61FCA91A84238C00846EE7 /* SDLFileType.h in Headers */, 8877F5EE1F34A72200DC128A /* SDLSendHapticDataResponse.h in Headers */, DA8966F21E56973700413EAB /* SDLStreamingMediaManagerConstants.h in Headers */, + 883C22C8222ED84D00939C4C /* SDLRPCFunctionNames.h in Headers */, 5DD67CB81E661C4A009CD394 /* SDLLogTargetFile.h in Headers */, 5D61FD591A84238C00846EE7 /* SDLReadDID.h in Headers */, 5D82041A1BCD80BA00D0A41B /* SDLLockScreenConfiguration.h in Headers */, @@ -5976,6 +6411,7 @@ 5D61FCCF1A84238C00846EE7 /* SDLImageField.h in Headers */, 5D535DC51B72473800CF7760 /* SDLGlobals.h in Headers */, 5D79A03B1CE36F030035797B /* SDLUploadFileOperation.h in Headers */, + 8880D24722205B1B00964F6A /* SDLNavigationInstruction.h in Headers */, DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWayPoints.h in Headers */, 5D61FD231A84238C00846EE7 /* SDLParameterPermissions.h in Headers */, 5D61FCB91A84238C00846EE7 /* SDLGlobalProperty.h in Headers */, @@ -5985,13 +6421,17 @@ 5D61FDB51A84238C00846EE7 /* SDLSyncMsgVersion.h in Headers */, 1E5AD08C1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h in Headers */, 1E5AD0701F209C880029B8AF /* SDLModuleData.h in Headers */, + 8815D0EF22330753000F24E6 /* SDLRPCRequestNotification.h in Headers */, 1E5AD0981F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h in Headers */, 1E5AD0641F207DD50029B8AF /* SDLTemperature.h in Headers */, 1E5AD0901F20BE820029B8AF /* SDLSetInteriorVehicleData.h in Headers */, + 88A5E7F7220B5BBC00495E8A /* SDLGetAppServiceData.h in Headers */, 1E5AD0441F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h in Headers */, + 88F65136220C74FD00CAF321 /* SDLWeatherData.h in Headers */, 1E5AD0841F20B9290029B8AF /* SDLButtonPressResponse.h in Headers */, 1E5AD0681F2080B50029B8AF /* SDLRadioControlData.h in Headers */, 1E5AD0481F1F773E0029B8AF /* SDLModuleType.h in Headers */, + 88B58DC622204AF10011B063 /* SDLNavigationAction.h in Headers */, 1E5AD06C1F208BAB0029B8AF /* SDLClimateControlData.h in Headers */, 1E5AD0381F1F4E390029B8AF /* SDLClimateControlCapabilities.h in Headers */, 5D0C29FC20D93D8C008B56CD /* SDLVideoStreamingState.h in Headers */, @@ -6002,6 +6442,8 @@ 1E5AD04C1F1F79640029B8AF /* SDLDefrostZone.h in Headers */, 1E5AD0601F207AB10029B8AF /* SDLRadioState.h in Headers */, 1E5AD0801F20B73E0029B8AF /* SDLButtonPress.h in Headers */, + 884554AC222453A800BAFB6C /* SDLNavigationServiceManifest.h in Headers */, + 8816772C222097C3001FACFF /* SDLNavigationServiceData.h in Headers */, 1E5AD05C1F2064A80029B8AF /* SDLRDSData.h in Headers */, 1E5AD0341F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h in Headers */, 5DA102A41D4122C700C15826 /* NSMutableDictionary+SafeRemove.h in Headers */, @@ -6019,12 +6461,14 @@ 5D61FD501A84238C00846EE7 /* SDLProxy.h in Headers */, 5D61FC3F1A84238C00846EE7 /* SDLAmbientLightStatus.h in Headers */, 5DE372A11ACB2ED300849FAA /* SDLHMICapabilities.h in Headers */, + 88B58DBA222040FF0011B063 /* SDLDirection.h in Headers */, E9C32B9C1AB20C5900F283AF /* EAAccessory+SDLProtocols.h in Headers */, 5D61FE0B1A84238C00846EE7 /* SDLVehicleType.h in Headers */, 5D07C0312044AD0C00D1ECDC /* SDLAsynchronousRPCRequestOperation.h in Headers */, 5D61FCC31A84238C00846EE7 /* SDLHMIPermissions.h in Headers */, 5D61FE131A84238C00846EE7 /* SDLWiperStatus.h in Headers */, 5D07C02D2044AC9100D1ECDC /* SDLSequentialRPCRequestOperation.h in Headers */, + 88EEC5BB220A327B005AA2F9 /* SDLPublishAppServiceResponse.h in Headers */, 5D16545A1D3E7A1600554D93 /* SDLLifecycleManager.h in Headers */, 5D61FCBD1A84238C00846EE7 /* SDLHeadLampStatus.h in Headers */, 5D61FDC31A84238C00846EE7 /* SDLTBTState.h in Headers */, @@ -6076,6 +6520,7 @@ 5DBF06351E64A9FE00A5CF03 /* SDLLogConstants.h in Headers */, DAC572671D10C5640004288B /* CGPoint_Util.h in Headers */, 5D61FDF91A84238C00846EE7 /* SDLV2ProtocolHeader.h in Headers */, + 884E702B21FBB151008D53BA /* SDLAppServiceRecord.h in Headers */, 5DBF06231E64A83F00A5CF03 /* SDLLogManager.h in Headers */, 5D82041E1BCD8E6100D0A41B /* SDLConfiguration.h in Headers */, 5D61FD4A1A84238C00846EE7 /* SDLProtocolMessageAssembler.h in Headers */, @@ -6088,7 +6533,7 @@ 5D339CEA207C066E000CC364 /* SDLMenuCell.h in Headers */, 5DBF06311E64A9C600A5CF03 /* SDLLogModel.h in Headers */, 5D7F87EB1CE3C1A1002DD7C4 /* SDLDeleteFileOperation.h in Headers */, - 5D61FCFC1A84238C00846EE7 /* SDLNames.h in Headers */, + 5D61FCFC1A84238C00846EE7 /* SDLRPCParameterNames.h in Headers */, DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.h in Headers */, 5D61FCFD1A84238C00846EE7 /* SDLObjectWithPriority.h in Headers */, DAC5726C1D11B4840004288B /* SDLTouchManagerDelegate.h in Headers */, @@ -6098,6 +6543,7 @@ 5D61FCBF1A84238C00846EE7 /* SDLHexUtility.h in Headers */, 5D00AC6B1F141339004000D9 /* SDLSystemCapability.h in Headers */, 5DCD7AE01FCCA8D200A0FC7F /* SDLCarWindow.h in Headers */, + 88F89103221DE29A00E056AD /* SDLAsynchronousRPCOperation.h in Headers */, 5D61FD6F1A84238C00846EE7 /* SDLRPCPayload.h in Headers */, 5D339CF3207C0ACE000CC364 /* SDLMenuManager.h in Headers */, 5D61FCF01A84238C00846EE7 /* SDLLockScreenStatusManager.h in Headers */, @@ -6190,7 +6636,7 @@ ); name = "SmartDeviceLink-Example-Swift"; productName = "SmartDeviceLink-iOS"; - productReference = 88295697207CF68800EF056C /* SDL Example.app */; + productReference = 88295697207CF68800EF056C /* SDL Example Swift.app */; productType = "com.apple.product-type.application"; }; 88802CD720853AE600E9EBC6 /* SmartDeviceLinkSwift */ = { @@ -6241,7 +6687,7 @@ }; 5D61FA251A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 0920; + LastSwiftMigration = 1020; }; 8829567D207CF68800EF056C = { LastSwiftMigration = 0930; @@ -6250,11 +6696,17 @@ }; buildConfigurationList = 5D4019AA1A76EC350006B0C2 /* Build configuration list for PBXProject "SmartDeviceLink-iOS" */; compatibilityVersion = "Xcode 8.0"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, + fr, + de, + ja, + "zh-Hans", + es, ); mainGroup = 5D4019A61A76EC350006B0C2; productRefGroup = 5D4019B01A76EC350006B0C2 /* Products */; @@ -6280,7 +6732,6 @@ 5D1FF2C6213045F2000EB9B4 /* Images.xcassets in Resources */, 5D1FF2B021304568000EB9B4 /* Main.storyboard in Resources */, 5D1FF2D12130466D000EB9B4 /* LaunchScreen.xib in Resources */, - 5D1FF2CE21304654000EB9B4 /* SmartDeviceLink-Example-ObjC-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6316,7 +6767,6 @@ buildActionMask = 2147483647; files = ( 5D1FF2F1213047AB000EB9B4 /* Main.storyboard in Resources */, - 5D1FF2FA2130480C000EB9B4 /* SmartDeviceLink-Example-Swift-Info.plist in Resources */, 5D1FF2F3213047AB000EB9B4 /* ConnectionTCPTableViewController.storyboard in Resources */, 5D1FF2C7213045F2000EB9B4 /* Images.xcassets in Resources */, 5D1FF2F5213047B3000EB9B4 /* LaunchScreen.xib in Resources */, @@ -6366,6 +6816,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 885468362225C1F800994D8D /* SDLCloudAppProperties.m in Sources */, 1E4920B31F6A6463008F2CC3 /* SDLOnInteriorVehicleData.m in Sources */, 1E4920B21F6A6455008F2CC3 /* SDLGetInteriorVehicleDataResponse.m in Sources */, 1EB59CB8202D9C8100343A61 /* SDLSeatMemoryAction.m in Sources */, @@ -6430,13 +6881,18 @@ 5D3E420B20EAAD6500D8C622 /* SDLTPMS.m in Sources */, 5DD67CB11E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m in Sources */, 5D92935420B2F76500FCC775 /* SDLTemplateColorScheme.m in Sources */, + 88D5EB38220CD95000EC3782 /* SDLWeatherServiceData.m in Sources */, 5D019277214994AC003500F6 /* NSMutableArray+Safe.m in Sources */, 5D61FD1C1A84238C00846EE7 /* SDLOnSystemRequest.m in Sources */, 5D61FC911A84238C00846EE7 /* SDLDisplayCapabilities.m in Sources */, + 88C37F642204EBF000901DC6 /* SDLAppServiceData.m in Sources */, + 88B58DC722204AF10011B063 /* SDLNavigationAction.m in Sources */, + 8831FA4322022AB300B8FFB7 /* SDLAppServiceCapability.m in Sources */, 1EB59CC4202DB40400343A61 /* SDLSeatControlCapabilities.m in Sources */, 5D61FD261A84238C00846EE7 /* SDLPerformAudioPassThru.m in Sources */, 1EAA471E203410BB000FE74B /* SDLAudioControlCapabilities.m in Sources */, 5D61FC971A84238C00846EE7 /* SDLECallConfirmationStatus.m in Sources */, + 8816772D222097C3001FACFF /* SDLNavigationServiceData.m in Sources */, 1E5AD04D1F1F79640029B8AF /* SDLDefrostZone.m in Sources */, 5D61FC4A1A84238C00846EE7 /* SDLAudioType.m in Sources */, 5D61FDE61A84238C00846EE7 /* SDLUnregisterAppInterfaceResponse.m in Sources */, @@ -6444,7 +6900,9 @@ 5D61FCC81A84238C00846EE7 /* SDLIAPTransport.m in Sources */, 5D61FE101A84238C00846EE7 /* SDLVrHelpItem.m in Sources */, 5D07C0322044AD0C00D1ECDC /* SDLAsynchronousRPCRequestOperation.m in Sources */, + 8881AFBF2225E9BB00EA870B /* SDLGetCloudAppPropertiesResponse.m in Sources */, 1E5AD0691F2080B50029B8AF /* SDLRadioControlData.m in Sources */, + 888F86FE221DEE200052FE4C /* SDLAsynchronousRPCOperation.m in Sources */, 5D61FCC01A84238C00846EE7 /* SDLHexUtility.m in Sources */, 5DB9964F1F26886C002D8795 /* SDLControlFramePayloadEndService.m in Sources */, 5D61FD821A84238C00846EE7 /* SDLSetAppIconResponse.m in Sources */, @@ -6457,6 +6915,7 @@ 1EAA472E20344108000FE74B /* SDLLightStatus.m in Sources */, 1E5AD0351F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m in Sources */, 5D61FC8F1A84238C00846EE7 /* SDLDimension.m in Sources */, + 884554AD222453A800BAFB6C /* SDLNavigationServiceManifest.m in Sources */, 5D61FC9B1A84238C00846EE7 /* SDLEmergencyEvent.m in Sources */, 5D61FDFE1A84238C00846EE7 /* SDLVehicleDataActiveStatus.m in Sources */, 1E5AD0411F1F58480029B8AF /* SDLVentilationMode.m in Sources */, @@ -6478,11 +6937,13 @@ 5D92937920B6FB6200FCC775 /* SDLPresentChoiceSetOperation.m in Sources */, 8B7B31A71F2F875200BDC38D /* SDLVideoStreamingCapability.m in Sources */, 5DA3F35B1BC448480026F2D0 /* SDLError.m in Sources */, + 884E702821FBAC5B008D53BA /* SDLServiceUpdateReason.m in Sources */, 5D61FD781A84238C00846EE7 /* SDLSamplingRate.m in Sources */, 1EAA472A2034388D000FE74B /* SDLAudioControlData.m in Sources */, 5D61FC681A84238C00846EE7 /* SDLComponentVolumeStatus.m in Sources */, 5D61FDB61A84238C00846EE7 /* SDLSyncMsgVersion.m in Sources */, 5D61FC501A84238C00846EE7 /* SDLBodyInformation.m in Sources */, + 88665B6A220B771A00D9DA77 /* SDLPerformAppServiceInteractionResponse.m in Sources */, 5D79A03C1CE36F030035797B /* SDLUploadFileOperation.m in Sources */, 5D61FD901A84238C00846EE7 /* SDLShow.m in Sources */, 5D8204271BCEA8A600D0A41B /* SDLPermissionManager.m in Sources */, @@ -6500,6 +6961,7 @@ 5D61FDE21A84238C00846EE7 /* SDLTurn.m in Sources */, 5D61FC5A1A84238C00846EE7 /* SDLCarModeStatus.m in Sources */, 5D82041B1BCD80BA00D0A41B /* SDLLockScreenConfiguration.m in Sources */, + 8815D0F122330781000F24E6 /* SDLRPCRequestNotification.m in Sources */, 5D3E48CC1D7722FE0000BFEF /* NSBundle+SDLBundle.m in Sources */, 5D61FCBC1A84238C00846EE7 /* SDLGPSData.m in Sources */, 5D61FD341A84238C00846EE7 /* SDLPowerModeQualificationStatus.m in Sources */, @@ -6507,6 +6969,7 @@ 5D61FD6E1A84238C00846EE7 /* SDLRPCNotification.m in Sources */, 5D8B17501AC9D266006A6E1C /* SDLDialNumber.m in Sources */, 5DBF06281E64A91D00A5CF03 /* SDLLogFileModule.m in Sources */, + 88AF11DD220B6B3D00A59985 /* SDLPerformAppServiceInteraction.m in Sources */, 5D6F7A361BC5B9B60070BF37 /* SDLLockScreenViewController.m in Sources */, 5D61FDE81A84238C00846EE7 /* SDLUnsubscribeButton.m in Sources */, 5D61FCF71A84238C00846EE7 /* SDLMediaClockFormat.m in Sources */, @@ -6541,6 +7004,7 @@ 5DD67CB91E661C4A009CD394 /* SDLLogTargetFile.m in Sources */, 5D61FCBE1A84238C00846EE7 /* SDLHeadLampStatus.m in Sources */, 5D61FD921A84238C00846EE7 /* SDLShowConstantTBT.m in Sources */, + 88E6F1A8220E1588006156F9 /* SDLMediaType.m in Sources */, 5D61FC4E1A84238C00846EE7 /* SDLBitsPerSample.m in Sources */, 5D00AC701F1511B9004000D9 /* SDLGetSystemCapability.m in Sources */, 5D61FDEA1A84238C00846EE7 /* SDLUnsubscribeButtonResponse.m in Sources */, @@ -6559,11 +7023,14 @@ 5D92937D20B70A3E00FCC775 /* SDLPresentKeyboardOperation.m in Sources */, 5DBF06241E64A83F00A5CF03 /* SDLLogManager.m in Sources */, 5D61FC401A84238C00846EE7 /* SDLAmbientLightStatus.m in Sources */, + 88EEC5BC220A327B005AA2F9 /* SDLPublishAppServiceResponse.m in Sources */, 5D61FC951A84238C00846EE7 /* SDLDriverDistractionState.m in Sources */, 5DB996611F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, + 884E702021FB983F008D53BA /* SDLAppServiceManifest.m in Sources */, 5D61FD961A84238C00846EE7 /* SDLShowResponse.m in Sources */, 5D61FD981A84238C00846EE7 /* SDLSingleTireStatus.m in Sources */, 1EB59CA8202D946500343A61 /* SDLMassageModeData.m in Sources */, + 8881AFB32225DED900EA870B /* SDLSetCloudAppPropertiesResponse.m in Sources */, 5D9FDA931F2A7D3400A495C8 /* bson_util.c in Sources */, 5D61FD511A84238C00846EE7 /* SDLProxy.m in Sources */, 5D61FD461A84238C00846EE7 /* SDLProtocolHeader.m in Sources */, @@ -6571,6 +7038,10 @@ 8BBEA6071F324165003EEA26 /* SDLMetadataType.m in Sources */, 5D61FDBC1A84238C00846EE7 /* SDLSystemAction.m in Sources */, 5D61FC381A84238C00846EE7 /* SDLAlert.m in Sources */, + 88AAD4BD2211B76800F1E6D7 /* SDLMediaServiceManifest.m in Sources */, + 884E701C21FB8D0F008D53BA /* SDLPublishAppService.m in Sources */, + 8831FA49220235B000B8FFB7 /* SDLAppServicesCapabilities.m in Sources */, + 884E702421FBA952008D53BA /* SDLAppServiceType.m in Sources */, 5D61FD2C1A84238C00846EE7 /* SDLPerformInteractionResponse.m in Sources */, 5D00AC7C1F15287E004000D9 /* SDLPhoneCapability.m in Sources */, 5D61FDF21A84238C00846EE7 /* SDLUpdateTurnList.m in Sources */, @@ -6607,13 +7078,17 @@ 5DBF062E1E64A93A00A5CF03 /* SDLLogFilter.m in Sources */, 5D61FDFA1A84238C00846EE7 /* SDLV2ProtocolHeader.m in Sources */, 5D61FDD01A84238C00846EE7 /* SDLTireStatus.m in Sources */, + 883C22C9222ED84D00939C4C /* SDLRPCFunctionNames.m in Sources */, 5D92935F20B33FF700FCC775 /* SDLChoiceSet.m in Sources */, + 8855F9E4220CB04000A5C897 /* SDLOnAppServiceData.m in Sources */, 5D61FC321A84238C00846EE7 /* SDLAddSubMenu.m in Sources */, 5D61FDF61A84238C00846EE7 /* SDLV1ProtocolHeader.m in Sources */, EE798CA620561218008EDE8E /* SDLSecondaryTransportManager.m in Sources */, + 88B58DC1222045320011B063 /* SDLNavigationJunction.m in Sources */, 5D61FDAA1A84238C00846EE7 /* SDLSpeechCapabilities.m in Sources */, 1E5AD0951F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m in Sources */, 5D61FDB41A84238C00846EE7 /* SDLSubscribeVehicleDataResponse.m in Sources */, + 885468302225BDAE00994D8D /* SDLHybridAppPreference.m in Sources */, 5D61FD121A84238C00846EE7 /* SDLOnKeyboardInput.m in Sources */, DA9F7E9A1DCC052C00ACAE48 /* SDLLocationCoordinate.m in Sources */, 5D61FCCA1A84238C00846EE7 /* SDLIgnitionStableStatus.m in Sources */, @@ -6622,6 +7097,7 @@ 5D61FCAA1A84238C00846EE7 /* SDLFileType.m in Sources */, 1E5AD0651F207DD50029B8AF /* SDLTemperature.m in Sources */, DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m in Sources */, + 88F65137220C74FD00CAF321 /* SDLWeatherData.m in Sources */, 5DE372A21ACB2ED300849FAA /* SDLHMICapabilities.m in Sources */, 5D61FDD41A84238C00846EE7 /* SDLTouchEvent.m in Sources */, 5D61FD881A84238C00846EE7 /* SDLSetGlobalProperties.m in Sources */, @@ -6630,6 +7106,7 @@ 5D61FC3E1A84238C00846EE7 /* SDLAlertResponse.m in Sources */, 5D61FD8C1A84238C00846EE7 /* SDLSetMediaClockTimer.m in Sources */, 5D61FE121A84238C00846EE7 /* SDLWarningLightStatus.m in Sources */, + 8855F9EA220CBA9200A5C897 /* SDLGetFile.m in Sources */, 5D61FCB81A84238C00846EE7 /* SDLGetVehicleDataResponse.m in Sources */, 5D61FC661A84238C00846EE7 /* SDLCompassDirection.m in Sources */, 5D61FD841A84238C00846EE7 /* SDLSetDisplayLayout.m in Sources */, @@ -6641,6 +7118,7 @@ 5D61FDA61A84238C00846EE7 /* SDLSpeak.m in Sources */, 5D4631111F2135850092EFDC /* SDLControlFramePayloadConstants.m in Sources */, 5D339CF0207C08BA000CC364 /* SDLVoiceCommand.m in Sources */, + 88E6F1AE220E19DF006156F9 /* SDLMediaServiceData.m in Sources */, DA9F7E881DCC049900ACAE48 /* SDLSubscribeWayPoints.m in Sources */, 5D61FDDE1A84238C00846EE7 /* SDLTTSChunk.m in Sources */, 5D61FD9E1A84238C00846EE7 /* SDLSliderResponse.m in Sources */, @@ -6676,6 +7154,7 @@ DA9F7E641DCBFAC800ACAE48 /* SDLDateTime.m in Sources */, 5D61FD581A84238C00846EE7 /* SDLPutFileResponse.m in Sources */, 5D61FCB21A84238C00846EE7 /* SDLGetDTCs.m in Sources */, + 8881AFB92225E5EE00EA870B /* SDLGetCloudAppProperties.m in Sources */, 5D61FD441A84238C00846EE7 /* SDLProtocol.m in Sources */, 5DF40B23208E761A00DD6FDA /* SDLVoiceCommandManager.m in Sources */, 5D61FC341A84238C00846EE7 /* SDLAddSubMenuResponse.m in Sources */, @@ -6684,7 +7163,9 @@ 5D61FD141A84238C00846EE7 /* SDLOnLanguageChange.m in Sources */, 1E5AD0891F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m in Sources */, 5D61FE041A84238C00846EE7 /* SDLVehicleDataResult.m in Sources */, + 88B58DBB222040FF0011B063 /* SDLDirection.m in Sources */, 5D61FD5C1A84238C00846EE7 /* SDLReadDIDResponse.m in Sources */, + 884AF950220B488900E22928 /* SDLOnSystemCapabilityUpdated.m in Sources */, 5D1BF6B0204742FB00D36881 /* SDLDisplayCapabilities+ShowManagerExtensions.m in Sources */, 1EB59CB4202D9B5F00343A61 /* SDLSeatMemoryActionType.m in Sources */, 5D61FD321A84238C00846EE7 /* SDLPolicyDataParser.m in Sources */, @@ -6702,6 +7183,7 @@ 5D61FDD61A84238C00846EE7 /* SDLTouchEventCapabilities.m in Sources */, 5DA49CE61F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m in Sources */, 5DA102A51D4122C700C15826 /* NSMutableDictionary+SafeRemove.m in Sources */, + 5DD60D99221C5D7D00A82A4F /* SDLVersion.m in Sources */, 5D61FCF11A84238C00846EE7 /* SDLLockScreenStatusManager.m in Sources */, 5D61FDAC1A84238C00846EE7 /* SDLStartTime.m in Sources */, 5D61FDA01A84238C00846EE7 /* SDLSoftButton.m in Sources */, @@ -6712,18 +7194,21 @@ 5D92934E20AF4BEF00FCC775 /* SDLRGBColor.m in Sources */, 1E5AD06D1F208BAB0029B8AF /* SDLClimateControlData.m in Sources */, 5D61FE081A84238C00846EE7 /* SDLVehicleDataStatus.m in Sources */, + 880D267E220DE5DF00B3F496 /* SDLWeatherServiceManifest.m in Sources */, 5D9FC2A21FD8814A00ACA5C2 /* SDLAudioFile.m in Sources */, E9C32B9F1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m in Sources */, 5D61FDA81A84238C00846EE7 /* SDLSpeakResponse.m in Sources */, 5DB92D331AC9C8BA00C15BB0 /* SDLRPCStruct.m in Sources */, 1EAA474220355FF3000FE74B /* SDLLightControlCapabilities.m in Sources */, 8B7B31A31F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m in Sources */, - DA0C46AD1DCD35080001F2A8 /* SDLNames.m in Sources */, + DA0C46AD1DCD35080001F2A8 /* SDLRPCParameterNames.m in Sources */, 5DA3F3551BC448060026F2D0 /* NSMapTable+Subscripting.m in Sources */, 5D61FCD61A84238C00846EE7 /* SDLImageType.m in Sources */, 5D4D67AD1D2ED37A00468B4A /* SDLNotificationDispatcher.m in Sources */, + 88665B74220B80F400D9DA77 /* SDLWeatherAlert.m in Sources */, 88EED8391F33AE1700E6C42E /* SDLHapticRect.m in Sources */, DA9F7E9C1DCC052C00ACAE48 /* SDLLocationDetails.m in Sources */, + 8880D24822205B1B00964F6A /* SDLNavigationInstruction.m in Sources */, 5D61FD7A1A84238C00846EE7 /* SDLScreenParams.m in Sources */, 1EAA47122033FE80000FE74B /* SDLStationIDNumber.m in Sources */, 5D61FC831A84238C00846EE7 /* SDLDeviceInfo.m in Sources */, @@ -6734,11 +7219,14 @@ 5D61FD641A84238C00846EE7 /* SDLResetGlobalProperties.m in Sources */, 5DCD7AE11FCCA8D200A0FC7F /* SDLCarWindow.m in Sources */, 1E5AD0911F20BE820029B8AF /* SDLSetInteriorVehicleData.m in Sources */, + 884E702C21FBB151008D53BA /* SDLAppServiceRecord.m in Sources */, 5D60088B1BE3ED540094A505 /* SDLStateMachine.m in Sources */, 8877F5EF1F34A72200DC128A /* SDLSendHapticDataResponse.m in Sources */, 5D61FD181A84238C00846EE7 /* SDLOnPermissionsChange.m in Sources */, + 8881AFAD2225D61900EA870B /* SDLSetCloudAppProperties.m in Sources */, 1EB59CAC202D96A200343A61 /* SDLMassageCushion.m in Sources */, 5D61FD3E1A84238C00846EE7 /* SDLPrimaryAudioSource.m in Sources */, + 88A7A3C7220CCEA100A9E435 /* SDLGetFileResponse.m in Sources */, 1E5AD0851F20B9290029B8AF /* SDLButtonPressResponse.m in Sources */, 5D82041F1BCD8E6100D0A41B /* SDLConfiguration.m in Sources */, 5D61FD381A84238C00846EE7 /* SDLPredefinedLayout.m in Sources */, @@ -6746,12 +7234,14 @@ 5D61FD0E1A84238C00846EE7 /* SDLOnHashChange.m in Sources */, 5D4D67B51D30161600468B4A /* SDLLockScreenManager.m in Sources */, 5D61FDE41A84238C00846EE7 /* SDLUnregisterAppInterface.m in Sources */, + 88A5E7FE220B642200495E8A /* SDLGetAppServiceDataResponse.m in Sources */, 5D61FC361A84238C00846EE7 /* SDLAirbagStatus.m in Sources */, 5D61FD7E1A84238C00846EE7 /* SDLScrollableMessageResponse.m in Sources */, 5D61FD3A1A84238C00846EE7 /* SDLPrerecordedSpeech.m in Sources */, 5D61FCA11A84238C00846EE7 /* SDLEncodedSyncPDataResponse.m in Sources */, 88B3BF9920DA859800943565 /* SDLFuelType.m in Sources */, 5DD67CC41E68AE82009CD394 /* SDLLogFileModuleMap.m in Sources */, + 88A5E7F8220B5BBC00495E8A /* SDLGetAppServiceData.m in Sources */, 5D61FD401A84238C00846EE7 /* SDLPrioritizedObjectCollection.m in Sources */, 5D61FDC61A84238C00846EE7 /* SDLTCPTransport.m in Sources */, 5D61FE0E1A84238C00846EE7 /* SDLVrCapabilities.m in Sources */, @@ -6814,9 +7304,12 @@ 5DA026901AD44EE700019F86 /* SDLDialNumberResponseSpec.m in Sources */, 162E83901A9BDE8B00906325 /* SDLTireStatusSpec.m in Sources */, 162E82E01A9BDE8B00906325 /* SDLHMILevelSpec.m in Sources */, + 88F65133220C6DC300CAF321 /* SDLWeatherAlertSpec.m in Sources */, 5DC09EDA1F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m in Sources */, 1EB59CCE202DC97900343A61 /* SDLMassageCushionSpec.m in Sources */, 162E83041A9BDE8B00906325 /* SDLUpdateModeSpec.m in Sources */, + 8855F9E0220C93B700A5C897 /* SDLWeatherDataSpec.m in Sources */, + 88DF998D22035CC600477AC1 /* EAAccessory+OCMock.m in Sources */, 162E83801A9BDE8B00906325 /* SDLHMIPermissionsSpec.m in Sources */, 1EAA476C2036A52F000FE74B /* SDLLightCapabilitiesSpec.m in Sources */, 5D1654561D3E754F00554D93 /* SDLLifecycleManagerSpec.m in Sources */, @@ -6824,10 +7317,12 @@ 162E83021A9BDE8B00906325 /* SDLTouchTypeSpec.m in Sources */, 1EAA47722036AEF5000FE74B /* SDLLightNameSpec.m in Sources */, 5DB92D2F1AC59F0000C15BB0 /* SDLObjectWithPrioritySpec.m in Sources */, + 88DF999122035D5A00477AC1 /* SDLIAPTransportSpec.m in Sources */, 162E838A1A9BDE8B00906325 /* SDLSingleTireStatusSpec.m in Sources */, 5D6EB4CC1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m in Sources */, 162E83051A9BDE8B00906325 /* SDLVehicleDataActiveStatusSpec.m in Sources */, 162E82E61A9BDE8B00906325 /* SDLInteractionModeSpec.m in Sources */, + 888F8700221DF4880052FE4C /* SDLAsynchronousRPCOperationSpec.m in Sources */, 162E83931A9BDE8B00906325 /* SDLTouchEventSpec.m in Sources */, 5DCF76FE1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m in Sources */, 162E837D1A9BDE8B00906325 /* SDLEmergencyEventSpec.m in Sources */, @@ -6867,24 +7362,30 @@ 162E83181A9BDE8B00906325 /* SDLOnKeyboardInputSpec.m in Sources */, 1EE8C4441F34A1B900FDC2CF /* SDLClimateControlDataSpec.m in Sources */, 162E83701A9BDE8B00906325 /* SDLUpdateTurnListResponseSpec.m in Sources */, + 88C23E8822297C6000EA171F /* SDLRPCResponseNotificationSpec.m in Sources */, 162E833B1A9BDE8B00906325 /* SDLSetGlobalPropertiesSpec.m in Sources */, + 884AF94C220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m in Sources */, 162E82F11A9BDE8B00906325 /* SDLPowerModeStatusSpec.m in Sources */, 162E83881A9BDE8B00906325 /* SDLPresetBankCapabilitiesSpec.m in Sources */, 162E837E1A9BDE8B00906325 /* SDLGPSDataSpec.m in Sources */, 5DAE06731BDEC6C000F9B498 /* SDLFileSpec.m in Sources */, 162E82E11A9BDE8B00906325 /* SDLHMIZoneCapabilitiesSpec.m in Sources */, + 88B58DBD222042500011B063 /* SDLDirectionSpec.m in Sources */, 162E83721A9BDE8B00906325 /* SDLAudioPassThruCapabilitiesSpec.m in Sources */, 162E83681A9BDE8B00906325 /* SDLSpeakResponseSpec.m in Sources */, 1EB59CD8202DCCD500343A61 /* SDLMassageCushionFirmnessSpec.m in Sources */, 162E83661A9BDE8B00906325 /* SDLShowResponseSpec.m in Sources */, 5D9F50831BEA5C6100FEF399 /* SDLFileManagerSpec.m in Sources */, + 88AAD4C02211B7E200F1E6D7 /* SDLMediaServiceManifestSpec.m in Sources */, 5DAB5F512098994C00A020C8 /* SDLMenuCellSpec.m in Sources */, 1EE8C4481F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m in Sources */, + 8831FA452202307500B8FFB7 /* SDLAppServiceCapabilitySpec.m in Sources */, 162E83221A9BDE8B00906325 /* SDLAddCommandSpec.m in Sources */, 162E83121A9BDE8B00906325 /* SDLOnButtonPressSpec.m in Sources */, 5DAD5F8520507E1F0025624C /* SDLScreenManagerSpec.m in Sources */, 162E838D1A9BDE8B00906325 /* SDLStartTimeSpec.m in Sources */, 1EAA47642035B231000FE74B /* SDLHMISettingsControlCapabilitiesSpec.m in Sources */, + 88B58DC3222047F50011B063 /* SDLNavigationJunctionSpec.m in Sources */, 162E836E1A9BDE8B00906325 /* SDLUnsubscribeButtonResponseSpec.m in Sources */, 5DEF69611FD6FB75004B8C2F /* SDLAudioStreamManagerSpec.m in Sources */, 162E835B1A9BDE8B00906325 /* SDLPerformInteractionResponseSpec.m in Sources */, @@ -6892,8 +7393,11 @@ 162E832D1A9BDE8B00906325 /* SDLEncodedSyncPDataSpec.m in Sources */, 1EE8C44C1F385C7100FDC2CF /* SDLRDSDataSpec.m in Sources */, 5DB92D241AC47B2C00C15BB0 /* SDLHexUtilitySpec.m in Sources */, + 8815D0F022330765000F24E6 /* SDLRPCRequestNotificationSpec.m in Sources */, 162E83281A9BDE8B00906325 /* SDLDeleteCommandSpec.m in Sources */, + 88A81F6C2200FD4A00A691A9 /* SDLAppServiceRecordSpec.m in Sources */, 162E83531A9BDE8B00906325 /* SDLDiagnosticMessageResponseSpec.m in Sources */, + 8881AFB52225E37800EA870B /* SDLSetCloudAppPropertiesResponseSpec.m in Sources */, 162E83671A9BDE8B00906325 /* SDLSliderResponseSpec.m in Sources */, 8877F5F11F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m in Sources */, 162E836C1A9BDE8B00906325 /* SDLSystemRequestResponseSpec.m in Sources */, @@ -6915,8 +7419,12 @@ 162E83591A9BDE8B00906325 /* SDLListFilesResponseSpec.m in Sources */, 162E832A1A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetSpec.m in Sources */, EE460E0A2066B6E40006EDD3 /* SDLControlFramePayloadRegisterSecondaryTransportNakSpec.m in Sources */, + 8881AFBB2225E7FA00EA870B /* SDLGetCloudAppPropertiesSpec.m in Sources */, + 88C282CA220CD17200D02F90 /* SDLGetFileResponseSpec.m in Sources */, + 88AF11D9220B66FD00A59985 /* SDLGetAppServiceDataResponseSpec.m in Sources */, 162E839D1A9BDE8B00906325 /* SDLRPCResponseSpec.m in Sources */, EE460E082066B5F20006EDD3 /* SDLControlFramePayloadTransportEventUpdateSpec.m in Sources */, + 88E6F1AA220E1720006156F9 /* SDLMediaTypeSpec.m in Sources */, 1EE8C4521F38657D00FDC2CF /* SDLTemperatureSpec.m in Sources */, 5DB1BCDF1D243DD3002FFC37 /* SDLLockScreenConfigurationSpec.m in Sources */, 162E82E51A9BDE8B00906325 /* SDLImageTypeSpec.m in Sources */, @@ -6924,15 +7432,18 @@ 162E83421A9BDE8B00906325 /* SDLSubscribeVehicleDataSpec.m in Sources */, 162E83811A9BDE8B00906325 /* SDLImageFieldSpec.m in Sources */, 5D60DF24202B7A80001EDA01 /* SDLAsynchronousRPCRequestOperationSpec.m in Sources */, + 883C22CB222EEF0900939C4C /* SDLRPCFunctionNamesSpec.m in Sources */, 162E834F1A9BDE8B00906325 /* SDLDeleteCommandResponseSpec.m in Sources */, 88B848C91F462E3600DED768 /* TestFileProgressResponse.m in Sources */, 162E83231A9BDE8B00906325 /* SDLAddSubMenuSpec.m in Sources */, + 5DCC458D221C9F6600036C2F /* SDLVersionSpec.m in Sources */, DA4353E91D2721680099B8C4 /* DispatchTimerSpec.m in Sources */, 1EE8C45D1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m in Sources */, 162E82F21A9BDE8B00906325 /* SDLPredefinedLayoutSpec.m in Sources */, 162E83521A9BDE8B00906325 /* SDLDeleteSubMenuResponseSpec.m in Sources */, 162E82E91A9BDE8B00906325 /* SDLKeypressModeSpec.m in Sources */, 162E83211A9BDE8B00906325 /* SDLRPCPayloadSpec.m in Sources */, + 8831FA3F2202227000B8FFB7 /* SDLAppServiceTypeSpec.m in Sources */, 162E83851A9BDE8B00906325 /* SDLMyKeySpec.m in Sources */, 162E83941A9BDE8B00906325 /* SDLTTSChunkSpec.m in Sources */, 1EAA47702036AE89000FE74B /* SDLLightStatusSpec.m in Sources */, @@ -6944,9 +7455,12 @@ 162E83341A9BDE8B00906325 /* SDLPutFileSpec.m in Sources */, 162E837A1A9BDE8B00906325 /* SDLDIDResult.m in Sources */, 162E83171A9BDE8B00906325 /* SDLOnHMIStatusSpec.m in Sources */, + 8831FA392201E3D100B8FFB7 /* SDLAppServiceManifestSpec.m in Sources */, 5DE372A41ACB336600849FAA /* SDLHMICapabilitiesSpec.m in Sources */, 162E82F71A9BDE8B00906325 /* SDLResultSpec.m in Sources */, 1680B1141A9CD7AD00DBD79E /* SDLV1ProtocolHeaderSpec.m in Sources */, + 880D2680220E038800B3F496 /* SDLWeatherServiceManifestSpec.m in Sources */, + 88EEC5BE220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m in Sources */, 1680B1161A9CD7AD00DBD79E /* SDLProtocolMessageSpec.m in Sources */, DA9F7EB21DCC084300ACAE48 /* SDLDeliveryModeSpec.m in Sources */, 162E83771A9BDE8B00906325 /* SDLClusterModeStatusSpec.m in Sources */, @@ -6994,17 +7508,20 @@ 162E836A1A9BDE8B00906325 /* SDLSubscribeVehicleDataResponseSpec.m in Sources */, 5D43465B1E6F154400B639C6 /* SDLLogConfigurationSpec.m in Sources */, 1EAA475E2035B177000FE74B /* SDLDisplayModeSpec.m in Sources */, + 8881AFAF2225D8EB00EA870B /* SDLSetCloudAppPropertiesSpec.m in Sources */, 162E83761A9BDE8B00906325 /* SDLChoiceSpec.m in Sources */, 162E83571A9BDE8B00906325 /* SDLGetDTCsResponseSpec.m in Sources */, 5D4346471E6F0BDA00B639C6 /* SDLLogFileModuleSpec.m in Sources */, 88A1CF1E21669AC7001ACC75 /* SDLLifecycleConfigurationUpdateSpec.m in Sources */, 1EE8C4581F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m in Sources */, + 884554AF2224554300BAFB6C /* SDLNavigationServiceManifestSpec.m in Sources */, 5DA23FF61F2FAA31009C0313 /* SDLControlFramePayloadRPCStartServiceSpec.m in Sources */, 162E83201A9BDE8B00906325 /* SDLOnVehicleDataSpec.m in Sources */, 1EAA47762036B847000FE74B /* SDLEqualizerSettingsSpec.m in Sources */, 162E83141A9BDE8B00906325 /* SDLOnDriverDistractionSpec.m in Sources */, 162E83371A9BDE8B00906325 /* SDLResetGlobalPropertiesSpec.m in Sources */, 162E82DF1A9BDE8B00906325 /* SDLGlobalProperySpec.m in Sources */, + 88DF998F22035D1700477AC1 /* SDLIAPSessionSpec.m in Sources */, 5DD8406520FCE21A0082CE04 /* SDLElectronicParkBrakeStatusSpec.m in Sources */, 162E82F61A9BDE8B00906325 /* SDLRequestTypeSpec.m in Sources */, 5DE35E4520CAFC5D0034BE5A /* SDLChoiceCellSpec.m in Sources */, @@ -7040,6 +7557,8 @@ 1EE8C4461F3837D200FDC2CF /* SDLModuleDataSpec.m in Sources */, EEA41D45210BA8CF0006CB6E /* TestTCPServer.m in Sources */, 1E89B0DE2031636000A47992 /* SDLSeatControlDataSpec.m in Sources */, + 88A4A0FA22242AB400C6F01D /* SDLNavigationServiceDataSpec.m in Sources */, + 8831FA3D220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m in Sources */, 162E831A1A9BDE8B00906325 /* SDLOnLockScreenStatusSpec.m in Sources */, 162E83431A9BDE8B00906325 /* SDLSyncPDataSpec.m in Sources */, 167ED9461A9BCE5D00797BE5 /* SwiftSpec.swift in Sources */, @@ -7047,6 +7566,7 @@ 162E834C1A9BDE8B00906325 /* SDLAlertResponseSpec.m in Sources */, 1680B11B1A9CD7AD00DBD79E /* SDLFunctionIDSpec.m in Sources */, 5DB1BCDA1D243D85002FFC37 /* SDLStateMachineSpec.m in Sources */, + 8831FA4B2202402B00B8FFB7 /* SDLAppServicesCapabilitiesSpec.m in Sources */, 5D4346731E6F617D00B639C6 /* TestLogTarget.m in Sources */, 1EE8C43C1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m in Sources */, 162E83131A9BDE8B00906325 /* SDLOnCommandSpec.m in Sources */, @@ -7061,6 +7581,7 @@ 162E83741A9BDE8B00906325 /* SDLBodyInformationSpec.m in Sources */, 1EAA477A2036BD46000FE74B /* SDLSISDataSpec.m in Sources */, 5D64FE6D20DA9CE600792F9F /* SDLVideoStreamingStateSpec.m in Sources */, + 88665B6C220B796A00D9DA77 /* SDLPerformAppServiceInteractionResponseSpec.m in Sources */, 162E83641A9BDE8B00906325 /* SDLSetMediaClockTimerResponseSpec.m in Sources */, 162E839C1A9BDE8B00906325 /* SDLRPCRequestSpec.m in Sources */, DA4353E31D2720A30099B8C4 /* SDLPinchGestureSpec.m in Sources */, @@ -7076,6 +7597,7 @@ 162E82D61A9BDE8A00906325 /* SDLComponentVolumeStatusSpec.m in Sources */, 162E835C1A9BDE8B00906325 /* SDLPutFileResponseSpec.m in Sources */, 1EE8C43E1F347F0500FDC2CF /* SDLVentilationModeSpec.m in Sources */, + 88B58DC922204C9E0011B063 /* SDLNavigationActionSpec.m in Sources */, 5DB202271F5F2D030061D189 /* SDLImageResolutionSpec.m in Sources */, DA9F7EAA1DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m in Sources */, 162E835F1A9BDE8B00906325 /* SDLResetGlobalPropertiesResponseSpec.m in Sources */, @@ -7085,6 +7607,7 @@ 162E83501A9BDE8B00906325 /* SDLDeleteFileResponseSpec.m in Sources */, 162E83601A9BDE8B00906325 /* SDLScrollableMessageResponseSpec.m in Sources */, 88B3BFA220DA911E00943565 /* SDLFuelRangeSpec.m in Sources */, + 88A5E7FA220B60EC00495E8A /* SDLGetAppServiceDataSpec.m in Sources */, 162E83791A9BDE8B00906325 /* SDLDeviceStatusSpec.m in Sources */, 162E83821A9BDE8B00906325 /* SDLImageSpec.m in Sources */, 162E834A1A9BDE8B00906325 /* SDLAddSubMenuResponseSpec.m in Sources */, @@ -7105,6 +7628,7 @@ EED5CA0A1F4D206800F04000 /* SDLRTPH264PacketizerSpec.m in Sources */, 1EB59CC8202DC86A00343A61 /* SDLModuleTypeSpec.m in Sources */, 162E83611A9BDE8B00906325 /* SDLSetAppIconResponseSpec.m in Sources */, + 88C23E8A22297DE400EA171F /* SDLRPCNotificationNotificationSpec.m in Sources */, 162E83471A9BDE8B00906325 /* SDLUnsubscribeVehicleDataSpec.m in Sources */, 162E839A1A9BDE8B00906325 /* SDLRPCMessageSpec.m in Sources */, 5D0A9F911F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m in Sources */, @@ -7112,6 +7636,7 @@ 162E83311A9BDE8B00906325 /* SDLListFilesSpec.m in Sources */, EE5D1B33208EBCA900D17216 /* SDLTCPTransportSpec.m in Sources */, DA9F7EB01DCC063400ACAE48 /* SDLLocationDetailsSpec.m in Sources */, + 8816772922208B82001FACFF /* SDLNavigationInstructionSpec.m in Sources */, 5DC978261B7A38640012C2F1 /* SDLGlobalsSpec.m in Sources */, 162E82FF1A9BDE8B00906325 /* SDLTextAlignmentSpec.m in Sources */, 162E831F1A9BDE8B00906325 /* SDLOnTouchEventSpec.m in Sources */, @@ -7127,6 +7652,7 @@ 8B7B31AF1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m in Sources */, 162E839B1A9BDE8B00906325 /* SDLRPCNotificationSpec.m in Sources */, 162E83581A9BDE8B00906325 /* SDLGetVehicleDataResponseSpec.m in Sources */, + 88E6F1B0220E25B2006156F9 /* SDLMediaServiceDataSpec.m in Sources */, 1EB59CCA202DC8E300343A61 /* SDLMassageZoneSpec.m in Sources */, 8B7B31B11F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m in Sources */, 162E831D1A9BDE8B00906325 /* SDLOnSystemRequestSpec.m in Sources */, @@ -7135,13 +7661,18 @@ 162E82D41A9BDE8A00906325 /* SDLCharacterSetSpec.m in Sources */, 162E830F1A9BDE8B00906325 /* SDLOnAppInterfaceUnregisteredSpec.m in Sources */, 162E83971A9BDE8B00906325 /* SDLVehicleTypeSpec.m in Sources */, + 887BE4D422272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m in Sources */, + 885468382225CBA400994D8D /* SDLCloudAppPropertiesSpec.m in Sources */, 88A795D5210678E000056542 /* SDLStaticIconNameSpec.m in Sources */, 1680B1131A9CD7AD00DBD79E /* SDLProtocolHeaderSpec.m in Sources */, + 8855F9EC220CBFB700A5C897 /* SDLGetFileSpec.m in Sources */, 162E82D01A9BDE8A00906325 /* SDLButtonEventModeSpec.m in Sources */, 5DF40B26208FA7DE00DD6FDA /* SDLMenuManagerSpec.m in Sources */, 5DE35E5620CB1C680034BE5A /* SDLPresentKeyboardOperationSpec.m in Sources */, 162E83781A9BDE8B00906325 /* SDLDeviceInfoSpec.m in Sources */, + 88F50D5F220B720E00F34648 /* SDLPerformAppServiceInteractionSpec.m in Sources */, 162E83391A9BDE8B00906325 /* SDLSetAppIconSpec.m in Sources */, + 882FAC4D2209D7EF0062385D /* SDLAppServiceDataSpec.m in Sources */, 162E83011A9BDE8B00906325 /* SDLTimerModeSpec.m in Sources */, 5D0A9F931F15560B00CC80DD /* SDLNavigationCapabilitySpec.m in Sources */, 5D64FE7120DA9E6700792F9F /* SDLStreamingAudioLifecycleManagerSpec.m in Sources */, @@ -7169,13 +7700,16 @@ 1EAA47782036BA74000FE74B /* SDLAudioControlCapabilitiesSpec.m in Sources */, 5DB1BCD51D243A8E002FFC37 /* SDLUploadFileOperationSpec.m in Sources */, 162E83401A9BDE8B00906325 /* SDLSpeakSpec.m in Sources */, + 88A5E7F4220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m in Sources */, 5DCF76FC1ACDDB4200BB647B /* SDLSendLocationSpec.m in Sources */, 5DB1BCD81D243AA6002FFC37 /* SDLPermissionFilterSpec.m in Sources */, + 88EEC5B8220A2144005AA2F9 /* SDLPublishAppServiceSpec.m in Sources */, 162E83561A9BDE8B00906325 /* SDLGenericResponseSpec.m in Sources */, 162E82D51A9BDE8A00906325 /* SDLCompassDirectionSpec.m in Sources */, 162E83861A9BDE8B00906325 /* SDLParameterPermissionsSpec.m in Sources */, 162E831B1A9BDE8B00906325 /* SDLOnPermissionsChangeSpec.m in Sources */, 162E83711A9BDE8B00906325 /* SDLAirbagStatusSpec.m in Sources */, + 885468322225BF2800994D8D /* SDLHybridAppPreferenceSpec.m in Sources */, 1EE8C44A1F3846D300FDC2CF /* SDLRadioControlDataSpec.m in Sources */, 1EE8C4501F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m in Sources */, 1EAA47662035B8D3000FE74B /* SDLLightControlDataSpec.m in Sources */, @@ -7189,6 +7723,7 @@ 162E82D81A9BDE8A00906325 /* SDLDimensionSpec.m in Sources */, 162E83731A9BDE8B00906325 /* SDLBeltStatusSpec.m in Sources */, 162E83551A9BDE8B00906325 /* SDLEndAudioPassThruResponseSpec.m in Sources */, + 8881AFC12225EB9300EA870B /* SDLGetCloudAppPropertiesResponseSpec.m in Sources */, 162E83251A9BDE8B00906325 /* SDLAlertSpec.m in Sources */, 2BF2F85220ED068200A26EF2 /* SDLAudioStreamingIndicatorSpec.m in Sources */, 5D6035D2202CD46200A429C9 /* SDLSpecUtilities.m in Sources */, @@ -7197,7 +7732,9 @@ 5DB1BCD31D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m in Sources */, 5D0A9F971F1559EC00CC80DD /* SDLSystemCapabilitySpec.m in Sources */, 162E82F41A9BDE8B00906325 /* SDLPrimaryAudioSource.m in Sources */, + 880D267A220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m in Sources */, EED5CA041F4D1D5E00F04000 /* SDLRAWH264PacketizerSpec.m in Sources */, + 8855F9E6220CB60700A5C897 /* SDLOnAppServiceDataSpec.m in Sources */, 5DBAE0AB1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m in Sources */, 162E83461A9BDE8B00906325 /* SDLUnsubscribeButtonSpec.m in Sources */, 1EB59CD0202DC9F200343A61 /* SDLSupportedSeatSpec.m in Sources */, @@ -7377,7 +7914,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -7425,7 +7962,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; VALIDATE_PRODUCT = YES; }; name = Release; @@ -7499,7 +8036,7 @@ RUN_CLANG_STATIC_ANALYZER = YES; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -7542,7 +8079,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; RUN_CLANG_STATIC_ANALYZER = YES; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -7581,7 +8118,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.smartdevicelink.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -7612,8 +8149,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = "com.smartdevicelink.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -7632,7 +8168,7 @@ PRODUCT_NAME = "SDL Example Swift"; SWIFT_OBJC_BRIDGING_HEADER = "Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; @@ -7650,7 +8186,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.smartdevicelink.SDLTestApp; PRODUCT_NAME = "SDL Example Swift"; SWIFT_OBJC_BRIDGING_HEADER = "Example Apps/Example Swift/SmartDeviceLink-Example-Swift-Bridging-Header.h"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Release; }; @@ -7698,8 +8234,8 @@ SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -7745,8 +8281,8 @@ PRODUCT_NAME = "$(TARGET_NAME)"; RUN_CLANG_STATIC_ANALYZER = YES; SKIP_INSTALL = YES; - SWIFT_SWIFT3_OBJC_INFERENCE = On; - SWIFT_VERSION = 4.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.2; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec index 068030a07..96dacd733 100644 --- a/SmartDeviceLink.podspec +++ b/SmartDeviceLink.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SmartDeviceLink" -s.version = "6.1.2" +s.version = "6.2.0" s.summary = "Connect your app with cars!" s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS" s.license = { :type => "New BSD", :file => "LICENSE" } @@ -28,6 +28,12 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLAlertManeuver.h', 'SmartDeviceLink/SDLAlertManeuverResponse.h', 'SmartDeviceLink/SDLAlertResponse.h', +'SmartDeviceLink/SDLAppServiceCapability.h', +'SmartDeviceLink/SDLAppServiceData.h', +'SmartDeviceLink/SDLAppServiceManifest.h', +'SmartDeviceLink/SDLAppServiceRecord.h', +'SmartDeviceLink/SDLAppServicesCapabilities.h', +'SmartDeviceLink/SDLAppServiceType.h', 'SmartDeviceLink/SDLButtonPressResponse.h', 'SmartDeviceLink/SDLAmbientLightStatus.h', 'SmartDeviceLink/SDLAppHMIType.h', @@ -62,6 +68,7 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLChoiceSetDelegate.h', 'SmartDeviceLink/SDLClimateControlCapabilities.h', 'SmartDeviceLink/SDLClimateControlData.h', +'SmartDeviceLink/SDLCloudAppProperties.h', 'SmartDeviceLink/SDLClusterModeStatus.h', 'SmartDeviceLink/SDLCompassDirection.h', 'SmartDeviceLink/SDLComponentVolumeStatus.h', @@ -88,6 +95,7 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLDialNumberResponse.h', 'SmartDeviceLink/SDLDIDResult.h', 'SmartDeviceLink/SDLDimension.h', +'SmartDeviceLink/SDLDirection.h', 'SmartDeviceLink/SDLDisplayCapabilities.h', 'SmartDeviceLink/SDLDisplayMode.h', 'SmartDeviceLink/SDLDisplayType.h', @@ -113,10 +121,17 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLFuelCutoffStatus.h', 'SmartDeviceLink/SDLFuelRange.h', 'SmartDeviceLink/SDLFuelType.h', +'SmartDeviceLink/SDLFunctionID.h', 'SmartDeviceLink/SDLGenericResponse.h', +'SmartDeviceLink/SDLGetAppServiceData.h', +'SmartDeviceLink/SDLGetAppServiceDataResponse.h', 'SmartDeviceLink/SDLGetDTCs.h', -'SmartDeviceLink/SDLGetInteriorVehicleData.h', +'SmartDeviceLink/SDLGetCloudAppProperties.h', +'SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h', 'SmartDeviceLink/SDLGetDTCsResponse.h', +'SmartDeviceLink/SDLGetFile.h', +'SmartDeviceLink/SDLGetFileResponse.h', +'SmartDeviceLink/SDLGetInteriorVehicleData.h', 'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h', 'SmartDeviceLink/SDLGetSystemCapability.h', 'SmartDeviceLink/SDLGetSystemCapabilityResponse.h', @@ -134,6 +149,7 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLHMISettingsControlCapabilities.h', 'SmartDeviceLink/SDLHMISettingsControlData.h', 'SmartDeviceLink/SDLHMIZoneCapabilities.h', +'SmartDeviceLink/SDLHybridAppPreference.h', 'SmartDeviceLink/SDLIgnitionStableStatus.h', 'SmartDeviceLink/SDLIgnitionStatus.h', 'SmartDeviceLink/SDLImage.h', @@ -184,6 +200,9 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLMassageMode.h', 'SmartDeviceLink/SDLMassageZone.h', 'SmartDeviceLink/SDLMediaClockFormat.h', +'SmartDeviceLink/SDLMediaServiceData.h', +'SmartDeviceLink/SDLMediaServiceManifest.h', +'SmartDeviceLink/SDLMediaType.h', 'SmartDeviceLink/SDLMenuCell.h', 'SmartDeviceLink/SDLMenuParams.h', 'SmartDeviceLink/SDLMetadataTags.h', @@ -191,10 +210,16 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLModuleData.h', 'SmartDeviceLink/SDLModuleType.h', 'SmartDeviceLink/SDLMyKey.h', +'SmartDeviceLink/SDLNavigationAction.h', 'SmartDeviceLink/SDLNavigationCapability.h', +'SmartDeviceLink/SDLNavigationInstruction.h', +'SmartDeviceLink/SDLNavigationJunction.h', +'SmartDeviceLink/SDLNavigationServiceData.h', +'SmartDeviceLink/SDLNavigationServiceManifest.h', 'SmartDeviceLink/SDLNotificationConstants.h', 'SmartDeviceLink/SDLOasisAddress.h', 'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h', +'SmartDeviceLink/SDLOnAppServiceData.h', 'SmartDeviceLink/SDLOnAudioPassThru.h', 'SmartDeviceLink/SDLOnButtonEvent.h', 'SmartDeviceLink/SDLOnButtonPress.h', @@ -210,12 +235,15 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLOnPermissionsChange.h', 'SmartDeviceLink/SDLOnRCStatus.h', 'SmartDeviceLink/SDLOnSyncPData.h', +'SmartDeviceLink/SDLOnSystemCapabilityUpdated.h', 'SmartDeviceLink/SDLOnSystemRequest.h', 'SmartDeviceLink/SDLOnTBTClientState.h', 'SmartDeviceLink/SDLOnTouchEvent.h', 'SmartDeviceLink/SDLOnVehicleData.h', 'SmartDeviceLink/SDLOnWayPointChange.h', 'SmartDeviceLink/SDLParameterPermissions.h', +'SmartDeviceLink/SDLPerformAppServiceInteraction.h', +'SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h', 'SmartDeviceLink/SDLPerformAudioPassThru.h', 'SmartDeviceLink/SDLPerformAudioPassThruResponse.h', 'SmartDeviceLink/SDLPerformInteraction.h', @@ -233,6 +261,8 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLPresetBankCapabilities.h', 'SmartDeviceLink/SDLPrimaryAudioSource.h', 'SmartDeviceLink/SDLPRNDL.h', +'SmartDeviceLink/SDLPublishAppService.h', +'SmartDeviceLink/SDLPublishAppServiceResponse.h', 'SmartDeviceLink/SDLPutFile.h', 'SmartDeviceLink/SDLPutFileResponse.h', 'SmartDeviceLink/SDLRadioBand.h', @@ -252,11 +282,13 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h', 'SmartDeviceLink/SDLResult.h', 'SmartDeviceLink/SDLRGBColor.h', +'SmartDeviceLink/SDLRPCFunctionNames.h', 'SmartDeviceLink/SDLRPCMessage.h', 'SmartDeviceLink/SDLRPCMessageType.h', 'SmartDeviceLink/SDLRPCNotification.h', 'SmartDeviceLink/SDLRPCNotificationNotification.h', 'SmartDeviceLink/SDLRPCRequest.h', +'SmartDeviceLink/SDLRPCRequestNotification.h', 'SmartDeviceLink/SDLRPCResponse.h', 'SmartDeviceLink/SDLRPCResponseNotification.h', 'SmartDeviceLink/SDLRPCStruct.h', @@ -275,8 +307,11 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLSendHapticDataResponse.h', 'SmartDeviceLink/SDLSendLocation.h', 'SmartDeviceLink/SDLSendLocationResponse.h', +'SmartDeviceLink/SDLServiceUpdateReason.h', 'SmartDeviceLink/SDLSetAppIcon.h', 'SmartDeviceLink/SDLSetAppIconResponse.h', +'SmartDeviceLink/SDLSetCloudAppProperties.h', +'SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h', 'SmartDeviceLink/SDLSetDisplayLayout.h', 'SmartDeviceLink/SDLSetDisplayLayoutResponse.h', 'SmartDeviceLink/SDLSetGlobalProperties.h', @@ -322,6 +357,7 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLSystemCapabilityManager.h', 'SmartDeviceLink/SDLSystemCapabilityType.h', 'SmartDeviceLink/SDLSystemContext.h', +'SmartDeviceLink/SDLSystemRequest.h', 'SmartDeviceLink/SDLTBTState.h', 'SmartDeviceLink/SDLTemperature.h', 'SmartDeviceLink/SDLTemperatureUnit.h', @@ -363,6 +399,7 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLVehicleDataType.h', 'SmartDeviceLink/SDLVentilationMode.h', 'SmartDeviceLink/SDLVehicleType.h', +'SmartDeviceLink/SDLVersion.h', 'SmartDeviceLink/SDLVideoStreamingCapability.h', 'SmartDeviceLink/SDLVideoStreamingCodec.h', 'SmartDeviceLink/SDLVideoStreamingFormat.h', @@ -373,6 +410,10 @@ sdefault.public_header_files = [ 'SmartDeviceLink/SDLVrHelpItem.h', 'SmartDeviceLink/SDLWarningLightStatus.h', 'SmartDeviceLink/SDLWayPointType.h', +'SmartDeviceLink/SDLWeatherAlert.h', +'SmartDeviceLink/SDLWeatherData.h', +'SmartDeviceLink/SDLWeatherServiceData.h', +'SmartDeviceLink/SDLWeatherServiceManifest.h', 'SmartDeviceLink/SDLWiperStatus.h', 'SmartDeviceLink/SmartDeviceLink.h', ] diff --git a/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m b/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m index 5f561de00..4234f76f1 100644 --- a/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m +++ b/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m @@ -7,33 +7,38 @@ // #import "CVPixelBufferRef+SDLUtil.h" +#import "SDLLogMacros.h" NS_ASSUME_NONNULL_BEGIN +// Video stream string message padding is 5% of the screen size. Padding is added to the message so the text is not flush with the edge of the screen. +CGFloat const SDLVideoStringMessagePadding = .05; + UIFont * _Nullable sdl_findFontSizeToFitText(CGSize size, NSString *text) { - CGFloat fontSize = 100; - + CGFloat fontSize = 300; + do { - CGSize textSize = [text boundingRectWithSize:CGSizeMake(size.width, CGFLOAT_MAX) + CGFloat padding = SDLVideoStringMessagePadding * size.width * 2; + CGSize textSize = [text boundingRectWithSize:CGSizeMake((size.width - padding), CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin - attributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:fontSize]} + attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:fontSize]} context:nil].size; - - if (textSize.height <= size.height) { + + if (textSize.height <= (size.height - padding)) { break; } - fontSize -= 10.0; + fontSize -= 1.0; } while (fontSize > 0.0); - return (fontSize > 0) ? [UIFont boldSystemFontOfSize:fontSize] : nil; + return (fontSize > 0) ? [UIFont systemFontOfSize:fontSize] : nil; } UIImage * _Nullable sdl_createTextImage(NSString *text, CGSize size) { UIFont *font = sdl_findFontSizeToFitText(size, text); if (!font) { - NSLog(@"Text cannot fit inside frame"); + SDLLogW(@"Text cannot fit inside frame"); return nil; } @@ -46,7 +51,7 @@ UIImage * _Nullable sdl_createTextImage(NSString *text, CGSize size) { CGContextSaveGState(context); NSMutableParagraphStyle* textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy; - textStyle.alignment = NSTextAlignmentCenter; + textStyle.alignment = NSTextAlignmentLeft; NSDictionary* textAttributes = @{ NSFontAttributeName: font, @@ -57,11 +62,12 @@ UIImage * _Nullable sdl_createTextImage(NSString *text, CGSize size) { options:NSStringDrawingUsesLineFragmentOrigin attributes:textAttributes context:nil]; - - CGRect textInset = CGRectMake(0, + + CGFloat padding = SDLVideoStringMessagePadding * size.width; + CGRect textInset = CGRectMake(0 + padding, (frame.size.height - CGRectGetHeight(textFrame)) / 2.0, - frame.size.width, - frame.size.height); + frame.size.width - (padding * 2), + frame.size.height - (padding * 2)); [text drawInRect:textInset withAttributes:textAttributes]; @@ -78,7 +84,7 @@ Boolean CVPixelBufferAddText(CVPixelBufferRef CV_NONNULL pixelBuffer, NSString * UIImage *image = sdl_createTextImage(text, CGSizeMake(width, height)); if (!image) { - NSLog(@"Could not create text image."); + SDLLogE(@"Could not create text image."); return false; } diff --git a/SmartDeviceLink/Info.plist b/SmartDeviceLink/Info.plist index 74d1a5bef..9f6540606 100644 --- a/SmartDeviceLink/Info.plist +++ b/SmartDeviceLink/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>6.1.2</string> + <string>6.2.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> diff --git a/SmartDeviceLink/NSMutableDictionary+Store.h b/SmartDeviceLink/NSMutableDictionary+Store.h index baeb46ca8..0c20aa1c8 100644 --- a/SmartDeviceLink/NSMutableDictionary+Store.h +++ b/SmartDeviceLink/NSMutableDictionary+Store.h @@ -12,15 +12,29 @@ NS_ASSUME_NONNULL_BEGIN -typedef NSString* SDLName SDL_SWIFT_ENUM; +typedef NSString* SDLRPCParameterName SDL_SWIFT_ENUM; typedef NSString* SDLEnum SDL_SWIFT_ENUM; @interface NSDictionary (Store) -- (void)sdl_setObject:(NSObject *)object forName:(SDLName)name; -- (nullable id)sdl_objectForName:(SDLName)name; -- (nullable id)sdl_objectForName:(SDLName)name ofClass:(Class)classType; -- (NSArray *)sdl_objectsForName:(SDLName)name ofClass:(Class)classType; +- (void)sdl_setObject:(NSObject *)object forName:(SDLRPCParameterName)name; + +- (nullable SDLEnum)sdl_enumForName:(SDLRPCParameterName)name error:(NSError * _Nullable *)error; +- (nullable NSArray<SDLEnum> *)sdl_enumsForName:(SDLRPCParameterName)name error:(NSError * _Nullable *)error; + +/** + * @param classType expected class of returned object + * @param error if stored value isn't classType + * @return object of classType or nil +*/ +- (nullable id)sdl_objectForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable *)error; + +/** + * @param classType expected class of array objects + * @param error if array objects value isn't classType or stored objects aren't array + * @return return array of classType or nil +*/ +- (nullable NSArray *)sdl_objectsForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable *)error; @end diff --git a/SmartDeviceLink/NSMutableDictionary+Store.m b/SmartDeviceLink/NSMutableDictionary+Store.m index 777489b43..90bb6c9f1 100644 --- a/SmartDeviceLink/NSMutableDictionary+Store.m +++ b/SmartDeviceLink/NSMutableDictionary+Store.m @@ -7,12 +7,14 @@ // #import "NSMutableDictionary+Store.h" +#import "SDLRPCStruct.h" +#import "SDLError.h" NS_ASSUME_NONNULL_BEGIN @implementation NSMutableDictionary (Store) -- (void)sdl_setObject:(NSObject *)object forName:(SDLName)name { +- (void)sdl_setObject:(NSObject *)object forName:(SDLRPCParameterName)name { if (object != nil) { self[name] = object; } else { @@ -20,37 +22,84 @@ NS_ASSUME_NONNULL_BEGIN } } -- (nullable id)sdl_objectForName:(SDLName)name { +- (nullable id)sdl_objectForName:(SDLRPCParameterName)name { return self[name]; } -- (nullable id)sdl_objectForName:(SDLName)name ofClass:(Class)classType { - NSObject *obj = [self sdl_objectForName:name]; +#pragma mark - enum + +- (nullable SDLRPCParameterName)sdl_enumForName:(SDLRPCParameterName)name error:(NSError * _Nullable __autoreleasing * _Nullable)error { + return [self sdl_objectForName:name ofClass:NSString.class error:error]; +} + +#pragma mark - enums + +- (nullable NSArray<SDLRPCParameterName> *)sdl_enumsForName:(SDLRPCParameterName)name error:(NSError * _Nullable __autoreleasing * _Nullable)error { + return [self sdl_objectsForName:name ofClass:NSString.class error:error]; +} + +#pragma mark - object + +- (nullable id)sdl_objectForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable __autoreleasing * _Nullable)error { + id obj = [self sdl_objectForName:name]; + if (obj == nil || [obj isKindOfClass:classType]) { return obj; + // translate dictionaries to objects + } else if ([obj isKindOfClass:NSDictionary.class] && [classType instancesRespondToSelector:@selector(initWithDictionary:)]) { + obj = [[classType alloc] initWithDictionary:(NSDictionary *)obj]; + // update store so that the object isn't created multiple times + [self sdl_setObject:obj forName:name]; + return obj; } else { - return [[classType alloc] initWithDictionary:(NSDictionary *)obj]; + // The object in the store is not correct, we'll assert in debug and return an error and nil + NSError *wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:obj expectedType:classType]; + + SDLLogAssert(@"Retrieving object from store error: %@", wrongObjectError.localizedFailureReason); + + if (error) { + *error = wrongObjectError; + } + return nil; } } -- (NSArray *)sdl_objectsForName:(SDLName)name ofClass:(Class)classType { - NSArray *array = [self sdl_objectForName:name]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isMemberOfClass:classType]) { +#pragma mark - objects + +- (nullable NSArray *)sdl_objectsForName:(SDLRPCParameterName)name ofClass:(Class)classType error:(NSError * _Nullable __autoreleasing * _Nullable)error { + NSArray *array = [self sdl_objectForName:name ofClass:NSArray.class error:error]; + if (array == nil || array.count < 1 || [array.firstObject isKindOfClass:classType]) { // It's an array of the actual class type, just return return array; - } else { + } else if ([classType instancesRespondToSelector:@selector(initWithDictionary:)]) { // It's an array of dictionaries, make them into their class type NSMutableArray *newList = [NSMutableArray arrayWithCapacity:array.count]; for (NSDictionary<NSString *, id> *dict in array) { - [newList addObject:[[classType alloc] initWithDictionary:dict]]; + if ([dict isKindOfClass:NSDictionary.class]) { + [newList addObject:[[classType alloc] initWithDictionary:dict]]; + } + } + array = [newList copy]; + [self sdl_setObject:array forName:name]; + return array; + } else { + // The object in the store is not correct, we'll assert in debug and return an error and nil + NSError *wrongObjectError = nil; + + if ([array isKindOfClass:NSArray.class] && ![array.firstObject isKindOfClass:classType]) { + wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:array.firstObject expectedType:classType]; + } else { + wrongObjectError = [NSError sdl_rpcStore_invalidObjectErrorWithObject:array expectedType:NSArray.class]; } - return [newList copy]; + + SDLLogAssert(@"Retrieving array from store error: %@", wrongObjectError.localizedFailureReason); + if (error) { + *error = wrongObjectError; + } + return nil; } } - @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/NSNumber+NumberType.h b/SmartDeviceLink/NSNumber+NumberType.h index 935fba96d..56a584fc0 100644 --- a/SmartDeviceLink/NSNumber+NumberType.h +++ b/SmartDeviceLink/NSNumber+NumberType.h @@ -9,7 +9,7 @@ #import <Foundation/Foundation.h> /** - * A decleration that this NSNumber contains an NSInteger. + * A declaration that this NSNumber contains an NSInteger. */ @protocol SDLInt @end diff --git a/SmartDeviceLink/SDLAddCommand.m b/SmartDeviceLink/SDLAddCommand.m index b90fc2d58..074db8846 100644 --- a/SmartDeviceLink/SDLAddCommand.m +++ b/SmartDeviceLink/SDLAddCommand.m @@ -7,14 +7,15 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLMenuParams.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddCommand - (instancetype)init { - if (self = [super initWithName:SDLNameAddCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameAddCommand]) { } return self; } @@ -102,35 +103,36 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Getters / Setters - (void)setCmdID:(NSNumber<SDLInt> *)cmdID { - [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; + [parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; } - (NSNumber<SDLInt> *)cmdID { - return [parameters sdl_objectForName:SDLNameCommandId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; } - (void)setMenuParams:(nullable SDLMenuParams *)menuParams { - [parameters sdl_setObject:menuParams forName:SDLNameMenuParams]; + [parameters sdl_setObject:menuParams forName:SDLRPCParameterNameMenuParams]; } - (nullable SDLMenuParams *)menuParams { - return [parameters sdl_objectForName:SDLNameMenuParams ofClass:SDLMenuParams.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuParams ofClass:SDLMenuParams.class error:nil]; } - (void)setVrCommands:(nullable NSArray<NSString *> *)vrCommands { - [parameters sdl_setObject:vrCommands forName:SDLNameVRCommands]; + [parameters sdl_setObject:vrCommands forName:SDLRPCParameterNameVRCommands]; } - (nullable NSArray<NSString *> *)vrCommands { - return [parameters sdl_objectForName:SDLNameVRCommands]; + return [parameters sdl_objectsForName:SDLRPCParameterNameVRCommands ofClass:NSString.class error:nil]; } - (void)setCmdIcon:(nullable SDLImage *)cmdIcon { - [parameters sdl_setObject:cmdIcon forName:SDLNameCommandIcon]; + [parameters sdl_setObject:cmdIcon forName:SDLRPCParameterNameCommandIcon]; } - (nullable SDLImage *)cmdIcon { - return [parameters sdl_objectForName:SDLNameCommandIcon ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameCommandIcon ofClass:SDLImage.class error:nil]; } -(id)copyWithZone:(nullable NSZone *)zone { diff --git a/SmartDeviceLink/SDLAddCommandResponse.m b/SmartDeviceLink/SDLAddCommandResponse.m index 877b189ec..2caf3c6e7 100644 --- a/SmartDeviceLink/SDLAddCommandResponse.m +++ b/SmartDeviceLink/SDLAddCommandResponse.m @@ -3,14 +3,15 @@ #import "SDLAddCommandResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddCommandResponse - (instancetype)init { - if (self = [super initWithName:SDLNameAddCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameAddCommand]) { } return self; } diff --git a/SmartDeviceLink/SDLAddSubMenu.m b/SmartDeviceLink/SDLAddSubMenu.m index 2792b657d..3a79563a4 100644 --- a/SmartDeviceLink/SDLAddSubMenu.m +++ b/SmartDeviceLink/SDLAddSubMenu.m @@ -4,14 +4,15 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddSubMenu - (instancetype)init { - if (self = [super initWithName:SDLNameAddSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameAddSubMenu]) { } return self; } @@ -43,35 +44,37 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setMenuID:(NSNumber<SDLInt> *)menuID { - [parameters sdl_setObject:menuID forName:SDLNameMenuId]; + [parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; } - (NSNumber<SDLInt> *)menuID { - return [parameters sdl_objectForName:SDLNameMenuId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; } - (void)setPosition:(nullable NSNumber<SDLInt> *)position { - [parameters sdl_setObject:position forName:SDLNamePosition]; + [parameters sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (nullable NSNumber<SDLInt> *)position { - return [parameters sdl_objectForName:SDLNamePosition]; + return [parameters sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:nil]; } - (void)setMenuName:(NSString *)menuName { - [parameters sdl_setObject:menuName forName:SDLNameMenuName]; + [parameters sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; } - (NSString *)menuName { - return [parameters sdl_objectForName:SDLNameMenuName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:&error]; } - (void)setMenuIcon:(nullable SDLImage *)menuIcon { - [parameters sdl_setObject:menuIcon forName:SDLNameMenuIcon]; + [parameters sdl_setObject:menuIcon forName:SDLRPCParameterNameMenuIcon]; } - (nullable SDLImage *)menuIcon { - return [parameters sdl_objectForName:SDLNameMenuIcon ofClass:[SDLImage class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuIcon ofClass:[SDLImage class] error:nil]; } @end diff --git a/SmartDeviceLink/SDLAddSubMenuResponse.m b/SmartDeviceLink/SDLAddSubMenuResponse.m index 41ab1d8ce..78376e491 100644 --- a/SmartDeviceLink/SDLAddSubMenuResponse.m +++ b/SmartDeviceLink/SDLAddSubMenuResponse.m @@ -3,14 +3,15 @@ #import "SDLAddSubMenuResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAddSubMenuResponse - (instancetype)init { - if (self = [super initWithName:SDLNameAddSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameAddSubMenu]) { } return self; } diff --git a/SmartDeviceLink/SDLAirbagStatus.m b/SmartDeviceLink/SDLAirbagStatus.m index 453d08304..a13f525f8 100644 --- a/SmartDeviceLink/SDLAirbagStatus.m +++ b/SmartDeviceLink/SDLAirbagStatus.m @@ -3,73 +3,81 @@ #import "SDLAirbagStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAirbagStatus - (void)setDriverAirbagDeployed:(SDLVehicleDataEventStatus)driverAirbagDeployed { - [store sdl_setObject:driverAirbagDeployed forName:SDLNameDriverAirbagDeployed]; + [store sdl_setObject:driverAirbagDeployed forName:SDLRPCParameterNameDriverAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDriverAirbagDeployed error:&error]; } - (void)setDriverSideAirbagDeployed:(SDLVehicleDataEventStatus)driverSideAirbagDeployed { - [store sdl_setObject:driverSideAirbagDeployed forName:SDLNameDriverSideAirbagDeployed]; + [store sdl_setObject:driverSideAirbagDeployed forName:SDLRPCParameterNameDriverSideAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverSideAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverSideAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDriverSideAirbagDeployed error:&error]; } - (void)setDriverCurtainAirbagDeployed:(SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { - [store sdl_setObject:driverCurtainAirbagDeployed forName:SDLNameDriverCurtainAirbagDeployed]; + [store sdl_setObject:driverCurtainAirbagDeployed forName:SDLRPCParameterNameDriverCurtainAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverCurtainAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDriverCurtainAirbagDeployed error:&error]; } - (void)setPassengerAirbagDeployed:(SDLVehicleDataEventStatus)passengerAirbagDeployed { - [store sdl_setObject:passengerAirbagDeployed forName:SDLNamePassengerAirbagDeployed];} + [store sdl_setObject:passengerAirbagDeployed forName:SDLRPCParameterNamePassengerAirbagDeployed];} - (SDLVehicleDataEventStatus)passengerAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerAirbagDeployed error:&error]; } - (void)setPassengerCurtainAirbagDeployed:(SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { - [store sdl_setObject:passengerCurtainAirbagDeployed forName:SDLNamePassengerCurtainAirbagDeployed]; + [store sdl_setObject:passengerCurtainAirbagDeployed forName:SDLRPCParameterNamePassengerCurtainAirbagDeployed]; } - (SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerCurtainAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerCurtainAirbagDeployed error:&error]; } - (void)setDriverKneeAirbagDeployed:(SDLVehicleDataEventStatus)driverKneeAirbagDeployed { - [store sdl_setObject:driverKneeAirbagDeployed forName:SDLNameDriverKneeAirbagDeployed]; + [store sdl_setObject:driverKneeAirbagDeployed forName:SDLRPCParameterNameDriverKneeAirbagDeployed]; } - (SDLVehicleDataEventStatus)driverKneeAirbagDeployed { - return [store sdl_objectForName:SDLNameDriverKneeAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDriverKneeAirbagDeployed error:&error]; } - (void)setPassengerSideAirbagDeployed:(SDLVehicleDataEventStatus)passengerSideAirbagDeployed { - [store sdl_setObject:passengerSideAirbagDeployed forName:SDLNamePassengerSideAirbagDeployed]; + [store sdl_setObject:passengerSideAirbagDeployed forName:SDLRPCParameterNamePassengerSideAirbagDeployed]; } - (SDLVehicleDataEventStatus)passengerSideAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerSideAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerSideAirbagDeployed error:&error]; } - (void)setPassengerKneeAirbagDeployed:(SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { - [store sdl_setObject:passengerKneeAirbagDeployed forName:SDLNamePassengerKneeAirbagDeployed]; + [store sdl_setObject:passengerKneeAirbagDeployed forName:SDLRPCParameterNamePassengerKneeAirbagDeployed]; } - (SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { - return [store sdl_objectForName:SDLNamePassengerKneeAirbagDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerKneeAirbagDeployed error:&error]; } @end diff --git a/SmartDeviceLink/SDLAlert.m b/SmartDeviceLink/SDLAlert.m index 0f7c78a10..7c9fa67f5 100644 --- a/SmartDeviceLink/SDLAlert.m +++ b/SmartDeviceLink/SDLAlert.m @@ -3,7 +3,8 @@ #import "SDLAlert.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" #import "SDLTTSChunk.h" @@ -14,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLAlert - (instancetype)init { - if (self = [super initWithName:SDLNameAlert]) { + if (self = [super initWithName:SDLRPCFunctionNameAlert]) { } return self; } @@ -74,67 +75,67 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setAlertText1:(nullable NSString *)alertText1 { - [parameters sdl_setObject:alertText1 forName:SDLNameAlertText1]; + [parameters sdl_setObject:alertText1 forName:SDLRPCParameterNameAlertText1]; } - (nullable NSString *)alertText1 { - return [parameters sdl_objectForName:SDLNameAlertText1]; + return [parameters sdl_objectForName:SDLRPCParameterNameAlertText1 ofClass:NSString.class error:nil]; } - (void)setAlertText2:(nullable NSString *)alertText2 { - [parameters sdl_setObject:alertText2 forName:SDLNameAlertText2]; + [parameters sdl_setObject:alertText2 forName:SDLRPCParameterNameAlertText2]; } - (nullable NSString *)alertText2 { - return [parameters sdl_objectForName:SDLNameAlertText2]; + return [parameters sdl_objectForName:SDLRPCParameterNameAlertText2 ofClass:NSString.class error:nil]; } - (void)setAlertText3:(nullable NSString *)alertText3 { - [parameters sdl_setObject:alertText3 forName:SDLNameAlertText3]; + [parameters sdl_setObject:alertText3 forName:SDLRPCParameterNameAlertText3]; } - (nullable NSString *)alertText3 { - return [parameters sdl_objectForName:SDLNameAlertText3]; + return [parameters sdl_objectForName:SDLRPCParameterNameAlertText3 ofClass:NSString.class error:nil]; } - (void)setTtsChunks:(nullable NSArray<SDLTTSChunk *> *)ttsChunks { - [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; + [parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; } - (nullable NSArray<SDLTTSChunk *> *)ttsChunks { - return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:nil]; } - (void)setDuration:(nullable NSNumber<SDLInt> *)duration { - [parameters sdl_setObject:duration forName:SDLNameDuration]; + [parameters sdl_setObject:duration forName:SDLRPCParameterNameDuration]; } - (nullable NSNumber<SDLInt> *)duration { - return [parameters sdl_objectForName:SDLNameDuration]; + return [parameters sdl_objectForName:SDLRPCParameterNameDuration ofClass:NSNumber.class error:nil]; } - (void)setPlayTone:(nullable NSNumber<SDLBool> *)playTone { - [parameters sdl_setObject:playTone forName:SDLNamePlayTone]; + [parameters sdl_setObject:playTone forName:SDLRPCParameterNamePlayTone]; } - (nullable NSNumber<SDLBool> *)playTone { - return [parameters sdl_objectForName:SDLNamePlayTone]; + return [parameters sdl_objectForName:SDLRPCParameterNamePlayTone ofClass:NSNumber.class error:nil]; } - (void)setProgressIndicator:(nullable NSNumber<SDLBool> *)progressIndicator { - [parameters sdl_setObject:progressIndicator forName:SDLNameProgressIndicator]; + [parameters sdl_setObject:progressIndicator forName:SDLRPCParameterNameProgressIndicator]; } - (nullable NSNumber<SDLBool> *)progressIndicator { - return [parameters sdl_objectForName:SDLNameProgressIndicator]; + return [parameters sdl_objectForName:SDLRPCParameterNameProgressIndicator ofClass:NSNumber.class error:nil]; } - (void)setSoftButtons:(nullable NSArray<SDLSoftButton *> *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray<SDLSoftButton *> *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLAlertManeuver.m b/SmartDeviceLink/SDLAlertManeuver.m index f56a53572..7eb01682a 100644 --- a/SmartDeviceLink/SDLAlertManeuver.m +++ b/SmartDeviceLink/SDLAlertManeuver.m @@ -5,7 +5,8 @@ #import "SDLAlertManeuver.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" #import "SDLTTSChunk.h" @@ -14,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLAlertManeuver - (instancetype)init { - if (self = [super initWithName:SDLNameAlertManeuver]) { + if (self = [super initWithName:SDLRPCFunctionNameAlertManeuver]) { } return self; } @@ -38,19 +39,19 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setTtsChunks:(nullable NSArray<SDLTTSChunk *> *)ttsChunks { - [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; + [parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; } - (nullable NSArray<SDLTTSChunk *> *)ttsChunks { - return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:nil]; } - (void)setSoftButtons:(nullable NSArray<SDLSoftButton *> *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray<SDLSoftButton *> *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLAlertManeuverResponse.m b/SmartDeviceLink/SDLAlertManeuverResponse.m index 99cc21cf5..150678cba 100644 --- a/SmartDeviceLink/SDLAlertManeuverResponse.m +++ b/SmartDeviceLink/SDLAlertManeuverResponse.m @@ -4,14 +4,15 @@ #import "SDLAlertManeuverResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAlertManeuverResponse - (instancetype)init { - if (self = [super initWithName:SDLNameAlertManeuver]) { + if (self = [super initWithName:SDLRPCFunctionNameAlertManeuver]) { } return self; } diff --git a/SmartDeviceLink/SDLAlertResponse.m b/SmartDeviceLink/SDLAlertResponse.m index e2da4bb91..a35890723 100644 --- a/SmartDeviceLink/SDLAlertResponse.m +++ b/SmartDeviceLink/SDLAlertResponse.m @@ -4,23 +4,24 @@ #import "SDLAlertResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAlertResponse - (instancetype)init { - if (self = [super initWithName:SDLNameAlert]) { + if (self = [super initWithName:SDLRPCFunctionNameAlert]) { } return self; } - (void)setTryAgainTime:(nullable NSNumber<SDLInt> *)tryAgainTime { - [parameters sdl_setObject:tryAgainTime forName:SDLNameTryAgainTime];} + [parameters sdl_setObject:tryAgainTime forName:SDLRPCParameterNameTryAgainTime];} - (nullable NSNumber<SDLInt> *)tryAgainTime { - return [parameters sdl_objectForName:SDLNameTryAgainTime]; + return [parameters sdl_objectForName:SDLRPCParameterNameTryAgainTime ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLAppInfo.m b/SmartDeviceLink/SDLAppInfo.m index a9102d40e..431382f91 100644 --- a/SmartDeviceLink/SDLAppInfo.m +++ b/SmartDeviceLink/SDLAppInfo.m @@ -4,7 +4,7 @@ #import "SDLAppInfo.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" static NSString *const SDLBundleShortVersionStringKey = @"CFBundleShortVersionString"; static NSString *const SDLBundleAppNameKey = @"CFBundleName"; @@ -27,27 +27,30 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setAppDisplayName:(NSString *)appDisplayName { - [store sdl_setObject:appDisplayName forName:SDLNameAppDisplayName]; + [store sdl_setObject:appDisplayName forName:SDLRPCParameterNameAppDisplayName]; } - (NSString *)appDisplayName { - return [store sdl_objectForName:SDLNameAppDisplayName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameAppDisplayName ofClass:NSString.class error:&error]; } - (void)setAppBundleID:(NSString *)appBundleID { - [store sdl_setObject:appBundleID forName:SDLNameAppBundleId]; + [store sdl_setObject:appBundleID forName:SDLRPCParameterNameAppBundleId]; } - (NSString *)appBundleID { - return [store sdl_objectForName:SDLNameAppBundleId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameAppBundleId ofClass:NSString.class error:&error]; } - (void)setAppVersion:(NSString *)appVersion { - [store sdl_setObject:appVersion forName:SDLNameAppVersion]; + [store sdl_setObject:appVersion forName:SDLRPCParameterNameAppVersion]; } - (NSString *)appVersion { - return [store sdl_objectForName:SDLNameAppVersion]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameAppVersion ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h index 79b3f1cf4..1c9b5b8b9 100644 --- a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h +++ b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h @@ -63,3 +63,7 @@ extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReason * @since SDL 2.0 */ extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized; + +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonProtocolViolation; + +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource; diff --git a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m index cf8cae70a..8bc3231cf 100644 --- a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m +++ b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m @@ -14,3 +14,5 @@ SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonLanguag SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonMasterReset = @"MASTER_RESET"; SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonFactoryDefaults = @"FACTORY_DEFAULTS"; SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized = @"APP_UNAUTHORIZED"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonProtocolViolation = @"PROTOCOL_VIOLATION"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource = @"UNSUPPORTED_HMI_RESOURCE"; diff --git a/SmartDeviceLink/SDLAppServiceCapability.h b/SmartDeviceLink/SDLAppServiceCapability.h new file mode 100644 index 000000000..a842dddd1 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceCapability.h @@ -0,0 +1,54 @@ +// +// SDLAppServiceCapability.h +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLServiceUpdateReason.h" + +@class SDLAppServiceRecord; + +NS_ASSUME_NONNULL_BEGIN + +/* + * A currently available service. + */ +@interface SDLAppServiceCapability : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param updatedAppServiceRecord Service record for a specific app service provider + * @return A SDLAppServiceCapability object + */ +- (instancetype)initWithUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param updateReason Update reason for this service record + * @param updatedAppServiceRecord Service record for a specific app service provider + * @return A SDLAppServiceCapability object + */ +- (instancetype)initWithUpdateReason:(nullable SDLServiceUpdateReason)updateReason updatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord; + +/** + * Only included in `OnSystemCapbilityUpdated`. Update reason for this service record. + * + * SDLServiceUpdateReason, Optional + */ +@property (nullable, strong, nonatomic) SDLServiceUpdateReason updateReason; + +/** + * Service record for a specific app service provider. + * + * SDLAppServiceRecord, Required + */ +@property (strong, nonatomic) SDLAppServiceRecord *updatedAppServiceRecord; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceCapability.m b/SmartDeviceLink/SDLAppServiceCapability.m new file mode 100644 index 000000000..19e30d607 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceCapability.m @@ -0,0 +1,61 @@ +// +// SDLAppServiceCapability.m +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceCapability.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" +#import "SDLServiceUpdateReason.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceCapability + +- (instancetype)initWithUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { + self = [super init]; + if (!self) { + return self; + } + + self.updatedAppServiceRecord = updatedAppServiceRecord; + + return self; +} + +- (instancetype)initWithUpdateReason:(nullable SDLServiceUpdateReason)updateReason updatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { + self = [self initWithUpdatedAppServiceRecord:updatedAppServiceRecord]; + if (!self) { + return self; + } + + self.updateReason = updateReason; + + return self; +} + +- (void)setUpdateReason:(nullable SDLServiceUpdateReason)updateReason { + [store sdl_setObject:updateReason forName:SDLRPCParameterNameUpdateReason]; +} + +- (nullable SDLServiceUpdateReason)updateReason { + return [store sdl_enumForName:SDLRPCParameterNameUpdateReason error:nil]; +} + +- (void)setUpdatedAppServiceRecord:(SDLAppServiceRecord *)updatedAppServiceRecord { + [store sdl_setObject:updatedAppServiceRecord forName:SDLRPCParameterNameUpdatedAppServiceRecord]; +} + +- (SDLAppServiceRecord *)updatedAppServiceRecord { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameUpdatedAppServiceRecord ofClass:SDLAppServiceRecord.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceData.h b/SmartDeviceLink/SDLAppServiceData.h new file mode 100644 index 000000000..7e6a96d4c --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceData.h @@ -0,0 +1,110 @@ +// +// SDLAppServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLAppServiceType.h" + +@class SDLMediaServiceData; +@class SDLNavigationServiceData; +@class SDLWeatherServiceData; + + +NS_ASSUME_NONNULL_BEGIN + +/* + * Contains all the current data of the app service. The serviceType will link to which of the service data objects are included in this object (e.g. if the service type is MEDIA, the mediaServiceData param should be included). + */ +@interface SDLAppServiceData : SDLRPCStruct + +/** + * Convenience init for service type and service id. + * + * @param serviceType The type of service that is to be offered by this app. + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for media service data. + * + * @param mediaServiceData The media service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithMediaServiceData:(SDLMediaServiceData *)mediaServiceData serviceId:(NSString *)serviceId; + +/** + * Convenience init for weather service data. + * + * @param weatherServiceData The weather service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithWeatherServiceData:(SDLWeatherServiceData *)weatherServiceData serviceId:(NSString *)serviceId; + +/** + * Convenience init for navigation service data. + * + * @param navigationServiceData The navigation service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */ +- (instancetype)initWithNavigationServiceData:(SDLNavigationServiceData *)navigationServiceData serviceId:(NSString *)serviceId; + +/** + * Convenience init for all parameters. + * + * @param serviceType The type of service that is to be offered by this app. + * @param serviceId A unique ID tied to this specific service record. + * @param mediaServiceData The media service data + * @param weatherServiceData The weather service data + * @param navigationServiceData The navigation service data + * @return A SDLAppServiceData object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId mediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData weatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData navigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData; + +/** + * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */ +@property (strong, nonatomic) NSString *serviceType; + +/** + * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceId; + +/** + * The media service data. + * + * SDLMediaServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLMediaServiceData *mediaServiceData; + +/** + * The weather service data. + * + * SDLWeatherServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLWeatherServiceData *weatherServiceData; + +/** + * The navigation service data. + * + * SDLNavigationServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLNavigationServiceData *navigationServiceData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceData.m b/SmartDeviceLink/SDLAppServiceData.m new file mode 100644 index 000000000..5381211c5 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceData.m @@ -0,0 +1,124 @@ +// +// SDLAppServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceData.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +#import "SDLAppServiceType.h" +#import "SDLMediaServiceData.h" +#import "SDLNavigationServiceData.h" +#import "SDLWeatherServiceData.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceData + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId { + self = [super init]; + if (!self) { + return nil; + } + + self.serviceType = serviceType; + self.serviceId = serviceId; + + return self; +} + +- (instancetype)initWithMediaServiceData:(SDLMediaServiceData *)mediaServiceData serviceId:(NSString *)serviceId { + self = [self initWithAppServiceType:SDLAppServiceTypeMedia serviceId:serviceId]; + if (!self) { + return nil; + } + + self.mediaServiceData = mediaServiceData; + + return self; +} + +- (instancetype)initWithWeatherServiceData:(SDLWeatherServiceData *)weatherServiceData serviceId:(NSString *)serviceId { + self = [self initWithAppServiceType:SDLAppServiceTypeWeather serviceId:serviceId]; + if (!self) { + return nil; + } + + self.weatherServiceData = weatherServiceData; + + return self; +} + +- (instancetype)initWithNavigationServiceData:(SDLNavigationServiceData *)navigationServiceData serviceId:(NSString *)serviceId { + self = [self initWithAppServiceType:SDLAppServiceTypeNavigation serviceId:serviceId]; + if (!self) { + return nil; + } + + self.navigationServiceData = navigationServiceData; + + return self; +} + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType serviceId:(NSString *)serviceId mediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData weatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData navigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData { + self = [self initWithAppServiceType:serviceType serviceId:serviceId]; + if (!self) { + return nil; + } + + self.mediaServiceData = mediaServiceData; + self.weatherServiceData = weatherServiceData; + self.navigationServiceData = navigationServiceData; + + return self; +} + +- (void)setServiceType:(NSString *)serviceType { + [store sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; +} + +- (NSString *)serviceType { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; +} + +- (void)setServiceId:(NSString *)serviceId { + [store sdl_setObject:serviceId forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceId { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +- (void)setWeatherServiceData:(nullable SDLWeatherServiceData *)weatherServiceData { + [store sdl_setObject:weatherServiceData forName:SDLRPCParameterNameWeatherServiceData]; +} + +- (nullable SDLWeatherServiceData *)weatherServiceData { + return [store sdl_objectForName:SDLRPCParameterNameWeatherServiceData ofClass:SDLWeatherServiceData.class error:nil]; +} + +- (void)setMediaServiceData:(nullable SDLMediaServiceData *)mediaServiceData { + [store sdl_setObject:mediaServiceData forName:SDLRPCParameterNameMediaServiceData]; +} + +- (nullable SDLMediaServiceData *)mediaServiceData { + return [store sdl_objectForName:SDLRPCParameterNameMediaServiceData ofClass:SDLMediaServiceData.class error:nil]; +} + +- (void)setNavigationServiceData:(nullable SDLNavigationServiceData *)navigationServiceData { + [store sdl_setObject:navigationServiceData forName:SDLRPCParameterNameNavigationServiceData]; +} + +- (nullable SDLNavigationServiceData *)navigationServiceData { + return [store sdl_objectForName:SDLRPCParameterNameNavigationServiceData ofClass:SDLNavigationServiceData.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceManifest.h b/SmartDeviceLink/SDLAppServiceManifest.h new file mode 100644 index 000000000..4622418e1 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceManifest.h @@ -0,0 +1,156 @@ +// +// SDLAppServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLAppServiceType.h" + +@class SDLFunctionID; +@class SDLImage; +@class SDLMediaServiceManifest; +@class SDLNavigationServiceManifest; +@class SDLSyncMsgVersion; +@class SDLWeatherServiceManifest; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This manifest contains all the information necessary for the service to be published, activated, and allow consumers to interact with it + */ +@interface SDLAppServiceManifest : SDLRPCStruct + +/** + * Convenience init for serviceType. + * + * @param serviceType The type of service that is to be offered by this app + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for a media service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param mediaServiceManifest A media service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest; + +/** + * Convenience init for a weather service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param weatherServiceManifest A weather service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest; + +/** + * Convenience init for a navigation service manifest. + * + * @param serviceName Unique name of this service + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param navigationServiceManifest A navigation service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest; + +/** + * Convenience init for all parameters. + * + * @param serviceName Unique name of this service + * @param serviceType The type of service that is to be offered by this app + * @param serviceIcon The file name of the icon to be associated with this service + * @param allowAppConsumers If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false + * @param rpcSpecVersion This is the max RPC Spec version the app service understands + * @param handledRPCs This field contains the Function IDs for the RPCs that this service intends to handle correctly + * @param mediaServiceManifest A media service manifest + * @param weatherServiceManifest A weather service manifest + * @param navigationServiceManifest A navigation service manifest + * @return A SDLAppServiceManifest object + */ +- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest; + +/** + * Unique name of this service. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *serviceName; + +/** + * The type of service that is to be offered by this app. See AppServiceType for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */ +@property (strong, nonatomic) NSString *serviceType; + +/** + * The file name of the icon to be associated with this service. Most likely the same as the appIcon. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *serviceIcon; + +/** + * If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false. + * + * Boolean, Optional, default = NO + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *allowAppConsumers; + +/** + * This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable. + * + * SyncMsgVersion, Optional + */ +@property (nullable, strong, nonatomic) SDLSyncMsgVersion *rpcSpecVersion; + +/** + * This field contains the Function IDs for the RPCs that this service intends to handle correctly. This means the service will provide meaningful responses. See FunctionID for enum equivalent values. This parameter is an integer to allow for new function IDs to be used by apps on older versions of SDL Core. + * + * Array of Integers, See `SDLFunctionID`, Optional + */ +@property (nullable, strong, nonatomic) NSArray<NSNumber<SDLInt> *> *handledRPCs; + +/** + * A media service manifest. + * + * SDLMediaServiceManifest, Optional + */ +@property (nullable, strong, nonatomic) SDLMediaServiceManifest *mediaServiceManifest; + +/** + * A weather service manifest. + * + * SDLWeatherServiceManifest, Optional + */ +@property (nullable, strong, nonatomic) SDLWeatherServiceManifest *weatherServiceManifest; + +/** + * A navigation service manifest. + * + * SDLNavigationServiceManifest, Optional + */ +@property (nullable, strong, nonatomic) SDLNavigationServiceManifest *navigationServiceManifest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceManifest.m b/SmartDeviceLink/SDLAppServiceManifest.m new file mode 100644 index 000000000..ce6c827a7 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceManifest.m @@ -0,0 +1,140 @@ +// +// SDLAppServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceManifest.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +#import "SDLFunctionID.h" +#import "SDLImage.h" +#import "SDLMediaServiceManifest.h" +#import "SDLNavigationServiceManifest.h" +#import "SDLSyncMsgVersion.h" +#import "SDLWeatherServiceManifest.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceManifest + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType { + self = [super init]; + if (!self) { + return self; + } + + self.serviceType = serviceType; + + return self; +} + +- (instancetype)initWithMediaServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeMedia serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:mediaServiceManifest weatherServiceManifest:nil navigationServiceManifest:nil]; +} + +- (instancetype)initWithWeatherServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeWeather serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:weatherServiceManifest navigationServiceManifest:nil]; +} + +- (instancetype)initWithNavigationServiceName:(nullable NSString *)serviceName serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + return [self initWithServiceName:serviceName serviceType:SDLAppServiceTypeNavigation serviceIcon:serviceIcon allowAppConsumers:allowAppConsumers rpcSpecVersion:rpcSpecVersion handledRPCs:handledRPCs mediaServiceManifest:nil weatherServiceManifest:nil navigationServiceManifest:navigationServiceManifest]; +} + +- (instancetype)initWithServiceName:(nullable NSString *)serviceName serviceType:(SDLAppServiceType)serviceType serviceIcon:(nullable SDLImage *)serviceIcon allowAppConsumers:(BOOL)allowAppConsumers rpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion handledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs mediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest weatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest navigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + self = [self initWithAppServiceType:serviceType]; + if (!self) { + return self; + } + + self.serviceName = serviceName; + self.serviceIcon = serviceIcon; + self.allowAppConsumers = @(allowAppConsumers); + self.rpcSpecVersion = rpcSpecVersion; + self.handledRPCs = handledRPCs; + self.mediaServiceManifest = mediaServiceManifest; + self.weatherServiceManifest = weatherServiceManifest; + self.navigationServiceManifest = navigationServiceManifest; + + return self; +} + +- (void)setServiceName:(nullable NSString *)serviceName { + [store sdl_setObject:serviceName forName:SDLRPCParameterNameServiceName]; +} + +- (nullable NSString *)serviceName { + return [store sdl_objectForName:SDLRPCParameterNameServiceName ofClass:NSString.class error:nil]; +} + +- (void)setServiceType:(NSString *)serviceType { + [store sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; +} + +- (NSString *)serviceType { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; +} + +- (void)setServiceIcon:(nullable SDLImage *)serviceIcon { + [store sdl_setObject:serviceIcon forName:SDLRPCParameterNameServiceIcon]; +} + +- (nullable SDLImage *)serviceIcon { + return [store sdl_objectForName:SDLRPCParameterNameServiceIcon ofClass:SDLImage.class error:nil]; +} + +- (void)setAllowAppConsumers:(nullable NSNumber<SDLBool> *)allowAppConsumers { + [store sdl_setObject:allowAppConsumers forName:SDLRPCParameterNameAllowAppConsumers]; +} + +- (nullable NSNumber<SDLBool> *)allowAppConsumers { + return [store sdl_objectForName:SDLRPCParameterNameAllowAppConsumers ofClass:NSNumber.class error:nil]; +} + +- (void)setRpcSpecVersion:(nullable SDLSyncMsgVersion *)rpcSpecVersion { + [store sdl_setObject:rpcSpecVersion forName:SDLRPCParameterNameRPCSpecVersion]; +} + +- (nullable SDLSyncMsgVersion *)rpcSpecVersion { + return [store sdl_objectForName:SDLRPCParameterNameRPCSpecVersion ofClass:SDLSyncMsgVersion.class error:nil]; +} + +- (void)setHandledRPCs:(nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs { + [store sdl_setObject:handledRPCs forName:SDLRPCParameterNameHandledRPCs]; +} + +- (nullable NSArray<NSNumber<SDLInt> *> *)handledRPCs { + return [store sdl_objectsForName:SDLRPCParameterNameHandledRPCs ofClass:NSNumber.class error:nil]; +} + +- (void)setWeatherServiceManifest:(nullable SDLWeatherServiceManifest *)weatherServiceManifest { + [store sdl_setObject:weatherServiceManifest forName:SDLRPCParameterNameWeatherServiceManifest]; +} + +- (nullable SDLWeatherServiceManifest *)weatherServiceManifest { + return [store sdl_objectForName:SDLRPCParameterNameWeatherServiceManifest ofClass:SDLWeatherServiceManifest.class error:nil]; +} + +- (void)setMediaServiceManifest:(nullable SDLMediaServiceManifest *)mediaServiceManifest { + [store sdl_setObject:mediaServiceManifest forName:SDLRPCParameterNameMediaServiceManifest]; +} + +- (nullable SDLMediaServiceManifest *)mediaServiceManifest { + return [store sdl_objectForName:SDLRPCParameterNameMediaServiceManifest ofClass:SDLMediaServiceManifest.class error:nil]; +} + +- (void)setNavigationServiceManifest:(nullable SDLNavigationServiceManifest *)navigationServiceManifest { + [store sdl_setObject:navigationServiceManifest forName:SDLRPCParameterNameNavigationServiceManifest]; +} + +- (nullable SDLNavigationServiceManifest *)navigationServiceManifest { + return [store sdl_objectForName:SDLRPCParameterNameNavigationServiceManifest ofClass:SDLNavigationServiceManifest.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceRecord.h b/SmartDeviceLink/SDLAppServiceRecord.h new file mode 100644 index 000000000..1d78d61ed --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceRecord.h @@ -0,0 +1,62 @@ +// +// SDLAppServiceRecord.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLAppServiceManifest; + + +NS_ASSUME_NONNULL_BEGIN + +/* + * This is the record of an app service publisher that the module has. It should contain the most up to date information including the service's active state. + */ +@interface SDLAppServiceRecord : SDLRPCStruct + +/** + * Convenience init for all parameters. + * + * @param serviceID A unique ID tied to this specific service record + * @param serviceManifest Manifest for the service that this record is for + * @param servicePublished If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable + * @param serviceActive If true, the service is the active primary service of the supplied service type. + * @return A SDLAppServiceRecord object + */ +- (instancetype)initWithServiceID:(NSString *)serviceID serviceManifest:(SDLAppServiceManifest *)serviceManifest servicePublished:(BOOL)servicePublished serviceActive:(BOOL)serviceActive; + +/** + * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceID; + +/** + * Manifest for the service that this record is for. + * + * SDLAppServiceManifest, Required + */ +@property (strong, nonatomic) SDLAppServiceManifest *serviceManifest; + +/** + * If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable. + * + * Boolean, Required + */ +@property (strong, nonatomic) NSNumber<SDLBool> *servicePublished; + +/** + * If true, the service is the active primary service of the supplied service type. It will receive all potential RPCs that are passed through to that service type. If false, it is not the primary service of the supplied type. See servicePublished for its availability. + * + * Boolean, Required + */ +@property (strong, nonatomic) NSNumber<SDLBool> *serviceActive; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceRecord.m b/SmartDeviceLink/SDLAppServiceRecord.m new file mode 100644 index 000000000..5677d6776 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceRecord.m @@ -0,0 +1,71 @@ +// +// SDLAppServiceRecord.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceRecord.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceManifest.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServiceRecord + +- (instancetype)initWithServiceID:(NSString *)serviceID serviceManifest:(SDLAppServiceManifest *)serviceManifest servicePublished:(BOOL)servicePublished serviceActive:(BOOL)serviceActive { + self = [self init]; + if (!self) { + return self; + } + + self.serviceID = serviceID; + self.serviceManifest = serviceManifest; + self.servicePublished = @(servicePublished); + self.serviceActive = @(serviceActive); + + return self; +} + +- (void)setServiceID:(NSString *)serviceID { + [store sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceID { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +- (void)setServiceManifest:(SDLAppServiceManifest *)serviceManifest { + [store sdl_setObject:serviceManifest forName:SDLRPCParameterNameServiceManifest]; +} + +- (SDLAppServiceManifest *)serviceManifest { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServiceManifest ofClass:SDLAppServiceManifest.class error:&error]; +} + +- (void)setServicePublished:(NSNumber<SDLBool> *)servicePublished { + [store sdl_setObject:servicePublished forName:SDLRPCParameterNameServicePublished]; +} + +- (NSNumber<SDLBool> *)servicePublished { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServicePublished ofClass:NSNumber.class error:&error]; +} + +- (void)setServiceActive:(NSNumber<SDLBool> *)serviceActive { + [store sdl_setObject:serviceActive forName:SDLRPCParameterNameServiceActive]; +} + +- (NSNumber<SDLBool> *)serviceActive { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameServiceActive ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServiceType.h b/SmartDeviceLink/SDLAppServiceType.h new file mode 100644 index 000000000..920f5109b --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceType.h @@ -0,0 +1,29 @@ +// +// SDLAppServiceType.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible app service types. + */ +typedef SDLEnum SDLAppServiceType SDL_SWIFT_ENUM; + +/** + * The app will have a service type of media. + */ +extern SDLAppServiceType const SDLAppServiceTypeMedia; + +/** + * The app will have a service type of weather. + */ +extern SDLAppServiceType const SDLAppServiceTypeWeather; + +/** + * The app will have a service type of navigation. + */ +extern SDLAppServiceType const SDLAppServiceTypeNavigation; diff --git a/SmartDeviceLink/SDLAppServiceType.m b/SmartDeviceLink/SDLAppServiceType.m new file mode 100644 index 000000000..730990333 --- /dev/null +++ b/SmartDeviceLink/SDLAppServiceType.m @@ -0,0 +1,13 @@ +// +// SDLAppServiceType.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServiceType.h" + +SDLAppServiceType const SDLAppServiceTypeMedia = @"MEDIA"; +SDLAppServiceType const SDLAppServiceTypeWeather = @"WEATHER"; +SDLAppServiceType const SDLAppServiceTypeNavigation = @"NAVIGATION"; diff --git a/SmartDeviceLink/SDLAppServicesCapabilities.h b/SmartDeviceLink/SDLAppServicesCapabilities.h new file mode 100644 index 000000000..707a10acb --- /dev/null +++ b/SmartDeviceLink/SDLAppServicesCapabilities.h @@ -0,0 +1,37 @@ +// +// SDLAppServicesCapabilities.h +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLAppServiceCapability; + +NS_ASSUME_NONNULL_BEGIN + +/* + * Capabilities of app services including what service types are supported and the current state of services. + */ +@interface SDLAppServicesCapabilities : SDLRPCStruct + +/** + * Convenience init. + * + * @param appServices An array of currently available services. + * @return A SDLAppServicesCapabilities object + */ +- (instancetype)initWithAppServices:(nullable NSArray<SDLAppServiceCapability *> *)appServices; + +/** + * An array of currently available services. If this is an update to the capability the affected services will include an update reason in that item. + * + * Array of SDLAppServiceCapability, Optional + */ +@property (nullable, strong, nonatomic) NSArray<SDLAppServiceCapability *> *appServices; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppServicesCapabilities.m b/SmartDeviceLink/SDLAppServicesCapabilities.m new file mode 100644 index 000000000..f0d032c54 --- /dev/null +++ b/SmartDeviceLink/SDLAppServicesCapabilities.m @@ -0,0 +1,40 @@ +// +// SDLAppServicesCapabilities.m +// SmartDeviceLink +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAppServicesCapabilities.h" + +#import "SDLAppServiceCapability.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLAppServicesCapabilities + +- (instancetype)initWithAppServices:(nullable NSArray<SDLAppServiceCapability *> *)appServices { + self = [self init]; + if (!self) { + return self; + } + + self.appServices = appServices; + + return self; +} + +- (void)setAppServices:(nullable NSArray<SDLAppServiceCapability *> *)appServices { + [store sdl_setObject:appServices forName:SDLRPCParameterNameAppServices]; +} + +- (nullable NSArray<SDLAppServiceCapability *> *)appServices { + return [store sdl_objectsForName:SDLRPCParameterNameAppServices ofClass:SDLAppServiceCapability.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLArtwork.h b/SmartDeviceLink/SDLArtwork.h index 4773fec54..cf7b68d13 100644 --- a/SmartDeviceLink/SDLArtwork.h +++ b/SmartDeviceLink/SDLArtwork.h @@ -9,6 +9,9 @@ #import <UIKit/UIKit.h> #import "SDLFile.h" +#import "SDLStaticIconName.h" + +@class SDLImage; typedef NS_ENUM(NSUInteger, SDLArtworkImageFormat) { SDLArtworkImageFormatPNG, @@ -27,6 +30,11 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readonly) BOOL isTemplate; /** + The Image RPC representing this artwork. Generally for use internally, you should instead pass an artwork to a Screen Manager method. + */ +@property (strong, nonatomic, readonly) SDLImage *imageRPC; + +/** * 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. @@ -60,6 +68,15 @@ NS_ASSUME_NONNULL_BEGIN + (instancetype)artworkWithImage:(UIImage *)image asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false"); /** + Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. + + @param staticIcon The static icon to be shown on the remote system. + + @return An instance of this class to be passed to a screen manager. + */ ++ (instancetype)artworkWithStaticIcon:(SDLStaticIconName)staticIcon NS_SWIFT_UNAVAILABLE("Use the standard initializer"); + +/** * 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. @@ -115,6 +132,15 @@ NS_ASSUME_NONNULL_BEGIN */ - (instancetype)initWithImage:(UIImage *)image persistent:(BOOL)persistent asImageFormat:(SDLArtworkImageFormat)imageFormat; +/** + Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. + + @param staticIcon The static icon to be shown on the remote system. + + @return An instance of this class to be passed to a screen manager. + */ +- (instancetype)initWithStaticIcon:(SDLStaticIconName)staticIcon; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLArtwork.m b/SmartDeviceLink/SDLArtwork.m index d9bf2e586..adb339115 100644 --- a/SmartDeviceLink/SDLArtwork.m +++ b/SmartDeviceLink/SDLArtwork.m @@ -6,12 +6,20 @@ // Copyright © 2015 smartdevicelink. All rights reserved. // +#import <CommonCrypto/CommonDigest.h> + #import "SDLArtwork.h" #import "SDLFileType.h" -#import <CommonCrypto/CommonDigest.h> +#import "SDLImage.h" NS_ASSUME_NONNULL_BEGIN +@interface SDLFile () + +@property (assign, nonatomic, readwrite) BOOL isStaticIcon; + +@end + @interface SDLArtwork () @property (strong, nonatomic) UIImage *image; @@ -22,11 +30,6 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLArtwork -- (void)setImage:(UIImage *)image { - _image = image; - _isTemplate = (image.renderingMode == UIImageRenderingModeAlwaysTemplate); -} - #pragma mark - Lifecycle + (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat { @@ -37,6 +40,10 @@ NS_ASSUME_NONNULL_BEGIN return [[self alloc] initWithImage:image persistent:NO asImageFormat:imageFormat]; } ++ (instancetype)artworkWithStaticIcon:(SDLStaticIconName)staticIcon { + return [[self alloc] initWithStaticIcon:staticIcon]; +} + + (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat { return [[self alloc] initWithImage:image name:name persistent:YES asImageFormat:imageFormat]; } @@ -60,6 +67,30 @@ NS_ASSUME_NONNULL_BEGIN return [super initWithData:[self.class sdl_dataForUIImage:image imageFormat:imageFormat] name:(imageName != nil ? imageName : @"") fileExtension:[self.class sdl_fileExtensionForImageFormat:imageFormat] persistent:persistent]; } +- (instancetype)initWithStaticIcon:(SDLStaticIconName)staticIcon { + self = [super initWithData:[staticIcon dataUsingEncoding:NSASCIIStringEncoding] name:staticIcon fileExtension:@"" persistent:NO]; + self.isStaticIcon = true; + + return self; +} + +#pragma mark - Setters and Getters + +- (void)setImage:(UIImage *)image { + _image = image; + _isTemplate = (image.renderingMode == UIImageRenderingModeAlwaysTemplate); +} + +- (SDLImage *)imageRPC { + if (self.isStaticIcon) { + return [[SDLImage alloc] initWithStaticIconName:self.name]; + } else { + return [[SDLImage alloc] initWithName:self.name isTemplate:self.isTemplate]; + } +} + +#pragma mark - Helper Methods + /** * Returns the JPG or PNG image data for a UIImage. * @@ -146,6 +177,10 @@ NS_ASSUME_NONNULL_BEGIN return haveEqualNames && haveEqualData && haveEqualFormats; } +- (NSString *)description { + return [NSString stringWithFormat:@"SDLArtwork name: %@, image: %@, isTemplate: %@, isStaticIcon: %@", self.name, self.image, (self.isTemplate ? @"YES" : @"NO"), (self.isStaticIcon ? @"YES" : @"NO")]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAsynchronousRPCOperation.h b/SmartDeviceLink/SDLAsynchronousRPCOperation.h new file mode 100644 index 000000000..8bb27deb4 --- /dev/null +++ b/SmartDeviceLink/SDLAsynchronousRPCOperation.h @@ -0,0 +1,39 @@ +// +// SDLAsynchronousRPCOperation.h +// SmartDeviceLink +// +// Created by Nicole on 2/20/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <UIKit/UIKit.h> + +#import "SDLAsynchronousOperation.h" +#import "SDLLifecycleManager.h" + +@protocol SDLConnectionManagerType; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Sends an RPC of type `Response` or `Notification`. Since these RPCs do not get a response from Core, the operation is considered finished as soon as the RPC is sent. RPCs of type `Request` can not be sent using this operation as `Request`s must get a response from Core before the operation is considered finished. To send `Requests` use the `SDLAsynchronousRPCRequestOperation` or the `SDLSequentialRPCRequestOperation` + */ +@interface SDLAsynchronousRPCOperation : SDLAsynchronousOperation + +/** + * An RPC of type `SDLRPCResponse` or `SDLRPCNotification`. + */ +@property (copy, nonatomic) __kindof SDLRPCMessage *rpc; + +/** + * Convenience init. + * + * @param connectionManager The connection manager used to send the RPC + * @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent by the connection manager. + * @return A SDLAsynchronousRPCOperation object + */ +- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager rpc:(__kindof SDLRPCMessage *)rpc; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAsynchronousRPCOperation.m b/SmartDeviceLink/SDLAsynchronousRPCOperation.m new file mode 100644 index 000000000..4fe43a91e --- /dev/null +++ b/SmartDeviceLink/SDLAsynchronousRPCOperation.m @@ -0,0 +1,88 @@ +// +// SDLAsynchronousRPCOperation.m +// SmartDeviceLink +// +// Created by Nicole on 2/20/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLAsynchronousRPCOperation.h" + +#import "SDLConnectionManagerType.h" +#import "SDLError.h" +#import "SDLRPCMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAsynchronousRPCOperation () + +@property (weak, nonatomic) id<SDLConnectionManagerType> connectionManager; +@property (strong, nonatomic) NSUUID *operationId; + +@end + +@implementation SDLAsynchronousRPCOperation { + BOOL executing; + BOOL finished; +} + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + executing = NO; + finished = NO; + + _operationId = [NSUUID UUID]; + + return self; +} + +- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager rpc:(__kindof SDLRPCMessage *)rpc { + self = [self init]; + + _rpc = rpc; + _connectionManager = connectionManager; + + return self; +} + +- (void)start { + [super start]; + [self sdl_sendRPC:self.rpc]; +} + +- (void)sdl_sendRPC:(__kindof SDLRPCMessage *)rpc { + if (self.isCancelled) { + [self sdl_abortOperation]; + return; + } + + [self.connectionManager sendConnectionRPC:rpc]; + [self finishOperation]; +} + +- (void)sdl_abortOperation { + [self finishOperation]; +} + +#pragma mark - Property Overrides +- (nullable NSString *)name { + return [NSString stringWithFormat:@"%@ - %@", self.class, self.operationId]; +} + +- (NSOperationQueuePriority)queuePriority { + return NSOperationQueuePriorityNormal; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@", self.name]; +} + +- (NSString *)debugDescription { + return [NSString stringWithFormat:@"%@, request type=%@", self.name, self.rpc.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h b/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h index a24165dad..908d0d3e6 100644 --- a/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h +++ b/SmartDeviceLink/SDLAsynchronousRPCRequestOperation.h @@ -15,12 +15,35 @@ NS_ASSUME_NONNULL_BEGIN +/** + * Sends an array RPCs of type `Request` asynchronously. Requests must get a response from Core before the operation is considered finished. + */ @interface SDLAsynchronousRPCRequestOperation : SDLAsynchronousOperation -@property (copy, nonatomic) NSArray<SDLRPCRequest *> *requests; - +/** + * An array of RPCs of type `Request`. + */ +@property (strong, nonatomic) NSArray<SDLRPCRequest *> *requests; + +/** + * Convenience init for sending an array of requests asynchronously. + * + * @param connectionManager The connection manager used to send the RPCs + * @param requests The requests to be sent to Core + * @param progressHandler Called as each request gets a response from Core + * @param completionHandler Called when all requests have a response from Core + * @return A SDLAsynchronousRPCRequestOperation object + */ - (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager requests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; +/** + * Convenience init for sending one request asynchronously. + * + * @param connectionManager The connection manager used to send the RPCs + * @param request The request to be sent to Core + * @param responseHandler Called when the request has a response from Core + * @return A SDLAsynchronousRPCRequestOperation object + */ - (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager request:(SDLRPCRequest *)request responseHandler:(nullable SDLResponseHandler)responseHandler; @end diff --git a/SmartDeviceLink/SDLAudioControlCapabilities.m b/SmartDeviceLink/SDLAudioControlCapabilities.m index e0d64d4da..9d22c4d94 100644 --- a/SmartDeviceLink/SDLAudioControlCapabilities.m +++ b/SmartDeviceLink/SDLAudioControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLAudioControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -35,51 +35,52 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setSourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable { - [store sdl_setObject:sourceAvailable forName:SDLNameSourceAvailable]; + [store sdl_setObject:sourceAvailable forName:SDLRPCParameterNameSourceAvailable]; } - (nullable NSNumber<SDLBool> *)sourceAvailable { - return [store sdl_objectForName:SDLNameSourceAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameSourceAvailable ofClass:NSNumber.class error:nil]; } - (void)setKeepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable { - [store sdl_setObject:keepContextAvailable forName:SDLNameKeepContextAvailable]; + [store sdl_setObject:keepContextAvailable forName:SDLRPCParameterNameKeepContextAvailable]; } - (nullable NSNumber<SDLBool> *)keepContextAvailable { - return [store sdl_objectForName:SDLNameKeepContextAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameKeepContextAvailable ofClass:NSNumber.class error:nil]; } - (void)setVolumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable { - [store sdl_setObject:volumeAvailable forName:SDLNameVolumeAvailable]; + [store sdl_setObject:volumeAvailable forName:SDLRPCParameterNameVolumeAvailable]; } - (nullable NSNumber<SDLBool> *)volumeAvailable { - return [store sdl_objectForName:SDLNameVolumeAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameVolumeAvailable ofClass:NSNumber.class error:nil]; } - (void)setEqualizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable { - [store sdl_setObject:equalizerAvailable forName:SDLNameEqualizerAvailable]; + [store sdl_setObject:equalizerAvailable forName:SDLRPCParameterNameEqualizerAvailable]; } - (nullable NSNumber<SDLBool> *)equalizerAvailable { - return [store sdl_objectForName:SDLNameEqualizerAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameEqualizerAvailable ofClass:NSNumber.class error:nil]; } - (void)setEqualizerMaxChannelId:(nullable NSNumber<SDLInt> *)equalizerMaxChannelId { - [store sdl_setObject:equalizerMaxChannelId forName:SDLNameEqualizerMaxChannelId]; + [store sdl_setObject:equalizerMaxChannelId forName:SDLRPCParameterNameEqualizerMaxChannelId]; } - (nullable NSNumber<SDLInt> *)equalizerMaxChannelId { - return [store sdl_objectForName:SDLNameEqualizerMaxChannelId]; + return [store sdl_objectForName:SDLRPCParameterNameEqualizerMaxChannelId ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLAudioControlData.m b/SmartDeviceLink/SDLAudioControlData.m index 4a572f074..b205aee71 100644 --- a/SmartDeviceLink/SDLAudioControlData.m +++ b/SmartDeviceLink/SDLAudioControlData.m @@ -2,8 +2,9 @@ // #import "SDLAudioControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" +#import "SDLEqualizerSettings.h" NS_ASSUME_NONNULL_BEGIN @@ -24,36 +25,36 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setSource:(nullable SDLPrimaryAudioSource)source { - [store sdl_setObject:source forName:SDLNameSource]; + [store sdl_setObject:source forName:SDLRPCParameterNameSource]; } - (nullable SDLPrimaryAudioSource)source { - return [store sdl_objectForName:SDLNameSource]; + return [store sdl_enumForName:SDLRPCParameterNameSource error:nil]; } - (void)setKeepContext:(nullable NSNumber<SDLBool> *)keepContext { - [store sdl_setObject:keepContext forName:SDLNameKeepContext]; + [store sdl_setObject:keepContext forName:SDLRPCParameterNameKeepContext]; } - (nullable NSNumber<SDLBool> *)keepContext { - return [store sdl_objectForName:SDLNameKeepContext]; + return [store sdl_objectForName:SDLRPCParameterNameKeepContext ofClass:NSNumber.class error:nil]; } - (void)setVolume:(nullable NSNumber<SDLInt> *)volume { - [store sdl_setObject:volume forName:SDLNameVolume]; + [store sdl_setObject:volume forName:SDLRPCParameterNameVolume]; } - (nullable NSNumber<SDLInt> *)volume { - return [store sdl_objectForName:SDLNameVolume]; + return [store sdl_objectForName:SDLRPCParameterNameVolume ofClass:NSNumber.class error:nil]; } - (void)setEqualizerSettings:(nullable NSArray<SDLEqualizerSettings *> *)equalizerSettings { - [store sdl_setObject:equalizerSettings forName:SDLNameEqualizerSettings]; + [store sdl_setObject:equalizerSettings forName:SDLRPCParameterNameEqualizerSettings]; } - (nullable NSArray<SDLEqualizerSettings *> *)equalizerSettings { - return [store sdl_objectForName:SDLNameEqualizerSettings]; + return [store sdl_objectsForName:SDLRPCParameterNameEqualizerSettings ofClass:SDLEqualizerSettings.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLAudioPassThruCapabilities.m b/SmartDeviceLink/SDLAudioPassThruCapabilities.m index 268170757..51c1e64bb 100644 --- a/SmartDeviceLink/SDLAudioPassThruCapabilities.m +++ b/SmartDeviceLink/SDLAudioPassThruCapabilities.m @@ -5,34 +5,37 @@ #import "SDLAudioPassThruCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLAudioPassThruCapabilities - (void)setSamplingRate:(SDLSamplingRate)samplingRate { - [store sdl_setObject:samplingRate forName:SDLNameSamplingRate]; + [store sdl_setObject:samplingRate forName:SDLRPCParameterNameSamplingRate]; } - (SDLSamplingRate)samplingRate { - return [store sdl_objectForName:SDLNameSamplingRate]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameSamplingRate error:&error]; } - (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { - [store sdl_setObject:bitsPerSample forName:SDLNameBitsPerSample]; + [store sdl_setObject:bitsPerSample forName:SDLRPCParameterNameBitsPerSample]; } - (SDLBitsPerSample)bitsPerSample { - return [store sdl_objectForName:SDLNameBitsPerSample]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameBitsPerSample error:&error]; } - (void)setAudioType:(SDLAudioType)audioType { - [store sdl_setObject:audioType forName:SDLNameAudioType]; + [store sdl_setObject:audioType forName:SDLRPCParameterNameAudioType]; } - (SDLAudioType)audioType { - return [store sdl_objectForName:SDLNameAudioType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameAudioType error:&error]; } @end diff --git a/SmartDeviceLink/SDLBeltStatus.m b/SmartDeviceLink/SDLBeltStatus.m index d65a1fd74..1432b9453 100644 --- a/SmartDeviceLink/SDLBeltStatus.m +++ b/SmartDeviceLink/SDLBeltStatus.m @@ -4,7 +4,7 @@ #import "SDLBeltStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataEventStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -12,123 +12,138 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLBeltStatus - (void)setDriverBeltDeployed:(SDLVehicleDataEventStatus)driverBeltDeployed { - [store sdl_setObject:driverBeltDeployed forName:SDLNameDriverBeltDeployed]; + [store sdl_setObject:driverBeltDeployed forName:SDLRPCParameterNameDriverBeltDeployed]; } - (SDLVehicleDataEventStatus)driverBeltDeployed { - return [store sdl_objectForName:SDLNameDriverBeltDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDriverBeltDeployed error:&error]; } - (void)setPassengerBeltDeployed:(SDLVehicleDataEventStatus)passengerBeltDeployed { - [store sdl_setObject:passengerBeltDeployed forName:SDLNamePassengerBeltDeployed]; + [store sdl_setObject:passengerBeltDeployed forName:SDLRPCParameterNamePassengerBeltDeployed]; } - (SDLVehicleDataEventStatus)passengerBeltDeployed { - return [store sdl_objectForName:SDLNamePassengerBeltDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerBeltDeployed error:&error]; } - (void)setPassengerBuckleBelted:(SDLVehicleDataEventStatus)passengerBuckleBelted { - [store sdl_setObject:passengerBuckleBelted forName:SDLNamePassengerBuckleBelted]; + [store sdl_setObject:passengerBuckleBelted forName:SDLRPCParameterNamePassengerBuckleBelted]; } - (SDLVehicleDataEventStatus)passengerBuckleBelted { - return [store sdl_objectForName:SDLNamePassengerBuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerBuckleBelted error:&error]; } - (void)setDriverBuckleBelted:(SDLVehicleDataEventStatus)driverBuckleBelted { - [store sdl_setObject:driverBuckleBelted forName:SDLNameDriverBuckleBelted]; + [store sdl_setObject:driverBuckleBelted forName:SDLRPCParameterNameDriverBuckleBelted]; } - (SDLVehicleDataEventStatus)driverBuckleBelted { - return [store sdl_objectForName:SDLNameDriverBuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDriverBuckleBelted error:&error]; } - (void)setLeftRow2BuckleBelted:(SDLVehicleDataEventStatus)leftRow2BuckleBelted { - [store sdl_setObject:leftRow2BuckleBelted forName:SDLNameLeftRow2BuckleBelted]; + [store sdl_setObject:leftRow2BuckleBelted forName:SDLRPCParameterNameLeftRow2BuckleBelted]; } - (SDLVehicleDataEventStatus)leftRow2BuckleBelted { - return [store sdl_objectForName:SDLNameLeftRow2BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameLeftRow2BuckleBelted error:&error]; } - (void)setPassengerChildDetected:(SDLVehicleDataEventStatus)passengerChildDetected { - [store sdl_setObject:passengerChildDetected forName:SDLNamePassengerChildDetected]; + [store sdl_setObject:passengerChildDetected forName:SDLRPCParameterNamePassengerChildDetected]; } - (SDLVehicleDataEventStatus)passengerChildDetected { - return [store sdl_objectForName:SDLNamePassengerChildDetected]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePassengerChildDetected error:&error]; } - (void)setRightRow2BuckleBelted:(SDLVehicleDataEventStatus)rightRow2BuckleBelted { - [store sdl_setObject:rightRow2BuckleBelted forName:SDLNameRightRow2BuckleBelted]; + [store sdl_setObject:rightRow2BuckleBelted forName:SDLRPCParameterNameRightRow2BuckleBelted]; } - (SDLVehicleDataEventStatus)rightRow2BuckleBelted { - return [store sdl_objectForName:SDLNameRightRow2BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameRightRow2BuckleBelted error:&error]; } - (void)setMiddleRow2BuckleBelted:(SDLVehicleDataEventStatus)middleRow2BuckleBelted { - [store sdl_setObject:middleRow2BuckleBelted forName:SDLNameMiddleRow2BuckleBelted]; + [store sdl_setObject:middleRow2BuckleBelted forName:SDLRPCParameterNameMiddleRow2BuckleBelted]; } - (SDLVehicleDataEventStatus)middleRow2BuckleBelted { - return [store sdl_objectForName:SDLNameMiddleRow2BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMiddleRow2BuckleBelted error:&error]; } - (void)setMiddleRow3BuckleBelted:(SDLVehicleDataEventStatus)middleRow3BuckleBelted { - [store sdl_setObject:middleRow3BuckleBelted forName:SDLNameMiddleRow3BuckleBelted]; + [store sdl_setObject:middleRow3BuckleBelted forName:SDLRPCParameterNameMiddleRow3BuckleBelted]; } - (SDLVehicleDataEventStatus)middleRow3BuckleBelted { - return [store sdl_objectForName:SDLNameMiddleRow3BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMiddleRow3BuckleBelted error:&error]; } - (void)setLeftRow3BuckleBelted:(SDLVehicleDataEventStatus)leftRow3BuckleBelted { - [store sdl_setObject:leftRow3BuckleBelted forName:SDLNameLeftRow3BuckleBelted]; + [store sdl_setObject:leftRow3BuckleBelted forName:SDLRPCParameterNameLeftRow3BuckleBelted]; } - (SDLVehicleDataEventStatus)leftRow3BuckleBelted { - return [store sdl_objectForName:SDLNameLeftRow3BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameLeftRow3BuckleBelted error:&error]; } - (void)setRightRow3BuckleBelted:(SDLVehicleDataEventStatus)rightRow3BuckleBelted { - [store sdl_setObject:rightRow3BuckleBelted forName:SDLNameRightRow3BuckleBelted]; + [store sdl_setObject:rightRow3BuckleBelted forName:SDLRPCParameterNameRightRow3BuckleBelted]; } - (SDLVehicleDataEventStatus)rightRow3BuckleBelted { - return [store sdl_objectForName:SDLNameRightRow3BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameRightRow3BuckleBelted error:&error]; } - (void)setLeftRearInflatableBelted:(SDLVehicleDataEventStatus)leftRearInflatableBelted { - [store sdl_setObject:leftRearInflatableBelted forName:SDLNameLeftRearInflatableBelted]; + [store sdl_setObject:leftRearInflatableBelted forName:SDLRPCParameterNameLeftRearInflatableBelted]; } - (SDLVehicleDataEventStatus)leftRearInflatableBelted { - return [store sdl_objectForName:SDLNameLeftRearInflatableBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameLeftRearInflatableBelted error:&error]; } - (void)setRightRearInflatableBelted:(SDLVehicleDataEventStatus)rightRearInflatableBelted { - [store sdl_setObject:rightRearInflatableBelted forName:SDLNameRightRearInflatableBelted]; + [store sdl_setObject:rightRearInflatableBelted forName:SDLRPCParameterNameRightRearInflatableBelted]; } - (SDLVehicleDataEventStatus)rightRearInflatableBelted { - return [store sdl_objectForName:SDLNameRightRearInflatableBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameRightRearInflatableBelted error:&error]; } - (void)setMiddleRow1BeltDeployed:(SDLVehicleDataEventStatus)middleRow1BeltDeployed { - [store sdl_setObject:middleRow1BeltDeployed forName:SDLNameMiddleRow1BeltDeployed]; + [store sdl_setObject:middleRow1BeltDeployed forName:SDLRPCParameterNameMiddleRow1BeltDeployed]; } - (SDLVehicleDataEventStatus)middleRow1BeltDeployed { - return [store sdl_objectForName:SDLNameMiddleRow1BeltDeployed]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMiddleRow1BeltDeployed error:&error]; } - (void)setMiddleRow1BuckleBelted:(SDLVehicleDataEventStatus)middleRow1BuckleBelted { - [store sdl_setObject:middleRow1BuckleBelted forName:SDLNameMiddleRow1BuckleBelted]; + [store sdl_setObject:middleRow1BuckleBelted forName:SDLRPCParameterNameMiddleRow1BuckleBelted]; } - (SDLVehicleDataEventStatus)middleRow1BuckleBelted { - return [store sdl_objectForName:SDLNameMiddleRow1BuckleBelted]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMiddleRow1BuckleBelted error:&error]; } @end diff --git a/SmartDeviceLink/SDLBodyInformation.m b/SmartDeviceLink/SDLBodyInformation.m index 3ffbe97c0..5591998a3 100644 --- a/SmartDeviceLink/SDLBodyInformation.m +++ b/SmartDeviceLink/SDLBodyInformation.m @@ -7,66 +7,69 @@ #import "NSMutableDictionary+Store.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLBodyInformation - (void)setParkBrakeActive:(NSNumber<SDLBool> *)parkBrakeActive { - [store sdl_setObject:parkBrakeActive forName:SDLNameParkBrakeActive]; + [store sdl_setObject:parkBrakeActive forName:SDLRPCParameterNameParkBrakeActive]; } - (NSNumber<SDLBool> *)parkBrakeActive { - return [store sdl_objectForName:SDLNameParkBrakeActive]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameParkBrakeActive ofClass:NSNumber.class error:&error]; } - (void)setIgnitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus { - [store sdl_setObject:ignitionStableStatus forName:SDLNameIgnitionStableStatus]; + [store sdl_setObject:ignitionStableStatus forName:SDLRPCParameterNameIgnitionStableStatus]; } - (SDLIgnitionStableStatus)ignitionStableStatus { - return [store sdl_objectForName:SDLNameIgnitionStableStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameIgnitionStableStatus error:&error]; } - (void)setIgnitionStatus:(SDLIgnitionStatus)ignitionStatus { - [store sdl_setObject:ignitionStatus forName:SDLNameIgnitionStatus]; + [store sdl_setObject:ignitionStatus forName:SDLRPCParameterNameIgnitionStatus]; } - (SDLIgnitionStatus)ignitionStatus { - return [store sdl_objectForName:SDLNameIgnitionStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameIgnitionStatus error:&error]; } - (void)setDriverDoorAjar:(nullable NSNumber<SDLBool> *)driverDoorAjar { - [store sdl_setObject:driverDoorAjar forName:SDLNameDriverDoorAjar]; + [store sdl_setObject:driverDoorAjar forName:SDLRPCParameterNameDriverDoorAjar]; } - (nullable NSNumber<SDLBool> *)driverDoorAjar { - return [store sdl_objectForName:SDLNameDriverDoorAjar]; + return [store sdl_objectForName:SDLRPCParameterNameDriverDoorAjar ofClass:NSNumber.class error:nil]; } - (void)setPassengerDoorAjar:(nullable NSNumber<SDLBool> *)passengerDoorAjar { - [store sdl_setObject:passengerDoorAjar forName:SDLNamePassengerDoorAjar]; + [store sdl_setObject:passengerDoorAjar forName:SDLRPCParameterNamePassengerDoorAjar]; } - (nullable NSNumber<SDLBool> *)passengerDoorAjar { - return [store sdl_objectForName:SDLNamePassengerDoorAjar]; + return [store sdl_objectForName:SDLRPCParameterNamePassengerDoorAjar ofClass:NSNumber.class error:nil]; } - (void)setRearLeftDoorAjar:(nullable NSNumber<SDLBool> *)rearLeftDoorAjar { - [store sdl_setObject:rearLeftDoorAjar forName:SDLNameRearLeftDoorAjar]; + [store sdl_setObject:rearLeftDoorAjar forName:SDLRPCParameterNameRearLeftDoorAjar]; } - (nullable NSNumber<SDLBool> *)rearLeftDoorAjar { - return [store sdl_objectForName:SDLNameRearLeftDoorAjar]; + return [store sdl_objectForName:SDLRPCParameterNameRearLeftDoorAjar ofClass:NSNumber.class error:nil]; } - (void)setRearRightDoorAjar:(nullable NSNumber<SDLBool> *)rearRightDoorAjar { - [store sdl_setObject:rearRightDoorAjar forName:SDLNameRearRightDoorAjar]; + [store sdl_setObject:rearRightDoorAjar forName:SDLRPCParameterNameRearRightDoorAjar]; } - (nullable NSNumber<SDLBool> *)rearRightDoorAjar { - return [store sdl_objectForName:SDLNameRearRightDoorAjar]; + return [store sdl_objectForName:SDLRPCParameterNameRearRightDoorAjar ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLButtonCapabilities.m b/SmartDeviceLink/SDLButtonCapabilities.m index 42aeb7ae5..79fbc3fdf 100644 --- a/SmartDeviceLink/SDLButtonCapabilities.m +++ b/SmartDeviceLink/SDLButtonCapabilities.m @@ -4,42 +4,46 @@ #import "SDLButtonCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonCapabilities - (void)setName:(SDLButtonName)name { - [store sdl_setObject:name forName:SDLNameName]; + [store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLButtonName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setShortPressAvailable:(NSNumber<SDLBool> *)shortPressAvailable { - [store sdl_setObject:shortPressAvailable forName:SDLNameShortPressAvailable]; + [store sdl_setObject:shortPressAvailable forName:SDLRPCParameterNameShortPressAvailable]; } - (NSNumber<SDLBool> *)shortPressAvailable { - return [store sdl_objectForName:SDLNameShortPressAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameShortPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setLongPressAvailable:(NSNumber<SDLBool> *)longPressAvailable { - [store sdl_setObject:longPressAvailable forName:SDLNameLongPressAvailable]; + [store sdl_setObject:longPressAvailable forName:SDLRPCParameterNameLongPressAvailable]; } - (NSNumber<SDLBool> *)longPressAvailable { - return [store sdl_objectForName:SDLNameLongPressAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLongPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setUpDownAvailable:(NSNumber<SDLBool> *)upDownAvailable { - [store sdl_setObject:upDownAvailable forName:SDLNameUpDownAvailable]; + [store sdl_setObject:upDownAvailable forName:SDLRPCParameterNameUpDownAvailable]; } - (NSNumber<SDLBool> *)upDownAvailable { - return [store sdl_objectForName:SDLNameUpDownAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLButtonPress.m b/SmartDeviceLink/SDLButtonPress.m index 3555780fc..7823edbe2 100644 --- a/SmartDeviceLink/SDLButtonPress.m +++ b/SmartDeviceLink/SDLButtonPress.m @@ -3,7 +3,8 @@ // #import "SDLButtonPress.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -11,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonPress - (instancetype)init { - if (self = [super initWithName:SDLNameButtonPress]) { + if (self = [super initWithName:SDLRPCFunctionNameButtonPress]) { } return self; } @@ -29,27 +30,30 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleType:(SDLModuleType)moduleType { - [parameters sdl_setObject:moduleType forName:SDLNameModuleType]; + [parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; } - (SDLModuleType)moduleType { - return [parameters sdl_objectForName:SDLNameModuleType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - return [parameters sdl_objectForName:SDLNameButtonName]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } - (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { - [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode]; + [parameters sdl_setObject:buttonPressMode forName:SDLRPCParameterNameButtonPressMode]; } - (SDLButtonPressMode)buttonPressMode { - return [parameters sdl_objectForName:SDLNameButtonPressMode]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error]; } @end diff --git a/SmartDeviceLink/SDLButtonPressResponse.m b/SmartDeviceLink/SDLButtonPressResponse.m index 3e768a872..6b0beb802 100644 --- a/SmartDeviceLink/SDLButtonPressResponse.m +++ b/SmartDeviceLink/SDLButtonPressResponse.m @@ -3,14 +3,15 @@ // #import "SDLButtonPressResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonPressResponse - (instancetype)init { - if (self = [super initWithName:SDLNameButtonPress]) { + if (self = [super initWithName:SDLRPCFunctionNameButtonPress]) { } return self; } diff --git a/SmartDeviceLink/SDLChangeRegistration.m b/SmartDeviceLink/SDLChangeRegistration.m index 6d5c2bb4b..828653a39 100644 --- a/SmartDeviceLink/SDLChangeRegistration.m +++ b/SmartDeviceLink/SDLChangeRegistration.m @@ -5,7 +5,8 @@ #import "SDLChangeRegistration.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" NS_ASSUME_NONNULL_BEGIN @@ -13,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLChangeRegistration - (instancetype)init { - if (self = [super initWithName:SDLNameChangeRegistration]) { + if (self = [super initWithName:SDLRPCFunctionNameChangeRegistration]) { } return self; } @@ -44,51 +45,53 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setLanguage:(SDLLanguage)language { - [parameters sdl_setObject:language forName:SDLNameLanguage]; + [parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (SDLLanguage)language { - return [parameters sdl_objectForName:SDLNameLanguage]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameLanguage error:&error]; } - (void)setHmiDisplayLanguage:(SDLLanguage )hmiDisplayLanguage { - [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; + [parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; } - (SDLLanguage)hmiDisplayLanguage { - return [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:&error]; } - (void)setAppName:(nullable NSString *)appName { - [parameters sdl_setObject:appName forName:SDLNameAppName]; + [parameters sdl_setObject:appName forName:SDLRPCParameterNameAppName]; } - (nullable NSString *)appName { - return [[parameters sdl_objectForName:SDLNameAppName] copy]; + return [[parameters sdl_objectForName:SDLRPCParameterNameAppName ofClass:NSString.class error:nil] copy]; } - (void)setTtsName:(nullable NSArray<SDLTTSChunk *> *)ttsName { - [parameters sdl_setObject:ttsName forName:SDLNameTTSName]; + [parameters sdl_setObject:ttsName forName:SDLRPCParameterNameTTSName]; } - (nullable NSArray<SDLTTSChunk *> *)ttsName { - return [parameters sdl_objectsForName:SDLNameTTSName ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTTSName ofClass:SDLTTSChunk.class error:nil]; } - (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { - [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLNameNGNMediaScreenAppName]; + [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLRPCParameterNameNGNMediaScreenAppName]; } - (nullable NSString *)ngnMediaScreenAppName { - return [parameters sdl_objectForName:SDLNameNGNMediaScreenAppName]; + return [parameters sdl_objectForName:SDLRPCParameterNameNGNMediaScreenAppName ofClass:NSString.class error:nil]; } - (void)setVrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms { - [parameters sdl_setObject:vrSynonyms forName:SDLNameVRSynonyms]; + [parameters sdl_setObject:vrSynonyms forName:SDLRPCParameterNameVRSynonyms]; } - (nullable NSArray<NSString *> *)vrSynonyms { - return [parameters sdl_objectForName:SDLNameVRSynonyms]; + return [parameters sdl_objectsForName:SDLRPCParameterNameVRSynonyms ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLChangeRegistrationResponse.m b/SmartDeviceLink/SDLChangeRegistrationResponse.m index 1e5e6cbae..0765ffb00 100644 --- a/SmartDeviceLink/SDLChangeRegistrationResponse.m +++ b/SmartDeviceLink/SDLChangeRegistrationResponse.m @@ -5,14 +5,15 @@ #import "SDLChangeRegistrationResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLChangeRegistrationResponse - (instancetype)init { - if (self = [super initWithName:SDLNameChangeRegistration]) { + if (self = [super initWithName:SDLRPCFunctionNameChangeRegistration]) { } return self; } diff --git a/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m b/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m index 0c1be6f59..f42144e67 100644 --- a/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m +++ b/SmartDeviceLink/SDLCheckChoiceVROptionalOperation.m @@ -11,6 +11,7 @@ #import "SDLChoice.h" #import "SDLCreateInteractionChoiceSet.h" #import "SDLConnectionManagerType.h" +#import "SDLDeleteInteractionChoiceSet.h" #import "SDLLogMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -47,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN weakself.vrOptional = YES; weakself.internalError = nil; - [weakself finishOperation]; + [weakself sdl_deleteTestChoices]; return; } @@ -58,7 +59,7 @@ NS_ASSUME_NONNULL_BEGIN weakself.vrOptional = NO; weakself.internalError = nil; - [weakself finishOperation]; + [weakself sdl_deleteTestChoices]; return; } @@ -70,6 +71,15 @@ NS_ASSUME_NONNULL_BEGIN }]; } +- (void)sdl_deleteTestChoices { + SDLDeleteInteractionChoiceSet *deleteChoiceSet = [[SDLDeleteInteractionChoiceSet alloc] initWithId:0]; + + __weak typeof(self) weakself = self; + [self.connectionManager sendConnectionManagerRequest:deleteChoiceSet withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + [weakself finishOperation]; + }]; +} + + (SDLCreateInteractionChoiceSet *)sdl_testCellWithVR:(BOOL)hasVR { SDLChoice *choice = [[SDLChoice alloc] init]; choice.choiceID = @0; diff --git a/SmartDeviceLink/SDLChoice.m b/SmartDeviceLink/SDLChoice.m index 7545ec4f5..0734c2a66 100644 --- a/SmartDeviceLink/SDLChoice.m +++ b/SmartDeviceLink/SDLChoice.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -39,59 +39,61 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setChoiceID:(NSNumber<SDLInt> *)choiceID { - [store sdl_setObject:choiceID forName:SDLNameChoiceId]; + [store sdl_setObject:choiceID forName:SDLRPCParameterNameChoiceId]; } - (NSNumber<SDLInt> *)choiceID { - return [store sdl_objectForName:SDLNameChoiceId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameChoiceId ofClass:NSNumber.class error:&error]; } - (void)setMenuName:(NSString *)menuName { - [store sdl_setObject:menuName forName:SDLNameMenuName]; + [store sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; } - (NSString *)menuName { - return [store sdl_objectForName:SDLNameMenuName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:&error]; } - (void)setVrCommands:(nullable NSArray<NSString *> *)vrCommands { - [store sdl_setObject:vrCommands forName:SDLNameVRCommands]; + [store sdl_setObject:vrCommands forName:SDLRPCParameterNameVRCommands]; } - (nullable NSArray<NSString *> *)vrCommands { - return [store sdl_objectForName:SDLNameVRCommands]; + return [store sdl_objectsForName:SDLRPCParameterNameVRCommands ofClass:NSString.class error:nil]; } - (void)setImage:(nullable SDLImage *)image { - [store sdl_setObject:image forName:SDLNameImage]; + [store sdl_setObject:image forName:SDLRPCParameterNameImage]; } - (nullable SDLImage *)image { - return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; + return [store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; } - (void)setSecondaryText:(nullable NSString *)secondaryText { - [store sdl_setObject:secondaryText forName:SDLNameSecondaryText]; + [store sdl_setObject:secondaryText forName:SDLRPCParameterNameSecondaryText]; } - (nullable NSString *)secondaryText { - return [store sdl_objectForName:SDLNameSecondaryText]; + return [store sdl_objectForName:SDLRPCParameterNameSecondaryText ofClass:NSString.class error:nil]; } - (void)setTertiaryText:(nullable NSString *)tertiaryText { - [store sdl_setObject:tertiaryText forName:SDLNameTertiaryText]; + [store sdl_setObject:tertiaryText forName:SDLRPCParameterNameTertiaryText]; } - (nullable NSString *)tertiaryText { - return [store sdl_objectForName:SDLNameTertiaryText]; + return [store sdl_objectForName:SDLRPCParameterNameTertiaryText ofClass:NSString.class error:nil]; } - (void)setSecondaryImage:(nullable SDLImage *)secondaryImage { - [store sdl_setObject:secondaryImage forName:SDLNameSecondaryImage]; + [store sdl_setObject:secondaryImage forName:SDLRPCParameterNameSecondaryImage]; } - (nullable SDLImage *)secondaryImage { - return [store sdl_objectForName:SDLNameSecondaryImage ofClass:SDLImage.class]; + return [store sdl_objectForName:SDLRPCParameterNameSecondaryImage ofClass:SDLImage.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLChoiceSet.m b/SmartDeviceLink/SDLChoiceSet.m index ab32b1371..da58749b4 100644 --- a/SmartDeviceLink/SDLChoiceSet.m +++ b/SmartDeviceLink/SDLChoiceSet.m @@ -129,6 +129,10 @@ static SDLChoiceSetLayout _defaultLayout = SDLChoiceSetLayoutList; return [NSString stringWithFormat:@"SDLChoiceSet: \"%@\", layout: %@", _title, (_layout == SDLChoiceSetLayoutList ? @"List" : @"Tiles")]; } +- (NSString *)debugDescription { + return [NSString stringWithFormat:@"SDLChoiceSet: Title: \"%@\", layout: %@, timeout: %@, initial prompt: \"%@\", timeout prompt: \"%@\", help prompt: \"%@\", help list: %@, choices: %@", _title, (_layout == SDLChoiceSetLayoutList ? @"List" : @"Tiles"), @(_timeout), _initialPrompt, _timeoutPrompt, _helpPrompt, _helpList, _choices]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLChoiceSetManager.m b/SmartDeviceLink/SDLChoiceSetManager.m index 8d1ac4ffe..21dff1cc5 100644 --- a/SmartDeviceLink/SDLChoiceSetManager.m +++ b/SmartDeviceLink/SDLChoiceSetManager.m @@ -22,7 +22,6 @@ #import "SDLError.h" #import "SDLFileManager.h" #import "SDLHMILevel.h" -#import "SDLImage.h" #import "SDLKeyboardProperties.h" #import "SDLLogMacros.h" #import "SDLOnHMIStatus.h" @@ -280,7 +279,12 @@ UInt16 const ChoiceCellIdMin = 1; } self.pendingPresentationSet = choiceSet; - [self preloadChoices:self.pendingPresentationSet.choices withCompletionHandler:nil]; + [self preloadChoices:self.pendingPresentationSet.choices withCompletionHandler:^(NSError * _Nullable error) { + if (error != nil) { + [choiceSet.delegate choiceSet:choiceSet didReceiveError:error]; + return; + } + }]; [self sdl_findIdsOnChoiceSet:self.pendingPresentationSet]; diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.m b/SmartDeviceLink/SDLClimateControlCapabilities.m index 429331ac1..e34c8405f 100644 --- a/SmartDeviceLink/SDLClimateControlCapabilities.m +++ b/SmartDeviceLink/SDLClimateControlCapabilities.m @@ -3,7 +3,7 @@ // #import "SDLClimateControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -39,131 +39,132 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setFanSpeedAvailable:(nullable NSNumber<SDLBool> *)fanSpeedAvailable { - [store sdl_setObject:fanSpeedAvailable forName:SDLNameFanSpeedAvailable]; + [store sdl_setObject:fanSpeedAvailable forName:SDLRPCParameterNameFanSpeedAvailable]; } - (nullable NSNumber<SDLBool> *)fanSpeedAvailable { - return [store sdl_objectForName:SDLNameFanSpeedAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameFanSpeedAvailable ofClass:NSNumber.class error:nil]; } - (void)setDesiredTemperatureAvailable:(nullable NSNumber<SDLBool> *)desiredTemperatureAvailable { - [store sdl_setObject:desiredTemperatureAvailable forName:SDLNameDesiredTemperatureAvailable]; + [store sdl_setObject:desiredTemperatureAvailable forName:SDLRPCParameterNameDesiredTemperatureAvailable]; } - (nullable NSNumber<SDLBool> *)desiredTemperatureAvailable { - return [store sdl_objectForName:SDLNameDesiredTemperatureAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameDesiredTemperatureAvailable ofClass:NSNumber.class error:nil]; } - (void)setAcEnableAvailable:(nullable NSNumber<SDLBool> *)acEnableAvailable { - [store sdl_setObject:acEnableAvailable forName:SDLNameACEnableAvailable]; + [store sdl_setObject:acEnableAvailable forName:SDLRPCParameterNameACEnableAvailable]; } - (nullable NSNumber<SDLBool> *)acEnableAvailable { - return [store sdl_objectForName:SDLNameACEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameACEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setAcMaxEnableAvailable:(nullable NSNumber<SDLBool> *)acMaxEnableAvailable { - [store sdl_setObject:acMaxEnableAvailable forName:SDLNameACMaxEnableAvailable]; + [store sdl_setObject:acMaxEnableAvailable forName:SDLRPCParameterNameACMaxEnableAvailable]; } - (nullable NSNumber<SDLBool> *)acMaxEnableAvailable { - return [store sdl_objectForName:SDLNameACMaxEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameACMaxEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setCirculateAirEnableAvailable:(nullable NSNumber<SDLBool> *)circulateAirEnableAvailable { - [store sdl_setObject:circulateAirEnableAvailable forName:SDLNameCirculateAirEnableAvailable]; + [store sdl_setObject:circulateAirEnableAvailable forName:SDLRPCParameterNameCirculateAirEnableAvailable]; } - (nullable NSNumber<SDLBool> *)circulateAirEnableAvailable { - return [store sdl_objectForName:SDLNameCirculateAirEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameCirculateAirEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setAutoModeEnableAvailable:(nullable NSNumber<SDLBool> *)autoModeEnableAvailable { - [store sdl_setObject:autoModeEnableAvailable forName:SDLNameAutoModeEnableAvailable]; + [store sdl_setObject:autoModeEnableAvailable forName:SDLRPCParameterNameAutoModeEnableAvailable]; } - (nullable NSNumber<SDLBool> *)autoModeEnableAvailable { - return [store sdl_objectForName:SDLNameAutoModeEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameAutoModeEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setDualModeEnableAvailable:(nullable NSNumber<SDLBool> *)dualModeEnableAvailable { - [store sdl_setObject:dualModeEnableAvailable forName:SDLNameDualModeEnableAvailable]; + [store sdl_setObject:dualModeEnableAvailable forName:SDLRPCParameterNameDualModeEnableAvailable]; } - (nullable NSNumber<SDLBool> *)dualModeEnableAvailable { - return [store sdl_objectForName:SDLNameDualModeEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameDualModeEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setDefrostZoneAvailable:(nullable NSNumber<SDLBool> *)defrostZoneAvailable { - [store sdl_setObject:defrostZoneAvailable forName:SDLNameDefrostZoneAvailable]; + [store sdl_setObject:defrostZoneAvailable forName:SDLRPCParameterNameDefrostZoneAvailable]; } - (nullable NSNumber<SDLBool> *)defrostZoneAvailable { - return [store sdl_objectForName:SDLNameDefrostZoneAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameDefrostZoneAvailable ofClass:NSNumber.class error:nil]; } - (void)setDefrostZone:(nullable NSArray <SDLDefrostZone>*)defrostZone { - [store sdl_setObject:defrostZone forName:SDLNameDefrostZone]; + [store sdl_setObject:defrostZone forName:SDLRPCParameterNameDefrostZone]; } - (nullable NSArray<SDLDefrostZone> *)defrostZone { - return [store sdl_objectForName:SDLNameDefrostZone]; + return [store sdl_enumsForName:SDLRPCParameterNameDefrostZone error:nil]; } - (void)setVentilationModeAvailable:(nullable NSNumber<SDLBool> *)ventilationModeAvailable { - [store sdl_setObject:ventilationModeAvailable forName:SDLNameVentilationModeAvailable]; + [store sdl_setObject:ventilationModeAvailable forName:SDLRPCParameterNameVentilationModeAvailable]; } - (nullable NSNumber<SDLBool> *)ventilationModeAvailable { - return [store sdl_objectForName:SDLNameVentilationModeAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameVentilationModeAvailable ofClass:NSNumber.class error:nil]; } - (void)setVentilationMode:(nullable NSArray<SDLVentilationMode> *)ventilationMode { - [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode]; + [store sdl_setObject:ventilationMode forName:SDLRPCParameterNameVentilationMode]; } - (nullable NSArray<SDLVentilationMode> *)ventilationMode { - return [store sdl_objectForName:SDLNameVentilationMode]; + return [store sdl_enumsForName:SDLRPCParameterNameVentilationMode error:nil]; } - (void)setHeatedSteeringWheelAvailable:(nullable NSNumber<SDLBool> *)heatedSteeringWheelAvailable { - [store sdl_setObject:heatedSteeringWheelAvailable forName:SDLNameHeatedSteeringWheelAvailable]; + [store sdl_setObject:heatedSteeringWheelAvailable forName:SDLRPCParameterNameHeatedSteeringWheelAvailable]; } - (nullable NSNumber<SDLBool> *)heatedSteeringWheelAvailable { - return [store sdl_objectForName:SDLNameHeatedSteeringWheelAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedSteeringWheelAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatedWindshieldAvailable:(nullable NSNumber<SDLBool> *)heatedWindshieldAvailable { - [store sdl_setObject:heatedWindshieldAvailable forName:SDLNameHeatedWindshieldAvailable]; + [store sdl_setObject:heatedWindshieldAvailable forName:SDLRPCParameterNameHeatedWindshieldAvailable]; } - (nullable NSNumber<SDLBool> *)heatedWindshieldAvailable { - return [store sdl_objectForName:SDLNameHeatedWindshieldAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedWindshieldAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatedRearWindowAvailable:(nullable NSNumber<SDLBool> *)heatedRearWindowAvailable { - [store sdl_setObject:heatedRearWindowAvailable forName:SDLNameHeatedRearWindowAvailable]; + [store sdl_setObject:heatedRearWindowAvailable forName:SDLRPCParameterNameHeatedRearWindowAvailable]; } - (nullable NSNumber<SDLBool> *)heatedRearWindowAvailable { - return [store sdl_objectForName:SDLNameHeatedRearWindowAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedRearWindowAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatedMirrorsAvailable:(nullable NSNumber<SDLBool> *)heatedMirrorsAvailable { - [store sdl_setObject:heatedMirrorsAvailable forName:SDLNameHeatedMirrorsAvailable]; + [store sdl_setObject:heatedMirrorsAvailable forName:SDLRPCParameterNameHeatedMirrorsAvailable]; } - (nullable NSNumber<SDLBool> *)heatedMirrorsAvailable { - return [store sdl_objectForName:SDLNameHeatedMirrorsAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLClimateControlData.m b/SmartDeviceLink/SDLClimateControlData.m index 0a57e40c9..f5e312e58 100644 --- a/SmartDeviceLink/SDLClimateControlData.m +++ b/SmartDeviceLink/SDLClimateControlData.m @@ -3,7 +3,7 @@ // #import "SDLClimateControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTemperature.h" #import "NSMutableDictionary+Store.h" @@ -39,115 +39,115 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setFanSpeed:(nullable NSNumber<SDLInt> *)fanSpeed { - [store sdl_setObject:fanSpeed forName:SDLNameFanSpeed]; + [store sdl_setObject:fanSpeed forName:SDLRPCParameterNameFanSpeed]; } - (nullable NSNumber<SDLInt> *)fanSpeed { - return [store sdl_objectForName:SDLNameFanSpeed]; + return [store sdl_objectForName:SDLRPCParameterNameFanSpeed ofClass:NSNumber.class error:nil]; } - (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { - [store sdl_setObject:currentTemperature forName:SDLNameCurrentTemperature]; + [store sdl_setObject:currentTemperature forName:SDLRPCParameterNameCurrentTemperature]; } - (nullable SDLTemperature *)currentTemperature { - return [store sdl_objectForName:SDLNameCurrentTemperature ofClass:SDLTemperature.class]; + return [store sdl_objectForName:SDLRPCParameterNameCurrentTemperature ofClass:SDLTemperature.class error:nil]; } - (void)setDesiredTemperature:(nullable SDLTemperature *)desiredTemperature { - [store sdl_setObject:desiredTemperature forName:SDLNameDesiredTemperature]; + [store sdl_setObject:desiredTemperature forName:SDLRPCParameterNameDesiredTemperature]; } - (nullable SDLTemperature *)desiredTemperature { - return [store sdl_objectForName:SDLNameDesiredTemperature ofClass:SDLTemperature.class]; + return [store sdl_objectForName:SDLRPCParameterNameDesiredTemperature ofClass:SDLTemperature.class error:nil]; } - (void)setAcEnable:(nullable NSNumber<SDLBool> *)acEnable { - [store sdl_setObject:acEnable forName:SDLNameACEnable]; + [store sdl_setObject:acEnable forName:SDLRPCParameterNameACEnable]; } - (nullable NSNumber<SDLBool> *)acEnable { - return [store sdl_objectForName:SDLNameACEnable]; + return [store sdl_objectForName:SDLRPCParameterNameACEnable ofClass:NSNumber.class error:nil]; } - (void)setCirculateAirEnable:(nullable NSNumber<SDLBool> *)circulateAirEnable { - [store sdl_setObject:circulateAirEnable forName:SDLNameCirculateAirEnable]; + [store sdl_setObject:circulateAirEnable forName:SDLRPCParameterNameCirculateAirEnable]; } - (nullable NSNumber<SDLBool> *)circulateAirEnable { - return [store sdl_objectForName:SDLNameCirculateAirEnable]; + return [store sdl_objectForName:SDLRPCParameterNameCirculateAirEnable ofClass:NSNumber.class error:nil]; } - (void)setAutoModeEnable:(nullable NSNumber<SDLBool> *)autoModeEnable { - [store sdl_setObject:autoModeEnable forName:SDLNameAutoModeEnable]; + [store sdl_setObject:autoModeEnable forName:SDLRPCParameterNameAutoModeEnable]; } - (nullable NSNumber<SDLBool> *)autoModeEnable { - return [store sdl_objectForName:SDLNameAutoModeEnable]; + return [store sdl_objectForName:SDLRPCParameterNameAutoModeEnable ofClass:NSNumber.class error:nil]; } - (void)setDefrostZone:(nullable SDLDefrostZone)defrostZone { - [store sdl_setObject:defrostZone forName:SDLNameDefrostZone]; + [store sdl_setObject:defrostZone forName:SDLRPCParameterNameDefrostZone]; } - (nullable SDLDefrostZone)defrostZone { - return [store sdl_objectForName:SDLNameDefrostZone]; + return [store sdl_enumForName:SDLRPCParameterNameDefrostZone error:nil]; } - (void)setDualModeEnable:(nullable NSNumber<SDLBool> *)dualModeEnable { - [store sdl_setObject:dualModeEnable forName:SDLNameDualModeEnable]; + [store sdl_setObject:dualModeEnable forName:SDLRPCParameterNameDualModeEnable]; } - (nullable NSNumber<SDLBool> *)dualModeEnable { - return [store sdl_objectForName:SDLNameDualModeEnable]; + return [store sdl_objectForName:SDLRPCParameterNameDualModeEnable ofClass:NSNumber.class error:nil]; } - (void)setAcMaxEnable:(nullable NSNumber<SDLBool> *)acMaxEnable { - [store sdl_setObject:acMaxEnable forName:SDLNameACMaxEnable]; + [store sdl_setObject:acMaxEnable forName:SDLRPCParameterNameACMaxEnable]; } - (nullable NSNumber<SDLBool> *)acMaxEnable { - return [store sdl_objectForName:SDLNameACMaxEnable]; + return [store sdl_objectForName:SDLRPCParameterNameACMaxEnable ofClass:NSNumber.class error:nil]; } - (void)setVentilationMode:(nullable SDLVentilationMode)ventilationMode { - [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode]; + [store sdl_setObject:ventilationMode forName:SDLRPCParameterNameVentilationMode]; } - (nullable SDLVentilationMode)ventilationMode { - return [store sdl_objectForName:SDLNameVentilationMode]; + return [store sdl_enumForName:SDLRPCParameterNameVentilationMode error:nil]; } - (void)setHeatedSteeringWheelEnable:(nullable NSNumber<SDLBool> *)heatedSteeringWheelEnable { - [store sdl_setObject:heatedSteeringWheelEnable forName:SDLNameHeatedSteeringWheelEnable]; + [store sdl_setObject:heatedSteeringWheelEnable forName:SDLRPCParameterNameHeatedSteeringWheelEnable]; } - (nullable NSNumber<SDLBool> *)heatedSteeringWheelEnable { - return [store sdl_objectForName:SDLNameHeatedSteeringWheelEnable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedSteeringWheelEnable ofClass:NSNumber.class error:nil]; } - (void)setHeatedWindshieldEnable:(nullable NSNumber<SDLBool> *)heatedWindshieldEnable { - [store sdl_setObject:heatedWindshieldEnable forName:SDLNameHeatedWindshieldEnable]; + [store sdl_setObject:heatedWindshieldEnable forName:SDLRPCParameterNameHeatedWindshieldEnable]; } - (nullable NSNumber<SDLBool> *)heatedWindshieldEnable { - return [store sdl_objectForName:SDLNameHeatedWindshieldEnable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedWindshieldEnable ofClass:NSNumber.class error:nil]; } - (void)setHeatedRearWindowEnable:(nullable NSNumber<SDLBool> *)heatedRearWindowEnable { - [store sdl_setObject:heatedRearWindowEnable forName:SDLNameHeatedRearWindowEnable]; + [store sdl_setObject:heatedRearWindowEnable forName:SDLRPCParameterNameHeatedRearWindowEnable]; } - (nullable NSNumber<SDLBool> *)heatedRearWindowEnable { - return [store sdl_objectForName:SDLNameHeatedRearWindowEnable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedRearWindowEnable ofClass:NSNumber.class error:nil]; } - (void)setHeatedMirrorsEnable:(nullable NSNumber<SDLBool> *)heatedMirrorsEnable { - [store sdl_setObject:heatedMirrorsEnable forName:SDLNameHeatedMirrorsEnable]; + [store sdl_setObject:heatedMirrorsEnable forName:SDLRPCParameterNameHeatedMirrorsEnable]; } - (nullable NSNumber<SDLBool> *)heatedMirrorsEnable { - return [store sdl_objectForName:SDLNameHeatedMirrorsEnable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatedMirrorsEnable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLCloudAppProperties.h b/SmartDeviceLink/SDLCloudAppProperties.h new file mode 100644 index 000000000..2bd33d94d --- /dev/null +++ b/SmartDeviceLink/SDLCloudAppProperties.h @@ -0,0 +1,94 @@ +// +// SDLCloudAppProperties.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCStruct.h" + +#import "SDLHybridAppPreference.h" + + +NS_ASSUME_NONNULL_BEGIN + +/* + * The cloud application properties. + */ +@interface SDLCloudAppProperties : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param appID The id of the cloud app + * @return A SDLCloudAppProperties object + */ +- (instancetype)initWithAppID:(NSString *)appID NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param appID The id of the cloud app + * @param nicknames An array of app names a cloud app is allowed to register with + * @param enabled If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list + * @param authToken Used to authenticate websocket connection on app activation + * @param cloudTransportType Specifies the connection type Core should use + * @param hybridAppPreference Specifies the user preference to use the cloud app version or mobile app version when both are available + * @param endpoint The websocket endpoint + * @return A SDLCloudAppProperties object + */ +- (instancetype)initWithAppID:(NSString *)appID nicknames:(nullable NSArray<NSString *> *)nicknames enabled:(BOOL)enabled authToken:(nullable NSString *)authToken cloudTransportType:(nullable NSString *)cloudTransportType hybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference endpoint:(nullable NSString *)endpoint; + +/** + * An array of app names a cloud app is allowed to register with. If included in a `SetCloudAppProperties` request, this value will overwrite the existing "nicknames" field in the app policies section of the policy table. + * + * Array of Strings, Optional, String length: minlength="0" maxlength="100", Array size: minsize="0" maxsize="100" + */ +@property (nullable, strong, nonatomic) NSArray<NSString *> *nicknames; + +/** + * The id of the cloud app. + * + * String, Required, maxlength="100" + */ +@property (strong, nonatomic) NSString *appID; + +/** + * If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *enabled; + +/** + * Used to authenticate websocket connection on app activation. + * + * String, Optional, maxlength="65535" + */ +@property (nullable, strong, nonatomic) NSString *authToken; + +/** + * Specifies the connection type Core should use. Currently the ones that work in SDL Core are `WS` or `WSS`, but an OEM can implement their own transport adapter to handle different values. + * + * String, Optional, maxlength="100" + */ +@property (nullable, strong, nonatomic) NSString *cloudTransportType; + +/** + * Specifies the user preference to use the cloud app version or mobile app version when both are available. + * + * SDLHybridAppPreference, Optional + */ +@property (nullable, strong, nonatomic) SDLHybridAppPreference hybridAppPreference; + +/** + * The websocket endpoint. + * + * String, Optional, maxlength="65535" + */ +@property (nullable, strong, nonatomic) NSString *endpoint; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCloudAppProperties.m b/SmartDeviceLink/SDLCloudAppProperties.m new file mode 100644 index 000000000..389ab0144 --- /dev/null +++ b/SmartDeviceLink/SDLCloudAppProperties.m @@ -0,0 +1,105 @@ +// +// SDLCloudAppProperties.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLCloudAppProperties.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLCloudAppProperties + +- (instancetype)initWithAppID:(NSString *)appID { + self = [super init]; + if (!self) { + return nil; + } + + self.appID = appID; + + return self; +} + +- (instancetype)initWithAppID:(NSString *)appID nicknames:(nullable NSArray<NSString *> *)nicknames enabled:(BOOL)enabled authToken:(nullable NSString *)authToken cloudTransportType:(nullable NSString *)cloudTransportType hybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference endpoint:(nullable NSString *)endpoint { + self = [self initWithAppID:appID]; + if (!self) { + return nil; + } + + self.nicknames = nicknames; + self.enabled = @(enabled); + self.authToken = authToken; + self.cloudTransportType = cloudTransportType; + self.hybridAppPreference = hybridAppPreference; + self.endpoint = endpoint; + + return self; +} + +- (void)setNicknames:(nullable NSArray<NSString *> *)nicknames { + [store sdl_setObject:nicknames forName:SDLRPCParameterNameNicknames]; +} + +- (nullable NSArray<NSString *> *)nicknames { + return [store sdl_objectsForName:SDLRPCParameterNameNicknames ofClass:NSString.class error:nil]; +} + +- (void)setAppID:(NSString *)appID { + [store sdl_setObject:appID forName:SDLRPCParameterNameAppId]; +} + +- (NSString *)appID { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; +} + +- (void)setEnabled:(nullable NSNumber<SDLBool> *)enabled { + [store sdl_setObject:enabled forName:SDLRPCParameterNameEnabled]; +} + +- (nullable NSNumber<SDLBool> *)enabled { + return [store sdl_objectForName:SDLRPCParameterNameEnabled ofClass:NSNumber.class error:nil]; +} + +- (void)setAuthToken:(nullable NSString *)authToken { + [store sdl_setObject:authToken forName:SDLRPCParameterNameAuthToken]; +} + +- (nullable NSString *)authToken { + return [store sdl_objectForName:SDLRPCParameterNameAuthToken ofClass:NSString.class error:nil]; +} + +- (void)setCloudTransportType:(nullable NSString *)cloudTransportType { + [store sdl_setObject:cloudTransportType forName:SDLRPCParameterNameCloudTransportType]; +} + +- (nullable NSString *)cloudTransportType { + return [store sdl_objectForName:SDLRPCParameterNameCloudTransportType ofClass:NSString.class error:nil]; +} + +- (void)setHybridAppPreference:(nullable SDLHybridAppPreference)hybridAppPreference { + [store sdl_setObject:hybridAppPreference forName:SDLRPCParameterNameHybridAppPreference]; +} + +- (nullable SDLHybridAppPreference)hybridAppPreference { + return [store sdl_enumForName:SDLRPCParameterNameHybridAppPreference error:nil]; +} + +- (void)setEndpoint:(nullable NSString *)endpoint { + [store sdl_setObject:endpoint forName:SDLRPCParameterNameEndpoint]; +} + +- (nullable NSString *)endpoint { + return [store sdl_objectForName:SDLRPCParameterNameEndpoint ofClass:NSString.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClusterModeStatus.m b/SmartDeviceLink/SDLClusterModeStatus.m index e182fa17f..05b635357 100644 --- a/SmartDeviceLink/SDLClusterModeStatus.m +++ b/SmartDeviceLink/SDLClusterModeStatus.m @@ -4,42 +4,46 @@ #import "SDLClusterModeStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLClusterModeStatus - (void)setPowerModeActive:(NSNumber<SDLBool> *)powerModeActive { - [store sdl_setObject:powerModeActive forName:SDLNamePowerModeActive]; + [store sdl_setObject:powerModeActive forName:SDLRPCParameterNamePowerModeActive]; } - (NSNumber<SDLBool> *)powerModeActive { - return [store sdl_objectForName:SDLNamePowerModeActive]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNamePowerModeActive ofClass:NSNumber.class error:&error]; } - (void)setPowerModeQualificationStatus:(SDLPowerModeQualificationStatus)powerModeQualificationStatus { - [store sdl_setObject:powerModeQualificationStatus forName:SDLNamePowerModeQualificationStatus]; + [store sdl_setObject:powerModeQualificationStatus forName:SDLRPCParameterNamePowerModeQualificationStatus]; } - (SDLPowerModeQualificationStatus)powerModeQualificationStatus { - return [store sdl_objectForName:SDLNamePowerModeQualificationStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePowerModeQualificationStatus error:&error]; } - (void)setCarModeStatus:(SDLCarModeStatus)carModeStatus { - [store sdl_setObject:carModeStatus forName:SDLNameCarModeStatus]; + [store sdl_setObject:carModeStatus forName:SDLRPCParameterNameCarModeStatus]; } - (SDLCarModeStatus)carModeStatus { - return [store sdl_objectForName:SDLNameCarModeStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameCarModeStatus error:&error]; } - (void)setPowerModeStatus:(SDLPowerModeStatus)powerModeStatus { - [store sdl_setObject:powerModeStatus forName:SDLNamePowerModeStatus]; + [store sdl_setObject:powerModeStatus forName:SDLRPCParameterNamePowerModeStatus]; } - (SDLPowerModeStatus)powerModeStatus { - return [store sdl_objectForName:SDLNamePowerModeStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePowerModeStatus error:&error]; } @end diff --git a/SmartDeviceLink/SDLConnectionManagerType.h b/SmartDeviceLink/SDLConnectionManagerType.h index f7052f67d..d0e7f7f84 100644 --- a/SmartDeviceLink/SDLConnectionManagerType.h +++ b/SmartDeviceLink/SDLConnectionManagerType.h @@ -10,6 +10,7 @@ #import <Foundation/Foundation.h> @class SDLRPCRequest; +@class SDLRPCMessage; @class SDLRegisterAppInterfaceResponse; @@ -26,15 +27,38 @@ NS_ASSUME_NONNULL_BEGIN - (void)sendConnectionManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; /** - Send an RPC without bypassing the block on RPC sends before managers complete setup. - - @param request The RPC request to be sent to the remote head unit. - @param handler A completion block called when the response is received. + * Sends an RPC of type `SDLRPCRequest` without bypassing the block on RPC sends before managers complete setup. + * + * @param request An RPC of type `SDLRPCRequest` be sent to Core. + * @param handler Called when the response is received by Core */ - (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler; +/** + * Sends an RPC of type `SDLRPCResponse` or `SDLRPCNotification` without bypassing the block on RPC sends before managers complete setup. Unlike requests, responses and notifications sent to Core do not get a response from Core, so no handler is needed. + * + * Do not use to send an RPC of type `SDLRPCRequest`. Instead use `sendConnectionRequest:withResponseHandler:` to send a request. + * + * @param rpc An RPC of type `SDLRPCResponse` or `SDLRPCNotification` to be sent to Core. + */ +- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc; + +/** + * Sends an array of RPCs of type `Request` asynchronously. The requests are sent without bypassing the block on RPC sends before managers complete setup. + * + * @param requests An array of RPCs of type `Request` + * @param progressHandler The progress handler is called as each request gets a response from Core. + * @param completionHandler The completion handler is called when all requests have a response from Core. + */ - (void)sendRequests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; +/** + * Sends an array of RPCs of type `Request` sequentially. The requests are sent without bypassing the block on RPC sends before managers complete setup. + * + * @param requests An array of RPCs of type `Request` + * @param progressHandler The progress handler is called as each request gets a response from Core. + * @param completionHandler The completion handler is called when all requests have a response from Core. + */ - (void)sendSequentialRequests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; @end diff --git a/SmartDeviceLink/SDLControlFramePayloadConstants.h b/SmartDeviceLink/SDLControlFramePayloadConstants.h index 37eb51dfc..e0bd1d5e8 100644 --- a/SmartDeviceLink/SDLControlFramePayloadConstants.h +++ b/SmartDeviceLink/SDLControlFramePayloadConstants.h @@ -25,3 +25,4 @@ extern char *const SDLControlFrameAudioServiceTransportsKey; extern char *const SDLControlFrameVideoServiceTransportsKey; extern char *const SDLControlFrameTCPIPAddressKey; extern char *const SDLControlFrameTCPPortKey; +extern char *const SDLControlFrameAuthTokenKey; diff --git a/SmartDeviceLink/SDLControlFramePayloadConstants.m b/SmartDeviceLink/SDLControlFramePayloadConstants.m index 41048765d..c365c78a8 100644 --- a/SmartDeviceLink/SDLControlFramePayloadConstants.m +++ b/SmartDeviceLink/SDLControlFramePayloadConstants.m @@ -14,14 +14,15 @@ int64_t const SDLControlFrameInt64NotFound = -1; char *const SDLControlFrameProtocolVersionKey = "protocolVersion"; char *const SDLControlFrameHashIdKey = "hashId"; char *const SDLControlFrameMTUKey = "mtu"; -char *const SDLControlFrameReasonKey = "reason"; +char *const SDLControlFrameSecondaryTransportsKey = "secondaryTransports"; +char *const SDLControlFrameAudioServiceTransportsKey = "audioServiceTransports"; +char *const SDLControlFrameVideoServiceTransportsKey = "videoServiceTransports"; +char *const SDLControlFrameAuthTokenKey = "authToken"; char *const SDLControlFrameRejectedParams = "rejectedParams"; +char *const SDLControlFrameReasonKey = "reason"; char *const SDLControlFrameVideoProtocolKey = "videoProtocol"; char *const SDLControlFrameVideoCodecKey = "videoCodec"; char *const SDLControlFrameHeightKey = "height"; char *const SDLControlFrameWidthKey = "width"; -char *const SDLControlFrameSecondaryTransportsKey = "secondaryTransports"; -char *const SDLControlFrameAudioServiceTransportsKey = "audioServiceTransports"; -char *const SDLControlFrameVideoServiceTransportsKey = "videoServiceTransports"; char *const SDLControlFrameTCPIPAddressKey = "tcpIpAddress"; char *const SDLControlFrameTCPPortKey = "tcpPort"; diff --git a/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h b/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h index ba339bdc2..295204aac 100644 --- a/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h +++ b/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.h @@ -20,6 +20,9 @@ NS_ASSUME_NONNULL_BEGIN /// Max transport unit to be used for this service @property (assign, nonatomic, readonly) int64_t mtu; +/// A token used to authenticate a websocket connection on app activation. +@property (copy, nonatomic, readonly, nullable) NSString *authToken; + /// The negotiated version of the protocol. Must be in the format "Major.Minor.Patch" @property (copy, nonatomic, readonly, nullable) NSString *protocolVersion; @@ -32,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN /** List of transports that are allowed to carry video service. The values can be either 1 (primary transport) or 2 (secondary transport) and are listed in preferred order. */ @property (copy, nonatomic, readonly, nullable) NSArray<NSNumber *> *videoServiceTransports; -- (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray<NSString *> *)secondaryTransports audioServiceTransports:(nullable NSArray<NSNumber *> *)audioServiceTransports videoServiceTransports:(nullable NSArray<NSNumber *> *)videoServiceTransports; +- (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu authToken:(nullable NSString *)authToken protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray<NSString *> *)secondaryTransports audioServiceTransports:(nullable NSArray<NSNumber *> *)audioServiceTransports videoServiceTransports:(nullable NSArray<NSNumber *> *)videoServiceTransports; @end diff --git a/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m b/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m index 536ecfc86..b9e54d9a3 100644 --- a/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m +++ b/SmartDeviceLink/SDLControlFramePayloadRPCStartServiceAck.m @@ -18,6 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readwrite) int32_t hashId; @property (assign, nonatomic, readwrite) int64_t mtu; +@property (copy, nonatomic, readwrite, nullable) NSString *authToken; @property (copy, nonatomic, readwrite, nullable) NSString *protocolVersion; @property (copy, nonatomic, readwrite, nullable) NSArray<NSString *> *secondaryTransports; @property (copy, nonatomic, readwrite, nullable) NSArray<NSNumber *> *audioServiceTransports; @@ -30,6 +31,7 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithHashId:(int32_t)hashId mtu:(int64_t)mtu + authToken:(nullable NSString *)authToken protocolVersion:(nullable NSString *)protocolVersion secondaryTransports:(nullable NSArray<NSString *> *)secondaryTransports audioServiceTransports:(nullable NSArray<NSNumber *> *)audioServiceTransports @@ -39,6 +41,7 @@ NS_ASSUME_NONNULL_BEGIN _hashId = hashId; _mtu = mtu; + _authToken = authToken; _protocolVersion = protocolVersion; _secondaryTransports = secondaryTransports; _audioServiceTransports = audioServiceTransports; @@ -79,6 +82,10 @@ NS_ASSUME_NONNULL_BEGIN bson_object_put_int64(&payloadObject, SDLControlFrameMTUKey, self.mtu); } + if (self.authToken != nil) { + bson_object_put_string(&payloadObject, SDLControlFrameAuthTokenKey, (char *)self.authToken.UTF8String); + } + if (self.protocolVersion != nil) { bson_object_put_string(&payloadObject, SDLControlFrameProtocolVersionKey, (char *)self.protocolVersion.UTF8String); } @@ -96,7 +103,6 @@ NS_ASSUME_NONNULL_BEGIN } [self sdl_addServiceTransports:&payloadObject fromArray:self.audioServiceTransports forKey:SDLControlFrameAudioServiceTransportsKey]; - [self sdl_addServiceTransports:&payloadObject fromArray:self.videoServiceTransports forKey:SDLControlFrameVideoServiceTransportsKey]; BytePtr bsonData = bson_object_to_bytes(&payloadObject); @@ -113,9 +119,14 @@ NS_ASSUME_NONNULL_BEGIN self.hashId = bson_object_get_int32(&payloadObject, SDLControlFrameHashIdKey); self.mtu = bson_object_get_int64(&payloadObject, SDLControlFrameMTUKey); - char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); - if (utf8String != NULL) { - self.protocolVersion = [NSString stringWithUTF8String:utf8String]; + char *protocolVersionUTF8String = bson_object_get_string(&payloadObject, SDLControlFrameProtocolVersionKey); + if (protocolVersionUTF8String != NULL) { + self.protocolVersion = [NSString stringWithUTF8String:protocolVersionUTF8String]; + } + + char *authTokenUTF8String = bson_object_get_string(&payloadObject, SDLControlFrameAuthTokenKey); + if (authTokenUTF8String != NULL) { + self.authToken = [NSString stringWithUTF8String:authTokenUTF8String]; } BsonArray *arrayObject = bson_object_get_array(&payloadObject, SDLControlFrameSecondaryTransportsKey); @@ -123,15 +134,14 @@ NS_ASSUME_NONNULL_BEGIN NSMutableArray<NSString *> *secondaryTransports = [NSMutableArray array]; size_t index = 0; - while ((utf8String = bson_array_get_string(arrayObject, index)) != NULL) { - [secondaryTransports addObject:[NSString stringWithUTF8String:utf8String]]; + while ((protocolVersionUTF8String = bson_array_get_string(arrayObject, index)) != NULL) { + [secondaryTransports addObject:[NSString stringWithUTF8String:protocolVersionUTF8String]]; index++; } self.secondaryTransports = [secondaryTransports copy]; } self.audioServiceTransports = [self sdl_getServiceTransports:&payloadObject forKey:SDLControlFrameAudioServiceTransportsKey]; - self.videoServiceTransports = [self sdl_getServiceTransports:&payloadObject forKey:SDLControlFrameVideoServiceTransportsKey]; bson_object_deinitialize(&payloadObject); @@ -179,7 +189,7 @@ NS_ASSUME_NONNULL_BEGIN } - (NSString *)description { - return [NSString stringWithFormat:@"<%@>: Protocol Version: %@, hash id: %d, MTU: %lld, secondary transports: %@, transports for audio service: %@, transports for video service: %@", NSStringFromClass(self.class), self.protocolVersion, self.hashId, self.mtu, self.secondaryTransports, self.audioServiceTransports, self.videoServiceTransports]; + return [NSString stringWithFormat:@"<%@>: Protocol Version: %@, hash id: %d, MTU: %lld, auth token: %@, secondary transports: %@, transports for audio service: %@, transports for video service: %@", NSStringFromClass(self.class), self.protocolVersion, self.hashId, self.mtu, self.authToken, self.secondaryTransports, self.audioServiceTransports, self.videoServiceTransports]; } @end diff --git a/SmartDeviceLink/SDLCreateInteractionChoiceSet.m b/SmartDeviceLink/SDLCreateInteractionChoiceSet.m index 570054eec..d35a0470b 100644 --- a/SmartDeviceLink/SDLCreateInteractionChoiceSet.m +++ b/SmartDeviceLink/SDLCreateInteractionChoiceSet.m @@ -6,14 +6,15 @@ #import "NSMutableDictionary+Store.h" #import "SDLChoice.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLCreateInteractionChoiceSet - (instancetype)init { - if (self = [super initWithName:SDLNameCreateInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameCreateInteractionChoiceSet]) { } return self; } @@ -30,19 +31,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setInteractionChoiceSetID:(NSNumber<SDLInt> *)interactionChoiceSetID { - [parameters sdl_setObject:interactionChoiceSetID forName:SDLNameInteractionChoiceSetId]; + [parameters sdl_setObject:interactionChoiceSetID forName:SDLRPCParameterNameInteractionChoiceSetId]; } - (NSNumber<SDLInt> *)interactionChoiceSetID { - return [parameters sdl_objectForName:SDLNameInteractionChoiceSetId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameInteractionChoiceSetId ofClass:NSNumber.class error:&error]; } - (void)setChoiceSet:(NSArray<SDLChoice *> *)choiceSet { - [parameters sdl_setObject:choiceSet forName:SDLNameChoiceSet]; + [parameters sdl_setObject:choiceSet forName:SDLRPCParameterNameChoiceSet]; } - (NSArray<SDLChoice *> *)choiceSet { - return [parameters sdl_objectsForName:SDLNameChoiceSet ofClass:SDLChoice.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameChoiceSet ofClass:SDLChoice.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m b/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m index b9de5f3b1..bc5fee627 100644 --- a/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m +++ b/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m @@ -5,14 +5,15 @@ #import "SDLCreateInteractionChoiceSetResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLCreateInteractionChoiceSetResponse - (instancetype)init { - if (self = [super initWithName:SDLNameCreateInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameCreateInteractionChoiceSet]) { } return self; } diff --git a/SmartDeviceLink/SDLDIDResult.m b/SmartDeviceLink/SDLDIDResult.m index 0d0e5d39f..885a64839 100644 --- a/SmartDeviceLink/SDLDIDResult.m +++ b/SmartDeviceLink/SDLDIDResult.m @@ -4,34 +4,36 @@ #import "SDLDIDResult.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDIDResult - (void)setResultCode:(SDLVehicleDataResultCode)resultCode { - [store sdl_setObject:resultCode forName:SDLNameResultCode]; + [store sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; } - (SDLVehicleDataResultCode)resultCode { - return [store sdl_objectForName:SDLNameResultCode]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; } - (void)setDidLocation:(NSNumber<SDLInt> *)didLocation { - [store sdl_setObject:didLocation forName:SDLNameDIDLocation]; + [store sdl_setObject:didLocation forName:SDLRPCParameterNameDIDLocation]; } - (NSNumber<SDLInt> *)didLocation { - return [store sdl_objectForName:SDLNameDIDLocation]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameDIDLocation ofClass:NSNumber.class error:&error]; } - (void)setData:(nullable NSString *)data { - [store sdl_setObject:data forName:SDLNameData]; + [store sdl_setObject:data forName:SDLRPCParameterNameData]; } - (nullable NSString *)data { - return [store sdl_objectForName:SDLNameData]; + return [store sdl_objectForName:SDLRPCParameterNameData ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLDateTime.m b/SmartDeviceLink/SDLDateTime.m index 88c691c89..bb496cd9c 100644 --- a/SmartDeviceLink/SDLDateTime.m +++ b/SmartDeviceLink/SDLDateTime.m @@ -4,7 +4,7 @@ #import "SDLDateTime.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" @implementation SDLDateTime @@ -59,75 +59,84 @@ } - (void)setMillisecond:(NSNumber<SDLInt> *)millisecond { - [store sdl_setObject:millisecond forName:SDLNameMillisecond]; + [store sdl_setObject:millisecond forName:SDLRPCParameterNameMillisecond]; } - (NSNumber<SDLInt> *)millisecond { - return [store sdl_objectForName:SDLNameMillisecond]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMillisecond ofClass:NSNumber.class error:&error]; } - (void)setSecond:(NSNumber<SDLInt> *)second { - [store sdl_setObject:second forName:SDLNameSecond]; + [store sdl_setObject:second forName:SDLRPCParameterNameSecond]; } - (NSNumber<SDLInt> *)second { - return [store sdl_objectForName:SDLNameSecond]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameSecond ofClass:NSNumber.class error:&error]; } - (void)setMinute:(NSNumber<SDLInt> *)minute { - [store sdl_setObject:minute forName:SDLNameMinute]; + [store sdl_setObject:minute forName:SDLRPCParameterNameMinute]; } - (NSNumber<SDLInt> *)minute { - return [store sdl_objectForName:SDLNameMinute]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMinute ofClass:NSNumber.class error:&error]; } - (void)setHour:(NSNumber<SDLInt> *)hour { - [store sdl_setObject:hour forName:SDLNameHour]; + [store sdl_setObject:hour forName:SDLRPCParameterNameHour]; } - (NSNumber<SDLInt> *)hour { - return [store sdl_objectForName:SDLNameHour]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameHour ofClass:NSNumber.class error:&error]; } - (void)setDay:(NSNumber<SDLInt> *)day { - [store sdl_setObject:day forName:SDLNameDay]; + [store sdl_setObject:day forName:SDLRPCParameterNameDay]; } - (NSNumber<SDLInt> *)day { - return [store sdl_objectForName:SDLNameDay]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameDay ofClass:NSNumber.class error:&error]; } - (void)setMonth:(NSNumber<SDLInt> *)month { - [store sdl_setObject:month forName:SDLNameMonth]; + [store sdl_setObject:month forName:SDLRPCParameterNameMonth]; } - (NSNumber<SDLInt> *)month { - return [store sdl_objectForName:SDLNameMonth]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMonth ofClass:NSNumber.class error:&error]; } - (void)setYear:(NSNumber<SDLInt> *)year { - [store sdl_setObject:year forName:SDLNameYear]; + [store sdl_setObject:year forName:SDLRPCParameterNameYear]; } - (NSNumber<SDLInt> *)year { - return [store sdl_objectForName:SDLNameYear]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameYear ofClass:NSNumber.class error:&error]; } - (void)setTimezoneMinuteOffset:(NSNumber<SDLInt> *)timezoneMinuteOffset { - [store sdl_setObject:timezoneMinuteOffset forName:SDLNameTimezoneMinuteOffset]; + [store sdl_setObject:timezoneMinuteOffset forName:SDLRPCParameterNameTimezoneMinuteOffset]; } - (NSNumber<SDLInt> *)timezoneMinuteOffset { - return [store sdl_objectForName:SDLNameTimezoneMinuteOffset]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameTimezoneMinuteOffset ofClass:NSNumber.class error:&error]; } - (void)setTimezoneHourOffset:(NSNumber<SDLInt> *)timezoneHourOffset { - [store sdl_setObject:timezoneHourOffset forName:SDLNameTimezoneHourOffset]; + [store sdl_setObject:timezoneHourOffset forName:SDLRPCParameterNameTimezoneHourOffset]; } - (NSNumber<SDLInt> *)timezoneHourOffset { - return [store sdl_objectForName:SDLNameTimezoneHourOffset]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameTimezoneHourOffset ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDeleteCommand.m b/SmartDeviceLink/SDLDeleteCommand.m index d96276d56..cc8b80feb 100644 --- a/SmartDeviceLink/SDLDeleteCommand.m +++ b/SmartDeviceLink/SDLDeleteCommand.m @@ -5,14 +5,15 @@ #import "SDLDeleteCommand.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteCommand - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteCommand]) { } return self; } @@ -29,11 +30,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setCmdID:(NSNumber<SDLInt> *)cmdID { - [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; + [parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; } - (NSNumber<SDLInt> *)cmdID { - return [parameters sdl_objectForName:SDLNameCommandId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDeleteCommandResponse.m b/SmartDeviceLink/SDLDeleteCommandResponse.m index f956c02ab..cdfb646fe 100644 --- a/SmartDeviceLink/SDLDeleteCommandResponse.m +++ b/SmartDeviceLink/SDLDeleteCommandResponse.m @@ -5,14 +5,15 @@ #import "SDLDeleteCommandResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteCommandResponse - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteCommand]) { } return self; } diff --git a/SmartDeviceLink/SDLDeleteFile.m b/SmartDeviceLink/SDLDeleteFile.m index b7a8929a2..007959f47 100644 --- a/SmartDeviceLink/SDLDeleteFile.m +++ b/SmartDeviceLink/SDLDeleteFile.m @@ -5,14 +5,15 @@ #import "SDLDeleteFile.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteFile - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteFile]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteFile]) { } return self; } @@ -29,11 +30,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setSyncFileName:(NSString *)syncFileName { - [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; + [parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters sdl_objectForName:SDLNameSyncFileName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDeleteFileResponse.m b/SmartDeviceLink/SDLDeleteFileResponse.m index 42689fafe..cddc4f1a2 100644 --- a/SmartDeviceLink/SDLDeleteFileResponse.m +++ b/SmartDeviceLink/SDLDeleteFileResponse.m @@ -5,24 +5,25 @@ #import "SDLDeleteFileResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteFileResponse - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteFile]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteFile]) { } return self; } - (void)setSpaceAvailable:(nullable NSNumber<SDLInt> *)spaceAvailable { - [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; + [parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; } - (nullable NSNumber<SDLInt> *)spaceAvailable { - return [parameters sdl_objectForName:SDLNameSpaceAvailable]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m b/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m index a1f2585e5..8c749aaea 100644 --- a/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m +++ b/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m @@ -5,14 +5,15 @@ #import "SDLDeleteInteractionChoiceSet.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteInteractionChoiceSet - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteInteractionChoiceSet]) { } return self; } @@ -29,11 +30,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setInteractionChoiceSetID:(NSNumber<SDLInt> *)interactionChoiceSetID { - [parameters sdl_setObject:interactionChoiceSetID forName:SDLNameInteractionChoiceSetId]; + [parameters sdl_setObject:interactionChoiceSetID forName:SDLRPCParameterNameInteractionChoiceSetId]; } - (NSNumber<SDLInt> *)interactionChoiceSetID { - return [parameters sdl_objectForName:SDLNameInteractionChoiceSetId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameInteractionChoiceSetId ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m b/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m index e6cc631fa..2a0047a79 100644 --- a/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m +++ b/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m @@ -5,14 +5,15 @@ #import "SDLDeleteInteractionChoiceSetResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteInteractionChoiceSetResponse - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteInteractionChoiceSet]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteInteractionChoiceSet]) { } return self; } diff --git a/SmartDeviceLink/SDLDeleteSubMenu.m b/SmartDeviceLink/SDLDeleteSubMenu.m index b03372c7d..6e260712e 100644 --- a/SmartDeviceLink/SDLDeleteSubMenu.m +++ b/SmartDeviceLink/SDLDeleteSubMenu.m @@ -5,14 +5,15 @@ #import "SDLDeleteSubMenu.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteSubMenu - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteSubMenu]) { } return self; } @@ -29,11 +30,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setMenuID:(NSNumber<SDLInt> *)menuID { - [parameters sdl_setObject:menuID forName:SDLNameMenuId]; + [parameters sdl_setObject:menuID forName:SDLRPCParameterNameMenuId]; } - (NSNumber<SDLInt> *)menuID { - return [parameters sdl_objectForName:SDLNameMenuId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuId ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDeleteSubMenuResponse.m b/SmartDeviceLink/SDLDeleteSubMenuResponse.m index 5594763e9..1a9309a13 100644 --- a/SmartDeviceLink/SDLDeleteSubMenuResponse.m +++ b/SmartDeviceLink/SDLDeleteSubMenuResponse.m @@ -5,14 +5,15 @@ #import "SDLDeleteSubMenuResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDeleteSubMenuResponse - (instancetype)init { - if (self = [super initWithName:SDLNameDeleteSubMenu]) { + if (self = [super initWithName:SDLRPCFunctionNameDeleteSubMenu]) { } return self; } diff --git a/SmartDeviceLink/SDLDeviceInfo.m b/SmartDeviceLink/SDLDeviceInfo.m index 8b321bf8d..cd4474166 100644 --- a/SmartDeviceLink/SDLDeviceInfo.m +++ b/SmartDeviceLink/SDLDeviceInfo.m @@ -8,7 +8,7 @@ #import <UIKit/UIKit.h> #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -30,51 +30,51 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setHardware:(nullable NSString *)hardware { - [store sdl_setObject:hardware forName:SDLNameHardware]; + [store sdl_setObject:hardware forName:SDLRPCParameterNameHardware]; } - (nullable NSString *)hardware { - return [store sdl_objectForName:SDLNameHardware]; + return [store sdl_objectForName:SDLRPCParameterNameHardware ofClass:NSString.class error:nil]; } - (void)setFirmwareRev:(nullable NSString *)firmwareRev { - [store sdl_setObject:firmwareRev forName:SDLNameFirmwareRevision]; + [store sdl_setObject:firmwareRev forName:SDLRPCParameterNameFirmwareRevision]; } - (nullable NSString *)firmwareRev { - return [store sdl_objectForName:SDLNameFirmwareRevision]; + return [store sdl_objectForName:SDLRPCParameterNameFirmwareRevision ofClass:NSString.class error:nil]; } - (void)setOs:(nullable NSString *)os { - [store sdl_setObject:os forName:SDLNameOS]; + [store sdl_setObject:os forName:SDLRPCParameterNameOS]; } - (nullable NSString *)os { - return [store sdl_objectForName:SDLNameOS]; + return [store sdl_objectForName:SDLRPCParameterNameOS ofClass:NSString.class error:nil]; } - (void)setOsVersion:(nullable NSString *)osVersion { - [store sdl_setObject:osVersion forName:SDLNameOSVersion]; + [store sdl_setObject:osVersion forName:SDLRPCParameterNameOSVersion]; } - (nullable NSString *)osVersion { - return [store sdl_objectForName:SDLNameOSVersion]; + return [store sdl_objectForName:SDLRPCParameterNameOSVersion ofClass:NSString.class error:nil]; } - (void)setCarrier:(nullable NSString *)carrier { - [store sdl_setObject:carrier forName:SDLNameCarrier]; + [store sdl_setObject:carrier forName:SDLRPCParameterNameCarrier]; } - (nullable NSString *)carrier { - return [store sdl_objectForName:SDLNameCarrier]; + return [store sdl_objectForName:SDLRPCParameterNameCarrier ofClass:NSString.class error:nil]; } - (void)setMaxNumberRFCOMMPorts:(nullable NSNumber<SDLInt> *)maxNumberRFCOMMPorts { - [store sdl_setObject:maxNumberRFCOMMPorts forName:SDLNameMaxNumberRFCOMMPorts]; + [store sdl_setObject:maxNumberRFCOMMPorts forName:SDLRPCParameterNameMaxNumberRFCOMMPorts]; } - (nullable NSNumber<SDLInt> *)maxNumberRFCOMMPorts { - return [store sdl_objectForName:SDLNameMaxNumberRFCOMMPorts]; + return [store sdl_objectForName:SDLRPCParameterNameMaxNumberRFCOMMPorts ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLDeviceStatus.m b/SmartDeviceLink/SDLDeviceStatus.m index ca449c517..048e4f8c4 100644 --- a/SmartDeviceLink/SDLDeviceStatus.m +++ b/SmartDeviceLink/SDLDeviceStatus.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLDeviceLevelStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLPrimaryAudioSource.h" NS_ASSUME_NONNULL_BEGIN @@ -13,91 +13,102 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLDeviceStatus - (void)setVoiceRecOn:(NSNumber<SDLBool> *)voiceRecOn { - [store sdl_setObject:voiceRecOn forName:SDLNameVoiceRecognitionOn]; + [store sdl_setObject:voiceRecOn forName:SDLRPCParameterNameVoiceRecognitionOn]; } - (NSNumber<SDLBool> *)voiceRecOn { - return [store sdl_objectForName:SDLNameVoiceRecognitionOn]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameVoiceRecognitionOn ofClass:NSNumber.class error:&error]; } - (void)setBtIconOn:(NSNumber<SDLBool> *)btIconOn { - [store sdl_setObject:btIconOn forName:SDLNameBluetoothIconOn]; + [store sdl_setObject:btIconOn forName:SDLRPCParameterNameBluetoothIconOn]; } - (NSNumber<SDLBool> *)btIconOn { - return [store sdl_objectForName:SDLNameBluetoothIconOn]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameBluetoothIconOn ofClass:NSNumber.class error:&error]; } - (void)setCallActive:(NSNumber<SDLBool> *)callActive { - [store sdl_setObject:callActive forName:SDLNameCallActive]; + [store sdl_setObject:callActive forName:SDLRPCParameterNameCallActive]; } - (NSNumber<SDLBool> *)callActive { - return [store sdl_objectForName:SDLNameCallActive]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameCallActive ofClass:NSNumber.class error:&error]; } - (void)setPhoneRoaming:(NSNumber<SDLBool> *)phoneRoaming { - [store sdl_setObject:phoneRoaming forName:SDLNamePhoneRoaming]; + [store sdl_setObject:phoneRoaming forName:SDLRPCParameterNamePhoneRoaming]; } - (NSNumber<SDLBool> *)phoneRoaming { - return [store sdl_objectForName:SDLNamePhoneRoaming]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNamePhoneRoaming ofClass:NSNumber.class error:&error]; } - (void)setTextMsgAvailable:(NSNumber<SDLBool> *)textMsgAvailable { - [store sdl_setObject:textMsgAvailable forName:SDLNameTextMessageAvailable]; + [store sdl_setObject:textMsgAvailable forName:SDLRPCParameterNameTextMessageAvailable]; } - (NSNumber<SDLBool> *)textMsgAvailable { - return [store sdl_objectForName:SDLNameTextMessageAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameTextMessageAvailable ofClass:NSNumber.class error:&error]; } - (void)setBattLevelStatus:(SDLDeviceLevelStatus )battLevelStatus { - [store sdl_setObject:battLevelStatus forName:SDLNameBatteryLevelStatus]; + [store sdl_setObject:battLevelStatus forName:SDLRPCParameterNameBatteryLevelStatus]; } - (SDLDeviceLevelStatus)battLevelStatus { - return [store sdl_objectForName:SDLNameBatteryLevelStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameBatteryLevelStatus error:&error]; } - (void)setStereoAudioOutputMuted:(NSNumber<SDLBool> *)stereoAudioOutputMuted { - [store sdl_setObject:stereoAudioOutputMuted forName:SDLNameStereoAudioOutputMuted]; + [store sdl_setObject:stereoAudioOutputMuted forName:SDLRPCParameterNameStereoAudioOutputMuted]; } - (NSNumber<SDLBool> *)stereoAudioOutputMuted { - return [store sdl_objectForName:SDLNameStereoAudioOutputMuted]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameStereoAudioOutputMuted ofClass:NSNumber.class error:&error]; } - (void)setMonoAudioOutputMuted:(NSNumber<SDLBool> *)monoAudioOutputMuted { - [store sdl_setObject:monoAudioOutputMuted forName:SDLNameMonoAudioOutputMuted]; + [store sdl_setObject:monoAudioOutputMuted forName:SDLRPCParameterNameMonoAudioOutputMuted]; } - (NSNumber<SDLBool> *)monoAudioOutputMuted { - return [store sdl_objectForName:SDLNameMonoAudioOutputMuted]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMonoAudioOutputMuted ofClass:NSNumber.class error:&error]; } - (void)setSignalLevelStatus:(SDLDeviceLevelStatus)signalLevelStatus { - [store sdl_setObject:signalLevelStatus forName:SDLNameSignalLevelStatus]; + [store sdl_setObject:signalLevelStatus forName:SDLRPCParameterNameSignalLevelStatus]; } - (SDLDeviceLevelStatus)signalLevelStatus { - return [store sdl_objectForName:SDLNameSignalLevelStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameSignalLevelStatus error:&error]; } - (void)setPrimaryAudioSource:(SDLPrimaryAudioSource)primaryAudioSource { - [store sdl_setObject:primaryAudioSource forName:SDLNamePrimaryAudioSource]; + [store sdl_setObject:primaryAudioSource forName:SDLRPCParameterNamePrimaryAudioSource]; } - (SDLPrimaryAudioSource)primaryAudioSource { - return [store sdl_objectForName:SDLNamePrimaryAudioSource]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePrimaryAudioSource error:&error]; } - (void)setECallEventActive:(NSNumber<SDLBool> *)eCallEventActive { - [store sdl_setObject:eCallEventActive forName:SDLNameECallEventActive]; + [store sdl_setObject:eCallEventActive forName:SDLRPCParameterNameECallEventActive]; } - (NSNumber<SDLBool> *)eCallEventActive { - return [store sdl_objectForName:SDLNameECallEventActive]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameECallEventActive ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDiagnosticMessage.m b/SmartDeviceLink/SDLDiagnosticMessage.m index dff509a4d..89f636c26 100644 --- a/SmartDeviceLink/SDLDiagnosticMessage.m +++ b/SmartDeviceLink/SDLDiagnosticMessage.m @@ -5,14 +5,15 @@ #import "SDLDiagnosticMessage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDiagnosticMessage - (instancetype)init { - if (self = [super initWithName:SDLNameDiagnosticMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameDiagnosticMessage]) { } return self; } @@ -31,27 +32,30 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setTargetID:(NSNumber<SDLInt> *)targetID { - [parameters sdl_setObject:targetID forName:SDLNameTargetId]; + [parameters sdl_setObject:targetID forName:SDLRPCParameterNameTargetId]; } - (NSNumber<SDLInt> *)targetID { - return [parameters sdl_objectForName:SDLNameTargetId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameTargetId ofClass:NSNumber.class error:&error]; } - (void)setMessageLength:(NSNumber<SDLInt> *)messageLength { - [parameters sdl_setObject:messageLength forName:SDLNameMessageLength]; + [parameters sdl_setObject:messageLength forName:SDLRPCParameterNameMessageLength]; } - (NSNumber<SDLInt> *)messageLength { - return [parameters sdl_objectForName:SDLNameMessageLength]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameMessageLength ofClass:NSNumber.class error:&error]; } - (void)setMessageData:(NSArray<NSNumber<SDLInt> *> *)messageData { - [parameters sdl_setObject:messageData forName:SDLNameMessageData]; + [parameters sdl_setObject:messageData forName:SDLRPCParameterNameMessageData]; } - (NSArray<NSNumber<SDLInt> *> *)messageData { - return [parameters sdl_objectForName:SDLNameMessageData]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameMessageData ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDiagnosticMessageResponse.m b/SmartDeviceLink/SDLDiagnosticMessageResponse.m index fac88769c..6b275135a 100644 --- a/SmartDeviceLink/SDLDiagnosticMessageResponse.m +++ b/SmartDeviceLink/SDLDiagnosticMessageResponse.m @@ -4,24 +4,26 @@ #import "SDLDiagnosticMessageResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDiagnosticMessageResponse - (instancetype)init { - if (self = [super initWithName:SDLNameDiagnosticMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameDiagnosticMessage]) { } return self; } - (void)setMessageDataResult:(NSArray<NSNumber<SDLInt> *> *)messageDataResult { - [parameters sdl_setObject:messageDataResult forName:SDLNameMessageDataResult]; + [parameters sdl_setObject:messageDataResult forName:SDLRPCParameterNameMessageDataResult]; } - (NSArray<NSNumber<SDLInt> *> *)messageDataResult { - return [parameters sdl_objectForName:SDLNameMessageDataResult]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameMessageDataResult ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDialNumber.m b/SmartDeviceLink/SDLDialNumber.m index 7930892d1..47c312416 100644 --- a/SmartDeviceLink/SDLDialNumber.m +++ b/SmartDeviceLink/SDLDialNumber.m @@ -5,12 +5,13 @@ #import "SDLDialNumber.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" @implementation SDLDialNumber - (instancetype)init { - if (self = [super initWithName:SDLNameDialNumber]) { + if (self = [super initWithName:SDLRPCFunctionNameDialNumber]) { } return self; } @@ -27,11 +28,12 @@ } - (void)setNumber:(NSString *)number { - [parameters sdl_setObject:number forName:SDLNameNumber]; + [parameters sdl_setObject:number forName:SDLRPCParameterNameNumber]; } - (NSString *)number { - return [parameters sdl_objectForName:SDLNameNumber]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameNumber ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLDialNumberResponse.m b/SmartDeviceLink/SDLDialNumberResponse.m index b791e2cd2..0b9e02c58 100644 --- a/SmartDeviceLink/SDLDialNumberResponse.m +++ b/SmartDeviceLink/SDLDialNumberResponse.m @@ -5,14 +5,15 @@ #import "SDLDialNumberResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLDialNumberResponse - (instancetype)init { - if (self = [super initWithName:SDLNameDialNumber]) { + if (self = [super initWithName:SDLRPCFunctionNameDialNumber]) { } return self; } diff --git a/SmartDeviceLink/SDLDirection.h b/SmartDeviceLink/SDLDirection.h new file mode 100644 index 000000000..b35f4c644 --- /dev/null +++ b/SmartDeviceLink/SDLDirection.h @@ -0,0 +1,26 @@ +// +// SDLDirection.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/* + * A navigation direction. + */ +typedef SDLEnum SDLDirection SDL_SWIFT_ENUM; + +/* + * Direction left + */ +extern SDLDirection const SDLDirectionLeft; + +/* + * Direction right + */ +extern SDLDirection const SDLDirectionRight; + + diff --git a/SmartDeviceLink/SDLDirection.m b/SmartDeviceLink/SDLDirection.m new file mode 100644 index 000000000..1a11c772a --- /dev/null +++ b/SmartDeviceLink/SDLDirection.m @@ -0,0 +1,12 @@ +// +// SDLDirection.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLDirection.h" + +SDLDirection const SDLDirectionLeft = @"LEFT"; +SDLDirection const SDLDirectionRight = @"RIGHT"; diff --git a/SmartDeviceLink/SDLDisplayCapabilities.m b/SmartDeviceLink/SDLDisplayCapabilities.m index c1615431c..8667eafa8 100644 --- a/SmartDeviceLink/SDLDisplayCapabilities.m +++ b/SmartDeviceLink/SDLDisplayCapabilities.m @@ -4,7 +4,7 @@ #import "SDLDisplayCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLImageField.h" #import "SDLScreenParams.h" #import "SDLTextField.h" @@ -14,75 +14,79 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLDisplayCapabilities - (void)setDisplayType:(SDLDisplayType)displayType { - [store sdl_setObject:displayType forName:SDLNameDisplayType]; + [store sdl_setObject:displayType forName:SDLRPCParameterNameDisplayType]; } - (SDLDisplayType)displayType { - return [store sdl_objectForName:SDLNameDisplayType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDisplayType error:&error]; } - (void)setDisplayName:(nullable NSString *)displayName { - [store sdl_setObject:displayName forName:SDLNameDisplayName]; + [store sdl_setObject:displayName forName:SDLRPCParameterNameDisplayName]; } - (nullable NSString *)displayName { - return [store sdl_objectForName:SDLNameDisplayName]; + return [store sdl_objectForName:SDLRPCParameterNameDisplayName ofClass:NSString.class error:nil]; } - (void)setTextFields:(NSArray<SDLTextField *> *)textFields { - [store sdl_setObject:textFields forName:SDLNameTextFields]; + [store sdl_setObject:textFields forName:SDLRPCParameterNameTextFields]; } - (NSArray<SDLTextField *> *)textFields { - return [store sdl_objectsForName:SDLNameTextFields ofClass:SDLTextField.class]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameTextFields ofClass:SDLTextField.class error:&error]; } - (void)setImageFields:(nullable NSArray<SDLImageField *> *)imageFields { - [store sdl_setObject:imageFields forName:SDLNameImageFields]; + [store sdl_setObject:imageFields forName:SDLRPCParameterNameImageFields]; } - (nullable NSArray<SDLImageField *> *)imageFields { - return [store sdl_objectsForName:SDLNameImageFields ofClass:SDLImageField.class]; + return [store sdl_objectsForName:SDLRPCParameterNameImageFields ofClass:SDLImageField.class error:nil]; } - (void)setMediaClockFormats:(NSArray<SDLMediaClockFormat> *)mediaClockFormats { - [store sdl_setObject:mediaClockFormats forName:SDLNameMediaClockFormats]; + [store sdl_setObject:mediaClockFormats forName:SDLRPCParameterNameMediaClockFormats]; } - (NSArray<SDLMediaClockFormat> *)mediaClockFormats { - return [store sdl_objectForName:SDLNameMediaClockFormats]; + NSError *error = nil; + return [store sdl_enumsForName:SDLRPCParameterNameMediaClockFormats error:&error]; } - (void)setGraphicSupported:(NSNumber<SDLBool> *)graphicSupported { - [store sdl_setObject:graphicSupported forName:SDLNameGraphicSupported]; + [store sdl_setObject:graphicSupported forName:SDLRPCParameterNameGraphicSupported]; } - (NSNumber<SDLBool> *)graphicSupported { - return [store sdl_objectForName:SDLNameGraphicSupported]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameGraphicSupported ofClass:NSNumber.class error:&error]; } - (void)setTemplatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable { - [store sdl_setObject:templatesAvailable forName:SDLNameTemplatesAvailable]; + [store sdl_setObject:templatesAvailable forName:SDLRPCParameterNameTemplatesAvailable]; } - (nullable NSArray<NSString *> *)templatesAvailable { - return [store sdl_objectForName:SDLNameTemplatesAvailable]; + return [store sdl_objectsForName:SDLRPCParameterNameTemplatesAvailable ofClass:NSString.class error:nil]; } - (void)setScreenParams:(nullable SDLScreenParams *)screenParams { - [store sdl_setObject:screenParams forName:SDLNameScreenParams]; + [store sdl_setObject:screenParams forName:SDLRPCParameterNameScreenParams]; } - (nullable SDLScreenParams *)screenParams { - return [store sdl_objectForName:SDLNameScreenParams ofClass:SDLScreenParams.class]; + return [store sdl_objectForName:SDLRPCParameterNameScreenParams ofClass:SDLScreenParams.class error:nil]; } - (void)setNumCustomPresetsAvailable:(nullable NSNumber<SDLInt> *)numCustomPresetsAvailable { - [store sdl_setObject:numCustomPresetsAvailable forName:SDLNameNumberCustomPresetsAvailable]; + [store sdl_setObject:numCustomPresetsAvailable forName:SDLRPCParameterNameNumberCustomPresetsAvailable]; } - (nullable NSNumber<SDLInt> *)numCustomPresetsAvailable { - return [store sdl_objectForName:SDLNameNumberCustomPresetsAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameNumberCustomPresetsAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLECallInfo.m b/SmartDeviceLink/SDLECallInfo.m index 656ee3329..4b77e3e3d 100644 --- a/SmartDeviceLink/SDLECallInfo.m +++ b/SmartDeviceLink/SDLECallInfo.m @@ -4,34 +4,37 @@ #import "SDLECallInfo.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLECallInfo - (void)setECallNotificationStatus:(SDLVehicleDataNotificationStatus)eCallNotificationStatus { - [store sdl_setObject:eCallNotificationStatus forName:SDLNameECallNotificationStatus]; + [store sdl_setObject:eCallNotificationStatus forName:SDLRPCParameterNameECallNotificationStatus]; } - (SDLVehicleDataNotificationStatus)eCallNotificationStatus { - return [store sdl_objectForName:SDLNameECallNotificationStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameECallNotificationStatus error:&error]; } - (void)setAuxECallNotificationStatus:(SDLVehicleDataNotificationStatus)auxECallNotificationStatus { - [store sdl_setObject:auxECallNotificationStatus forName:SDLNameAuxECallNotificationStatus]; + [store sdl_setObject:auxECallNotificationStatus forName:SDLRPCParameterNameAuxECallNotificationStatus]; } - (SDLVehicleDataNotificationStatus)auxECallNotificationStatus { - return [store sdl_objectForName:SDLNameAuxECallNotificationStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameAuxECallNotificationStatus error:&error]; } - (void)setECallConfirmationStatus:(SDLECallConfirmationStatus)eCallConfirmationStatus { - [store sdl_setObject:eCallConfirmationStatus forName:SDLNameECallConfirmationStatus]; + [store sdl_setObject:eCallConfirmationStatus forName:SDLRPCParameterNameECallConfirmationStatus]; } - (SDLECallConfirmationStatus)eCallConfirmationStatus { - return [store sdl_objectForName:SDLNameECallConfirmationStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameECallConfirmationStatus error:&error]; } @end diff --git a/SmartDeviceLink/SDLEmergencyEvent.m b/SmartDeviceLink/SDLEmergencyEvent.m index 1aa18743e..e2869823c 100644 --- a/SmartDeviceLink/SDLEmergencyEvent.m +++ b/SmartDeviceLink/SDLEmergencyEvent.m @@ -4,50 +4,55 @@ #import "SDLEmergencyEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEmergencyEvent - (void)setEmergencyEventType:(SDLEmergencyEventType)emergencyEventType { - [store sdl_setObject:emergencyEventType forName:SDLNameEmergencyEventType]; + [store sdl_setObject:emergencyEventType forName:SDLRPCParameterNameEmergencyEventType]; } - (SDLEmergencyEventType)emergencyEventType { - return [store sdl_objectForName:SDLNameEmergencyEventType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameEmergencyEventType error:&error]; } - (void)setFuelCutoffStatus:(SDLFuelCutoffStatus)fuelCutoffStatus { - [store sdl_setObject:fuelCutoffStatus forName:SDLNameFuelCutoffStatus]; + [store sdl_setObject:fuelCutoffStatus forName:SDLRPCParameterNameFuelCutoffStatus]; } - (SDLFuelCutoffStatus)fuelCutoffStatus { - return [store sdl_objectForName:SDLNameFuelCutoffStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameFuelCutoffStatus error:&error]; } - (void)setRolloverEvent:(SDLVehicleDataEventStatus)rolloverEvent { - [store sdl_setObject:rolloverEvent forName:SDLNameRolloverEvent]; + [store sdl_setObject:rolloverEvent forName:SDLRPCParameterNameRolloverEvent]; } - (SDLVehicleDataEventStatus)rolloverEvent { - return [store sdl_objectForName:SDLNameRolloverEvent]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameRolloverEvent error:&error]; } - (void)setMaximumChangeVelocity:(NSNumber<SDLInt> *)maximumChangeVelocity { - [store sdl_setObject:maximumChangeVelocity forName:SDLNameMaximumChangeVelocity]; + [store sdl_setObject:maximumChangeVelocity forName:SDLRPCParameterNameMaximumChangeVelocity]; } - (NSNumber<SDLInt> *)maximumChangeVelocity { - return [store sdl_objectForName:SDLNameMaximumChangeVelocity]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMaximumChangeVelocity ofClass:NSNumber.class error:&error]; } - (void)setMultipleEvents:(SDLVehicleDataEventStatus)multipleEvents { - [store sdl_setObject:multipleEvents forName:SDLNameMultipleEvents]; + [store sdl_setObject:multipleEvents forName:SDLRPCParameterNameMultipleEvents]; } - (SDLVehicleDataEventStatus)multipleEvents { - return [store sdl_objectForName:SDLNameMultipleEvents]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMultipleEvents error:&error]; } @end diff --git a/SmartDeviceLink/SDLEncodedSyncPData.m b/SmartDeviceLink/SDLEncodedSyncPData.m index 3f9838509..913e2f53a 100644 --- a/SmartDeviceLink/SDLEncodedSyncPData.m +++ b/SmartDeviceLink/SDLEncodedSyncPData.m @@ -5,24 +5,26 @@ #import "SDLEncodedSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEncodedSyncPData - (instancetype)init { - if (self = [super initWithName:SDLNameEncodedSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameEncodedSyncPData]) { } return self; } - (void)setData:(NSArray<NSString *> *)data { - [parameters sdl_setObject:data forName:SDLNameData]; + [parameters sdl_setObject:data forName:SDLRPCParameterNameData]; } - (NSArray<NSString *> *)data { - return [parameters sdl_objectForName:SDLNameData]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameData ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLEncodedSyncPDataResponse.m b/SmartDeviceLink/SDLEncodedSyncPDataResponse.m index c8d4c673e..c71ce9f11 100644 --- a/SmartDeviceLink/SDLEncodedSyncPDataResponse.m +++ b/SmartDeviceLink/SDLEncodedSyncPDataResponse.m @@ -5,14 +5,15 @@ #import "SDLEncodedSyncPDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEncodedSyncPDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameEncodedSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameEncodedSyncPData]) { } return self; } diff --git a/SmartDeviceLink/SDLEndAudioPassThru.m b/SmartDeviceLink/SDLEndAudioPassThru.m index 127702a06..93e7afb4a 100644 --- a/SmartDeviceLink/SDLEndAudioPassThru.m +++ b/SmartDeviceLink/SDLEndAudioPassThru.m @@ -5,14 +5,15 @@ #import "SDLEndAudioPassThru.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEndAudioPassThru - (instancetype)init { - if (self = [super initWithName:SDLNameEndAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNameEndAudioPassThru]) { } return self; } diff --git a/SmartDeviceLink/SDLEndAudioPassThruResponse.m b/SmartDeviceLink/SDLEndAudioPassThruResponse.m index 3efaa3915..ff1b88da6 100644 --- a/SmartDeviceLink/SDLEndAudioPassThruResponse.m +++ b/SmartDeviceLink/SDLEndAudioPassThruResponse.m @@ -5,14 +5,15 @@ #import "SDLEndAudioPassThruResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLEndAudioPassThruResponse - (instancetype)init { - if (self = [super initWithName:SDLNameEndAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNameEndAudioPassThru]) { } return self; } diff --git a/SmartDeviceLink/SDLEqualizerSettings.m b/SmartDeviceLink/SDLEqualizerSettings.m index 1106d454e..988177006 100644 --- a/SmartDeviceLink/SDLEqualizerSettings.m +++ b/SmartDeviceLink/SDLEqualizerSettings.m @@ -2,7 +2,7 @@ // #import "SDLEqualizerSettings.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -22,27 +22,29 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setChannelId:(NSNumber<SDLInt> *)channelId { - [store sdl_setObject:channelId forName:SDLNameChannelId]; + [store sdl_setObject:channelId forName:SDLRPCParameterNameChannelId]; } - (NSNumber<SDLInt> *)channelId { - return [store sdl_objectForName:SDLNameChannelId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameChannelId ofClass:NSNumber.class error:&error]; } - (void)setChannelName:(nullable NSString *)channelName { - [store sdl_setObject:channelName forName:SDLNameChannelName]; + [store sdl_setObject:channelName forName:SDLRPCParameterNameChannelName]; } - (nullable NSString *)channelName { - return [store sdl_objectForName:SDLNameChannelName]; + return [store sdl_objectForName:SDLRPCParameterNameChannelName ofClass:NSString.class error:nil]; } - (void)setChannelSetting:(NSNumber<SDLInt> *)channelSetting { - [store sdl_setObject:channelSetting forName:SDLNameChannelSetting]; + [store sdl_setObject:channelSetting forName:SDLRPCParameterNameChannelSetting]; } - (NSNumber<SDLInt> *)channelSetting { - return [store sdl_objectForName:SDLNameChannelSetting]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameChannelSetting ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLError.h b/SmartDeviceLink/SDLError.h index 4a0cbd7ca..cdc2bab41 100644 --- a/SmartDeviceLink/SDLError.h +++ b/SmartDeviceLink/SDLError.h @@ -24,6 +24,7 @@ extern SDLErrorDomain *const SDLErrorDomainSoftButtonManager; extern SDLErrorDomain *const SDLErrorDomainMenuManager; extern SDLErrorDomain *const SDLErrorDomainChoiceSetManager; extern SDLErrorDomain *const SDLErrorDomainTransport; +extern SDLErrorDomain *const SDLErrorDomainRPCStore; @interface NSError (SDLErrors) @@ -50,6 +51,7 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSError *)sdl_fileManager_fileDoesNotExistError; + (NSError *)sdl_fileManager_fileUploadCanceled; + (NSError *)sdl_fileManager_dataMissingError; ++ (NSError *)sdl_fileManager_staticIconError; #pragma mark Show Managers @@ -65,6 +67,7 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSError *)sdl_choiceSetManager_choicesDeletedBeforePresentation:(NSDictionary *)userInfo; + (NSError *)sdl_choiceSetManager_choiceDeletionFailed:(NSDictionary *)userInfo; + (NSError *)sdl_choiceSetManager_choiceUploadFailed:(NSDictionary *)userInfo; ++ (NSError *)sdl_choiceSetManager_failedToCreateMenuItems; #pragma mark Transport @@ -73,6 +76,10 @@ extern SDLErrorDomain *const SDLErrorDomainTransport; + (NSError *)sdl_transport_connectionTimedOutError; + (NSError *)sdl_transport_networkDownError; +#pragma mark Store + ++ (NSError *)sdl_rpcStore_invalidObjectErrorWithObject:(id)wrongObject expectedType:(Class)type; + @end @interface NSException (SDLExceptions) diff --git a/SmartDeviceLink/SDLError.m b/SmartDeviceLink/SDLError.m index 2597a563d..187940201 100644 --- a/SmartDeviceLink/SDLError.m +++ b/SmartDeviceLink/SDLError.m @@ -19,6 +19,7 @@ SDLErrorDomain *const SDLErrorDomainSoftButtonManager = @"com.sdl.softbuttonmana SDLErrorDomain *const SDLErrorDomainMenuManager = @"com.sdl.menumanager.error"; SDLErrorDomain *const SDLErrorDomainChoiceSetManager = @"com.sdl.choicesetmanager.error"; SDLErrorDomain *const SDLErrorDomainTransport = @"com.sdl.transport.error"; +SDLErrorDomain *const SDLErrorDomainRPCStore = @"com.sdl.rpcStore.error"; @implementation NSError (SDLErrors) @@ -177,6 +178,15 @@ SDLErrorDomain *const SDLErrorDomainTransport = @"com.sdl.transport.error"; return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorFileDataMissing userInfo:userInfo]; } ++ (NSError *)sdl_fileManager_staticIconError { + NSDictionary<NSString *, NSString *> *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(@"The file upload was canceled", nil), + NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The file is a static icon, which cannot be uploaded", nil), + NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Stop trying to upload a static icon, set it via the screen manager or create an SDLImage instead", nil) + }; + return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorStaticIcon userInfo:userInfo]; +} + #pragma mark SDLUploadFileOperation + (NSError *)sdl_fileManager_fileDoesNotExistError { @@ -218,6 +228,15 @@ SDLErrorDomain *const SDLErrorDomainTransport = @"com.sdl.transport.error"; return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorUploadFailed userInfo:userInfo]; } ++ (NSError *)sdl_choiceSetManager_failedToCreateMenuItems { + NSDictionary<NSString *, NSString *> *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(@"Choice Set Manager error", nil), + NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"Choice set manager failed to create menu items due to menuName being empty.", nil), + NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"If you are setting the menuName, it is possible that the head unit is sending incorrect displayCapabilities.", nil) + }; + return [NSError errorWithDomain:SDLErrorDomainChoiceSetManager code:SDLChoiceSetManagerErrorFailedToCreateMenuItems userInfo:userInfo]; +} + #pragma mark Transport + (NSError *)sdl_transport_unknownError { @@ -256,6 +275,17 @@ SDLErrorDomain *const SDLErrorDomainTransport = @"com.sdl.transport.error"; return [NSError errorWithDomain:SDLErrorDomainTransport code:SDLTransportErrorNetworkDown userInfo:userInfo]; } +#pragma mark Store + ++ (NSError *)sdl_rpcStore_invalidObjectErrorWithObject:(id)wrongObject expectedType:(Class)type { + NSDictionary<NSString *, NSString *> *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(@"Type of stored value doesn't match with requested", nil), + NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"Requested %@ but returned %@", NSStringFromClass(type), NSStringFromClass([wrongObject class])], + NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Check the object type returned from the head unit system", nil) + }; + return [NSError errorWithDomain:SDLErrorDomainRPCStore code:SDLRPCStoreErrorGetInvalidObject userInfo:userInfo]; +} + @end diff --git a/SmartDeviceLink/SDLErrorConstants.h b/SmartDeviceLink/SDLErrorConstants.h index 8503d8be8..8cbed860e 100644 --- a/SmartDeviceLink/SDLErrorConstants.h +++ b/SmartDeviceLink/SDLErrorConstants.h @@ -86,6 +86,10 @@ typedef NS_ENUM(NSInteger, SDLFileManagerError) { * The file data is nil or empty. */ SDLFileManagerErrorFileDataMissing = -9, + /* + * The file is a static icon, which cannot be uploaded + */ + SDLFileManagerErrorStaticIcon = -10, }; /** @@ -119,6 +123,7 @@ typedef NS_ENUM(NSInteger, SDLChoiceSetManagerError) { SDLChoiceSetManagerErrorPendingPresentationDeleted = -1, SDLChoiceSetManagerErrorDeletionFailed = -2, SDLChoiceSetManagerErrorUploadFailed = -3, + SDLChoiceSetManagerErrorFailedToCreateMenuItems = -4 }; /** @@ -145,3 +150,13 @@ typedef NS_ENUM(NSInteger, SDLTransportError) { */ SDLTransportErrorNetworkDown = -4, }; + +/** + * Errors associated with store. + */ +typedef NS_ENUM(NSInteger, SDLRPCStoreError) { + /** + * In dictionary stored value with unexpected type + */ + SDLRPCStoreErrorGetInvalidObject = -1, +}; diff --git a/SmartDeviceLink/SDLFile.h b/SmartDeviceLink/SDLFile.h index 72123155f..b1a75f3a8 100644 --- a/SmartDeviceLink/SDLFile.h +++ b/SmartDeviceLink/SDLFile.h @@ -55,6 +55,15 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly) NSInputStream *inputStream; +/** + Describes whether or not this file is represented by static icon data. The head unit will present its representation of the static icon concept when sent this data. + + A file that represents a static icon may not be uploaded via the File Manager. It must be set using the Screen Manager. + + Support for this feature may vary by system, but it will generally be more supported in soft buttons and menus. + */ +@property (assign, nonatomic, readonly) BOOL isStaticIcon; + - (instancetype)init NS_UNAVAILABLE; /** diff --git a/SmartDeviceLink/SDLFile.m b/SmartDeviceLink/SDLFile.m index 5e925711e..3e69a943c 100644 --- a/SmartDeviceLink/SDLFile.m +++ b/SmartDeviceLink/SDLFile.m @@ -24,6 +24,9 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, nonatomic, readwrite) NSString *name; @property (nonatomic, readwrite) NSInputStream *inputStream; + +@property (assign, nonatomic, readwrite) BOOL isStaticIcon; + @end diff --git a/SmartDeviceLink/SDLFileManager.m b/SmartDeviceLink/SDLFileManager.m index 9ff7498ef..911ec889f 100644 --- a/SmartDeviceLink/SDLFileManager.m +++ b/SmartDeviceLink/SDLFileManager.m @@ -351,6 +351,13 @@ SDLFileManagerState *const SDLFileManagerStateStartupError = @"StartupError"; return; } + if (file.isStaticIcon) { + if (handler != nil) { + handler(NO, self.bytesAvailable, [NSError sdl_fileManager_staticIconError]); + } + return; + } + // Make sure we are able to send files if (![self.currentState isEqualToString:SDLFileManagerStateReady]) { if (handler != nil) { diff --git a/SmartDeviceLink/SDLFocusableItemLocator.m b/SmartDeviceLink/SDLFocusableItemLocator.m index 1969512e5..e3fb4d451 100644 --- a/SmartDeviceLink/SDLFocusableItemLocator.m +++ b/SmartDeviceLink/SDLFocusableItemLocator.m @@ -105,7 +105,7 @@ NS_ASSUME_NONNULL_BEGIN } NSMutableArray<SDLHapticRect *> *hapticRects = [[NSMutableArray alloc] init]; - + for (UIView *view in self.focusableViews) { CGPoint originOnScreen = [self.viewController.view convertPoint:view.frame.origin toView:nil]; CGRect convertedRect = {originOnScreen, view.bounds.size}; @@ -115,7 +115,7 @@ NS_ASSUME_NONNULL_BEGIN SDLHapticRect *hapticRect = [[SDLHapticRect alloc] initWithId:(UInt32)rectId rect:rect]; [hapticRects addObject:hapticRect]; } - + SDLSendHapticData* hapticRPC = [[SDLSendHapticData alloc] initWithHapticRectData:hapticRects]; [self.connectionManager sendConnectionManagerRequest:hapticRPC withResponseHandler:nil]; } @@ -123,7 +123,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark SDLFocusableItemHitTester functions - (nullable UIView *)viewForPoint:(CGPoint)point { UIView *selectedView = nil; - + for (UIView *view in self.focusableViews) { //Convert the absolute location to local location and check if that falls within view boundary CGPoint localPoint = [view convertPoint:point fromView:self.viewController.view]; @@ -137,7 +137,7 @@ NS_ASSUME_NONNULL_BEGIN } } } - + return selectedView; } diff --git a/SmartDeviceLink/SDLFuelRange.m b/SmartDeviceLink/SDLFuelRange.m index 19ebeba4b..01d704484 100644 --- a/SmartDeviceLink/SDLFuelRange.m +++ b/SmartDeviceLink/SDLFuelRange.m @@ -9,26 +9,26 @@ #import "SDLFuelRange.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLFuelRange - (void)setType:(nullable SDLFuelType)type { - [store sdl_setObject:type forName:SDLNameType]; + [store sdl_setObject:type forName:SDLRPCParameterNameType]; } - (nullable SDLFuelType)type { - return [store sdl_objectForName:SDLNameType]; + return [store sdl_enumForName:SDLRPCParameterNameType error:nil]; } - (void)setRange:(nullable NSNumber<SDLFloat> *)range { - [store sdl_setObject:range forName:SDLNameRange]; + [store sdl_setObject:range forName:SDLRPCParameterNameRange]; } - (nullable NSNumber<SDLFloat> *)range { - return [store sdl_objectForName:SDLNameRange]; + return [store sdl_objectForName:SDLRPCParameterNameRange ofClass:NSNumber.class error:nil]; } diff --git a/SmartDeviceLink/SDLFunctionID.h b/SmartDeviceLink/SDLFunctionID.h index d82e38d2c..b9766714b 100644 --- a/SmartDeviceLink/SDLFunctionID.h +++ b/SmartDeviceLink/SDLFunctionID.h @@ -1,12 +1,9 @@ // SDLFunctionID.h // - #import <Foundation/Foundation.h> - -#import "NSMutableDictionary+Store.h" -#import "SDLNames.h" #import "NSNumber+NumberType.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @@ -14,8 +11,8 @@ NS_ASSUME_NONNULL_BEGIN + (instancetype)sharedInstance; -- (nullable SDLName)functionNameForId:(UInt32)functionID; -- (nullable NSNumber<SDLInt> *)functionIdForName:(SDLName)functionName; +- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID; +- (nullable NSNumber<SDLInt> *)functionIdForName:(SDLRPCFunctionName)functionName; @end diff --git a/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m index f96bc83c6..d90390132 100644 --- a/SmartDeviceLink/SDLFunctionID.m +++ b/SmartDeviceLink/SDLFunctionID.m @@ -4,6 +4,9 @@ #import "SDLFunctionID.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCFunctionNames.h" + NS_ASSUME_NONNULL_BEGIN @interface SDLFunctionID () @@ -30,86 +33,94 @@ NS_ASSUME_NONNULL_BEGIN } self.functionIds = @{ - @0: SDLNameReserved, - @1: SDLNameRegisterAppInterface, - @2: SDLNameUnregisterAppInterface, - @3: SDLNameSetGlobalProperties, - @4: SDLNameResetGlobalProperties, - @5: SDLNameAddCommand, - @6: SDLNameDeleteCommand, - @7: SDLNameAddSubMenu, - @8: SDLNameDeleteSubMenu, - @9: SDLNameCreateInteractionChoiceSet, - @10: SDLNamePerformInteraction, - @11: SDLNameDeleteInteractionChoiceSet, - @12: SDLNameAlert, - @13: SDLNameShow, - @14: SDLNameSpeak, - @15: SDLNameSetMediaClockTimer, - @16: SDLNamePerformAudioPassThru, - @17: SDLNameEndAudioPassThru, - @18: SDLNameSubscribeButton, - @19: SDLNameUnsubscribeButton, - @20: SDLNameSubscribeVehicleData, - @21: SDLNameUnsubscribeVehicleData, - @22: SDLNameGetVehicleData, - @23: SDLNameReadDID, - @24: SDLNameGetDTCs, - @25: SDLNameScrollableMessage, - @26: SDLNameSlider, - @27: SDLNameShowConstantTBT, - @28: SDLNameAlertManeuver, - @29: SDLNameUpdateTurnList, - @30: SDLNameChangeRegistration, - @31: SDLNameGenericResponse, - @32: SDLNamePutFile, - @33: SDLNameDeleteFile, - @34: SDLNameListFiles, - @35: SDLNameSetAppIcon, - @36: SDLNameSetDisplayLayout, - @37: SDLNameDiagnosticMessage, - @38: SDLNameSystemRequest, - @39: SDLNameSendLocation, - @40: SDLNameDialNumber, - @41: SDLNameButtonPress, - @43: SDLNameGetInteriorVehicleData, - @44: SDLNameSetInteriorVehicleData, - @45: SDLNameGetWayPoints, - @46: SDLNameSubscribeWayPoints, - @47: SDLNameUnsubscribeWayPoints, - @48: SDLNameGetSystemCapability, - @49: SDLNameSendHapticData, - @32768: SDLNameOnHMIStatus, - @32769: SDLNameOnAppInterfaceUnregistered, - @32770: SDLNameOnButtonEvent, - @32771: SDLNameOnButtonPress, - @32772: SDLNameOnVehicleData, - @32773: SDLNameOnCommand, - @32774: SDLNameOnTBTClientState, - @32775: SDLNameOnDriverDistraction, - @32776: SDLNameOnPermissionsChange, - @32777: SDLNameOnAudioPassThru, - @32778: SDLNameOnLanguageChange, - @32779: SDLNameOnKeyboardInput, - @32780: SDLNameOnTouchEvent, - @32781: SDLNameOnSystemRequest, - @32782: SDLNameOnHashChange, - @32783: SDLNameOnInteriorVehicleData, - @32784: SDLNameOnWayPointChange, - @32785: SDLNameOnRCStatus, - @65536: SDLNameEncodedSyncPData, - @65537: SDLNameSyncPData, - @98304: SDLNameOnEncodedSyncPData, - @98305: SDLNameOnSyncPData + @0: SDLRPCFunctionNameReserved, + @1: SDLRPCFunctionNameRegisterAppInterface, + @2: SDLRPCFunctionNameUnregisterAppInterface, + @3: SDLRPCFunctionNameSetGlobalProperties, + @4: SDLRPCFunctionNameResetGlobalProperties, + @5: SDLRPCFunctionNameAddCommand, + @6: SDLRPCFunctionNameDeleteCommand, + @7: SDLRPCFunctionNameAddSubMenu, + @8: SDLRPCFunctionNameDeleteSubMenu, + @9: SDLRPCFunctionNameCreateInteractionChoiceSet, + @10: SDLRPCFunctionNamePerformInteraction, + @11: SDLRPCFunctionNameDeleteInteractionChoiceSet, + @12: SDLRPCFunctionNameAlert, + @13: SDLRPCFunctionNameShow, + @14: SDLRPCFunctionNameSpeak, + @15: SDLRPCFunctionNameSetMediaClockTimer, + @16: SDLRPCFunctionNamePerformAudioPassThru, + @17: SDLRPCFunctionNameEndAudioPassThru, + @18: SDLRPCFunctionNameSubscribeButton, + @19: SDLRPCFunctionNameUnsubscribeButton, + @20: SDLRPCFunctionNameSubscribeVehicleData, + @21: SDLRPCFunctionNameUnsubscribeVehicleData, + @22: SDLRPCFunctionNameGetVehicleData, + @23: SDLRPCFunctionNameReadDID, + @24: SDLRPCFunctionNameGetDTCs, + @25: SDLRPCFunctionNameScrollableMessage, + @26: SDLRPCFunctionNameSlider, + @27: SDLRPCFunctionNameShowConstantTBT, + @28: SDLRPCFunctionNameAlertManeuver, + @29: SDLRPCFunctionNameUpdateTurnList, + @30: SDLRPCFunctionNameChangeRegistration, + @31: SDLRPCFunctionNameGenericResponse, + @32: SDLRPCFunctionNamePutFile, + @33: SDLRPCFunctionNameDeleteFile, + @34: SDLRPCFunctionNameListFiles, + @35: SDLRPCFunctionNameSetAppIcon, + @36: SDLRPCFunctionNameSetDisplayLayout, + @37: SDLRPCFunctionNameDiagnosticMessage, + @38: SDLRPCFunctionNameSystemRequest, + @39: SDLRPCFunctionNameSendLocation, + @40: SDLRPCFunctionNameDialNumber, + @41: SDLRPCFunctionNameButtonPress, + @43: SDLRPCFunctionNameGetInteriorVehicleData, + @44: SDLRPCFunctionNameSetInteriorVehicleData, + @45: SDLRPCFunctionNameGetWayPoints, + @46: SDLRPCFunctionNameSubscribeWayPoints, + @47: SDLRPCFunctionNameUnsubscribeWayPoints, + @48: SDLRPCFunctionNameGetSystemCapability, + @49: SDLRPCFunctionNameSendHapticData, + @50: SDLRPCFunctionNameSetCloudAppProperties, + @51: SDLRPCFunctionNameGetCloudAppProperties, + @52: SDLRPCFunctionNamePublishAppService, + @53: SDLRPCFunctionNameGetAppServiceData, + @54: SDLRPCFunctionNameGetFile, + @55: SDLRPCFunctionNamePerformAppServiceInteraction, + @32768: SDLRPCFunctionNameOnHMIStatus, + @32769: SDLRPCFunctionNameOnAppInterfaceUnregistered, + @32770: SDLRPCFunctionNameOnButtonEvent, + @32771: SDLRPCFunctionNameOnButtonPress, + @32772: SDLRPCFunctionNameOnVehicleData, + @32773: SDLRPCFunctionNameOnCommand, + @32774: SDLRPCFunctionNameOnTBTClientState, + @32775: SDLRPCFunctionNameOnDriverDistraction, + @32776: SDLRPCFunctionNameOnPermissionsChange, + @32777: SDLRPCFunctionNameOnAudioPassThru, + @32778: SDLRPCFunctionNameOnLanguageChange, + @32779: SDLRPCFunctionNameOnKeyboardInput, + @32780: SDLRPCFunctionNameOnTouchEvent, + @32781: SDLRPCFunctionNameOnSystemRequest, + @32782: SDLRPCFunctionNameOnHashChange, + @32783: SDLRPCFunctionNameOnInteriorVehicleData, + @32784: SDLRPCFunctionNameOnWayPointChange, + @32785: SDLRPCFunctionNameOnRCStatus, + @32786: SDLRPCFunctionNameOnAppServiceData, + @32787: SDLRPCFunctionNameOnSystemCapabilityUpdated, + @65536: SDLRPCFunctionNameEncodedSyncPData, + @65537: SDLRPCFunctionNameSyncPData, + @98304: SDLRPCFunctionNameOnEncodedSyncPData, + @98305: SDLRPCFunctionNameOnSyncPData }; return self; } -- (nullable SDLName)functionNameForId:(UInt32)functionID { +- (nullable SDLRPCFunctionName)functionNameForId:(UInt32)functionID { return self.functionIds[@(functionID)]; } -- (nullable NSNumber<SDLInt> *)functionIdForName:(SDLName)functionName { +- (nullable NSNumber<SDLInt> *)functionIdForName:(SDLRPCFunctionName)functionName { return [[self.functionIds allKeysForObject:functionName] firstObject]; } diff --git a/SmartDeviceLink/SDLGPSData.m b/SmartDeviceLink/SDLGPSData.m index eda7edb31..11caf5f5c 100644 --- a/SmartDeviceLink/SDLGPSData.m +++ b/SmartDeviceLink/SDLGPSData.m @@ -4,154 +4,156 @@ #import "SDLGPSData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGPSData - (void)setLongitudeDegrees:(NSNumber<SDLFloat> *)longitudeDegrees { - [store sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; + [store sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; } - (NSNumber<SDLFloat> *)longitudeDegrees { - return [store sdl_objectForName:SDLNameLongitudeDegrees]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:&error]; } - (void)setLatitudeDegrees:(NSNumber<SDLFloat> *)latitudeDegrees { - [store sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; + [store sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; } - (NSNumber<SDLFloat> *)latitudeDegrees { - return [store sdl_objectForName:SDLNameLatitudeDegrees]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:&error]; } - (void)setUtcYear:(nullable NSNumber<SDLInt> *)utcYear { - [store sdl_setObject:utcYear forName:SDLNameUTCYear]; + [store sdl_setObject:utcYear forName:SDLRPCParameterNameUTCYear]; } - (nullable NSNumber<SDLInt> *)utcYear { - return [store sdl_objectForName:SDLNameUTCYear]; + return [store sdl_objectForName:SDLRPCParameterNameUTCYear ofClass:NSNumber.class error:nil]; } - (void)setUtcMonth:(nullable NSNumber<SDLInt> *)utcMonth { - [store sdl_setObject:utcMonth forName:SDLNameUTCMonth]; + [store sdl_setObject:utcMonth forName:SDLRPCParameterNameUTCMonth]; } - (nullable NSNumber<SDLInt> *)utcMonth { - return [store sdl_objectForName:SDLNameUTCMonth]; + return [store sdl_objectForName:SDLRPCParameterNameUTCMonth ofClass:NSNumber.class error:nil]; } - (void)setUtcDay:(nullable NSNumber<SDLInt> *)utcDay { - [store sdl_setObject:utcDay forName:SDLNameUTCDay]; + [store sdl_setObject:utcDay forName:SDLRPCParameterNameUTCDay]; } - (nullable NSNumber<SDLInt> *)utcDay { - return [store sdl_objectForName:SDLNameUTCDay]; + return [store sdl_objectForName:SDLRPCParameterNameUTCDay ofClass:NSNumber.class error:nil]; } - (void)setUtcHours:(nullable NSNumber<SDLInt> *)utcHours { - [store sdl_setObject:utcHours forName:SDLNameUTCHours]; + [store sdl_setObject:utcHours forName:SDLRPCParameterNameUTCHours]; } - (nullable NSNumber<SDLInt> *)utcHours { - return [store sdl_objectForName:SDLNameUTCHours]; + return [store sdl_objectForName:SDLRPCParameterNameUTCHours ofClass:NSNumber.class error:nil]; } - (void)setUtcMinutes:(nullable NSNumber<SDLInt> *)utcMinutes { - [store sdl_setObject:utcMinutes forName:SDLNameUTCMinutes]; + [store sdl_setObject:utcMinutes forName:SDLRPCParameterNameUTCMinutes]; } - (nullable NSNumber<SDLInt> *)utcMinutes { - return [store sdl_objectForName:SDLNameUTCMinutes]; + return [store sdl_objectForName:SDLRPCParameterNameUTCMinutes ofClass:NSNumber.class error:nil]; } - (void)setUtcSeconds:(nullable NSNumber<SDLInt> *)utcSeconds { - [store sdl_setObject:utcSeconds forName:SDLNameUTCSeconds]; + [store sdl_setObject:utcSeconds forName:SDLRPCParameterNameUTCSeconds]; } - (nullable NSNumber<SDLInt> *)utcSeconds { - return [store sdl_objectForName:SDLNameUTCSeconds]; + return [store sdl_objectForName:SDLRPCParameterNameUTCSeconds ofClass:NSNumber.class error:nil]; } - (void)setCompassDirection:(nullable SDLCompassDirection)compassDirection { - [store sdl_setObject:compassDirection forName:SDLNameCompassDirection]; + [store sdl_setObject:compassDirection forName:SDLRPCParameterNameCompassDirection]; } - (nullable SDLCompassDirection)compassDirection { - return [store sdl_objectForName:SDLNameCompassDirection]; + return [store sdl_enumForName:SDLRPCParameterNameCompassDirection error:nil]; } - (void)setPdop:(nullable NSNumber<SDLFloat> *)pdop { - [store sdl_setObject:pdop forName:SDLNamePDOP]; + [store sdl_setObject:pdop forName:SDLRPCParameterNamePDOP]; } - (nullable NSNumber<SDLFloat> *)pdop { - return [store sdl_objectForName:SDLNamePDOP]; + return [store sdl_objectForName:SDLRPCParameterNamePDOP ofClass:NSNumber.class error:nil]; } - (void)setHdop:(nullable NSNumber<SDLFloat> *)hdop { - [store sdl_setObject:hdop forName:SDLNameHDOP]; + [store sdl_setObject:hdop forName:SDLRPCParameterNameHDOP]; } - (nullable NSNumber<SDLFloat> *)hdop { - return [store sdl_objectForName:SDLNameHDOP]; + return [store sdl_objectForName:SDLRPCParameterNameHDOP ofClass:NSNumber.class error:nil]; } - (void)setVdop:(nullable NSNumber<SDLFloat> *)vdop { - [store sdl_setObject:vdop forName:SDLNameVDOP]; + [store sdl_setObject:vdop forName:SDLRPCParameterNameVDOP]; } - (nullable NSNumber<SDLFloat> *)vdop { - return [store sdl_objectForName:SDLNameVDOP]; + return [store sdl_objectForName:SDLRPCParameterNameVDOP ofClass:NSNumber.class error:nil]; } - (void)setActual:(nullable NSNumber<SDLBool> *)actual { - [store sdl_setObject:actual forName:SDLNameActual]; + [store sdl_setObject:actual forName:SDLRPCParameterNameActual]; } - (nullable NSNumber<SDLBool> *)actual { - return [store sdl_objectForName:SDLNameActual]; + return [store sdl_objectForName:SDLRPCParameterNameActual ofClass:NSNumber.class error:nil]; } - (void)setSatellites:(nullable NSNumber<SDLInt> *)satellites { - [store sdl_setObject:satellites forName:SDLNameSatellites]; + [store sdl_setObject:satellites forName:SDLRPCParameterNameSatellites]; } - (nullable NSNumber<SDLInt> *)satellites { - return [store sdl_objectForName:SDLNameSatellites]; + return [store sdl_objectForName:SDLRPCParameterNameSatellites ofClass:NSNumber.class error:nil]; } - (void)setDimension:(nullable SDLDimension)dimension { - [store sdl_setObject:dimension forName:SDLNameDimension]; + [store sdl_setObject:dimension forName:SDLRPCParameterNameDimension]; } - (nullable SDLDimension)dimension { - return [store sdl_objectForName:SDLNameDimension]; + return [store sdl_enumForName:SDLRPCParameterNameDimension error:nil]; } - (void)setAltitude:(nullable NSNumber<SDLFloat> *)altitude { - [store sdl_setObject:altitude forName:SDLNameAltitude]; + [store sdl_setObject:altitude forName:SDLRPCParameterNameAltitude]; } - (nullable NSNumber<SDLFloat> *)altitude { - return [store sdl_objectForName:SDLNameAltitude]; + return [store sdl_objectForName:SDLRPCParameterNameAltitude ofClass:NSNumber.class error:nil]; } - (void)setHeading:(nullable NSNumber<SDLFloat> *)heading { - [store sdl_setObject:heading forName:SDLNameHeading]; + [store sdl_setObject:heading forName:SDLRPCParameterNameHeading]; } - (nullable NSNumber<SDLFloat> *)heading { - return [store sdl_objectForName:SDLNameHeading]; + return [store sdl_objectForName:SDLRPCParameterNameHeading ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber<SDLFloat> *)speed { - [store sdl_setObject:speed forName:SDLNameSpeed]; + [store sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber<SDLFloat> *)speed { - return [store sdl_objectForName:SDLNameSpeed]; + return [store sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGenericResponse.m b/SmartDeviceLink/SDLGenericResponse.m index 6c3849018..949c4c061 100644 --- a/SmartDeviceLink/SDLGenericResponse.m +++ b/SmartDeviceLink/SDLGenericResponse.m @@ -5,14 +5,15 @@ #import "SDLGenericResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGenericResponse - (instancetype)init { - if (self = [super initWithName:SDLNameGenericResponse]) { + if (self = [super initWithName:SDLRPCFunctionNameGenericResponse]) { } return self; } diff --git a/SmartDeviceLink/SDLGetAppServiceData.h b/SmartDeviceLink/SDLGetAppServiceData.h new file mode 100644 index 000000000..e1882a350 --- /dev/null +++ b/SmartDeviceLink/SDLGetAppServiceData.h @@ -0,0 +1,61 @@ +// +// SDLGetAppServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLAppServiceType.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This request asks the module for current data related to the specific service. It also includes an option to subscribe to that service for future updates. + */ +@interface SDLGetAppServiceData : SDLRPCRequest + +/** + * Convenience init for service type. + * + * @param serviceType The app service type + * @return A SDLGetAppServiceData object + */ +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType; + +/** + * Convenience init for subscribing to a service type. + * + * @param serviceType The app service type + * @return A SDLGetAppServiceData object + */ +- (instancetype)initAndSubscribeToAppServiceType:(SDLAppServiceType)serviceType; + +/** + Convenience init for unsubscribing to a service type + + @param serviceType The app service type + @return A SDLGetAppServiceData object + */ +- (instancetype)initAndUnsubscribeToAppServiceType:(SDLAppServiceType)serviceType; + +/** + * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */ +@property (strong, nonatomic) NSString *serviceType; + +/** + * If true, the consumer is requesting to subscribe to all future updates from the service publisher. If false, the consumer doesn't wish to subscribe and should be unsubscribed if it was previously subscribed. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *subscribe; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetAppServiceData.m b/SmartDeviceLink/SDLGetAppServiceData.m new file mode 100644 index 000000000..d8fb73e65 --- /dev/null +++ b/SmartDeviceLink/SDLGetAppServiceData.m @@ -0,0 +1,74 @@ +// +// SDLGetAppServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetAppServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetAppServiceData + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetAppServiceData]) { + } + return self; +} + +- (instancetype)initWithAppServiceType:(SDLAppServiceType)serviceType { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceType = serviceType; + + return self; +} + +- (instancetype)initAndSubscribeToAppServiceType:(SDLAppServiceType)serviceType { + return [self initWithServiceType:serviceType subscribe:YES]; +} + +- (instancetype)initAndUnsubscribeToAppServiceType:(SDLAppServiceType)serviceType { + return [self initWithServiceType:serviceType subscribe:NO]; +} + +- (instancetype)initWithServiceType:(SDLAppServiceType)serviceType subscribe:(BOOL)subscribe { + self = [self initWithAppServiceType:serviceType]; + if (!self) { + return nil; + } + + self.subscribe = @(subscribe); + + return self; +} + +- (void)setServiceType:(NSString *)serviceType { + [parameters sdl_setObject:serviceType forName:SDLRPCParameterNameServiceType]; +} + +- (NSString *)serviceType { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameServiceType ofClass:NSString.class error:&error]; +} + +- (void)setSubscribe:(nullable NSNumber<SDLBool> *)subscribe { + [parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; +} + +- (nullable NSNumber<SDLBool> *)subscribe { + return [parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetAppServiceDataResponse.h b/SmartDeviceLink/SDLGetAppServiceDataResponse.h new file mode 100644 index 000000000..ca94c1790 --- /dev/null +++ b/SmartDeviceLink/SDLGetAppServiceDataResponse.h @@ -0,0 +1,37 @@ +// +// SDLGetAppServiceDataResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +@class SDLAppServiceData; + +NS_ASSUME_NONNULL_BEGIN + +/* + * This response includes the data that was requested from the specific service. + */ +@interface SDLGetAppServiceDataResponse : SDLRPCResponse + +/** + * Convenience init. + * + * @param serviceData Contains all the current data of the app service + * @return A SDLGetAppServiceDataResponse object + */ +- (instancetype)initWithAppServiceData:(SDLAppServiceData *)serviceData; + +/** + * Contains all the current data of the app service. + * + * SDLAppServiceData, Optional + */ +@property (nullable, strong, nonatomic) SDLAppServiceData *serviceData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetAppServiceDataResponse.m b/SmartDeviceLink/SDLGetAppServiceDataResponse.m new file mode 100644 index 000000000..de67e4cc8 --- /dev/null +++ b/SmartDeviceLink/SDLGetAppServiceDataResponse.m @@ -0,0 +1,47 @@ +// +// SDLGetAppServiceDataResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetAppServiceDataResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceData.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetAppServiceDataResponse + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetAppServiceData]) { + } + return self; +} + +- (instancetype)initWithAppServiceData:(SDLAppServiceData *)serviceData { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceData = serviceData; + + return self; +} + +- (void)setServiceData:(nullable SDLAppServiceData *)serviceData { + [parameters sdl_setObject:serviceData forName:SDLRPCParameterNameServiceData]; +} + +- (nullable SDLAppServiceData *)serviceData { + return [parameters sdl_objectForName:SDLRPCParameterNameServiceData ofClass:SDLAppServiceData.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetCloudAppProperties.h b/SmartDeviceLink/SDLGetCloudAppProperties.h new file mode 100644 index 000000000..9103b3a91 --- /dev/null +++ b/SmartDeviceLink/SDLGetCloudAppProperties.h @@ -0,0 +1,35 @@ +// +// SDLGetCloudAppProperties.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * RPC used to get the current properties of a cloud application. + */ +@interface SDLGetCloudAppProperties : SDLRPCRequest + +/** + * Convenience init. + * + * @param appID The id of the cloud app + * @return A SDLGetCloudAppProperties object + */ +- (instancetype)initWithAppID:(NSString *)appID; + +/** + * The id of the cloud app. + * + * String, Required, maxlength="100" + */ +@property (strong, nonatomic) NSString *appID; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetCloudAppProperties.m b/SmartDeviceLink/SDLGetCloudAppProperties.m new file mode 100644 index 000000000..c6ab76e5c --- /dev/null +++ b/SmartDeviceLink/SDLGetCloudAppProperties.m @@ -0,0 +1,47 @@ +// +// SDLGetCloudAppProperties.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetCloudAppProperties.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetCloudAppProperties + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetCloudAppProperties]) { + } + return self; +} + +- (instancetype)initWithAppID:(NSString *)appID { + self = [self init]; + if (!self) { + return nil; + } + + self.appID = appID; + + return self; +} + +- (void)setAppID:(NSString *)appID { + [parameters sdl_setObject:appID forName:SDLRPCParameterNameAppId]; +} + +- (NSString *)appID { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h b/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h new file mode 100644 index 000000000..356bd32e0 --- /dev/null +++ b/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.h @@ -0,0 +1,38 @@ +// +// SDLGetCloudAppPropertiesResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +@class SDLCloudAppProperties; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * The response to GetCloudAppProperties + */ +@interface SDLGetCloudAppPropertiesResponse : SDLRPCResponse + +/** + * Convenience init. + * + * @param properties The requested cloud application properties + * @return A SDLGetCloudAppPropertiesResponse object + */ +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties; + +/** + * The requested cloud application properties. + * + * SDLCloudAppProperties, Optional + */ +@property (nullable, strong, nonatomic) SDLCloudAppProperties *properties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m b/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m new file mode 100644 index 000000000..64d7a011d --- /dev/null +++ b/SmartDeviceLink/SDLGetCloudAppPropertiesResponse.m @@ -0,0 +1,48 @@ +// +// SDLGetCloudAppPropertiesResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetCloudAppPropertiesResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLCloudAppProperties.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetCloudAppPropertiesResponse + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetCloudAppProperties]) { + } + return self; +} + +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties { + self = [self init]; + if (!self) { + return nil; + } + + self.properties = properties; + + return self; +} + +- (void)setProperties:(nullable SDLCloudAppProperties *)properties { + [parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; +} + +- (nullable SDLCloudAppProperties *)properties { + return [parameters sdl_objectForName:SDLRPCParameterNameProperties ofClass:SDLCloudAppProperties.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetDTCs.m b/SmartDeviceLink/SDLGetDTCs.m index 3bbd551ff..61b7e0b74 100644 --- a/SmartDeviceLink/SDLGetDTCs.m +++ b/SmartDeviceLink/SDLGetDTCs.m @@ -5,14 +5,15 @@ #import "SDLGetDTCs.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetDTCs - (instancetype)init { - if (self = [super initWithName:SDLNameGetDTCs]) { + if (self = [super initWithName:SDLRPCFunctionNameGetDTCs]) { } return self; } @@ -40,19 +41,20 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setEcuName:(NSNumber<SDLInt> *)ecuName { - [parameters sdl_setObject:ecuName forName:SDLNameECUName]; + [parameters sdl_setObject:ecuName forName:SDLRPCParameterNameECUName]; } - (NSNumber<SDLInt> *)ecuName { - return [parameters sdl_objectForName:SDLNameECUName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameECUName ofClass:NSNumber.class error:&error]; } - (void)setDtcMask:(nullable NSNumber<SDLInt> *)dtcMask { - [parameters sdl_setObject:dtcMask forName:SDLNameDTCMask]; + [parameters sdl_setObject:dtcMask forName:SDLRPCParameterNameDTCMask]; } - (nullable NSNumber<SDLInt> *)dtcMask { - return [parameters sdl_objectForName:SDLNameDTCMask]; + return [parameters sdl_objectForName:SDLRPCParameterNameDTCMask ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetDTCsResponse.m b/SmartDeviceLink/SDLGetDTCsResponse.m index 898a36de6..ce31face1 100644 --- a/SmartDeviceLink/SDLGetDTCsResponse.m +++ b/SmartDeviceLink/SDLGetDTCsResponse.m @@ -5,32 +5,35 @@ #import "SDLGetDTCsResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetDTCsResponse - (instancetype)init { - if (self = [super initWithName:SDLNameGetDTCs]) { + if (self = [super initWithName:SDLRPCFunctionNameGetDTCs]) { } return self; } - (void)setEcuHeader:(NSNumber<SDLInt> *)ecuHeader { - [parameters sdl_setObject:ecuHeader forName:SDLNameECUHeader]; + [parameters sdl_setObject:ecuHeader forName:SDLRPCParameterNameECUHeader]; } - (NSNumber<SDLInt> *)ecuHeader { - return [parameters sdl_objectForName:SDLNameECUHeader]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameECUHeader ofClass:NSNumber.class error:&error]; } - (void)setDtc:(NSArray<NSString *> *)dtc { - [parameters sdl_setObject:dtc forName:SDLNameDTC]; + [parameters sdl_setObject:dtc forName:SDLRPCParameterNameDTC]; } - (NSArray<NSString *> *)dtc { - return [parameters sdl_objectForName:SDLNameDTC]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameDTC ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLGetFile.h b/SmartDeviceLink/SDLGetFile.h new file mode 100644 index 000000000..bdc7936d9 --- /dev/null +++ b/SmartDeviceLink/SDLGetFile.h @@ -0,0 +1,86 @@ +// +// SDLGetFile.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLFileType.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * This request is sent to the module to retrieve a file. + */ +@interface SDLGetFile : SDLRPCRequest + +/** + * Convenience init for required parameters. + * + * @param fileName File name that should be retrieved. + * @return A SDLGetFile object + */ +- (instancetype)initWithFileName:(NSString *)fileName; + +/** + * Convenience init for sending a small file. + * + * @param fileName File name that should be retrieved. + * @param appServiceId ID of the service that should have uploaded the requested file + * @param fileType Selected file type + * @return A SDLGetFile object + */ +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType; + +/** + * Convenience init for sending a large file in multiple data chunks. + * + * @param fileName File name that should be retrieved. + * @param appServiceId ID of the service that should have uploaded the requested file + * @param fileType Selected file type + * @param offset Offset in bytes for resuming partial data chunks + * @param length Length in bytes for resuming partial data chunks + * @return A SDLGetFile object + */ +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType offset:(UInt32)offset length:(UInt32)length; + +/** + * File name that should be retrieved. + * + * String, Required, Max string length 255 chars + */ +@property (strong, nonatomic) NSString *fileName; + +/** + * ID of the service that should have uploaded the requested file. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *appServiceId; + +/** + * Selected file type. + * + * SDLFileType, Optional + */ +@property (nullable, strong, nonatomic) SDLFileType fileType; + +/** + * Optional offset in bytes for resuming partial data chunks. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *offset; + +/** + * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *length; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetFile.m b/SmartDeviceLink/SDLGetFile.m new file mode 100644 index 000000000..3bd11d2e9 --- /dev/null +++ b/SmartDeviceLink/SDLGetFile.m @@ -0,0 +1,104 @@ +// +// SDLGetFile.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetFile.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetFile + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetFile]) { + } + return self; +} + +- (instancetype)initWithFileName:(NSString *)fileName { + self = [self init]; + if (!self) { + return nil; + } + + self.fileName = fileName; + + return self; +} + +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType { + self = [self initWithFileName:fileName]; + if (!self) { + return nil; + } + + self.appServiceId = appServiceId; + self.fileType = fileType; + + return self; +} + +- (instancetype)initWithFileName:(NSString *)fileName appServiceId:(nullable NSString *)appServiceId fileType:(nullable SDLFileType)fileType offset:(UInt32)offset length:(UInt32)length { + self = [self initWithFileName:fileName appServiceId:appServiceId fileType:fileType]; + if (!self) { + return nil; + } + + self.offset = @(offset); + self.length = @(length); + + return self; +} + +- (void)setFileName:(NSString *)fileName { + [parameters sdl_setObject:fileName forName:SDLRPCParameterNameFilename]; +} + +- (NSString *)fileName { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameFilename ofClass:NSString.class error:&error]; +} + +- (void)setAppServiceId:(nullable NSString *)appServiceId { + [parameters sdl_setObject:appServiceId forName:SDLRPCParameterNameAppServiceId]; +} + +- (nullable NSString *)appServiceId { + return [parameters sdl_objectForName:SDLRPCParameterNameAppServiceId ofClass:NSString.class error:nil]; +} + +- (void)setFileType:(nullable SDLFileType)fileType { + [parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; +} + +- (nullable SDLFileType)fileType { + return [parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; +} + +- (void)setOffset:(nullable NSNumber<SDLUInt> *)offset { + [parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; +} + +- (nullable NSNumber<SDLUInt> *)offset { + return [parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; +} + +- (void)setLength:(nullable NSNumber<SDLUInt> *)length { + [parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; +} + +- (nullable NSNumber<SDLUInt> *)length { + return [parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetFileResponse.h b/SmartDeviceLink/SDLGetFileResponse.h new file mode 100644 index 000000000..cf6a5cef9 --- /dev/null +++ b/SmartDeviceLink/SDLGetFileResponse.h @@ -0,0 +1,59 @@ +// +// SDLGetFileResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +#import "SDLFileType.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGetFileResponse : SDLRPCResponse + +/** + * Convenience init for all parameters. + * + * @param offset Optional offset in bytes for resuming partial data chunks + * @param length Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded + * @param fileType File type that is being sent in response + * @param crc Additional CRC32 checksum to protect data integrity up to 512 Mbits + * @return A SDLGetFileResponse object + */ +- (instancetype)initWithOffset:(UInt32)offset length:(UInt32)length fileType:(nullable SDLFileType)fileType crc:(UInt32)crc; + +/** + * Optional offset in bytes for resuming partial data chunks. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *offset; + +/** + * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *length; + +/** + * File type that is being sent in response. + * + * SDLFileType, Optional + */ +@property (nullable, strong, nonatomic) SDLFileType fileType; + +/** + * Additional CRC32 checksum to protect data integrity up to 512 Mbits. + * + * Integer, Optional, minvalue="0" maxvalue="4294967295" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *crc; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetFileResponse.m b/SmartDeviceLink/SDLGetFileResponse.m new file mode 100644 index 000000000..14e86e8ce --- /dev/null +++ b/SmartDeviceLink/SDLGetFileResponse.m @@ -0,0 +1,73 @@ +// +// SDLGetFileResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLGetFileResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetFileResponse + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameGetFile]) { + } + return self; +} + +- (instancetype)initWithOffset:(UInt32)offset length:(UInt32)length fileType:(nullable SDLFileType)fileType crc:(UInt32)crc { + self = [self init]; + if (!self) { + return nil; + } + + self.offset = @(offset); + self.length = @(length); + self.fileType = fileType; + self.crc = @(crc); + + return self; +} + +- (void)setOffset:(nullable NSNumber<SDLUInt> *)offset { + [parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; +} + +- (nullable NSNumber<SDLUInt> *)offset { + return [parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; +} + +- (void)setLength:(nullable NSNumber<SDLUInt> *)length { + [parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; +} + +- (nullable NSNumber<SDLUInt> *)length { + return [parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; +} + +- (void)setFileType:(nullable SDLFileType)fileType { + [parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; +} + +- (nullable SDLFileType)fileType { + return [parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; +} + +- (void)setCrc:(nullable NSNumber<SDLUInt> *)crc { + [parameters sdl_setObject:crc forName:SDLRPCParameterNameCRC]; +} + +- (nullable NSNumber<SDLUInt> *)crc { + return [parameters sdl_objectForName:SDLRPCParameterNameCRC ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.m b/SmartDeviceLink/SDLGetInteriorVehicleData.m index efdf2c3b4..f91938fa3 100755 --- a/SmartDeviceLink/SDLGetInteriorVehicleData.m +++ b/SmartDeviceLink/SDLGetInteriorVehicleData.m @@ -3,7 +3,8 @@ // #import "SDLGetInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -11,7 +12,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLGetInteriorVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameGetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleData]) { } return self; } @@ -52,19 +53,20 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleType:(SDLModuleType)moduleType { - [parameters sdl_setObject:moduleType forName:SDLNameModuleType]; + [parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; } - (SDLModuleType)moduleType { - return [parameters sdl_objectForName:SDLNameModuleType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; } - (void)setSubscribe:(nullable NSNumber<SDLBool> *)subscribe { - [parameters sdl_setObject:subscribe forName:SDLNameSubscribe]; + [parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; } - (nullable NSNumber<SDLBool> *)subscribe { - return [parameters sdl_objectForName:SDLNameSubscribe]; + return [parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m index 43491be57..3a7096cb3 100644 --- a/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m +++ b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m @@ -4,7 +4,8 @@ #import "SDLGetInteriorVehicleDataResponse.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -13,25 +14,26 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLGetInteriorVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameGetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleData]) { } return self; } - (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; + [parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } - (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } - (void)setIsSubscribed:(nullable NSNumber<SDLBool> *)isSubscribed { - [parameters sdl_setObject:isSubscribed forName:SDLNameIsSubscribed]; + [parameters sdl_setObject:isSubscribed forName:SDLRPCParameterNameIsSubscribed]; } - (nullable NSNumber<SDLBool> *)isSubscribed { - return [parameters sdl_objectForName:SDLNameIsSubscribed]; + return [parameters sdl_objectForName:SDLRPCParameterNameIsSubscribed ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetSystemCapability.h b/SmartDeviceLink/SDLGetSystemCapability.h index 7d7490eeb..b81704e35 100644 --- a/SmartDeviceLink/SDLGetSystemCapability.h +++ b/SmartDeviceLink/SDLGetSystemCapability.h @@ -13,17 +13,42 @@ NS_ASSUME_NONNULL_BEGIN +/* + * Request for expanded information about a supported system/HMI capability + */ @interface SDLGetSystemCapability : SDLRPCRequest +/** + * Convenience init + * + * @param type The type of system capability + * @return A SDLSystemCapabilityType object + */ - (instancetype)initWithType:(SDLSystemCapabilityType)type; /** - They type of capability you'd like to receive in the response. + * Convenience init + * + * @param type The type of system capability + * @param subscribe Whether or not to subscribe to updates of the supplied service capability type + * @return A SDLSystemCapabilityType object + */ +- (instancetype)initWithType:(SDLSystemCapabilityType)type subscribe:(BOOL)subscribe; - Mandatory +/** + * The type of system capability to get more information on + * + * SDLSystemCapabilityType, Required */ @property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; +/** + * Flag to subscribe to updates of the supplied service capability type. If true, the requester will be subscribed. If false, the requester will not be subscribed and be removed as a subscriber if it was previously subscribed. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *subscribe; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetSystemCapability.m b/SmartDeviceLink/SDLGetSystemCapability.m index 5bc0e2b7f..df14d5212 100644 --- a/SmartDeviceLink/SDLGetSystemCapability.m +++ b/SmartDeviceLink/SDLGetSystemCapability.m @@ -9,7 +9,8 @@ #import "SDLGetSystemCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemCapabilityType.h" NS_ASSUME_NONNULL_BEGIN @@ -17,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLGetSystemCapability - (instancetype)init { - if (self = [super initWithName:SDLNameGetSystemCapability]) { + if (self = [super initWithName:SDLRPCFunctionNameGetSystemCapability]) { } return self; } @@ -33,12 +34,32 @@ NS_ASSUME_NONNULL_BEGIN return self; } +- (instancetype)initWithType:(SDLSystemCapabilityType)type subscribe:(BOOL)subscribe { + self = [self initWithType:type]; + if (!self) { + return nil; + } + + self.subscribe = @(subscribe); + + return self; +} + - (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { - [parameters sdl_setObject:type forName:SDLNameSystemCapabilityType]; + [parameters sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType]; } - (SDLSystemCapabilityType)systemCapabilityType { - return [parameters sdl_objectForName:SDLNameSystemCapabilityType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameSystemCapabilityType error:&error]; +} + +- (void)setSubscribe:(nullable NSNumber<SDLBool> *)subscribe { + [parameters sdl_setObject:subscribe forName:SDLRPCParameterNameSubscribe]; +} + +- (nullable NSNumber<SDLBool> *)subscribe { + return [parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetSystemCapabilityResponse.m b/SmartDeviceLink/SDLGetSystemCapabilityResponse.m index 00c1cf7f4..e1cd63f90 100644 --- a/SmartDeviceLink/SDLGetSystemCapabilityResponse.m +++ b/SmartDeviceLink/SDLGetSystemCapabilityResponse.m @@ -9,7 +9,8 @@ #import "SDLGetSystemCapabilityResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemCapability.h" @@ -18,7 +19,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLGetSystemCapabilityResponse - (instancetype)init { - self = [super initWithName:SDLNameGetSystemCapability]; + self = [super initWithName:SDLRPCFunctionNameGetSystemCapability]; if (!self) { return nil; } @@ -27,11 +28,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setSystemCapability:(SDLSystemCapability *)systemCapability { - [parameters sdl_setObject:systemCapability forName:SDLNameSystemCapability]; + [parameters sdl_setObject:systemCapability forName:SDLRPCParameterNameSystemCapability]; } - (SDLSystemCapability *)systemCapability { - return [parameters sdl_objectForName:SDLNameSystemCapability ofClass:SDLSystemCapability.class]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSystemCapability ofClass:SDLSystemCapability.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLGetVehicleData.h b/SmartDeviceLink/SDLGetVehicleData.h index 82b3f7ce4..b9e0fca30 100644 --- a/SmartDeviceLink/SDLGetVehicleData.h +++ b/SmartDeviceLink/SDLGetVehicleData.h @@ -47,7 +47,7 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Get wiperStatus data * @return A SDLGetVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo emergencyEvent:(BOOL)emergencyEvent engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); /** * Convenience init for getting data for all possible vehicle data items. @@ -83,7 +83,44 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Get wiperStatus data * @return A SDLGetVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus; +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); + +/** + * Convenience init for getting data for all possible vehicle data items. + * + * @param accelerationPedalPosition Get accelerationPedalPosition data + * @param airbagStatus Get airbagStatus data + * @param beltStatus Get beltStatus data + * @param bodyInformation Get bodyInformation data + * @param cloudAppVehicleID Get cloudAppVehicleID data + * @param clusterModeStatus Get clusterModeStatus data + * @param deviceStatus Get deviceStatus data + * @param driverBraking Get driverBraking data + * @param eCallInfo Get eCallInfo data + * @param electronicParkBrakeStatus Get electronicParkBrakeStatus data + * @param emergencyEvent Get emergencyEvent data + * @param engineOilLife Get engineOilLife data + * @param engineTorque Get engineTorque data + * @param externalTemperature Get externalTemperature data + * @param fuelLevel Get fuelLevel data + * @param fuelLevelState Get fuelLevelState data + * @param fuelRange Get fuelRange data + * @param gps Get gps data + * @param headLampStatus Get headLampStatus data + * @param instantFuelConsumption Get instantFuelConsumption data + * @param myKey Get myKey data + * @param odometer Get odometer data + * @param prndl Get prndl data + * @param rpm Get rpm data + * @param speed Get speed data + * @param steeringWheelAngle Get steeringWheelAngle data + * @param tirePressure Get tirePressure data + * @param turnSignal Get turnSignal data + * @param vin Get vin data + * @param wiperStatus Get wiperStatus data + * @return A SDLGetVehicleData object + */ +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus; /** * A boolean value. If true, requests GPS data. @@ -230,6 +267,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSNumber<SDLBool> *turnSignal; +/** + A boolean value. If true, requests the Cloud App Vehicle ID. + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *cloudAppVehicleID; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetVehicleData.m b/SmartDeviceLink/SDLGetVehicleData.m index 6b795b057..9856e2443 100644 --- a/SmartDeviceLink/SDLGetVehicleData.m +++ b/SmartDeviceLink/SDLGetVehicleData.m @@ -5,14 +5,15 @@ #import "SDLGetVehicleData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameGetVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetVehicleData]) { } return self; } @@ -22,6 +23,10 @@ NS_ASSUME_NONNULL_BEGIN } - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { + return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal vin:vin wiperStatus:wiperStatus]; +} + +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal vin:(BOOL)vin wiperStatus:(BOOL)wiperStatus { self = [self init]; if (!self) { return nil; @@ -31,6 +36,7 @@ NS_ASSUME_NONNULL_BEGIN self.airbagStatus = @(airbagStatus); self.beltStatus = @(beltStatus); self.bodyInformation = @(bodyInformation); + self.cloudAppVehicleID = @(cloudAppVehicleID); self.clusterModeStatus = @(clusterModeStatus); self.deviceStatus = @(deviceStatus); self.driverBraking = @(driverBraking); @@ -61,235 +67,243 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setGps:(nullable NSNumber<SDLBool> *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable NSNumber<SDLBool> *)gps { - return [parameters sdl_objectForName:SDLNameGPS]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber<SDLBool> *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber<SDLBool> *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber<SDLBool> *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber<SDLBool> *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber<SDLBool> *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber<SDLBool> *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable NSNumber<SDLBool> *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable NSNumber<SDLBool> *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; } - (void)setFuelRange:(nullable NSNumber<SDLBool> *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSNumber<SDLBool> *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber<SDLBool> *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber<SDLBool> *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSNumber<SDLBool> *)vin { - [parameters sdl_setObject:vin forName:SDLNameVIN]; + [parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSNumber<SDLBool> *)vin { - return [parameters sdl_objectForName:SDLNameVIN]; + return [parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSNumber.class error:nil]; } - (void)setPrndl:(nullable NSNumber<SDLBool> *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable NSNumber<SDLBool> *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; } - (void)setTirePressure:(nullable NSNumber<SDLBool> *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable NSNumber<SDLBool> *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; } - (void)setOdometer:(nullable NSNumber<SDLBool> *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber<SDLBool> *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable NSNumber<SDLBool> *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable NSNumber<SDLBool> *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; } - (void)setBodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable NSNumber<SDLBool> *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; } - (void)setDeviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable NSNumber<SDLBool> *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; } - (void)setDriverBraking:(nullable NSNumber<SDLBool> *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable NSNumber<SDLBool> *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; } - (void)setWiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable NSNumber<SDLBool> *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; } - (void)setHeadLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable NSNumber<SDLBool> *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber<SDLBool> *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber<SDLBool> *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber<SDLBool> *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber<SDLBool> *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber<SDLBool> *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable NSNumber<SDLBool> *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable NSNumber<SDLBool> *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; } - (void)setAirbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable NSNumber<SDLBool> *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; } - (void)setEmergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable NSNumber<SDLBool> *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; } - (void)setClusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable NSNumber<SDLBool> *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; } - (void)setMyKey:(nullable NSNumber<SDLBool> *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable NSNumber<SDLBool> *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable NSNumber<SDLBool> *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; } - (void)setTurnSignal:(nullable NSNumber<SDLBool> *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable NSNumber<SDLBool> *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSNumber<SDLBool> *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetVehicleDataResponse.h b/SmartDeviceLink/SDLGetVehicleDataResponse.h index 689a750f2..78801ae55 100644 --- a/SmartDeviceLink/SDLGetVehicleDataResponse.h +++ b/SmartDeviceLink/SDLGetVehicleDataResponse.h @@ -181,6 +181,10 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) SDLTurnSignal turnSignal; +/** + The cloud app vehicle ID + */ +@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID; @end diff --git a/SmartDeviceLink/SDLGetVehicleDataResponse.m b/SmartDeviceLink/SDLGetVehicleDataResponse.m index 9e8aeff6c..6e7266a34 100644 --- a/SmartDeviceLink/SDLGetVehicleDataResponse.m +++ b/SmartDeviceLink/SDLGetVehicleDataResponse.m @@ -16,7 +16,8 @@ #import "SDLGPSData.h" #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTireStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -24,241 +25,249 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLGetVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameGetVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameGetVehicleData]) { } return self; } - (void)setGps:(nullable SDLGPSData *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLGPSData *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLGPSData.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; } - (void)setSpeed:(nullable NSNumber<SDLFloat> *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber<SDLFloat> *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber<SDLInt> *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber<SDLInt> *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber<SDLFloat> *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber<SDLFloat> *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLComponentVolumeStatus)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (void)setFuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSArray<SDLFuelRange *> *)fuelRange { - return [parameters sdl_objectsForName:SDLNameFuelRange ofClass:SDLFuelRange.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; } - (nullable NSNumber<SDLFloat> *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber<SDLFloat> *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSString *)vin { - [parameters sdl_setObject:vin forName:SDLNameVIN]; + [parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSString *)vin { - return [parameters sdl_objectForName:SDLNameVIN]; + return [parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; } - (void)setPrndl:(nullable SDLPRNDL)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLPRNDL)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; } - (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLTireStatus *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLTireStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; } - (void)setOdometer:(nullable NSNumber<SDLInt> *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber<SDLInt> *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLBeltStatus *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLBeltStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; } - (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLBodyInformation *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLBodyInformation.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; } - (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLDeviceStatus *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLDeviceStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataEventStatus)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; } - (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLWiperStatus)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; } - (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLHeadLampStatus *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLHeadLampStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber<SDLFloat> *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber<SDLFloat> *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber<SDLFloat> *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber<SDLFloat> *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber<SDLFloat> *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLECallInfo *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLECallInfo.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; } - (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLAirbagStatus *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLAirbagStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLEmergencyEvent *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLEmergencyEvent.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; } - (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable SDLClusterModeStatus *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus ofClass:SDLClusterModeStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; } - (void)setMyKey:(nullable SDLMyKey *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLMyKey *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLMyKey.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; } - (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLTurnSignal)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSString *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetWayPoints.m b/SmartDeviceLink/SDLGetWayPoints.m index 74eba337c..1c3ebe700 100644 --- a/SmartDeviceLink/SDLGetWayPoints.m +++ b/SmartDeviceLink/SDLGetWayPoints.m @@ -4,14 +4,15 @@ #import "SDLGetWayPoints.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetWayPoints - (instancetype)init { - if (self = [super initWithName:SDLNameGetWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameGetWayPoints]) { } return self; } @@ -29,11 +30,11 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setWaypointType:(nullable SDLWayPointType)waypointType { - [parameters sdl_setObject:waypointType forName:SDLNameWayPointType]; + [parameters sdl_setObject:waypointType forName:SDLRPCParameterNameWayPointType]; } - (nullable SDLWayPointType)waypointType { - return [parameters sdl_objectForName:SDLNameWayPointType]; + return [parameters sdl_enumForName:SDLRPCParameterNameWayPointType error:nil]; } @end diff --git a/SmartDeviceLink/SDLGetWayPointsResponse.m b/SmartDeviceLink/SDLGetWayPointsResponse.m index b2f5e6291..19e5ca6cb 100644 --- a/SmartDeviceLink/SDLGetWayPointsResponse.m +++ b/SmartDeviceLink/SDLGetWayPointsResponse.m @@ -5,24 +5,25 @@ #import "NSMutableDictionary+Store.h" #import "SDLLocationDetails.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLGetWayPointsResponse - (instancetype)init { - if (self = [super initWithName:SDLNameGetWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameGetWayPoints]) { } return self; } - (void)setWaypoints:(nullable NSArray<SDLLocationDetails *> *)waypoints { - [parameters sdl_setObject:waypoints forName:SDLNameWayPoints]; + [parameters sdl_setObject:waypoints forName:SDLRPCParameterNameWayPoints]; } - (nullable NSArray<SDLLocationDetails *> *)waypoints { - return [parameters sdl_objectsForName:SDLNameWayPoints ofClass:SDLLocationDetails.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameWayPoints ofClass:SDLLocationDetails.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLGlobals.h b/SmartDeviceLink/SDLGlobals.h index 84407f11d..99ed61bf6 100644 --- a/SmartDeviceLink/SDLGlobals.h +++ b/SmartDeviceLink/SDLGlobals.h @@ -8,8 +8,11 @@ #import <Foundation/Foundation.h> -#import "SDLProtocolHeader.h" -#import "SDLSyncMsgVersion.h" +#import "SDLProtocolConstants.h" + +@class SDLProtocolHeader; +@class SDLSyncMsgVersion; +@class SDLVersion; NS_ASSUME_NONNULL_BEGIN @@ -26,10 +29,9 @@ extern NSUInteger const SDLV3MTUSize; @interface SDLGlobals : NSObject -@property (copy, nonatomic, readonly) NSString *protocolVersion; -@property (assign, nonatomic, readonly) NSInteger majorProtocolVersion; -@property (strong, nonatomic) SDLSyncMsgVersion *rpcVersion; -@property (copy, nonatomic) NSString *maxHeadUnitVersion; +@property (copy, nonatomic, readonly) SDLVersion *protocolVersion; +@property (strong, nonatomic) SDLVersion *rpcVersion; +@property (copy, nonatomic) SDLVersion *maxHeadUnitProtocolVersion; + (instancetype)sharedGlobals; diff --git a/SmartDeviceLink/SDLGlobals.m b/SmartDeviceLink/SDLGlobals.m index d5364a119..735139b22 100644 --- a/SmartDeviceLink/SDLGlobals.m +++ b/SmartDeviceLink/SDLGlobals.m @@ -9,12 +9,15 @@ #import "SDLGlobals.h" #import "SDLLogMacros.h" +#import "SDLProtocolHeader.h" +#import "SDLSyncMsgVersion.h" +#import "SDLVersion.h" NS_ASSUME_NONNULL_BEGIN // VERSION DEPENDENT CODE -NSString *const SDLMaxProxyProtocolVersion = @"5.1.0"; -NSString *const SDLMaxProxyRPCVersion = @"5.0.0"; +NSString *const SDLMaxProxyProtocolVersion = @"5.2.0"; +NSString *const SDLMaxProxyRPCVersion = @"5.1.0"; NSUInteger const SDLDefaultMTUSize = UINT32_MAX; NSUInteger const SDLV1MTUSize = 1024; @@ -28,7 +31,7 @@ typedef NSNumber *MTUBox; @interface SDLGlobals () @property (strong, nonatomic) NSMutableDictionary<ServiceTypeBox, MTUBox> *dynamicMTUDict; -@property (copy, nonatomic, readwrite) NSString *protocolVersion; +@property (copy, nonatomic, readwrite) SDLVersion *protocolVersion; @end @@ -51,9 +54,9 @@ typedef NSNumber *MTUBox; return nil; } - _protocolVersion = @"1.0.0"; - _maxHeadUnitVersion = @"0.0.0"; - _rpcVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:1 minorVersion:0 patchVersion:0]; + _protocolVersion = [[SDLVersion alloc] initWithString:@"1.0.0"]; + _maxHeadUnitProtocolVersion = [[SDLVersion alloc] initWithString:@"0.0.0"]; + _rpcVersion = [[SDLVersion alloc] initWithString:@"1.0.0"]; _dynamicMTUDict = [NSMutableDictionary dictionary]; return self; @@ -62,14 +65,11 @@ typedef NSNumber *MTUBox; #pragma mark - Custom Getters / Setters -- (void)setMaxHeadUnitVersion:(NSString *)maxHeadUnitVersion { - self.protocolVersion = [self sdl_isVersion:maxHeadUnitVersion greaterThanVersion:SDLMaxProxyProtocolVersion] ? SDLMaxProxyProtocolVersion : maxHeadUnitVersion; +- (void)setMaxHeadUnitProtocolVersion:(SDLVersion *)maxHeadUnitVersion { + SDLVersion *maxProxyProtocolVersion = [SDLVersion versionWithString:SDLMaxProxyProtocolVersion]; + self.protocolVersion = [maxHeadUnitVersion isGreaterThanVersion:maxProxyProtocolVersion] ? maxProxyProtocolVersion : maxHeadUnitVersion; - _maxHeadUnitVersion = maxHeadUnitVersion; -} - -- (NSInteger)majorProtocolVersion { - return [self.protocolVersion substringWithRange:NSMakeRange(0, 1)].integerValue; + _maxHeadUnitProtocolVersion = maxHeadUnitVersion; } - (void)setDynamicMTUSize:(NSUInteger)maxMTUSize forServiceType:(SDLServiceType)serviceType { @@ -90,13 +90,9 @@ typedef NSNumber *MTUBox; #pragma mark - Helpers -- (BOOL)sdl_isVersion:(NSString *)version1 greaterThanVersion:(NSString *)version2 { - return ([version1 compare:version2 options:NSNumericSearch] == NSOrderedDescending); -} - - (NSUInteger)sdl_defaultMaxMTUSize { // VERSION DEPENDENT CODE - switch (self.majorProtocolVersion) { + switch (self.protocolVersion.major) { case 1: // fallthrough case 2: { // HAX: This was set to 1024 at some point, for an unknown reason. We can't change it because of backward compatibility & validation concerns. The actual MTU for v1/2 is 1500 bytes. @@ -106,14 +102,14 @@ typedef NSNumber *MTUBox; case 4: // fallthrough case 5: { // If the head unit isn't running v3/4, but that's the connection scheme we're using, then we have to know that they could be running an MTU that's not 128k, so we default back to the v1/2 MTU for safety. - if ([self sdl_isVersion:self.maxHeadUnitVersion greaterThanVersion:SDLMaxProxyProtocolVersion]) { + if ([self.maxHeadUnitProtocolVersion isGreaterThanVersion:[SDLVersion versionWithString:SDLMaxProxyProtocolVersion]]) { return SDLV1MTUSize; } else { return SDLV3MTUSize; } } break; default: { - NSAssert(NO, @"Unknown version number for MTU Size: %@", @(self.majorProtocolVersion)); + NSAssert(NO, @"Unknown MTU size for protocol version: %@", self.protocolVersion); return 0; } } diff --git a/SmartDeviceLink/SDLH264VideoEncoder.h b/SmartDeviceLink/SDLH264VideoEncoder.h index cbeeb4f71..29f15515e 100644 --- a/SmartDeviceLink/SDLH264VideoEncoder.h +++ b/SmartDeviceLink/SDLH264VideoEncoder.h @@ -58,7 +58,7 @@ extern NSString *const SDLErrorDomainVideoEncoder; - (instancetype)init NS_UNAVAILABLE; -- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions properties:(NSDictionary<NSString *, id> *)properties delegate:(id<SDLVideoEncoderDelegate> __nullable)delegate error:(NSError **)error NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions ssrc:(UInt32)ssrc properties:(NSDictionary<NSString *, id> *)properties delegate:(id<SDLVideoEncoderDelegate> __nullable)delegate error:(NSError **)error NS_DESIGNATED_INITIALIZER; - (void)stop; diff --git a/SmartDeviceLink/SDLH264VideoEncoder.m b/SmartDeviceLink/SDLH264VideoEncoder.m index c4d025464..933a4f48a 100644 --- a/SmartDeviceLink/SDLH264VideoEncoder.m +++ b/SmartDeviceLink/SDLH264VideoEncoder.m @@ -45,7 +45,7 @@ static NSDictionary<NSString *, id>* _defaultVideoEncoderSettings; }; } -- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions properties:(NSDictionary<NSString *, id> *)properties delegate:(id<SDLVideoEncoderDelegate> __nullable)delegate error:(NSError **)error { +- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions ssrc:(UInt32)ssrc properties:(NSDictionary<NSString *, id> *)properties delegate:(id<SDLVideoEncoderDelegate> __nullable)delegate error:(NSError **)error { self = [super init]; if (!self) { return nil; @@ -115,7 +115,7 @@ static NSDictionary<NSString *, id>* _defaultVideoEncoderSettings; if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRAW]) { _packetizer = [[SDLRAWH264Packetizer alloc] init]; } else if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRTP]) { - _packetizer = [[SDLRTPH264Packetizer alloc] init]; + _packetizer = [[SDLRTPH264Packetizer alloc] initWithSSRC:ssrc]; } else { if (!*error) { *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorProtocolUnknown userInfo:@{ @"encoder": protocol}]; diff --git a/SmartDeviceLink/SDLHMICapabilities.m b/SmartDeviceLink/SDLHMICapabilities.m index 01fd01949..11fa60306 100644 --- a/SmartDeviceLink/SDLHMICapabilities.m +++ b/SmartDeviceLink/SDLHMICapabilities.m @@ -5,34 +5,34 @@ #import "SDLHMICapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLHMICapabilities - (void)setNavigation:(nullable NSNumber<SDLBool> *)navigation { - [store sdl_setObject:navigation forName:SDLNameNavigation]; + [store sdl_setObject:navigation forName:SDLRPCParameterNameNavigation]; } - (nullable NSNumber<SDLBool> *)navigation { - return [store sdl_objectForName:SDLNameNavigation]; + return [store sdl_objectForName:SDLRPCParameterNameNavigation ofClass:NSNumber.class error:nil]; } - (void)setPhoneCall:(nullable NSNumber<SDLBool> *)phoneCall { - [store sdl_setObject:phoneCall forName:SDLNamePhoneCall]; + [store sdl_setObject:phoneCall forName:SDLRPCParameterNamePhoneCall]; } - (nullable NSNumber<SDLBool> *)phoneCall { - return [store sdl_objectForName:SDLNamePhoneCall]; + return [store sdl_objectForName:SDLRPCParameterNamePhoneCall ofClass:NSNumber.class error:nil]; } - (void)setVideoStreaming:(nullable NSNumber<SDLBool> *)videoStreaming { - [store sdl_setObject:videoStreaming forName:SDLNameVideoStreaming]; + [store sdl_setObject:videoStreaming forName:SDLRPCParameterNameVideoStreaming]; } - (nullable NSNumber<SDLBool> *)videoStreaming { - return [store sdl_objectForName:SDLNameVideoStreaming]; + return [store sdl_objectForName:SDLRPCParameterNameVideoStreaming ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLHMIPermissions.m b/SmartDeviceLink/SDLHMIPermissions.m index 96d947aa5..b48ca2be4 100644 --- a/SmartDeviceLink/SDLHMIPermissions.m +++ b/SmartDeviceLink/SDLHMIPermissions.m @@ -5,26 +5,28 @@ #import "SDLHMIPermissions.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLHMIPermissions - (void)setAllowed:(NSArray<SDLHMILevel> *)allowed { - [store sdl_setObject:allowed forName:SDLNameAllowed]; + [store sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; } - (NSArray<SDLHMILevel> *)allowed { - return [store sdl_objectForName:SDLNameAllowed]; + NSError *error = nil; + return [store sdl_enumsForName:SDLRPCParameterNameAllowed error:&error]; } - (void)setUserDisallowed:(NSArray<SDLHMILevel> *)userDisallowed { - [store sdl_setObject:userDisallowed forName:SDLNameUserDisallowed]; + [store sdl_setObject:userDisallowed forName:SDLRPCParameterNameUserDisallowed]; } - (NSArray<SDLHMILevel> *)userDisallowed { - return [store sdl_objectForName:SDLNameUserDisallowed]; + NSError *error = nil; + return [store sdl_enumsForName:SDLRPCParameterNameUserDisallowed error:&error]; } @end diff --git a/SmartDeviceLink/SDLHMISettingsControlCapabilities.m b/SmartDeviceLink/SDLHMISettingsControlCapabilities.m index 505936732..fc93c8005 100644 --- a/SmartDeviceLink/SDLHMISettingsControlCapabilities.m +++ b/SmartDeviceLink/SDLHMISettingsControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLHMISettingsControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -33,36 +33,37 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setDistanceUnitAvailable:(nullable NSNumber<SDLBool> *)distanceUnitAvailable { - [store sdl_setObject:distanceUnitAvailable forName:SDLNameDistanceUnitAvailable]; + [store sdl_setObject:distanceUnitAvailable forName:SDLRPCParameterNameDistanceUnitAvailable]; } - (nullable NSNumber<SDLBool> *)distanceUnitAvailable { - return [store sdl_objectForName:SDLNameDistanceUnitAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameDistanceUnitAvailable ofClass:NSNumber.class error:nil]; } - (void)setTemperatureUnitAvailable:(nullable NSNumber<SDLBool> *)temperatureUnitAvailable { - [store sdl_setObject:temperatureUnitAvailable forName:SDLNameTemperatureUnitAvailable]; + [store sdl_setObject:temperatureUnitAvailable forName:SDLRPCParameterNameTemperatureUnitAvailable]; } - (nullable NSNumber<SDLBool> *)temperatureUnitAvailable { - return [store sdl_objectForName:SDLNameTemperatureUnitAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameTemperatureUnitAvailable ofClass:NSNumber.class error:nil]; } - (void)setDisplayModeUnitAvailable:(nullable NSNumber<SDLBool> *)displayModeUnitAvailable { - [store sdl_setObject:displayModeUnitAvailable forName:SDLNameDisplayModeUnitAvailable]; + [store sdl_setObject:displayModeUnitAvailable forName:SDLRPCParameterNameDisplayModeUnitAvailable]; } - (nullable NSNumber<SDLBool> *)displayModeUnitAvailable { - return [store sdl_objectForName:SDLNameDisplayModeUnitAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameDisplayModeUnitAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLHMISettingsControlData.m b/SmartDeviceLink/SDLHMISettingsControlData.m index 4a17a9220..15a36ed52 100644 --- a/SmartDeviceLink/SDLHMISettingsControlData.m +++ b/SmartDeviceLink/SDLHMISettingsControlData.m @@ -2,7 +2,7 @@ // #import "SDLHMISettingsControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -22,27 +22,27 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setDisplayMode:(nullable SDLDisplayMode)displayMode { - [store sdl_setObject:displayMode forName:SDLNameDisplayMode]; + [store sdl_setObject:displayMode forName:SDLRPCParameterNameDisplayMode]; } - (nullable SDLDisplayMode)displayMode { - return [store sdl_objectForName:SDLNameDisplayMode]; + return [store sdl_enumForName:SDLRPCParameterNameDisplayMode error:nil]; } - (void)setDistanceUnit:(nullable SDLDistanceUnit)distanceUnit { - [store sdl_setObject:distanceUnit forName:SDLNameDistanceUnit]; + [store sdl_setObject:distanceUnit forName:SDLRPCParameterNameDistanceUnit]; } - (nullable SDLDistanceUnit)distanceUnit { - return [store sdl_objectForName:SDLNameDistanceUnit]; + return [store sdl_enumForName:SDLRPCParameterNameDistanceUnit error:nil]; } - (void)setTemperatureUnit:(nullable SDLTemperatureUnit)temperatureUnit { - [store sdl_setObject:temperatureUnit forName:SDLNameTemperatureUnit]; + [store sdl_setObject:temperatureUnit forName:SDLRPCParameterNameTemperatureUnit]; } - (nullable SDLTemperatureUnit)temperatureUnit { - return [store sdl_objectForName:SDLNameTemperatureUnit]; + return [store sdl_enumForName:SDLRPCParameterNameTemperatureUnit error:nil]; } @end diff --git a/SmartDeviceLink/SDLHapticRect.m b/SmartDeviceLink/SDLHapticRect.m index 330756d4c..b7d74c3a3 100644 --- a/SmartDeviceLink/SDLHapticRect.m +++ b/SmartDeviceLink/SDLHapticRect.m @@ -8,7 +8,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLHapticRect.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRectangle.h" NS_ASSUME_NONNULL_BEGIN @@ -28,19 +28,20 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setId:(NSNumber<SDLInt> *)id { - [store sdl_setObject:id forName:SDLNameId]; + [store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (NSNumber<SDLInt> *)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; } - (void)setRect:(SDLRectangle *)rect { - [store sdl_setObject:rect forName:SDLNameRect]; + [store sdl_setObject:rect forName:SDLRPCParameterNameRect]; } - (SDLRectangle *)rect { - return [store sdl_objectForName:SDLNameRect ofClass:SDLRectangle.class]; + return [store sdl_objectForName:SDLRPCParameterNameRect ofClass:SDLRectangle.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLHeadLampStatus.m b/SmartDeviceLink/SDLHeadLampStatus.m index e26d3ab5d..89bad48ee 100644 --- a/SmartDeviceLink/SDLHeadLampStatus.m +++ b/SmartDeviceLink/SDLHeadLampStatus.m @@ -5,34 +5,36 @@ #import "NSMutableDictionary+Store.h" #import "SDLAmbientLightStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLHeadLampStatus - (void)setLowBeamsOn:(NSNumber<SDLBool> *)lowBeamsOn { - [store sdl_setObject:lowBeamsOn forName:SDLNameLowBeamsOn]; + [store sdl_setObject:lowBeamsOn forName:SDLRPCParameterNameLowBeamsOn]; } - (NSNumber<SDLBool> *)lowBeamsOn { - return [store sdl_objectForName:SDLNameLowBeamsOn]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLowBeamsOn ofClass:NSNumber.class error:&error]; } - (void)setHighBeamsOn:(NSNumber<SDLBool> *)highBeamsOn { - [store sdl_setObject:highBeamsOn forName:SDLNameHighBeamsOn]; + [store sdl_setObject:highBeamsOn forName:SDLRPCParameterNameHighBeamsOn]; } - (NSNumber<SDLBool> *)highBeamsOn { - return [store sdl_objectForName:SDLNameHighBeamsOn]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameHighBeamsOn ofClass:NSNumber.class error:&error]; } - (void)setAmbientLightSensorStatus:(nullable SDLAmbientLightStatus)ambientLightSensorStatus { - [store sdl_setObject:ambientLightSensorStatus forName:SDLNameAmbientLightSensorStatus]; + [store sdl_setObject:ambientLightSensorStatus forName:SDLRPCParameterNameAmbientLightSensorStatus]; } - (nullable SDLAmbientLightStatus)ambientLightSensorStatus { - return [store sdl_objectForName:SDLNameAmbientLightSensorStatus]; + return [store sdl_enumForName:SDLRPCParameterNameAmbientLightSensorStatus error:nil]; } @end diff --git a/SmartDeviceLink/SDLHybridAppPreference.h b/SmartDeviceLink/SDLHybridAppPreference.h new file mode 100644 index 000000000..e07987e78 --- /dev/null +++ b/SmartDeviceLink/SDLHybridAppPreference.h @@ -0,0 +1,29 @@ +// +// SDLHybridAppPreference.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration for the user's preference of which app type to use when both are available. + */ +typedef SDLEnum SDLHybridAppPreference SDL_SWIFT_ENUM; + +/* + * App preference of mobile. + */ +extern SDLHybridAppPreference const SDLHybridAppPreferenceMobile; + +/* + * App preference of cloud. + */ +extern SDLHybridAppPreference const SDLHybridAppPreferenceCloud; + +/* + * App preference of both. Allows both the mobile and the cloud versions of the app to attempt to connect at the same time, however the first app that is registered is the one that is allowed to stay registered. + */ +extern SDLHybridAppPreference const SDLHybridAppPreferenceBoth; diff --git a/SmartDeviceLink/SDLHybridAppPreference.m b/SmartDeviceLink/SDLHybridAppPreference.m new file mode 100644 index 000000000..963bc4172 --- /dev/null +++ b/SmartDeviceLink/SDLHybridAppPreference.m @@ -0,0 +1,13 @@ +// +// SDLHybridAppPreference.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLHybridAppPreference.h" + +SDLHybridAppPreference const SDLHybridAppPreferenceMobile = @"MOBILE"; +SDLHybridAppPreference const SDLHybridAppPreferenceCloud = @"CLOUD"; +SDLHybridAppPreference const SDLHybridAppPreferenceBoth = @"BOTH"; diff --git a/SmartDeviceLink/SDLIAPSession.m b/SmartDeviceLink/SDLIAPSession.m index 98cc35813..6fc39be9a 100644 --- a/SmartDeviceLink/SDLIAPSession.m +++ b/SmartDeviceLink/SDLIAPSession.m @@ -49,15 +49,19 @@ NSTimeInterval const StreamThreadWaitSecs = 10.0; #pragma mark - Public Stream Lifecycle - (BOOL)start { - __weak typeof(self) weakSelf = self; SDLLogD(@"Opening EASession withAccessory:%@ forProtocol:%@", _accessory.name, _protocol); + self.easession = [[EASession alloc] initWithAccessory:self.accessory forProtocol:self.protocol]; + return [self sdl_startWithSession:self.easession]; +} - // TODO: This assignment should be broken out of the if and the if / else should be flipped. - if ((self.easession = [[EASession alloc] initWithAccessory:self.accessory forProtocol:self.protocol])) { +- (BOOL)sdl_startWithSession:(EASession *)session { + __weak typeof(self) weakSelf = self; + if (session == nil) { + SDLLogE(@"Error creating the session object"); + return NO; + } else { + SDLLogD(@"Created the session object successfully"); __strong typeof(self) strongSelf = weakSelf; - - SDLLogD(@"Created Session Object"); - strongSelf.streamDelegate.streamErrorHandler = [self streamErroredHandler]; strongSelf.streamDelegate.streamOpenHandler = [self streamOpenedHandler]; if (self.isDataSession) { @@ -72,10 +76,6 @@ NSTimeInterval const StreamThreadWaitSecs = 10.0; [self startStream:self.easession.inputStream]; } return YES; - - } else { - SDLLogE(@"Error: Could Not Create Session Object"); - return NO; } } @@ -94,14 +94,13 @@ NSTimeInterval const StreamThreadWaitSecs = 10.0; if (self.isDataSession) { [self.ioStreamThread cancel]; - long lWait = dispatch_semaphore_wait(self.canceledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(StreamThreadWaitSecs * NSEC_PER_SEC))); - if (lWait == 0) { - SDLLogW(@"Stream thread cancelled"); - } else { - SDLLogE(@"Failed to cancel stream thread"); - } - self.ioStreamThread = nil; - self.isDataSession = NO; + [self sdl_isIOThreadCanceled:self.canceledSemaphore completionHandler:^(BOOL success) { + if (success == NO) { + SDLLogE(@"About to destroy a thread that has not yet closed."); + } + self.ioStreamThread = nil; + self.isDataSession = NO; + }]; } else { // Stop control session [self stopStream:self.easession.outputStream]; @@ -110,6 +109,17 @@ NSTimeInterval const StreamThreadWaitSecs = 10.0; self.easession = nil; } +- (void)sdl_isIOThreadCanceled:(dispatch_semaphore_t)canceledSemaphore completionHandler:(void (^)(BOOL success))completionHandler { + long lWait = dispatch_semaphore_wait(canceledSemaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(StreamThreadWaitSecs * NSEC_PER_SEC))); + if (lWait == 0) { + SDLLogD(@"Stream thread canceled successfully"); + return completionHandler(YES); + } else { + SDLLogE(@"Failed to cancel stream thread"); + return completionHandler(NO); + } +} + - (BOOL)isStopped { return !self.isOutputStreamOpen && !self.isInputStreamOpen; } diff --git a/SmartDeviceLink/SDLIAPTransport.h b/SmartDeviceLink/SDLIAPTransport.h index ec32ae1f1..6934ffc27 100644 --- a/SmartDeviceLink/SDLIAPTransport.h +++ b/SmartDeviceLink/SDLIAPTransport.h @@ -11,12 +11,12 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLIAPTransport : NSObject <SDLTransportType, SDLIAPSessionDelegate> /** - * Session for transporting data between the app and Core. + * Session for establishing a connection with Core. Once the connection has been established, the session is closed and a session is established. A `controlSession` is not needed if the head unit supports the multisession protocol string. */ @property (nullable, strong, nonatomic) SDLIAPSession *controlSession; /** - * Session for establishing a connection with Core. Once the connection has been established, the session is closed and a control session is established. + * Session for transporting data between the app and Core. */ @property (nullable, strong, nonatomic) SDLIAPSession *session; diff --git a/SmartDeviceLink/SDLIAPTransport.m b/SmartDeviceLink/SDLIAPTransport.m index f4a3698f5..b0fa07177 100644 --- a/SmartDeviceLink/SDLIAPTransport.m +++ b/SmartDeviceLink/SDLIAPTransport.m @@ -35,7 +35,7 @@ int const ProtocolIndexTimeoutSeconds = 10; @property (assign, nonatomic) BOOL sessionSetupInProgress; @property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTaskId; @property (nullable, strong, nonatomic) SDLTimer *protocolIndexTimer; - +@property (assign, nonatomic) BOOL accessoryConnectDuringActiveSession; @end @@ -50,6 +50,7 @@ int const ProtocolIndexTimeoutSeconds = 10; _controlSession = nil; _retryCounter = 0; _protocolIndexTimer = nil; + _accessoryConnectDuringActiveSession = NO; // Get notifications if an accessory connects in future [self sdl_startEventListening]; @@ -67,14 +68,16 @@ int const ProtocolIndexTimeoutSeconds = 10; */ - (void)sdl_backgroundTaskStart { if (self.backgroundTaskId != UIBackgroundTaskInvalid) { + SDLLogV(@"A background task is already running. No need to start a background task. Returning..."); return; } - SDLLogD(@"Starting background task"); self.backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:BackgroundTaskName expirationHandler:^{ SDLLogD(@"Background task expired"); [self sdl_backgroundTaskEnd]; }]; + + SDLLogD(@"Started a background task with id: %lu", (unsigned long)self.backgroundTaskId); } /** @@ -82,10 +85,11 @@ int const ProtocolIndexTimeoutSeconds = 10; */ - (void)sdl_backgroundTaskEnd { if (self.backgroundTaskId == UIBackgroundTaskInvalid) { + SDLLogV(@"No background task running. No need to stop the background task. Returning..."); return; } - SDLLogD(@"Ending background task"); + SDLLogD(@"Ending background task with id: %lu", (unsigned long)self.backgroundTaskId); [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskId]; self.backgroundTaskId = UIBackgroundTaskInvalid; } @@ -139,7 +143,14 @@ int const ProtocolIndexTimeoutSeconds = 10; * @param notification Contains information about the connected accessory */ - (void)sdl_accessoryConnected:(NSNotification *)notification { - double retryDelay = self.retryDelay; + EAAccessory *newAccessory = [notification.userInfo objectForKey:EAAccessoryKey]; + + if ([self sdl_isSessionActive:self.session newAccessory:newAccessory]) { + self.accessoryConnectDuringActiveSession = YES; + return; + } + + double retryDelay = self.sdl_retryDelay; SDLLogD(@"Accessory Connected (%@), Opening in %0.03fs", notification.userInfo[EAAccessoryKey], retryDelay); if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { @@ -152,23 +163,53 @@ int const ProtocolIndexTimeoutSeconds = 10; } /** + * Checks if the newly connected accessory connected while a data session is already opened. This can happen when a session is established over bluetooth and then the user connects to the same head unit with a USB cord. + * + * @param session The current data session, which may be nil + * @param newAccessory The newly connected accessory + * @return True if the accessory connected while a data session is already in progress; false if not + */ +- (BOOL)sdl_isSessionActive:(SDLIAPSession *)session newAccessory:(EAAccessory *)newAccessory { + if ((session != nil) && (session.accessory.connectionID != newAccessory.connectionID)) { + SDLLogD(@"Switching transports from Bluetooth to USB. Waiting for disconnect notification."); + return YES; + } + + return NO; +} + +/** * Handles a notification sent by the system when an accessory has been disconnected by cleaning up after the disconnected device. Only check for the data session, the control session is handled separately * * @param notification Contains information about the connected accessory */ - (void)sdl_accessoryDisconnected:(NSNotification *)notification { EAAccessory *accessory = [notification.userInfo objectForKey:EAAccessoryKey]; - if (accessory.connectionID != self.session.accessory.connectionID) { - SDLLogV(@"Accessory disconnected during control session (%@)", accessory); - self.retryCounter = 0; + SDLLogD(@"Accessory with serial number %@ and connectionID %lu disconnecting.", accessory.serialNumber, (unsigned long)accessory.connectionID); + + if (self.accessoryConnectDuringActiveSession == YES) { + SDLLogD(@"Switching transports from Bluetooth to USB. Will reconnect over Bluetooth after disconnecting the USB session."); + self.accessoryConnectDuringActiveSession = NO; } - if ([accessory.serialNumber isEqualToString:self.session.accessory.serialNumber]) { - SDLLogV(@"Accessory disconnected during data session (%@)", accessory); - self.retryCounter = 0; - self.sessionSetupInProgress = NO; - [self disconnect]; - [self.delegate onTransportDisconnected]; + + if (self.controlSession == nil && self.session == nil) { + SDLLogV(@"Accessory (%@), disconnected, but no session is in progress", accessory.serialNumber); + } else if (accessory.connectionID == self.controlSession.accessory.connectionID) { + SDLLogV(@"Accessory (%@) disconnected during a control session", accessory.serialNumber); + } else if (accessory.connectionID == self.session.accessory.connectionID) { + SDLLogV(@"Accessory (%@) disconnected during a data session", accessory.serialNumber); + } else { + SDLLogV(@"Accessory (%@) disconnecting during an unknown session", accessory.serialNumber); } + + [self sdl_destroySession]; +} + +- (void)sdl_destroySession { + self.retryCounter = 0; + self.sessionSetupInProgress = NO; + [self disconnect]; + [self.delegate onTransportDisconnected]; } #pragma mark App Lifecycle Notifications @@ -232,14 +273,15 @@ int const ProtocolIndexTimeoutSeconds = 10; * Cleans up after a disconnected accessory by closing any open input streams. */ - (void)disconnect { - SDLLogD(@"Disconnecting IAP data session"); // Stop event listening here so that even if the transport is disconnected by the proxy we unregister for accessory local notifications [self sdl_stopEventListening]; if (self.controlSession != nil) { + SDLLogD(@"Disconnecting control session"); [self.controlSession stop]; self.controlSession.streamDelegate = nil; self.controlSession = nil; } else if (self.session != nil) { + SDLLogD(@"Disconnecting data session"); [self.session stop]; self.session.streamDelegate = nil; self.session = nil; @@ -304,20 +346,20 @@ int const ProtocolIndexTimeoutSeconds = 10; } /** - * Attept to establish a session with an accessory, or if nil is passed, to scan for one. + * Attempt to establish a session with an accessory, or if nil is passed, to scan for one. * * @param accessory The accessory to try to establish a session with, or nil to scan all connected accessories. */ - (void)sdl_establishSessionWithAccessory:(nullable EAAccessory *)accessory { - SDLLogD(@"Attempting to connect"); + SDLLogD(@"Attempting to connect accessory: %@", accessory.name); if (self.retryCounter < CreateSessionRetries) { - // We should be attempting to connect self.retryCounter++; EAAccessory *sdlAccessory = accessory; // If we are being called from sdl_connectAccessory, the EAAccessoryDidConnectNotification will contain the SDL accessory to connect to and we can connect without searching the accessory manager's connected accessory list. Otherwise, we fall through to a search. if (sdlAccessory != nil && [self sdl_connectAccessory:sdlAccessory]) { // Connection underway, exit + SDLLogV(@"Connection already underway"); return; } @@ -340,10 +382,9 @@ int const ProtocolIndexTimeoutSeconds = 10; SDLLogV(@"No accessory supporting SDL was found, dismissing setup"); self.sessionSetupInProgress = NO; } - } else { - // We are beyond the number of retries allowed - SDLLogW(@"Surpassed allowed retry attempts"); + // We have surpassed the number of retries allowed + SDLLogW(@"Surpassed allowed retry attempts (%d), dismissing setup", CreateSessionRetries); self.sessionSetupInProgress = NO; } } @@ -619,7 +660,7 @@ int const ProtocolIndexTimeoutSeconds = 10; }; } -- (double)retryDelay { +- (double)sdl_retryDelay { const double MinRetrySeconds = 1.5; const double MaxRetrySeconds = 9.5; double RetryRangeSeconds = MaxRetrySeconds - MinRetrySeconds; @@ -668,6 +709,7 @@ int const ProtocolIndexTimeoutSeconds = 10; self.session = nil; self.delegate = nil; self.sessionSetupInProgress = NO; + self.accessoryConnectDuringActiveSession = NO; } } diff --git a/SmartDeviceLink/SDLImage.m b/SmartDeviceLink/SDLImage.m index fcf05819a..7a2dd72cd 100644 --- a/SmartDeviceLink/SDLImage.m +++ b/SmartDeviceLink/SDLImage.m @@ -4,7 +4,7 @@ #import "SDLImage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -57,27 +57,29 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Getters / Setters - (void)setValue:(NSString *)value { - [store sdl_setObject:value forName:SDLNameValue]; + [store sdl_setObject:value forName:SDLRPCParameterNameValue]; } - (NSString *)value { - return [store sdl_objectForName:SDLNameValue]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameValue ofClass:NSString.class error:&error]; } - (void)setImageType:(SDLImageType)imageType { - [store sdl_setObject:imageType forName:SDLNameImageType]; + [store sdl_setObject:imageType forName:SDLRPCParameterNameImageType]; } - (SDLImageType)imageType { - return [store sdl_objectForName:SDLNameImageType]; + return [store sdl_enumForName:SDLRPCParameterNameImageType error:nil]; } - (void)setIsTemplate:(NSNumber<SDLBool> *)isTemplate { - [store sdl_setObject:isTemplate forName:SDLNameImageTemplate]; + [store sdl_setObject:isTemplate forName:SDLRPCParameterNameImageTemplate]; } - (NSNumber<SDLBool> *)isTemplate { - return [store sdl_objectForName:SDLNameImageTemplate]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameImageTemplate ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLImageField.m b/SmartDeviceLink/SDLImageField.m index d25b6e213..94a6ccedc 100644 --- a/SmartDeviceLink/SDLImageField.m +++ b/SmartDeviceLink/SDLImageField.m @@ -6,34 +6,36 @@ #import "NSMutableDictionary+Store.h" #import "SDLImageFieldName.h" #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLImageField - (void)setName:(SDLImageFieldName)name { - [store sdl_setObject:name forName:SDLNameName]; + [store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLImageFieldName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setImageTypeSupported:(NSArray<SDLFileType> *)imageTypeSupported { - [store sdl_setObject:imageTypeSupported forName:SDLNameImageTypeSupported]; + [store sdl_setObject:imageTypeSupported forName:SDLRPCParameterNameImageTypeSupported]; } - (NSArray<SDLFileType> *)imageTypeSupported { - return [store sdl_objectForName:SDLNameImageTypeSupported]; + NSError *error = nil; + return [store sdl_enumsForName:SDLRPCParameterNameImageTypeSupported error:&error]; } - (void)setImageResolution:(nullable SDLImageResolution *)imageResolution { - [store sdl_setObject:imageResolution forName:SDLNameImageResolution]; + [store sdl_setObject:imageResolution forName:SDLRPCParameterNameImageResolution]; } - (nullable SDLImageResolution *)imageResolution { - return [store sdl_objectForName:SDLNameImageResolution ofClass:SDLImageResolution.class]; + return [store sdl_objectForName:SDLRPCParameterNameImageResolution ofClass:SDLImageResolution.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLImageResolution.m b/SmartDeviceLink/SDLImageResolution.m index f2f9c4566..b85bf8e9b 100644 --- a/SmartDeviceLink/SDLImageResolution.m +++ b/SmartDeviceLink/SDLImageResolution.m @@ -5,7 +5,7 @@ #import "SDLImageResolution.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -22,19 +22,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setResolutionWidth:(NSNumber<SDLInt> *)resolutionWidth { - [store sdl_setObject:resolutionWidth forName:SDLNameResolutionWidth]; + [store sdl_setObject:resolutionWidth forName:SDLRPCParameterNameResolutionWidth]; } - (NSNumber<SDLInt> *)resolutionWidth { - return [store sdl_objectForName:SDLNameResolutionWidth]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameResolutionWidth ofClass:NSNumber.class error:&error]; } - (void)setResolutionHeight:(NSNumber<SDLInt> *)resolutionHeight { - [store sdl_setObject:resolutionHeight forName:SDLNameResolutionHeight]; + [store sdl_setObject:resolutionHeight forName:SDLRPCParameterNameResolutionHeight]; } - (NSNumber<SDLInt> *)resolutionHeight { - return [store sdl_objectForName:SDLNameResolutionHeight]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameResolutionHeight ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLKeyboardProperties.m b/SmartDeviceLink/SDLKeyboardProperties.m index 3c79612f8..1e6376f24 100644 --- a/SmartDeviceLink/SDLKeyboardProperties.m +++ b/SmartDeviceLink/SDLKeyboardProperties.m @@ -4,7 +4,7 @@ #import "SDLKeyboardProperties.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -26,43 +26,43 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setLanguage:(nullable SDLLanguage)language { - [store sdl_setObject:language forName:SDLNameLanguage]; + [store sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (nullable SDLLanguage)language { - return [store sdl_objectForName:SDLNameLanguage]; + return [store sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; } - (void)setKeyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout { - [store sdl_setObject:keyboardLayout forName:SDLNameKeyboardLayout]; + [store sdl_setObject:keyboardLayout forName:SDLRPCParameterNameKeyboardLayout]; } - (nullable SDLKeyboardLayout)keyboardLayout { - return [store sdl_objectForName:SDLNameKeyboardLayout]; + return [store sdl_enumForName:SDLRPCParameterNameKeyboardLayout error:nil]; } - (void)setKeypressMode:(nullable SDLKeypressMode)keypressMode { - [store sdl_setObject:keypressMode forName:SDLNameKeypressMode]; + [store sdl_setObject:keypressMode forName:SDLRPCParameterNameKeypressMode]; } - (nullable SDLKeypressMode)keypressMode { - return [store sdl_objectForName:SDLNameKeypressMode]; + return [store sdl_enumForName:SDLRPCParameterNameKeypressMode error:nil]; } - (void)setLimitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList { - [store sdl_setObject:limitedCharacterList forName:SDLNameLimitedCharacterList]; + [store sdl_setObject:limitedCharacterList forName:SDLRPCParameterNameLimitedCharacterList]; } - (nullable NSArray<NSString *> *)limitedCharacterList { - return [store sdl_objectForName:SDLNameLimitedCharacterList]; + return [store sdl_objectsForName:SDLRPCParameterNameLimitedCharacterList ofClass:NSString.class error:nil]; } - (void)setAutoCompleteText:(nullable NSString *)autoCompleteText { - [store sdl_setObject:autoCompleteText forName:SDLNameAutoCompleteText]; + [store sdl_setObject:autoCompleteText forName:SDLRPCParameterNameAutoCompleteText]; } - (nullable NSString *)autoCompleteText { - return [store sdl_objectForName:SDLNameAutoCompleteText]; + return [store sdl_objectForName:SDLRPCParameterNameAutoCompleteText ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLLifecycleConfiguration.h b/SmartDeviceLink/SDLLifecycleConfiguration.h index a558c0dea..878895416 100644 --- a/SmartDeviceLink/SDLLifecycleConfiguration.h +++ b/SmartDeviceLink/SDLLifecycleConfiguration.h @@ -14,6 +14,7 @@ @class SDLFile; @class SDLTemplateColorScheme; @class SDLTTSChunk; +@class SDLVersion; NS_ASSUME_NONNULL_BEGIN @@ -167,6 +168,16 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme; +/** + The minimum protocol version that will be permitted to connect. This defaults to 1.0.0. If the protocol version of the head unit connected is below this version, the app will disconnect with an EndService protocol message and will not register. + */ +@property (strong, nonatomic) SDLVersion *minimumProtocolVersion; + +/** + The minimum RPC version that will be permitted to connect. This defaults to 1.0.0. If the RPC version of the head unit connected is below this version, an UnregisterAppInterface will be sent. + */ +@property (strong, nonatomic) SDLVersion *minimumRPCVersion; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLifecycleConfiguration.m b/SmartDeviceLink/SDLLifecycleConfiguration.m index 6c5b560c5..5f163d8e6 100644 --- a/SmartDeviceLink/SDLLifecycleConfiguration.m +++ b/SmartDeviceLink/SDLLifecycleConfiguration.m @@ -9,6 +9,7 @@ #import "SDLLifecycleConfiguration.h" #import "SDLFile.h" +#import "SDLVersion.h" static NSString *const DefaultTCPIPAddress = @"192.168.0.1"; static UInt16 const DefaultTCPIPPort = 12345; @@ -66,6 +67,8 @@ static NSUInteger const AppIdCharacterCount = 10; _shortAppName = nil; _ttsName = nil; _voiceRecognitionCommandNames = nil; + _minimumProtocolVersion = [SDLVersion versionWithString:@"1.0.0"]; + _minimumRPCVersion = [SDLVersion versionWithString:@"1.0.0"]; _fullAppId = fullAppId; _appId = fullAppId != nil ? [self.class sdlex_shortAppIdFromFullAppId:fullAppId] : appId; diff --git a/SmartDeviceLink/SDLLifecycleManager.h b/SmartDeviceLink/SDLLifecycleManager.h index 594dccba3..067cd6af5 100644 --- a/SmartDeviceLink/SDLLifecycleManager.h +++ b/SmartDeviceLink/SDLLifecycleManager.h @@ -26,6 +26,7 @@ @class SDLPutFile; @class SDLRegisterAppInterfaceResponse; @class SDLResponseDispatcher; +@class SDLRPCMessage; @class SDLRPCNotification; @class SDLRPCRequest; @class SDLRPCResponse; @@ -62,6 +63,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (copy, nonatomic, readonly) SDLConfiguration *configuration; @property (weak, nonatomic, nullable) id<SDLManagerDelegate> delegate; +@property (strong, nonatomic, readonly, nullable) NSString *authToken; @property (strong, nonatomic) SDLFileManager *fileManager; @property (strong, nonatomic) SDLPermissionManager *permissionManager; @@ -80,7 +82,6 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (strong, nonatomic, nullable) SDLProxy *proxy; #pragma clang diagnostic pop -@property (assign, nonatomic) UInt16 lastCorrelationId; @property (copy, nonatomic, readonly) SDLLifecycleState *lifecycleState; @property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; @property (copy, nonatomic, nullable) SDLAudioStreamingState audioStreamingState; @@ -104,12 +105,16 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); /** * 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. * + * @warning If you call this method from SDLManager's `startWithReadyHandler` be sure to wrap the `stop` call inside a dispatch_async and send it to the main queue or a global queue, otherwise calling `stop` may cause a deadlock. + * * @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; /** * 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. + * + * @warning If you call this method from SDLManager's `startWithReadyHandler` be sure to wrap the `stop` call inside a dispatch_async and send it to the main queue or a global queue, otherwise calling `stop` may cause a deadlock. */ - (void)stop; @@ -117,11 +122,11 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); #pragma mark 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. + * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call sendRequest:withCompletionHandler: instead. * - * @param request The RPC request to send + * @param rpc An RPC of type `SDLRPCRequest`, `SDLRPCResponse`, or `SDLRPCNotification` to send */ -- (void)sendRequest:(SDLRPCRequest *)request; +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc; /** * Send an RPC request and set a completion handler that will be called with the response when the response returns. @@ -129,7 +134,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); * @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; +- (void)sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler; /** 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. diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m index 885f686a3..8cf5daa91 100644 --- a/SmartDeviceLink/SDLLifecycleManager.m +++ b/SmartDeviceLink/SDLLifecycleManager.m @@ -43,6 +43,7 @@ #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLResponseDispatcher.h" +#import "SDLAsynchronousRPCOperation.h" #import "SDLResult.h" #import "SDLScreenManager.h" #import "SDLSecondaryTransportManager.h" @@ -54,6 +55,7 @@ #import "SDLStreamingProtocolDelegate.h" #import "SDLSystemCapabilityManager.h" #import "SDLUnregisterAppInterface.h" +#import "SDLVersion.h" NS_ASSUME_NONNULL_BEGIN @@ -76,6 +78,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; // Readonly public properties @property (copy, nonatomic, readwrite) SDLConfiguration *configuration; +@property (strong, nonatomic, readwrite, nullable) NSString *authToken; @property (strong, nonatomic, readwrite) SDLNotificationDispatcher *notificationDispatcher; @property (strong, nonatomic, readwrite) SDLResponseDispatcher *responseDispatcher; @property (strong, nonatomic, readwrite) SDLStateMachine *lifecycleStateMachine; @@ -84,6 +87,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; @property (strong, nonatomic, nullable) SDLSecondaryTransportManager *secondaryTransportManager; @property (copy, nonatomic) SDLManagerReadyBlock readyHandler; @property (copy, nonatomic) dispatch_queue_t lifecycleQueue; +@property (assign, nonatomic) int32_t lastCorrelationId; @end @@ -134,7 +138,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; [configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection] || [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeNavigation] || [configuration.lifecycleConfig.additionalAppTypes containsObject:SDLAppHMITypeProjection]) { - _streamManager = [[SDLStreamingMediaManager alloc] initWithConnectionManager:self configuration:configuration.streamingMediaConfig]; + _streamManager = [[SDLStreamingMediaManager alloc] initWithConnectionManager:self configuration:configuration]; } else { SDLLogV(@"Skipping StreamingMediaManager setup due to app type"); } @@ -193,7 +197,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; SDLLifecycleStateStarted: @[SDLLifecycleStateConnected, SDLLifecycleStateStopped, SDLLifecycleStateReconnecting], SDLLifecycleStateReconnecting: @[SDLLifecycleStateStarted, SDLLifecycleStateStopped], SDLLifecycleStateConnected: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateRegistered], - SDLLifecycleStateRegistered: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpManagers, SDLLifecycleStateUpdatingConfiguration], + SDLLifecycleStateRegistered: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateUnregistering, SDLLifecycleStateSettingUpManagers, SDLLifecycleStateUpdatingConfiguration], SDLLifecycleStateUpdatingConfiguration: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpManagers], SDLLifecycleStateSettingUpManagers: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpAppIcon], SDLLifecycleStateSettingUpAppIcon: @[SDLLifecycleStateStopped, SDLLifecycleStateReconnecting, SDLLifecycleStateSettingUpHMI], @@ -279,6 +283,14 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; [self.proxy addSecurityManagers:self.configuration.streamingMediaConfig.securityManagers forAppId:self.configuration.lifecycleConfig.appId]; } + // If the negotiated protocol version is greater than the minimum allowable version, we need to end service and disconnect + if ([self.configuration.lifecycleConfig.minimumProtocolVersion isGreaterThanVersion:[SDLGlobals sharedGlobals].protocolVersion]) { + SDLLogW(@"Disconnecting from head unit, protocol version %@ is greater than configured minimum version %@", [SDLGlobals sharedGlobals].protocolVersion.stringVersion, self.configuration.lifecycleConfig.minimumProtocolVersion.stringVersion); + [self.proxy.protocol endServiceWithType:SDLServiceTypeRPC]; + [self sdl_transitionToState:SDLLifecycleStateStopped]; + return; + } + // Build a register app interface request with the configuration data SDLRegisterAppInterface *regRequest = [[SDLRegisterAppInterface alloc] initWithLifecycleConfiguration:self.configuration.lifecycleConfig]; @@ -290,7 +302,9 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; // If the success BOOL is NO or we received an error at this point, we failed. Call the ready handler and transition to the DISCONNECTED state. if (error != nil || ![response.success boolValue]) { SDLLogE(@"Failed to register the app. Error: %@, Response: %@", error, response); - weakSelf.readyHandler(NO, error); + if (weakSelf.readyHandler) { + weakSelf.readyHandler(NO, error); + } if (weakSelf.lifecycleState != SDLLifecycleStateReconnecting) { [weakSelf sdl_transitionToState:SDLLifecycleStateStopped]; @@ -300,20 +314,27 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; } weakSelf.registerResponse = (SDLRegisterAppInterfaceResponse *)response; - [SDLGlobals sharedGlobals].rpcVersion = weakSelf.registerResponse.syncMsgVersion; + [SDLGlobals sharedGlobals].rpcVersion = [SDLVersion versionWithSyncMsgVersion:weakSelf.registerResponse.syncMsgVersion]; [weakSelf sdl_transitionToState:SDLLifecycleStateRegistered]; }); }]; } - (void)didEnterStateRegistered { + // If the negotiated RPC version is greater than the minimum allowable version, we need to unregister and disconnect + if ([self.configuration.lifecycleConfig.minimumRPCVersion isGreaterThanVersion:[SDLGlobals sharedGlobals].rpcVersion]) { + SDLLogW(@"Disconnecting from head unit, RPC version %@ is greater than configured minimum version %@", [SDLGlobals sharedGlobals].rpcVersion.stringVersion, self.configuration.lifecycleConfig.minimumRPCVersion.stringVersion); + [self sdl_transitionToState:SDLLifecycleStateUnregistering]; + return; + } + NSArray<SDLLanguage> *supportedLanguages = self.configuration.lifecycleConfig.languagesSupported; SDLLanguage desiredLanguage = self.configuration.lifecycleConfig.language; SDLLanguage actualLanguage = self.registerResponse.language; BOOL delegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; // language mismatch? but actual language is a supported language? and delegate has implemented method? - if ([actualLanguage isKindOfClass:[NSString class]] && ![actualLanguage isEqualToEnum:desiredLanguage] && [supportedLanguages containsObject:actualLanguage] && delegateCanUpdateLifecycle) { + if (![actualLanguage isEqualToEnum:desiredLanguage] && [supportedLanguages containsObject:actualLanguage] && delegateCanUpdateLifecycle) { [self sdl_transitionToState:SDLLifecycleStateUpdatingConfiguration]; } else { [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; @@ -324,7 +345,6 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; // we can expect that the delegate has implemented the update method and the actual language is a supported language SDLLanguage actualLanguage = self.registerResponse.language; - if ([actualLanguage isKindOfClass:[NSString class]]) { SDLLifecycleConfigurationUpdate *configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage]; if (configUpdate) { @@ -349,7 +369,6 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; changeRegistration.vrSynonyms = configUpdate.voiceRecognitionCommandNames; [self sendConnectionManagerRequest:changeRegistration withResponseHandler:nil]; - } } [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; @@ -520,11 +539,23 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; #pragma mark Sending Requests -- (void)sendRequest:(SDLRPCRequest *)request { - [self sendRequest:request withResponseHandler:nil]; +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc { + if ([rpc isKindOfClass:SDLRPCRequest.class]) { + SDLRPCRequest *requestRPC = (SDLRPCRequest *)rpc; + [self sendRequest:requestRPC withResponseHandler:nil]; + } else if ([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]) { + [self sdl_sendRPC:rpc]; + } else { + NSAssert(false, @"The request should be of type `Request`, `Response` or `Notification"); + } +} + +- (void)sdl_sendRPC:(__kindof SDLRPCMessage *)rpc { + SDLAsynchronousRPCOperation *op = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:self rpc:rpc]; + [self.rpcOperationQueue addOperation:op]; } -- (void)sendRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { +- (void)sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { SDLAsynchronousRPCRequestOperation *op = [[SDLAsynchronousRPCRequestOperation alloc] initWithConnectionManager:self request:request responseHandler:handler]; [self.rpcOperationQueue addOperation:op]; } @@ -549,9 +580,22 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; [self.rpcOperationQueue addOperation:op]; } +- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc { + NSAssert(([rpc isKindOfClass:SDLRPCResponse.class] || [rpc isKindOfClass:SDLRPCNotification.class]), @"Only RPCs of type `Response` or `Notfication` can be sent using this method. To send RPCs of type `Request` use sendConnectionRequest:withResponseHandler:."); + + if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { + SDLLogW(@"Manager not ready, message not sent (%@)", rpc); + return; + } + + dispatch_async(_lifecycleQueue, ^{ + [self sdl_sendRequest:rpc withResponseHandler:nil]; + }); +} + - (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - SDLLogW(@"Manager not ready, message not sent (%@)", request); + SDLLogW(@"Manager not ready, request not sent (%@)", request); if (handler) { dispatch_async(dispatch_get_main_queue(), ^{ handler(request, nil, [NSError sdl_lifecycle_notReadyError]); @@ -567,13 +611,13 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; } // Managers need to avoid state checking. Part of <SDLConnectionManagerType>. -- (void)sendConnectionManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { +- (void)sendConnectionManagerRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler { dispatch_async(_lifecycleQueue, ^{ [self sdl_sendRequest:request withResponseHandler:handler]; }); } -- (void)sdl_sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { +- (void)sdl_sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:(nullable SDLResponseHandler)handler { // We will allow things to be sent in a "SDLLifecycleStateConnected" state in the private method, but block it in the public method sendRequest:withCompletionHandler: so that the lifecycle manager can complete its setup without being bothered by developer error NSParameterAssert(request != nil); @@ -589,18 +633,24 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; return; } - // Add a correlation ID to the request - NSNumber *corrID = [self sdl_getNextCorrelationId]; - request.correlationID = corrID; - - [self.responseDispatcher storeRequest:request handler:handler]; - [self.proxy sendRPC:request]; + if ([request isKindOfClass:SDLRPCRequest.class]) { + // Generate and add a correlation ID to the request. When a response for the request is returned from Core, it will have the same correlation ID + SDLRPCRequest *requestRPC = (SDLRPCRequest *)request; + NSNumber *corrID = [self sdl_getNextCorrelationId]; + requestRPC.correlationID = corrID; + [self.responseDispatcher storeRequest:requestRPC handler:handler]; + [self.proxy sendRPC:requestRPC]; + } else if ([request isKindOfClass:SDLRPCResponse.class] || [request isKindOfClass:SDLRPCNotification.class]) { + [self.proxy sendRPC:request]; + } else { + SDLLogE(@"Attempting to send an RPC with unknown type, %@. The request should be of type request, response or notification. Returning...", request.class); + } } #pragma mark Helper Methods - (NSNumber<SDLInt> *)sdl_getNextCorrelationId { - if (self.lastCorrelationId == UINT16_MAX) { + if (self.lastCorrelationId == INT32_MAX) { self.lastCorrelationId = 0; } @@ -628,6 +678,14 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; } } +/** + * Gets the authentication token returned by the `StartServiceACK` header + * + * @return An authentication token + */ +- (nullable NSString *)authToken { + return self.proxy.protocol.authToken; +} #pragma mark SDL notification observers @@ -672,8 +730,17 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; SDLSystemContext oldSystemContext = self.systemContext; self.systemContext = hmiStatusNotification.systemContext; - SDLLogD(@"HMI level changed from %@ to %@", oldHMILevel, self.hmiLevel); - SDLLogD(@"Audio streaming state changed from %@ to %@", oldStreamingState, self.audioStreamingState); + if (![oldHMILevel isEqualToEnum:self.hmiLevel]) { + SDLLogD(@"HMI level changed from %@ to %@", oldHMILevel, self.hmiLevel); + } + + if (![oldStreamingState isEqualToEnum:self.audioStreamingState]) { + SDLLogD(@"Audio streaming state changed from %@ to %@", oldStreamingState, self.audioStreamingState); + } + + if (![oldSystemContext isEqualToEnum:self.systemContext]) { + SDLLogD(@"System context changed from %@ to %@", oldSystemContext, self.systemContext); + } if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateSettingUpHMI]) { [self sdl_transitionToState:SDLLifecycleStateReady]; @@ -721,7 +788,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; [self sdl_transitionToState:SDLLifecycleStateStopped]; } else if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateStopped]) { return; - } else if ([appUnregisteredNotification.reason isKindOfClass:[NSString class]] && [appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonAppUnauthorized]) { + } else if (appUnregisteredNotification.reason != nil && ([appUnregisteredNotification.reason isEqualToEnum:SDLAppInterfaceUnregisteredReasonAppUnauthorized] || [appUnregisteredNotification.reason isEqualToString:SDLAppInterfaceUnregisteredReasonProtocolViolation])) { // HAX: The string check is due to a core "feature" that could cause -1 to be sent as the enum value, which will crash here. [self sdl_transitionToState:SDLLifecycleStateStopped]; } else { diff --git a/SmartDeviceLink/SDLLightCapabilities.m b/SmartDeviceLink/SDLLightCapabilities.m index 3db0454ff..cd24fe9a2 100644 --- a/SmartDeviceLink/SDLLightCapabilities.m +++ b/SmartDeviceLink/SDLLightCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLLightCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -33,35 +33,36 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setName:(SDLLightName)name { - [store sdl_setObject:name forName:SDLNameName]; + [store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLLightName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setDensityAvailable:(nullable NSNumber<SDLBool> *)densityAvailable { - [store sdl_setObject:densityAvailable forName:SDLNameDensityAvailable]; + [store sdl_setObject:densityAvailable forName:SDLRPCParameterNameDensityAvailable]; } - (nullable NSNumber<SDLBool> *)densityAvailable { - return [store sdl_objectForName:SDLNameDensityAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameDensityAvailable ofClass:NSNumber.class error:nil]; } - (void)setColorAvailable:(nullable NSNumber<SDLBool> *)colorAvailable { - [store sdl_setObject:colorAvailable forName:SDLNameRGBColorSpaceAvailable]; + [store sdl_setObject:colorAvailable forName:SDLRPCParameterNameRGBColorSpaceAvailable]; } - (nullable NSNumber<SDLBool> *)colorAvailable { - return [store sdl_objectForName:SDLNameRGBColorSpaceAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameRGBColorSpaceAvailable ofClass:NSNumber.class error:nil]; } - (void)setStatusAvailable:(nullable NSNumber<SDLBool> *)statusAvailable { - [store sdl_setObject:statusAvailable forName:SDLNameStatusAvailable]; + [store sdl_setObject:statusAvailable forName:SDLRPCParameterNameStatusAvailable]; } - (nullable NSNumber<SDLBool> *)statusAvailable { - return [store sdl_objectForName:SDLNameStatusAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameStatusAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLLightControlCapabilities.m b/SmartDeviceLink/SDLLightControlCapabilities.m index 90494d2a6..478e60f29 100644 --- a/SmartDeviceLink/SDLLightControlCapabilities.m +++ b/SmartDeviceLink/SDLLightControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLLightControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLLightCapabilities.h" @@ -23,20 +23,22 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setSupportedLights:(NSArray<SDLLightCapabilities *> *)supportedLights { - [store sdl_setObject:supportedLights forName:SDLNameSupportedLights]; + [store sdl_setObject:supportedLights forName:SDLRPCParameterNameSupportedLights]; } - (NSArray<SDLLightCapabilities *> *)supportedLights { - return [store sdl_objectsForName:SDLNameSupportedLights ofClass:SDLLightCapabilities.class]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameSupportedLights ofClass:SDLLightCapabilities.class error:&error]; } diff --git a/SmartDeviceLink/SDLLightControlData.m b/SmartDeviceLink/SDLLightControlData.m index ca8bdba76..586fe9a2d 100644 --- a/SmartDeviceLink/SDLLightControlData.m +++ b/SmartDeviceLink/SDLLightControlData.m @@ -2,7 +2,7 @@ // #import "SDLLightControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLLightState.h" @@ -21,11 +21,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setLightState:(NSArray<SDLLightState *> *)lightState { - [store sdl_setObject:lightState forName:SDLNameLightState]; + [store sdl_setObject:lightState forName:SDLRPCParameterNameLightState]; } - (NSArray<SDLLightState *> *)lightState { - return [store sdl_objectsForName:SDLNameLightState ofClass:SDLLightState.class]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameLightState ofClass:SDLLightState.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLLightState.m b/SmartDeviceLink/SDLLightState.m index 24e1909e6..28357d3ef 100644 --- a/SmartDeviceLink/SDLLightState.m +++ b/SmartDeviceLink/SDLLightState.m @@ -2,7 +2,7 @@ // #import "SDLLightState.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLRGBColor.h" @@ -48,35 +48,37 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setId:(SDLLightName)id { - [store sdl_setObject:id forName:SDLNameId]; + [store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (SDLLightName)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameId error:&error]; } - (void)setStatus:(SDLLightStatus)status { - [store sdl_setObject:status forName:SDLNameStatus]; + [store sdl_setObject:status forName:SDLRPCParameterNameStatus]; } - (SDLLightStatus)status { - return [store sdl_objectForName:SDLNameStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; } - (void)setDensity:(nullable NSNumber<SDLFloat> *)density { - [store sdl_setObject:density forName:SDLNameDensity]; + [store sdl_setObject:density forName:SDLRPCParameterNameDensity]; } - (nullable NSNumber<SDLFloat> *)density { - return [store sdl_objectForName:SDLNameDensity]; + return [store sdl_objectForName:SDLRPCParameterNameDensity ofClass:NSNumber.class error:nil]; } - (void)setColor:(nullable SDLRGBColor *)color { - [store sdl_setObject:color forName:SDLNameColor]; + [store sdl_setObject:color forName:SDLRPCParameterNameColor]; } - (nullable SDLRGBColor *)color { - return [store sdl_objectForName:SDLNameColor ofClass:[SDLRGBColor class]]; + return [store sdl_objectForName:SDLRPCParameterNameColor ofClass:SDLRGBColor.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLListFiles.m b/SmartDeviceLink/SDLListFiles.m index 9efc8f6cb..f9ee924ed 100644 --- a/SmartDeviceLink/SDLListFiles.m +++ b/SmartDeviceLink/SDLListFiles.m @@ -5,14 +5,15 @@ #import "SDLListFiles.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLListFiles - (instancetype)init { - if (self = [super initWithName:SDLNameListFiles]) { + if (self = [super initWithName:SDLRPCFunctionNameListFiles]) { } return self; } diff --git a/SmartDeviceLink/SDLListFilesResponse.m b/SmartDeviceLink/SDLListFilesResponse.m index 376e81702..e3ef9e8b0 100644 --- a/SmartDeviceLink/SDLListFilesResponse.m +++ b/SmartDeviceLink/SDLListFilesResponse.m @@ -5,32 +5,33 @@ #import "SDLListFilesResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLListFilesResponse - (instancetype)init { - if (self = [super initWithName:SDLNameListFiles]) { + if (self = [super initWithName:SDLRPCFunctionNameListFiles]) { } return self; } - (void)setFilenames:(nullable NSArray<NSString *> *)filenames { - [parameters sdl_setObject:filenames forName:SDLNameFilenames]; + [parameters sdl_setObject:filenames forName:SDLRPCParameterNameFilenames]; } - (nullable NSArray<NSString *> *)filenames { - return [parameters sdl_objectForName:SDLNameFilenames]; + return [parameters sdl_objectsForName:SDLRPCParameterNameFilenames ofClass:NSString.class error:nil]; } - (void)setSpaceAvailable:(nullable NSNumber<SDLInt> *)spaceAvailable { - [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; + [parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; } - (nullable NSNumber<SDLInt> *)spaceAvailable { - return [parameters sdl_objectForName:SDLNameSpaceAvailable]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLLocationCoordinate.h b/SmartDeviceLink/SDLLocationCoordinate.h index 1bdf90672..abc0beefe 100644 --- a/SmartDeviceLink/SDLLocationCoordinate.h +++ b/SmartDeviceLink/SDLLocationCoordinate.h @@ -6,21 +6,30 @@ NS_ASSUME_NONNULL_BEGIN /** - Describes a coordinate on earth + * Describes a coordinate on earth */ @interface SDLLocationCoordinate : SDLRPCStruct /** - * Latitude of the location + * Convenience init for location coordinates * - * Required, Double -90 - 90 + * @param latitudeDegrees Latitude of the location + * @param longitudeDegrees Latitude of the location + * @return A SDLLocationCoordinate object + */ +- (instancetype)initWithLatitudeDegrees:(float)latitudeDegrees longitudeDegrees:(float)longitudeDegrees; + +/** + * Latitude of the location + * + * Required, Double -90 - 90 */ @property (copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees; /** - * Longitude of the location + * Latitude of the location * - * Required, Double -180 - 180 + * Required, Double -180 - 180 */ @property (copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees; diff --git a/SmartDeviceLink/SDLLocationCoordinate.m b/SmartDeviceLink/SDLLocationCoordinate.m index 79b3d4d56..79bd42028 100644 --- a/SmartDeviceLink/SDLLocationCoordinate.m +++ b/SmartDeviceLink/SDLLocationCoordinate.m @@ -4,26 +4,40 @@ #import "SDLLocationCoordinate.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLLocationCoordinate +- (instancetype)initWithLatitudeDegrees:(float)latitudeDegrees longitudeDegrees:(float)longitudeDegrees { + self = [self init]; + if (!self) { + return nil; + } + + self.latitudeDegrees = @(latitudeDegrees); + self.longitudeDegrees = @(longitudeDegrees); + + return self; +} + - (void)setLongitudeDegrees:(NSNumber<SDLFloat> *)longitudeDegrees { - [store sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; + [store sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; } - (NSNumber<SDLFloat> *)longitudeDegrees { - return [store sdl_objectForName:SDLNameLongitudeDegrees]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:&error]; } - (void)setLatitudeDegrees:(NSNumber<SDLFloat> *)latitudeDegrees { - [store sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; + [store sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; } - (NSNumber<SDLFloat> *)latitudeDegrees { - return [store sdl_objectForName:SDLNameLatitudeDegrees]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLLocationDetails.h b/SmartDeviceLink/SDLLocationDetails.h index f60e8db76..4b41d3f4d 100644 --- a/SmartDeviceLink/SDLLocationDetails.h +++ b/SmartDeviceLink/SDLLocationDetails.h @@ -10,11 +10,33 @@ NS_ASSUME_NONNULL_BEGIN /** - Describes a location, including its coordinate, name, etc. Used in WayPoints. + * Describes a location, including its coordinate, name, etc. Used in WayPoints. */ @interface SDLLocationDetails : SDLRPCStruct /** + * Convenience init for location coordinate. + * + * @param coordinate Latitude/Longitude of the location + * @return A SDLLocationDetails object + */ +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param coordinate Latitude/Longitude of the location + * @param locationName Name of location + * @param addressLines Location address for display purposes only + * @param locationDescription Description intended location / establishment + * @param phoneNumber Phone number of location / establishment + * @param locationImage Image / icon of intended location + * @param searchAddress Address to be used by navigation engines for search + * @return A SDLLocationDetails object + */ +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate locationName:(nullable NSString *)locationName addressLines:(nullable NSArray<NSString *> *)addressLines locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString*)phoneNumber locationImage:(nullable SDLImage *)locationImage searchAddress:(nullable SDLOasisAddress *)searchAddress; + +/** * Latitude/Longitude of the location * * @see SDLLocationCoordinate diff --git a/SmartDeviceLink/SDLLocationDetails.m b/SmartDeviceLink/SDLLocationDetails.m index ccf73cda4..8de7aa7ea 100644 --- a/SmartDeviceLink/SDLLocationDetails.m +++ b/SmartDeviceLink/SDLLocationDetails.m @@ -6,67 +6,94 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLLocationCoordinate.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLOasisAddress.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLLocationDetails +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate { + self = [super init]; + if (!self) { + return nil; + } + + self.coordinate = coordinate; + + return self; +} + +- (instancetype)initWithCoordinate:(SDLLocationCoordinate *)coordinate locationName:(nullable NSString *)locationName addressLines:(nullable NSArray<NSString *> *)addressLines locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString*)phoneNumber locationImage:(nullable SDLImage *)locationImage searchAddress:(nullable SDLOasisAddress *)searchAddress { + self = [self initWithCoordinate:coordinate]; + if (!self) { + return nil; + } + + self.locationName = locationName; + self.addressLines = addressLines; + self.locationDescription = locationDescription; + self.phoneNumber = phoneNumber; + self.locationImage = locationImage; + self.searchAddress = searchAddress; + + return self; +} + - (void)setCoordinate:(nullable SDLLocationCoordinate *)coordinate { - [store sdl_setObject:coordinate forName:SDLNameLocationCoordinate]; + [store sdl_setObject:coordinate forName:SDLRPCParameterNameLocationCoordinate]; } - (nullable SDLLocationCoordinate *)coordinate { - return [store sdl_objectForName:SDLNameLocationCoordinate ofClass:SDLLocationCoordinate.class]; + return [store sdl_objectForName:SDLRPCParameterNameLocationCoordinate ofClass:SDLLocationCoordinate.class error:nil]; } - (void)setLocationName:(nullable NSString *)locationName { - [store sdl_setObject:locationName forName:SDLNameLocationName]; + [store sdl_setObject:locationName forName:SDLRPCParameterNameLocationName]; } - (nullable NSString *)locationName { - return [store sdl_objectForName:SDLNameLocationName]; + return [store sdl_objectForName:SDLRPCParameterNameLocationName ofClass:NSString.class error:nil]; } - (void)setAddressLines:(nullable NSArray<NSString *> *)addressLines { - [store sdl_setObject:addressLines forName:SDLNameAddressLines]; + [store sdl_setObject:addressLines forName:SDLRPCParameterNameAddressLines]; } - (nullable NSArray<NSString *> *)addressLines { - return [store sdl_objectForName:SDLNameAddressLines]; + return [store sdl_objectsForName:SDLRPCParameterNameAddressLines ofClass:NSString.class error:nil]; } - (void)setLocationDescription:(nullable NSString *)locationDescription { - [store sdl_setObject:locationDescription forName:SDLNameLocationDescription]; + [store sdl_setObject:locationDescription forName:SDLRPCParameterNameLocationDescription]; } - (nullable NSString *)locationDescription { - return [store sdl_objectForName:SDLNameLocationDescription]; + return [store sdl_objectForName:SDLRPCParameterNameLocationDescription ofClass:NSString.class error:nil]; } - (void)setPhoneNumber:(nullable NSString *)phoneNumber { - [store sdl_setObject:phoneNumber forName:SDLNamePhoneNumber]; + [store sdl_setObject:phoneNumber forName:SDLRPCParameterNamePhoneNumber]; } - (nullable NSString *)phoneNumber { - return [store sdl_objectForName:SDLNamePhoneNumber]; + return [store sdl_objectForName:SDLRPCParameterNamePhoneNumber ofClass:NSString.class error:nil]; } - (void)setLocationImage:(nullable SDLImage *)locationImage { - [store sdl_setObject:locationImage forName:SDLNameLocationImage]; + [store sdl_setObject:locationImage forName:SDLRPCParameterNameLocationImage]; } - (nullable SDLImage *)locationImage { - return [store sdl_objectForName:SDLNameLocationImage ofClass:SDLImage.class]; + return [store sdl_objectForName:SDLRPCParameterNameLocationImage ofClass:SDLImage.class error:nil]; } - (void)setSearchAddress:(nullable SDLOasisAddress *)searchAddress { - [store sdl_setObject:searchAddress forName:SDLNameSearchAddress]; + [store sdl_setObject:searchAddress forName:SDLRPCParameterNameSearchAddress]; } - (nullable SDLOasisAddress *)searchAddress { - return [store sdl_objectForName:SDLNameSearchAddress ofClass:SDLOasisAddress.class]; + return [store sdl_objectForName:SDLRPCParameterNameSearchAddress ofClass:SDLOasisAddress.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLLogConfiguration.h b/SmartDeviceLink/SDLLogConfiguration.h index c7f49adf0..f92b30be5 100644 --- a/SmartDeviceLink/SDLLogConfiguration.h +++ b/SmartDeviceLink/SDLLogConfiguration.h @@ -50,6 +50,11 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; /** + Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. + */ +@property (assign, nonatomic, getter=areAssertionsDisabled) BOOL disableAssertions; + +/** 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. */ diff --git a/SmartDeviceLink/SDLLogConfiguration.m b/SmartDeviceLink/SDLLogConfiguration.m index 3ef5526df..36141ce45 100644 --- a/SmartDeviceLink/SDLLogConfiguration.m +++ b/SmartDeviceLink/SDLLogConfiguration.m @@ -28,6 +28,7 @@ NS_ASSUME_NONNULL_BEGIN _formatType = SDLLogFormatTypeDefault; _asynchronous = YES; _errorsAsynchronous = NO; + _disableAssertions = NO; _globalLogLevel = SDLLogLevelError; return self; @@ -80,6 +81,7 @@ NS_ASSUME_NONNULL_BEGIN newConfig.formatType = self.formatType; newConfig.asynchronous = self.asynchronous; newConfig.errorsAsynchronous = self.errorsAsynchronous; + newConfig.disableAssertions = self.areAssertionsDisabled; newConfig.globalLogLevel = self.globalLogLevel; return newConfig; diff --git a/SmartDeviceLink/SDLLogFileModuleMap.m b/SmartDeviceLink/SDLLogFileModuleMap.m index 1ac7615d9..9af182d88 100644 --- a/SmartDeviceLink/SDLLogFileModuleMap.m +++ b/SmartDeviceLink/SDLLogFileModuleMap.m @@ -20,6 +20,7 @@ [self sdl_dispatcherModule], [self sdl_fileManagerModule], [self sdl_lifecycleManagerModule], + [self sdl_systemCapabilityModule], [self sdl_lockscreenManagerModule], [self sdl_streamingMediaManagerModule], [self sdl_streamingMediaAudioTranscoderModule], @@ -43,7 +44,7 @@ } + (SDLLogFileModule *)sdl_rpcModule { - return [SDLLogFileModule moduleWithName:@"RPC" files:[NSSet setWithArray:@[@"SDLRPCPayload"]]]; + return [SDLLogFileModule moduleWithName:@"RPC" files:[NSSet setWithArray:@[@"SDLRPCPayload", @"NSMutableDictionary+Store"]]]; } + (SDLLogFileModule *)sdl_dispatcherModule { @@ -61,6 +62,10 @@ return [SDLLogFileModule moduleWithName:@"Lifecycle" files:[NSSet setWithArray:@[@"SDLLifecycleManager", @"SDLManager"]]]; } ++ (SDLLogFileModule *)sdl_systemCapabilityModule { + return [SDLLogFileModule moduleWithName:@"System Capability" files:[NSSet setWithArray:@[@"SDLSystemCapabilityManager"]]]; +} + + (SDLLogFileModule *)sdl_lockscreenManagerModule { return [SDLLogFileModule moduleWithName:@"Lockscreen" files:[NSSet setWithArray:@[@"SDLLockScreenManager", @"SDLLockScreenViewController", @"SDLLockScreenPresenter"]]]; } diff --git a/SmartDeviceLink/SDLLogMacros.h b/SmartDeviceLink/SDLLogMacros.h index 662382f9b..da75a07bc 100644 --- a/SmartDeviceLink/SDLLogMacros.h +++ b/SmartDeviceLink/SDLLogMacros.h @@ -99,3 +99,11 @@ @param ... The format arguments to log */ #define SDLLogE(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelError timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] + +/** + Log an assertion log. This will log an error, and assert by default in DEBUG (but this can be disabled in the SDLLogConfiguration). + + @param msg The format string to log + @param ... The format arguments to log + */ +#define SDLLogAssert(msg, ...) [SDLLogManager logAssertWithTimestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] diff --git a/SmartDeviceLink/SDLLogManager.h b/SmartDeviceLink/SDLLogManager.h index c341fabe3..f09faeca0 100644 --- a/SmartDeviceLink/SDLLogManager.h +++ b/SmartDeviceLink/SDLLogManager.h @@ -63,6 +63,11 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readonly, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; /** + Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. + */ +@property (assign, nonatomic, readonly, getter=areAssertionsDisabled) BOOL disableAssertions; + +/** Active date formatter */ @property (class, strong, nonatomic, readonly) NSDateFormatter *dateFormatter; @@ -210,6 +215,40 @@ NS_ASSUME_NONNULL_BEGIN line:(NSInteger)line queue:(NSString *)queueLabel; +/** + Log an error to the sharedManager's active log targets and assert. This is used internally to log. + + @param timestamp The time the log was sent + @param file The file the log originated from + @param functionName The function the log originated from + @param line The line the log originated from + @param queueLabel The queue the log was sent from + @param message The message of the log + */ ++ (void)logAssertWithTimestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(6, 7); + +/** + Log an error to this manager's active log targets and assert. This is used internally to log. + + @param timestamp The time the log was sent + @param file The file the log originated from + @param functionName The function the log originated from + @param line The line the log originated from + @param queueLabel The queue the log was sent from + @param message The message of the log + */ +- (void)logAssertWithTimestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(6, 7); + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogManager.m b/SmartDeviceLink/SDLLogManager.m index ab781dc13..22918ed9c 100644 --- a/SmartDeviceLink/SDLLogManager.m +++ b/SmartDeviceLink/SDLLogManager.m @@ -27,6 +27,7 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readwrite, getter=isAsynchronous) BOOL asynchronous; @property (assign, nonatomic, readwrite, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; +@property (assign, nonatomic, readwrite, getter=areAssertionsDisabled) BOOL disableAssertions; @end @@ -57,6 +58,7 @@ static dispatch_queue_t _logQueue = NULL; _asynchronous = YES; _errorsAsynchronous = NO; + _disableAssertions = NO; _globalLogLevel = SDLLogLevelError; _formatType = SDLLogFormatTypeDefault; @@ -76,6 +78,7 @@ static dispatch_queue_t _logQueue = NULL; self.formatType = configuration.formatType; self.asynchronous = configuration.isAsynchronous; self.errorsAsynchronous = configuration.areErrorsAsynchronous; + self.disableAssertions = configuration.areAssertionsDisabled; self.globalLogLevel = configuration.globalLogLevel; // Start the loggers @@ -99,6 +102,15 @@ static dispatch_queue_t _logQueue = NULL; [[self sharedManager] logBytes:data direction:direction timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel]; } ++ (void)logAssertWithTimestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { + va_list args; + va_start(args, message); + NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; + va_end(args); + + [[self sharedManager] logAssertWithTimestamp:timestamp file:file functionName:functionName line:line queue:queueLabel formatMessage:@"%@", format]; +} + + (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel message:(NSString *)message { [[self sharedManager] logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; } @@ -120,6 +132,17 @@ static dispatch_queue_t _logQueue = NULL; [self logWithLevel:SDLLogLevelVerbose timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; } +- (void)logAssertWithTimestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { + va_list args; + va_start(args, message); + NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; + va_end(args); + + [self logWithLevel:SDLLogLevelError timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; + + NSAssert(self.areAssertionsDisabled, @"SDL ASSERTION: %@. To disable these assertions, alter your `SDLLogConfiguration` and set `disableAssertions` to `YES`", format); +} + - (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel formatMessage:(NSString *)message, ... { va_list args; va_start(args, message); diff --git a/SmartDeviceLink/SDLManager.h b/SmartDeviceLink/SDLManager.h index b984a58a5..91aece5e5 100644 --- a/SmartDeviceLink/SDLManager.h +++ b/SmartDeviceLink/SDLManager.h @@ -15,6 +15,7 @@ @class SDLProxy; @class SDLPutFile; @class SDLRegisterAppInterfaceResponse; +@class SDLRPCMessage; @class SDLRPCNotification; @class SDLRPCRequest; @class SDLRPCResponse; @@ -84,6 +85,11 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (strong, nonatomic, readonly, nullable) SDLRegisterAppInterfaceResponse *registerResponse; /** + * The auth token, if received. This should be used to log into a user account. Primarily used for cloud apps with companion app stores. + */ +@property (strong, nonatomic, readonly, nullable) NSString *authToken; + +/** * The manager's delegate. */ @property (weak, nonatomic, nullable) id<SDLManagerDelegate> delegate; @@ -133,6 +139,13 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); #pragma mark Manually Send RPC Requests /** + * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call `sendRequest:withResponseHandler:` instead. + * + * @param rpc An RPC of type `SDLRPCResponse`, `SDLRPCNotification` or `SDLRPCRequest` + */ +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc; + +/** * 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 diff --git a/SmartDeviceLink/SDLManager.m b/SmartDeviceLink/SDLManager.m index fa7c9e8e0..0cf027401 100644 --- a/SmartDeviceLink/SDLManager.m +++ b/SmartDeviceLink/SDLManager.m @@ -97,6 +97,10 @@ NS_ASSUME_NONNULL_BEGIN return self.lifecycleManager.registerResponse; } +- (nullable NSString *)authToken { + return self.lifecycleManager.authToken; +} + - (nullable id<SDLManagerDelegate>)delegate { return self.lifecycleManager.delegate; } @@ -119,12 +123,16 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark SDLConnectionManager Protocol +- (void)sendRPC:(__kindof SDLRPCMessage *)rpc { + [self.lifecycleManager sendRPC:rpc]; +} + - (void)sendRequest:(SDLRPCRequest *)request { [self sendRequest:request withResponseHandler:nil]; } - (void)sendRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { - [self.lifecycleManager sendRequest:request withResponseHandler:handler]; + [self.lifecycleManager sendRequest:(__kindof SDLRPCMessage *)request withResponseHandler:handler]; } - (void)sendRequests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleAsyncRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler { diff --git a/SmartDeviceLink/SDLMassageCushionFirmness.m b/SmartDeviceLink/SDLMassageCushionFirmness.m index 480f13184..fe3bc6335 100644 --- a/SmartDeviceLink/SDLMassageCushionFirmness.m +++ b/SmartDeviceLink/SDLMassageCushionFirmness.m @@ -1,7 +1,7 @@ // SDLMassageCushionFirmness.m // -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMassageCushionFirmness.h" #import "NSMutableDictionary+Store.h" @@ -22,19 +22,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setCushion:(SDLMassageCushion)cushion { - [store sdl_setObject:cushion forName:SDLNameCushion]; + [store sdl_setObject:cushion forName:SDLRPCParameterNameCushion]; } - (SDLMassageCushion)cushion { - return [store sdl_objectForName:SDLNameCushion]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameCushion error:&error]; } - (void)setFirmness:(NSNumber<SDLInt> *)firmness { - [store sdl_setObject:firmness forName:SDLNameFirmness]; + [store sdl_setObject:firmness forName:SDLRPCParameterNameFirmness]; } - (NSNumber<SDLInt> *)firmness { - return [store sdl_objectForName:SDLNameFirmness]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameFirmness ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLMassageModeData.m b/SmartDeviceLink/SDLMassageModeData.m index 83046f3f2..35fa3a8b3 100644 --- a/SmartDeviceLink/SDLMassageModeData.m +++ b/SmartDeviceLink/SDLMassageModeData.m @@ -1,7 +1,7 @@ // SDLMassageModeData.m // -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMassageModeData.h" #import "NSMutableDictionary+Store.h" @@ -22,19 +22,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setMassageMode:(SDLMassageMode)massageMode { - [store sdl_setObject:massageMode forName:SDLNameMassageMode]; + [store sdl_setObject:massageMode forName:SDLRPCParameterNameMassageMode]; } - (SDLMassageMode)massageMode { - return [store sdl_objectForName:SDLNameMassageMode]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMassageMode error:&error]; } - (void)setMassageZone:(SDLMassageZone)massageZone { - [store sdl_setObject:massageZone forName:SDLNameMassageZone]; + [store sdl_setObject:massageZone forName:SDLRPCParameterNameMassageZone]; } - (SDLMassageZone)massageZone { - return [store sdl_objectForName:SDLNameMassageZone]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameMassageZone error:&error]; } @end diff --git a/SmartDeviceLink/SDLMediaServiceData.h b/SmartDeviceLink/SDLMediaServiceData.h new file mode 100644 index 000000000..ba61d05a3 --- /dev/null +++ b/SmartDeviceLink/SDLMediaServiceData.h @@ -0,0 +1,146 @@ +// +// SDLMediaServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLMediaType.h" + +NS_ASSUME_NONNULL_BEGIN + + +/** + * This data is related to what a media service should provide. + */ +@interface SDLMediaServiceData : SDLRPCStruct + +/** + * Convenience init + * + * @param mediaType The type of the currently playing or paused track + * @param mediaTitle The name of the current playing media + * @param mediaArtist The name of the current media artist + * @param mediaAlbum The name of the current media album + * @param playlistName The name of the playlist + * @param isExplicit Whether or not the content currently playing contains explicit content + * @param trackPlaybackProgress The current progress of the track + * @param trackPlaybackDuration The total duration of the track + * @param queuePlaybackProgress The current progress of the playback queue in seconds + * @param queuePlaybackDuration The total duration of the playback queue in seconds + * @param queueCurrentTrackNumber The current number (1 based) of the track in the playback queue + * @param queueTotalTrackCount The total number of tracks in the playback queue + * @return A SDLMediaServiceData object + */ +- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount; + +/** + * The type of the currently playing or paused track. + * + * SDLMediaType, Optional + */ +@property (nullable, strong, nonatomic) SDLMediaType mediaType; + +/** + * Music: The name of the current track + * Podcast: The name of the current episode + * Audiobook: The name of the current chapter + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *mediaTitle; + +/** + * Music: The name of the current album artist + * Podcast: The provider of the podcast (hosts, network, company) + * Audiobook: The book author's name + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *mediaArtist; + +/** + * Music: The name of the current album + * Podcast: The name of the current podcast show + * Audiobook: The name of the current book + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *mediaAlbum; + +/** + * Music: The name of the playlist or radio station, if the user is playing from a playlist, otherwise, Null + * Podcast: The name of the playlist, if the user is playing from a playlist, otherwise, Null + * Audiobook: Likely not applicable, possibly a collection or "playlist" of books + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *playlistName; + +/** + * Whether or not the content currently playing (e.g. the track, episode, or book) contains explicit content. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *isExplicit; + +/** + * Music: The current progress of the track in seconds + * Podcast: The current progress of the episode in seconds + * Audiobook: The current progress of the current segment (e.g. the chapter) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *trackPlaybackProgress; + +/** + * Music: The total duration of the track in seconds + * Podcast: The total duration of the episode in seconds + * Audiobook: The total duration of the current segment (e.g. the chapter) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *trackPlaybackDuration; + +/** + * Music: The current progress of the playback queue in seconds + * Podcast: The current progress of the playback queue in seconds + * Audiobook: The current progress of the playback queue (e.g. the book) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *queuePlaybackProgress; + +/** + * Music: The total duration of the playback queue in seconds + * Podcast: The total duration of the playback queue in seconds + * Audiobook: The total duration of the playback queue (e.g. the book) in seconds + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *queuePlaybackDuration; + +/** + * Music: The current number (1 based) of the track in the playback queue + * Podcast: The current number (1 based) of the episode in the playback queue + * Audiobook: The current number (1 based) of the episode in the playback queue (e.g. the chapter number in the book) + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *queueCurrentTrackNumber; + +/** + * Music: The total number of tracks in the playback queue + * Podcast: The total number of episodes in the playback queue + * Audiobook: The total number of sections in the playback queue (e.g. the number of chapters in the book) + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *queueTotalTrackCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMediaServiceData.m b/SmartDeviceLink/SDLMediaServiceData.m new file mode 100644 index 000000000..4abb6c5d2 --- /dev/null +++ b/SmartDeviceLink/SDLMediaServiceData.m @@ -0,0 +1,138 @@ +// +// SDLMediaServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMediaServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLMediaServiceData + +- (instancetype)initWithMediaType:(nullable SDLMediaType)mediaType mediaTitle:(nullable NSString *)mediaTitle mediaArtist:(nullable NSString *)mediaArtist mediaAlbum:(nullable NSString *)mediaAlbum playlistName:(nullable NSString *)playlistName isExplicit:(BOOL)isExplicit trackPlaybackProgress:(UInt32)trackPlaybackProgress trackPlaybackDuration:(UInt32)trackPlaybackDuration queuePlaybackProgress:(UInt32)queuePlaybackProgress queuePlaybackDuration:(UInt32)queuePlaybackDuration queueCurrentTrackNumber:(UInt32)queueCurrentTrackNumber queueTotalTrackCount:(UInt32)queueTotalTrackCount { + self = [self init]; + if (!self) { + return nil; + } + + self.mediaType = mediaType; + self.mediaTitle = mediaTitle; + self.mediaArtist = mediaArtist; + self.mediaAlbum = mediaAlbum; + self.playlistName = playlistName; + self.isExplicit = @(isExplicit); + self.trackPlaybackProgress = @(trackPlaybackProgress); + self.trackPlaybackDuration = @(trackPlaybackDuration); + self.queuePlaybackProgress = @(queuePlaybackProgress); + self.queuePlaybackDuration = @(queuePlaybackDuration); + self.queueCurrentTrackNumber = @(queueCurrentTrackNumber); + self.queueTotalTrackCount = @(queueTotalTrackCount); + + return self; +} + +- (void)setMediaType:(nullable SDLMediaType)mediaType { + [store sdl_setObject:mediaType forName:SDLRPCParameterNameMediaType]; +} + +- (nullable SDLMediaType)mediaType { + return [store sdl_enumForName:SDLRPCParameterNameMediaType error:nil]; +} + +- (void)setMediaTitle:(nullable NSString *)mediaTitle { + [store sdl_setObject:mediaTitle forName:SDLRPCParameterNameMediaTitle]; +} + +- (nullable NSString *)mediaTitle { + return [store sdl_objectForName:SDLRPCParameterNameMediaTitle ofClass:NSString.class error:nil]; +} + +- (void)setMediaArtist:(nullable NSString *)mediaArtist { + [store sdl_setObject:mediaArtist forName:SDLRPCParameterNameMediaArtist]; +} + +- (nullable NSString *)mediaArtist { + return [store sdl_objectForName:SDLRPCParameterNameMediaArtist ofClass:NSString.class error:nil]; +} + +- (void)setMediaAlbum:(nullable NSString *)mediaAlbum { + [store sdl_setObject:mediaAlbum forName:SDLRPCParameterNameMediaAlbum]; +} + +- (nullable NSString *)mediaAlbum { + return [store sdl_objectForName:SDLRPCParameterNameMediaAlbum ofClass:NSString.class error:nil]; +} + +- (void)setPlaylistName:(nullable NSString *)playlistName { + [store sdl_setObject:playlistName forName:SDLRPCParameterNamePlaylistName]; +} + +- (nullable NSString *)playlistName { + return [store sdl_objectForName:SDLRPCParameterNamePlaylistName ofClass:NSString.class error:nil]; +} + +- (void)setIsExplicit:(nullable NSNumber<SDLBool> *)isExplicit { + [store sdl_setObject:isExplicit forName:SDLRPCParameterNameIsExplicit]; +} + +- (nullable NSNumber<SDLBool> *)isExplicit { + return [store sdl_objectForName:SDLRPCParameterNameIsExplicit ofClass:NSNumber.class error:nil]; +} + +- (void)setTrackPlaybackProgress:(nullable NSNumber<SDLInt> *)trackPlaybackProgress { + [store sdl_setObject:trackPlaybackProgress forName:SDLRPCParameterNameTrackPlaybackProgress]; +} + +- (nullable NSNumber<SDLInt> *)trackPlaybackProgress { + return [store sdl_objectForName:SDLRPCParameterNameTrackPlaybackProgress ofClass:NSNumber.class error:nil]; +} + +- (void)setTrackPlaybackDuration:(nullable NSNumber<SDLInt> *)trackPlaybackDuration { + [store sdl_setObject:trackPlaybackDuration forName:SDLRPCParameterNameTrackPlaybackDuration]; +} + +- (nullable NSNumber<SDLInt> *)trackPlaybackDuration { + return [store sdl_objectForName:SDLRPCParameterNameTrackPlaybackDuration ofClass:NSNumber.class error:nil]; +} + +- (void)setQueuePlaybackProgress:(nullable NSNumber<SDLInt> *)queuePlaybackProgress { + [store sdl_setObject:queuePlaybackProgress forName:SDLRPCParameterNameQueuePlaybackProgress]; +} + +- (nullable NSNumber<SDLInt> *)queuePlaybackProgress { + return [store sdl_objectForName:SDLRPCParameterNameQueuePlaybackProgress ofClass:NSNumber.class error:nil]; +} + +- (void)setQueuePlaybackDuration:(nullable NSNumber<SDLInt> *)queuePlaybackDuration { + [store sdl_setObject:queuePlaybackDuration forName:SDLRPCParameterNameQueuePlaybackDuration]; +} + +- (nullable NSNumber<SDLInt> *)queuePlaybackDuration { + return [store sdl_objectForName:SDLRPCParameterNameQueuePlaybackDuration ofClass:NSNumber.class error:nil]; +} + +- (void)setQueueCurrentTrackNumber:(nullable NSNumber<SDLInt> *)queueCurrentTrackNumber { + [store sdl_setObject:queueCurrentTrackNumber forName:SDLRPCParameterNameQueueCurrentTrackNumber]; +} + +- (nullable NSNumber<SDLInt> *)queueCurrentTrackNumber { + return [store sdl_objectForName:SDLRPCParameterNameQueueCurrentTrackNumber ofClass:NSNumber.class error:nil]; +} + +- (void)setQueueTotalTrackCount:(nullable NSNumber<SDLInt> *)queueTotalTrackCount { + [store sdl_setObject:queueTotalTrackCount forName:SDLRPCParameterNameQueueTotalTrackCount]; +} + +- (nullable NSNumber<SDLInt> *)queueTotalTrackCount { + return [store sdl_objectForName:SDLRPCParameterNameQueueTotalTrackCount ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMediaServiceManifest.h b/SmartDeviceLink/SDLMediaServiceManifest.h new file mode 100644 index 000000000..a3b931c98 --- /dev/null +++ b/SmartDeviceLink/SDLMediaServiceManifest.h @@ -0,0 +1,20 @@ +// +// SDLMediaServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 2/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A media service manifest. + */ +@interface SDLMediaServiceManifest : SDLRPCStruct + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMediaServiceManifest.m b/SmartDeviceLink/SDLMediaServiceManifest.m new file mode 100644 index 000000000..734256320 --- /dev/null +++ b/SmartDeviceLink/SDLMediaServiceManifest.m @@ -0,0 +1,17 @@ +// +// SDLMediaServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 2/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMediaServiceManifest.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLMediaServiceManifest + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMediaType.h b/SmartDeviceLink/SDLMediaType.h new file mode 100644 index 000000000..f7d1943c2 --- /dev/null +++ b/SmartDeviceLink/SDLMediaType.h @@ -0,0 +1,35 @@ +// +// SDLMediaType.h +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible media types. + */ +typedef SDLEnum SDLMediaType SDL_SWIFT_ENUM; + +/** + * The app will have a media type of music. + */ +extern SDLMediaType const SDLMediaTypeMusic; + +/** + * The app will have a media type of podcast. + */ +extern SDLMediaType const SDLMediaTypePodcast; + +/** + * The app will have a media type of audiobook. + */ +extern SDLMediaType const SDLMediaTypeAudiobook; + +/** + * The app will have a media type of other. + */ +extern SDLMediaType const SDLMediaTypeOther; + diff --git a/SmartDeviceLink/SDLMediaType.m b/SmartDeviceLink/SDLMediaType.m new file mode 100644 index 000000000..3a18a3dd2 --- /dev/null +++ b/SmartDeviceLink/SDLMediaType.m @@ -0,0 +1,14 @@ +// +// SDLMediaType.m +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLMediaType.h" + +SDLMediaType const SDLMediaTypeMusic = @"MUSIC"; +SDLMediaType const SDLMediaTypePodcast = @"PODCAST"; +SDLMediaType const SDLMediaTypeAudiobook = @"AUDIOBOOK"; +SDLMediaType const SDLMediaTypeOther = @"OTHER"; diff --git a/SmartDeviceLink/SDLMenuManager.m b/SmartDeviceLink/SDLMenuManager.m index aa8528a17..14bdcccc6 100644 --- a/SmartDeviceLink/SDLMenuManager.m +++ b/SmartDeviceLink/SDLMenuManager.m @@ -283,7 +283,7 @@ UInt32 const MenuCellIdMin = 1; NSMutableSet<SDLArtwork *> *mutableArtworks = [NSMutableSet set]; for (SDLMenuCell *cell in cells) { - if (cell.icon != nil && ![self.fileManager hasUploadedFile:cell.icon]) { + if ([self sdl_artworkNeedsUpload:cell.icon]) { [mutableArtworks addObject:cell.icon]; } @@ -295,6 +295,10 @@ UInt32 const MenuCellIdMin = 1; return [mutableArtworks allObjects]; } +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); +} + #pragma mark IDs - (void)sdl_updateIdsOnMenuCells:(NSArray<SDLMenuCell *> *)menuCells parentId:(UInt32)parentId { @@ -374,14 +378,14 @@ UInt32 const MenuCellIdMin = 1; command.menuParams = params; command.vrCommands = cell.voiceCommands; - command.cmdIcon = (cell.icon && shouldHaveArtwork) ? [[SDLImage alloc] initWithName:cell.icon.name isTemplate:cell.icon.isTemplate] : nil; + command.cmdIcon = (cell.icon && shouldHaveArtwork) ? cell.icon.imageRPC : nil; command.cmdID = @(cell.cellId); return command; } - (SDLAddSubMenu *)sdl_subMenuCommandForMenuCell:(SDLMenuCell *)cell withArtwork:(BOOL)shouldHaveArtwork position:(UInt16)position { - SDLImage *icon = (shouldHaveArtwork && (cell.icon.name != nil)) ? [[SDLImage alloc] initWithName:cell.icon.name isTemplate:cell.icon.isTemplate] : nil; + SDLImage *icon = (shouldHaveArtwork && (cell.icon.name != nil)) ? cell.icon.imageRPC : nil; return [[SDLAddSubMenu alloc] initWithId:cell.cellId menuName:cell.title menuIcon:icon position:(UInt8)position]; } diff --git a/SmartDeviceLink/SDLMenuParams.m b/SmartDeviceLink/SDLMenuParams.m index f921ef321..89242ffdb 100644 --- a/SmartDeviceLink/SDLMenuParams.m +++ b/SmartDeviceLink/SDLMenuParams.m @@ -5,7 +5,7 @@ #import "SDLMenuParams.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -35,27 +35,27 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setParentID:(nullable NSNumber<SDLInt> *)parentID { - [store sdl_setObject:parentID forName:SDLNameParentId]; + [store sdl_setObject:parentID forName:SDLRPCParameterNameParentId]; } - (nullable NSNumber<SDLInt> *)parentID { - return [store sdl_objectForName:SDLNameParentId]; + return [store sdl_objectForName:SDLRPCParameterNameParentId ofClass:NSNumber.class error:nil]; } - (void)setPosition:(nullable NSNumber<SDLInt> *)position { - [store sdl_setObject:position forName:SDLNamePosition]; + [store sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (nullable NSNumber<SDLInt> *)position { - return [store sdl_objectForName:SDLNamePosition]; + return [store sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:nil]; } - (void)setMenuName:(NSString *)menuName { - [store sdl_setObject:menuName forName:SDLNameMenuName]; + [store sdl_setObject:menuName forName:SDLRPCParameterNameMenuName]; } - (NSString *)menuName { - return [store sdl_objectForName:SDLNameMenuName]; + return [store sdl_objectForName:SDLRPCParameterNameMenuName ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLMetadataTags.m b/SmartDeviceLink/SDLMetadataTags.m index 656f8871c..0b5850d07 100644 --- a/SmartDeviceLink/SDLMetadataTags.m +++ b/SmartDeviceLink/SDLMetadataTags.m @@ -9,7 +9,7 @@ #import "SDLMetadataTags.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -42,35 +42,35 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setMainField1:(nullable NSArray<SDLMetadataType> *)mainField1 { - [store sdl_setObject:mainField1 forName:SDLNameMainField1]; + [store sdl_setObject:mainField1 forName:SDLRPCParameterNameMainField1]; } - (nullable NSArray<SDLMetadataType> *)mainField1 { - return [store sdl_objectForName:SDLNameMainField1]; + return [store sdl_enumsForName:SDLRPCParameterNameMainField1 error:nil]; } - (void)setMainField2:(nullable NSArray<SDLMetadataType> *)mainField2 { - [store sdl_setObject:mainField2 forName:SDLNameMainField2]; + [store sdl_setObject:mainField2 forName:SDLRPCParameterNameMainField2]; } - (nullable NSArray<SDLMetadataType> *)mainField2 { - return [store sdl_objectForName:SDLNameMainField2]; + return [store sdl_enumsForName:SDLRPCParameterNameMainField2 error:nil]; } - (void)setMainField3:(nullable NSArray<SDLMetadataType> *)mainField3 { - [store sdl_setObject:mainField3 forName:SDLNameMainField3]; + [store sdl_setObject:mainField3 forName:SDLRPCParameterNameMainField3]; } - (nullable NSArray<SDLMetadataType> *)mainField3 { - return [store sdl_objectForName:SDLNameMainField3]; + return [store sdl_enumsForName:SDLRPCParameterNameMainField3 error:nil]; } - (void)setMainField4:(nullable NSArray<SDLMetadataType> *)mainField4 { - [store sdl_setObject:mainField4 forName:SDLNameMainField4]; + [store sdl_setObject:mainField4 forName:SDLRPCParameterNameMainField4]; } - (nullable NSArray<SDLMetadataType> *)mainField4 { - return [store sdl_objectForName:SDLNameMainField4]; + return [store sdl_enumsForName:SDLRPCParameterNameMainField4 error:nil]; } @end diff --git a/SmartDeviceLink/SDLModuleData.m b/SmartDeviceLink/SDLModuleData.m index 947f8b5a0..64d2a5bf0 100644 --- a/SmartDeviceLink/SDLModuleData.m +++ b/SmartDeviceLink/SDLModuleData.m @@ -3,7 +3,7 @@ // #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLClimateControlData.h" #import "SDLRadioControlData.h" #import "SDLSeatControlData.h" @@ -89,59 +89,60 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleType:(SDLModuleType)moduleType { - [store sdl_setObject:moduleType forName:SDLNameModuleType]; + [store sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType]; } - (SDLModuleType)moduleType { - return [store sdl_objectForName:SDLNameModuleType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameModuleType error:&error]; } - (void)setRadioControlData:(nullable SDLRadioControlData *)radioControlData { - [store sdl_setObject:radioControlData forName:SDLNameRadioControlData]; + [store sdl_setObject:radioControlData forName:SDLRPCParameterNameRadioControlData]; } - (nullable SDLRadioControlData *)radioControlData { - return [store sdl_objectForName:SDLNameRadioControlData ofClass:SDLRadioControlData.class]; + return [store sdl_objectForName:SDLRPCParameterNameRadioControlData ofClass:SDLRadioControlData.class error:nil]; } - (void)setClimateControlData:(nullable SDLClimateControlData *)climateControlData { - [store sdl_setObject:climateControlData forName:SDLNameClimateControlData]; + [store sdl_setObject:climateControlData forName:SDLRPCParameterNameClimateControlData]; } - (nullable SDLClimateControlData *)climateControlData { - return [store sdl_objectForName:SDLNameClimateControlData ofClass:SDLClimateControlData.class]; + return [store sdl_objectForName:SDLRPCParameterNameClimateControlData ofClass:SDLClimateControlData.class error:nil]; } - (void)setSeatControlData:(nullable SDLSeatControlData *)seatControlData { - [store sdl_setObject:seatControlData forName:SDLNameSeatControlData]; + [store sdl_setObject:seatControlData forName:SDLRPCParameterNameSeatControlData]; } - (nullable SDLSeatControlData *)seatControlData { - return [store sdl_objectForName:SDLNameSeatControlData ofClass:SDLSeatControlData.class]; + return [store sdl_objectForName:SDLRPCParameterNameSeatControlData ofClass:SDLSeatControlData.class error:nil]; } - (void)setAudioControlData:(nullable SDLAudioControlData *)audioControlData { - [store sdl_setObject:audioControlData forName:SDLNameAudioControlData]; + [store sdl_setObject:audioControlData forName:SDLRPCParameterNameAudioControlData]; } - (nullable SDLAudioControlData *)audioControlData { - return [store sdl_objectForName:SDLNameAudioControlData ofClass:SDLAudioControlData.class]; + return [store sdl_objectForName:SDLRPCParameterNameAudioControlData ofClass:SDLAudioControlData.class error:nil]; } - (void)setLightControlData:(nullable SDLLightControlData *)lightControlData { - [store sdl_setObject:lightControlData forName:SDLNameLightControlData]; + [store sdl_setObject:lightControlData forName:SDLRPCParameterNameLightControlData]; } - (nullable SDLLightControlData *)lightControlData { - return [store sdl_objectForName:SDLNameLightControlData ofClass:SDLLightControlData.class]; + return [store sdl_objectForName:SDLRPCParameterNameLightControlData ofClass:SDLLightControlData.class error:nil]; } - (void)setHmiSettingsControlData:(nullable SDLHMISettingsControlData *)hmiSettingsControlData { - [store sdl_setObject:hmiSettingsControlData forName:SDLNameHmiSettingsControlData]; + [store sdl_setObject:hmiSettingsControlData forName:SDLRPCParameterNameHmiSettingsControlData]; } - (nullable SDLHMISettingsControlData *)hmiSettingsControlData { - return [store sdl_objectForName:SDLNameHmiSettingsControlData ofClass:SDLHMISettingsControlData.class]; + return [store sdl_objectForName:SDLRPCParameterNameHmiSettingsControlData ofClass:SDLHMISettingsControlData.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLMyKey.m b/SmartDeviceLink/SDLMyKey.m index fc7f730f7..0d79bc07a 100644 --- a/SmartDeviceLink/SDLMyKey.m +++ b/SmartDeviceLink/SDLMyKey.m @@ -4,7 +4,7 @@ #import "SDLMyKey.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -12,11 +12,12 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLMyKey - (void)setE911Override:(SDLVehicleDataStatus)e911Override { - [store sdl_setObject:e911Override forName:SDLNameE911Override]; + [store sdl_setObject:e911Override forName:SDLRPCParameterNameE911Override]; } - (SDLVehicleDataStatus)e911Override { - return [store sdl_objectForName:SDLNameE911Override]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameE911Override error:&error]; } @end diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h deleted file mode 100644 index 514899a7c..000000000 --- a/SmartDeviceLink/SDLNames.h +++ /dev/null @@ -1,650 +0,0 @@ -// SDLNames.h -// - -#import <Foundation/Foundation.h> -#import "SDLMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NSString* SDLName SDL_SWIFT_ENUM; - -extern SDLName const SDLNameACEnable; -extern SDLName const SDLNameACEnableAvailable; -extern SDLName const SDLNameACMaxEnable; -extern SDLName const SDLNameACMaxEnableAvailable; -extern SDLName const SDLNameAccelerationPedalPosition; -extern SDLName const SDLNameAction; -extern SDLName const SDLNameActual; -extern SDLName const SDLNameAddCommand; -extern SDLName const SDLNameAddress; -extern SDLName const SDLNameAddressLines; -extern SDLName const SDLNameAddSubMenu; -extern SDLName const SDLNameAdministrativeArea; -extern SDLName const SDLNameAirbagStatus; -extern SDLName const SDLNameAlert; -extern SDLName const SDLNameAlertManeuver; -extern SDLName const SDLNameAlertText1; -extern SDLName const SDLNameAlertText2; -extern SDLName const SDLNameAlertText3; -extern SDLName const SDLNameAlignment; -extern SDLName const SDLNameAllocatedModules; -extern SDLName const SDLNameAllowed; -extern SDLName const SDLNameAltitude; -extern SDLName const SDLNameAltitudeMeters; -extern SDLName const SDLNameAmbientLightSensorStatus; -extern SDLName const SDLNameAmbientLightStatus; -extern SDLName const SDLNameAppBundleId; -extern SDLName const SDLNameAppHMIType; -extern SDLName const SDLNameAppId; -extern SDLName const SDLNameAppInfo; -extern SDLName const SDLNameAppName; -extern SDLName const SDLNameAppDisplayName; -extern SDLName const SDLNameAppVersion; -extern SDLName const SDLNameAudioControlCapabilities; -extern SDLName const SDLNameAudioControlData; -extern SDLName const SDLNameAudioPassThruCapabilities; -extern SDLName const SDLNameAudioPassThruDisplayText1; -extern SDLName const SDLNameAudioPassThruDisplayText2; -extern SDLName const SDLNameAudioStreamingIndicator; -extern SDLName const SDLNameAudioStreamingState; -extern SDLName const SDLNameAudioType; -extern SDLName const SDLNameAutoCompleteText; -extern SDLName const SDLNameAutoModeEnable; -extern SDLName const SDLNameAutoModeEnableAvailable; -extern SDLName const SDLNameAuxECallNotificationStatus; -extern SDLName const SDLNameAvailableHDs; -extern SDLName const SDLNameAvailableHDsAvailable; -extern SDLName const SDLNameBackgroundColor; -extern SDLName const SDLNameBackTiltAngle; -extern SDLName const SDLNameBackTiltAngleAvailable; -extern SDLName const SDLNameBackVerticalPosition; -extern SDLName const SDLNameBackVerticalPositionAvailable; -extern SDLName const SDLNameBand; -extern SDLName const SDLNameBatteryLevelStatus; -extern SDLName const SDLNameBeltStatus; -extern SDLName const SDLNameBitsPerSample; -extern SDLName const SDLNameBodyInformation; -extern SDLName const SDLNameBlue; -extern SDLName const SDLNameBluetoothIconOn; -extern SDLName const SDLNameBulkData; -extern SDLName const SDLNameButtonCapabilities; -extern SDLName const SDLNameButtonEventMode; -extern SDLName const SDLNameButtonName; -extern SDLName const SDLNameButtonPress; -extern SDLName const SDLNameButtonPressMode; -extern SDLName const SDLNameColor; -extern SDLName const SDLNameCoolingEnabled; -extern SDLName const SDLNameCoolingEnabledAvailable; -extern SDLName const SDLNameCoolingLevel; -extern SDLName const SDLNameCoolingLevelAvailable; -extern SDLName const SDLNameCoordinate; -extern SDLName const SDLNameCallActive; -extern SDLName const SDLNameCarModeStatus; -extern SDLName const SDLNameCarrier; -extern SDLName const SDLNameChangeRegistration; -extern SDLName const SDLNameChannelId; -extern SDLName const SDLNameChannelName; -extern SDLName const SDLNameChannelSetting; -extern SDLName const SDLNameCharacterSet; -extern SDLName const SDLNameChoiceId; -extern SDLName const SDLNameChoiceSet; -extern SDLName const SDLNameCirculateAirEnable; -extern SDLName const SDLNameCirculateAirEnableAvailable; -extern SDLName const SDLNameClimateControlData; -extern SDLName const SDLNameClimateControlCapabilities; -extern SDLName const SDLNameClusterModes; -extern SDLName const SDLNameClusterModeStatus; -extern SDLName const SDLNameCommandIcon; -extern SDLName const SDLNameCommandId; -extern SDLName const SDLNameCompassDirection; -extern SDLName const SDLNameCorrelationId; -extern SDLName const SDLNameCountryCode; -extern SDLName const SDLNameCountryName; -extern SDLName const SDLNameCRC; -extern SDLName const SDLNameCreateInteractionChoiceSet; -extern SDLName const SDLNameClockText; -extern SDLName const SDLNameCurrentTemperature; -extern SDLName const SDLNameCushion; -extern SDLName const SDLNameCustomButtonId; -extern SDLName const SDLNameCustomPresets; -extern SDLName const SDLNameData; -extern SDLName const SDLNameDataResult; -extern SDLName const SDLNameDataType; -extern SDLName const SDLNameDay; -extern SDLName const SDLNameDayColorScheme; -extern SDLName const SDLNameDefrostZone; -extern SDLName const SDLNameDefrostZoneAvailable; -extern SDLName const SDLNameDeleteCommand; -extern SDLName const SDLNameDeleteFile; -extern SDLName const SDLNameDeleteInteractionChoiceSet; -extern SDLName const SDLNameDeleteSubMenu; -extern SDLName const SDLNameDeliveryMode; -extern SDLName const SDLNameDensity; -extern SDLName const SDLNameDensityAvailable; -extern SDLName const SDLNameDesiredTemperature; -extern SDLName const SDLNameDesiredTemperatureAvailable; -extern SDLName const SDLNameDeviceInfo; -extern SDLName const SDLNameDeviceStatus; -extern SDLName const SDLNameDiagnosticMessage; -extern SDLName const SDLNameDialNumber; -extern SDLName const SDLNameDialNumberEnabled; -extern SDLName const SDLNameDIDLocation; -extern SDLName const SDLNameDIDResult; -extern SDLName const SDLNameDimension; -extern SDLName const SDLNameDisplayCapabilities; -extern SDLName const SDLNameDisplayMode; -extern SDLName const SDLNameDisplayModeUnitAvailable; -extern SDLName const SDLNameDisplayLayout; -extern SDLName const SDLNameDisplayName; -extern SDLName const SDLNameDisplayType; -extern SDLName const SDLNameDistanceUnit; -extern SDLName const SDLNameDistanceToEmpty; -extern SDLName const SDLNameDistanceToManeuver; -extern SDLName const SDLNameDistanceToManeuverScale; -extern SDLName const SDLNameDistanceUnitAvailable; -extern SDLName const SDLNameDoublePressAvailable; -extern SDLName const SDLNameDriverAirbagDeployed; -extern SDLName const SDLNameDriverBeltDeployed; -extern SDLName const SDLNameDriverBraking; -extern SDLName const SDLNameDriverBuckleBelted; -extern SDLName const SDLNameDriverCurtainAirbagDeployed; -extern SDLName const SDLNameDriverDistractionStatus; -extern SDLName const SDLNameDriverDoorAjar; -extern SDLName const SDLNameDriverKneeAirbagDeployed; -extern SDLName const SDLNameDriverSideAirbagDeployed; -extern SDLName const SDLNameDTC; -extern SDLName const SDLNameDTCMask; -extern SDLName const SDLNameDualModeEnable; -extern SDLName const SDLNameDualModeEnableAvailable; -extern SDLName const SDLNameDuration; -extern SDLName const SDLNameE911Override; -extern SDLName const SDLNameECallConfirmationStatus; -extern SDLName const SDLNameECallEventActive; -extern SDLName const SDLNameECallInfo; -extern SDLName const SDLNameECallNotificationStatus; -extern SDLName const SDLNameECUHeader; -extern SDLName const SDLNameECUName; -extern SDLName const SDLNameElectronicParkBrakeStatus; -extern SDLName const SDLNameEmergencyEvent; -extern SDLName const SDLNameEmergencyEventType; -extern SDLName const SDLNameEncodedSyncPData; -extern SDLName const SDLNameEndAudioPassThru; -extern SDLName const SDLNameEndTime; -extern SDLName const SDLNameEngineOilLife; -extern SDLName const SDLNameEngineTorque; -extern SDLName const SDLNameEqualizerAvailable; -extern SDLName const SDLNameEqualizerMaxChannelId; -extern SDLName const SDLNameEqualizerSettings; -extern SDLName const SDLNameETA; -extern SDLName const SDLNameEvent; -extern SDLName const SDLNameExternalTemperature; -extern SDLName const SDLNameFanSpeed; -extern SDLName const SDLNameFanSpeedAvailable; -extern SDLName const SDLNameFCCFacilityId; -extern SDLName const SDLNameFilename; -extern SDLName const SDLNameFilenames; -extern SDLName const SDLNameFileType; -extern SDLName const SDLNameFirmness; -extern SDLName const SDLNameFirmwareRevision; -extern SDLName const SDLNameFreeModules; -extern SDLName const SDLNameFrequencyInteger; -extern SDLName const SDLNameFrequencyFraction; -extern SDLName const SDLNameFrontVerticalPosition; -extern SDLName const SDLNameFrontVerticalPositionAvailable; -extern SDLName const SDLNameFuelCutoffStatus; -extern SDLName const SDLNameFuelLevel; -extern SDLName const SDLNameFuelLevelState; -extern SDLName const SDLNameFuelMaintenanceMode; -extern SDLName const SDLNameFuelRange; -extern SDLName const SDLNameFullAppID; -extern SDLName const SDLNameGenericResponse; -extern SDLName const SDLNameGetDTCs; -extern SDLName const SDLNameGetInteriorVehicleData; -extern SDLName const SDLNameGetSystemCapability; -extern SDLName const SDLNameGetVehicleData; -extern SDLName const SDLNameGetWayPoints; -extern SDLName const SDLNameGetWayPointsEnabled; -extern SDLName const SDLNameGPS; -extern SDLName const SDLNameGraphic; -extern SDLName const SDLNameGraphicSupported; -extern SDLName const SDLNameGreen; -extern SDLName const SDLNameHapticRectData; -extern SDLName const SDLNameHapticSpatialDataSupported; -extern SDLName const SDLNameHardware; -extern SDLName const SDLNameHashId; -extern SDLName const SDLNameHDOP; -extern SDLName const SDLNameHDChannel; -extern SDLName const SDLNameHDChannelAvailable; -extern SDLName const SDLNameHDRadioEnable; -extern SDLName const SDLNameHDRadioEnableAvailable; -extern SDLName const SDLNameHeading; -extern SDLName const SDLNameHeadLampStatus; -extern SDLName const SDLNameHeadSupportHorizontalPosition; -extern SDLName const SDLNameHeadSupportHorizontalPositionAvailable; -extern SDLName const SDLNameHeadSupportVerticalPosition; -extern SDLName const SDLNameHeadSupportVerticalPositionAvailable; -extern SDLName const SDLNameHeatingLevel; -extern SDLName const SDLNameHeatingLevelAvailable; -extern SDLName const SDLNameHeatingEnabled; -extern SDLName const SDLNameHeatingEnabledAvailable; -extern SDLName const SDLNameHeatedSteeringWheelAvailable; -extern SDLName const SDLNameHeatedWindshieldAvailable; -extern SDLName const SDLNameHeatedRearWindowAvailable; -extern SDLName const SDLNameHeatedMirrorsAvailable; -extern SDLName const SDLNameHeatedSteeringWheelEnable; -extern SDLName const SDLNameHeatedWindshieldEnable; -extern SDLName const SDLNameHeatedRearWindowEnable; -extern SDLName const SDLNameHeatedMirrorsEnable; -extern SDLName const SDLNameHeight; -extern SDLName const SDLNameHelpPrompt; -extern SDLName const SDLNameHighBeamsOn; -extern SDLName const SDLNameHMICapabilities; -extern SDLName const SDLNameHMIDisplayLanguage; -extern SDLName const SDLNameHMIDisplayLanguageDesired; -extern SDLName const SDLNameHMILevel; -extern SDLName const SDLNameHMIPermissions; -extern SDLName const SDLNameHmiSettingsControlCapabilities; -extern SDLName const SDLNameHmiSettingsControlData; -extern SDLName const SDLNameHMIZoneCapabilities; -extern SDLName const SDLNameHorizontalPosition; -extern SDLName const SDLNameHorizontalPositionAvailable; -extern SDLName const SDLNameHour; -extern SDLName const SDLNameHours; -extern SDLName const SDLNameIconResumed; -extern SDLName const SDLNameId; -extern SDLName const SDLNameIgnitionStableStatus; -extern SDLName const SDLNameIgnitionStatus; -extern SDLName const SDLNameImage; -extern SDLName const SDLNameImageFields; -extern SDLName const SDLNameImageResolution; -extern SDLName const SDLNameImageSupported; -extern SDLName const SDLNameImageTemplate; -extern SDLName const SDLNameImageType; -extern SDLName const SDLNameImageTypeSupported; -extern SDLName const SDLNameInfo; -extern SDLName const SDLNameInitialPrompt; -extern SDLName const SDLNameInitialText; -extern SDLName const SDLNameInnerLeftRear; -extern SDLName const SDLNameInnerRightRear; -extern SDLName const SDLNameInstantFuelConsumption; -extern SDLName const SDLNameInteractionChoiceSetId; -extern SDLName const SDLNameInteractionChoiceSetIdList; -extern SDLName const SDLNameInteractionLayout; -extern SDLName const SDLNameInteractionMode; -extern SDLName const SDLNameIsHighlighted; -extern SDLName const SDLNameIsMediaApplication; -extern SDLName const SDLNameIsSubscribed; -extern SDLName const SDLNameKeepContext; -extern SDLName const SDLNameKeepContextAvailable; -extern SDLName const SDLNameKeyboardLayout; -extern SDLName const SDLNameKeyboardProperties; -extern SDLName const SDLNameKeypressMode; -extern SDLName const SDLNameLabel; -extern SDLName const SDLNameLanguage; -extern SDLName const SDLNameLanguageDesired; -extern SDLName const SDLNameLatitudeDegrees; -extern SDLName const SDLNameLeftFront; -extern SDLName const SDLNameLeftRear; -extern SDLName const SDLNameLeftRearInflatableBelted; -extern SDLName const SDLNameLeftRow2BuckleBelted; -extern SDLName const SDLNameLeftRow3BuckleBelted; -extern SDLName const SDLNameLength; -extern SDLName const SDLNameLightControlCapabilities; -extern SDLName const SDLNameLightControlData; -extern SDLName const SDLNameLightState; -extern SDLName const SDLNameLimitedCharacterList; -extern SDLName const SDLNameListFiles; -extern SDLName const SDLNameLocality; -extern SDLName const SDLNameLocationCoordinate; -extern SDLName const SDLNameLocationDescription; -extern SDLName const SDLNameLocationImage; -extern SDLName const SDLNameLocationName; -extern SDLName const SDLNameLocationTimeStamp; -extern SDLName const SDLNameLongitudeDegrees; -extern SDLName const SDLNameLongPress; -extern SDLName const SDLNameLongPressAvailable; -extern SDLName const SDLNameLowBeamsOn; -extern SDLName const SDLNameMainField1; -extern SDLName const SDLNameMainField2; -extern SDLName const SDLNameMainField3; -extern SDLName const SDLNameMainField4; -extern SDLName const SDLNameMainField1Type; -extern SDLName const SDLNameMainField2Type; -extern SDLName const SDLNameMainField3Type; -extern SDLName const SDLNameMainField4Type; -extern SDLName const SDLNameMajorVersion; -extern SDLName const SDLNameMake; -extern SDLName const SDLNameManeuverComplete; -extern SDLName const SDLNameManualTextEntry; -extern SDLName const SDLNameMassageCushionFirmness; -extern SDLName const SDLNameMassageCushionFirmnessAvailable; -extern SDLName const SDLNameMassageEnabled; -extern SDLName const SDLNameMassageEnabledAvailable; -extern SDLName const SDLNameMassageMode; -extern SDLName const SDLNameMassageModeAvailable; -extern SDLName const SDLNameMemoryAvailable; -extern SDLName const SDLNameMassageZone; -extern SDLName const SDLNameMaxBitrate; -extern SDLName const SDLNameMaxDuration; -extern SDLName const SDLNameMaximumChangeVelocity; -extern SDLName const SDLNameMaxNumberRFCOMMPorts; -extern SDLName const SDLNameMediaClock; -extern SDLName const SDLNameMediaClockFormats; -extern SDLName const SDLNameMediaTrack; -extern SDLName const SDLNameMemory; -extern SDLName const SDLNameMenuIcon; -extern SDLName const SDLNameMenuId; -extern SDLName const SDLNameMenuName; -extern SDLName const SDLNameMenuParams; -extern SDLName const SDLNameMenuTitle; -extern SDLName const SDLNameMessageData; -extern SDLName const SDLNameMessageDataResult; -extern SDLName const SDLNameMessageLength; -extern SDLName const SDLNameMetadataTags; -extern SDLName const SDLNameMiddleRow1BeltDeployed; -extern SDLName const SDLNameMiddleRow1BuckleBelted; -extern SDLName const SDLNameMiddleRow2BuckleBelted; -extern SDLName const SDLNameMiddleRow3BuckleBelted; -extern SDLName const SDLNameMillisecond; -extern SDLName const SDLNameMinorVersion; -extern SDLName const SDLNameMinute; -extern SDLName const SDLNameMinutes; -extern SDLName const SDLNameModel; -extern SDLName const SDLNameModuleData; -extern SDLName const SDLNameModuleName; -extern SDLName const SDLNameModuleType; -extern SDLName const SDLNameModelYear; -extern SDLName const SDLNameMonoAudioOutputMuted; -extern SDLName const SDLNameMonth; -extern SDLName const SDLNameMultipleEvents; -extern SDLName const SDLNameMultiTouchAvailable; -extern SDLName const SDLNameMuteAudio; -extern SDLName const SDLNameMyKey; -extern SDLName const SDLNameName; -extern SDLName const SDLNameNavigation; -extern SDLName const SDLNameNavigationCapability; -extern SDLName const SDLNameNavigationText; -extern SDLName const SDLNameNavigationText1; -extern SDLName const SDLNameNavigationText2; -extern SDLName const SDLNameNextTurnIcon; -extern SDLName const SDLNameNGNMediaScreenAppName; -extern SDLName const SDLNameNightColorScheme; -extern SDLName const SDLNameNotification; -extern SDLName const SDLNameNumber; -extern SDLName const SDLNameNumberCustomPresetsAvailable; -extern SDLName const SDLNameNumberTicks; -extern SDLName const SDLNameOdometer; -extern SDLName const SDLNameOffset; -extern SDLName const SDLNameOnAppInterfaceUnregistered; -extern SDLName const SDLNameOnAudioPassThru; -extern SDLName const SDLNameOnButtonEvent; -extern SDLName const SDLNameOnButtonPress; -extern SDLName const SDLNameOnCommand; -extern SDLName const SDLNameOnDriverDistraction; -extern SDLName const SDLNameOnEncodedSyncPData; -extern SDLName const SDLNameOnHashChange; -extern SDLName const SDLNameOnHMIStatus; -extern SDLName const SDLNameOnInteriorVehicleData; -extern SDLName const SDLNameOnKeyboardInput; -extern SDLName const SDLNameOnLanguageChange; -extern SDLName const SDLNameOnLockScreenStatus; -extern SDLName const SDLNameOnPermissionsChange; -extern SDLName const SDLNameOnRCStatus; -extern SDLName const SDLNameOnScreenPresetsAvailable; -extern SDLName const SDLNameOnSyncPData; -extern SDLName const SDLNameOnSystemRequest; -extern SDLName const SDLNameOnTBTClientState; -extern SDLName const SDLNameOnTouchEvent; -extern SDLName const SDLNameOnVehicleData; -extern SDLName const SDLNameOnWayPointChange; -extern SDLName const SDLNameOperationName; -extern SDLName const SDLNameOS; -extern SDLName const SDLNameOSVersion; -extern SDLName const SDLNameParameterPermissions; -extern SDLName const SDLNameParameters; -extern SDLName const SDLNameParentId; -extern SDLName const SDLNameParkBrakeActive; -extern SDLName const SDLNamePassengerAirbagDeployed; -extern SDLName const SDLNamePassengerBeltDeployed; -extern SDLName const SDLNamePassengerBuckleBelted; -extern SDLName const SDLNamePassengerChildDetected; -extern SDLName const SDLNamePassengerCurtainAirbagDeployed; -extern SDLName const SDLNamePassengerDoorAjar; -extern SDLName const SDLNamePassengerKneeAirbagDeployed; -extern SDLName const SDLNamePassengerSideAirbagDeployed; -extern SDLName const SDLNamePatchVersion; -extern SDLName const SDLNamePCMStreamCapabilities; -extern SDLName const SDLNamePDOP; -extern SDLName const SDLNamePerformAudioPassThru; -extern SDLName const SDLNamePerformInteraction; -extern SDLName const SDLNamePermissionItem; -extern SDLName const SDLNamePersistentFile; -extern SDLName const SDLNamePhoneCall; -extern SDLName const SDLNamePhoneCapability; -extern SDLName const SDLNamePhoneNumber; -extern SDLName const SDLNamePhoneRoaming; -extern SDLName const SDLNameProgramIdentification; -extern SDLName const SDLNamePlayTone; -extern SDLName const SDLNamePosition; -extern SDLName const SDLNamePostalCode; -extern SDLName const SDLNamePowerModeActive; -extern SDLName const SDLNamePowerModeQualificationStatus; -extern SDLName const SDLNamePowerModeStatus; -extern SDLName const SDLNamePreferredResolution; -extern SDLName const SDLNamePrerecordedSpeech; -extern SDLName const SDLNamePresetBankCapabilities; -extern SDLName const SDLNamePressAvailable; -extern SDLName const SDLNamePressure; -extern SDLName const SDLNamePressureTelltale; -extern SDLName const SDLNamePrimaryAudioSource; -extern SDLName const SDLNamePrimaryColor; -extern SDLName const SDLNamePRNDL; -extern SDLName const SDLNameProgressIndicator; -extern SDLName const SDLNameProperties; -extern SDLName const SDLNameProgramService; -extern SDLName const SDLNameProgramType; -extern SDLName const SDLNamePutFile; -extern SDLName const SDLNameRadioBandAvailable; -extern SDLName const SDLNameRadioControlCapabilities; -extern SDLName const SDLNameRadioControlData; -extern SDLName const SDLNameRadioEnable; -extern SDLName const SDLNameRadioEnableAvailable; -extern SDLName const SDLNameRadioFrequencyAvailable; -extern SDLName const SDLNameRange; -extern SDLName const SDLNameRDSData; -extern SDLName const SDLNameRDSDataAvailable; -extern SDLName const SDLNameReadDID; -extern SDLName const SDLNameRearLeftDoorAjar; -extern SDLName const SDLNameRearRightDoorAjar; -extern SDLName const SDLNameReason; -extern SDLName const SDLNameRect; -extern SDLName const SDLNameRed; -extern SDLName const SDLNameRegion; -extern SDLName const SDLNameRegisterAppInterface; -extern SDLName const SDLNameRemoteControlCapability; -extern SDLName const SDLNameRequest; -extern SDLName const SDLNameRequestSubType; -extern SDLName const SDLNameRequestType; -extern SDLName const SDLNameReserved; -extern SDLName const SDLNameResetGlobalProperties; -extern SDLName const SDLNameResolution; -extern SDLName const SDLNameResolutionHeight; -extern SDLName const SDLNameResolutionWidth; -extern SDLName const SDLNameResponse; -extern SDLName const SDLNameResult; -extern SDLName const SDLNameResultCode; -extern SDLName const SDLNameRightFront; -extern SDLName const SDLNameRightRear; -extern SDLName const SDLNameRightRearInflatableBelted; -extern SDLName const SDLNameRightRow2BuckleBelted; -extern SDLName const SDLNameRightRow3BuckleBelted; -extern SDLName const SDLNameRolloverEvent; -extern SDLName const SDLNameRows; -extern SDLName const SDLNameRPCName; -extern SDLName const SDLNameRPM; -extern SDLName const SDLNameRadioText; -extern SDLName const SDLNameSamplingRate; -extern SDLName const SDLNameSatellites; -extern SDLName const SDLNameScreenParams; -extern SDLName const SDLNameScrollableMessage; -extern SDLName const SDLNameScrollableMessageBody; -extern SDLName const SDLNameSDLVersion; -extern SDLName const SDLNameSearchAddress; -extern SDLName const SDLNameSeatControlData; -extern SDLName const SDLNameSeatControlCapabilities; -extern SDLName const SDLNameSecondaryColor; -extern SDLName const SDLNameSecondaryGraphic; -extern SDLName const SDLNameSecondaryImage; -extern SDLName const SDLNameSecondaryText; -extern SDLName const SDLNameSecond; -extern SDLName const SDLNameSeconds; -extern SDLName const SDLNameSendHapticData; -extern SDLName const SDLNameSendHapticDataResponse; -extern SDLName const SDLNameSendLocation; -extern SDLName const SDLNameSendLocationEnabled; -extern SDLName const SDLNameSetAppIcon; -extern SDLName const SDLNameSetDisplayLayout; -extern SDLName const SDLNameSetGlobalProperties; -extern SDLName const SDLNameSetInteriorVehicleData; -extern SDLName const SDLNameSetMediaClockTimer; -extern SDLName const SDLNameShortPress; -extern SDLName const SDLNameShortPressAvailable; -extern SDLName const SDLNameShow; -extern SDLName const SDLNameShowConstantTBT; -extern SDLName const SDLNameSignalLevelStatus; -extern SDLName const SDLNameSignalChangeThreshold; -extern SDLName const SDLNameSignalChangeThresholdAvailable; -extern SDLName const SDLNameSignalStrength; -extern SDLName const SDLNameSignalStrengthAvailable; -extern SDLName const SDLNameSiriusXMRadioAvailable; -extern SDLName const SDLNameSISData; -extern SDLName const SDLNameSISDataAvailable; -extern SDLName const SDLNameSlider; -extern SDLName const SDLNameSliderFooter; -extern SDLName const SDLNameSliderHeader; -extern SDLName const SDLNameSliderPosition; -extern SDLName const SDLNameSoftButtonCapabilities; -extern SDLName const SDLNameSoftButtonId; -extern SDLName const SDLNameSoftButtons; -extern SDLName const SDLNameSource; -extern SDLName const SDLNameSourceAvailable; -extern SDLName const SDLNameSpaceAvailable; -extern SDLName const SDLNameSpeak; -extern SDLName const SDLNameSpeechCapabilities; -extern SDLName const SDLNameSpeed; -extern SDLName const SDLNameRGBColorSpaceAvailable; -extern SDLName const SDLNameStartTime; -extern SDLName const SDLNameState; -extern SDLName const SDLNameStateAvailable; -extern SDLName const SDLNameStateOfCharge; -extern SDLName const SDLNameStationIDNumber; -extern SDLName const SDLNameStationLongName; -extern SDLName const SDLNameStationLocation; -extern SDLName const SDLNameStationMessage; -extern SDLName const SDLNameStationShortName; -extern SDLName const SDLNameStatus; -extern SDLName const SDLNameStatusAvailable; -extern SDLName const SDLNameStatusBar; -extern SDLName const SDLNameSteeringWheelAngle; -extern SDLName const SDLNameStereoAudioOutputMuted; -extern SDLName const SDLNameSubAdministrativeArea; -extern SDLName const SDLNameSubLocality; -extern SDLName const SDLNameSubscribe; -extern SDLName const SDLNameSubscribeButton; -extern SDLName const SDLNameSubscribeVehicleData; -extern SDLName const SDLNameSubscribeWayPoints; -extern SDLName const SDLNameSubThoroughfare; -extern SDLName const SDLNameSuccess; -extern SDLName const SDLNameSupportedDiagnosticModes; -extern SDLName const SDLNameSupportedFormats; -extern SDLName const SDLNameSupportedLights; -extern SDLName const SDLNameSyncFileName; -extern SDLName const SDLNameSyncMessageVersion; -extern SDLName const SDLNameSyncPData; -extern SDLName const SDLNameSystemAction; -extern SDLName const SDLNameSystemCapability; -extern SDLName const SDLNameSystemCapabilityType; -extern SDLName const SDLNameSystemContext; -extern SDLName const SDLNameSystemFile; -extern SDLName const SDLNameSystemRequest; -extern SDLName const SDLNameSystemSoftwareVersion; -extern SDLName const SDLNameTrafficAnnouncementIdentification; -extern SDLName const SDLNameTargetId; -extern SDLName const SDLNameTemperatureUnit; -extern SDLName const SDLNameTemperatureUnitAvailable; -extern SDLName const SDLNameTemplatesAvailable; -extern SDLName const SDLNameTertiaryText; -extern SDLName const SDLNameText; -extern SDLName const SDLNameTextFields; -extern SDLName const SDLNameTextMessageAvailable; -extern SDLName const SDLNameThoroughfare; -extern SDLName const SDLNameTimeout; -extern SDLName const SDLNameTimeoutCapitalized; -extern SDLName const SDLNameTimeoutPrompt; -extern SDLName const SDLNameTimeToDestination; -extern SDLName const SDLNameTimezoneHourOffset; -extern SDLName const SDLNameTimezoneMinuteOffset; -extern SDLName const SDLNameTirePressure; -extern SDLName const SDLNameTotalDistance; -extern SDLName const SDLNameTouchEventAvailable; -extern SDLName const SDLNameTPMS; -extern SDLName const SDLNameTrafficProgramIdentification; -extern SDLName const SDLNameTriggerSource; -extern SDLName const SDLNameTrim; -extern SDLName const SDLNameTryAgainTime; -extern SDLName const SDLNameTimestamp; -extern SDLName const SDLNameTTSChunks; -extern SDLName const SDLNameTTSName; -extern SDLName const SDLNameTurnIcon; -extern SDLName const SDLNameTurnList; -extern SDLName const SDLNameTurnSignal; -extern SDLName const SDLNameType; -extern SDLName const SDLNameUnit; -extern SDLName const SDLNameUnregisterAppInterface; -extern SDLName const SDLNameUnsubscribe; -extern SDLName const SDLNameUnsubscribeButton; -extern SDLName const SDLNameUnsubscribeVehicleData; -extern SDLName const SDLNameUnsubscribeWayPoints; -extern SDLName const SDLNameUpdateMode; -extern SDLName const SDLNameUpdateTurnList; -extern SDLName const SDLNameUpDownAvailable; -extern SDLName const SDLNameURL; -extern SDLName const SDLNameURLUppercase; -extern SDLName const SDLNameUserDisallowed; -extern SDLName const SDLNameUserSelected; -extern SDLName const SDLNameUTCDay; -extern SDLName const SDLNameUTCHours; -extern SDLName const SDLNameUTCMinutes; -extern SDLName const SDLNameUTCMonth; -extern SDLName const SDLNameUTCSeconds; -extern SDLName const SDLNameUTCYear; -extern SDLName const SDLNameValue; -extern SDLName const SDLNameVDOP; -extern SDLName const SDLNameVehicleType; -extern SDLName const SDLNameVerticalPosition; -extern SDLName const SDLNameVerticalPositionAvailable; -extern SDLName const SDLNameVideoCodec; -extern SDLName const SDLNameVideoProtocol; -extern SDLName const SDLNameVideoStreaming; -extern SDLName const SDLNameVideoStreamingCapability; -extern SDLName const SDLNameVideoStreamingState; -extern SDLName const SDLNameVentilationMode; -extern SDLName const SDLNameVentilationModeAvailable; -extern SDLName const SDLNameVIN; -extern SDLName const SDLNameVoiceRecognitionOn; -extern SDLName const SDLNameVolume; -extern SDLName const SDLNameVolumeAvailable; -extern SDLName const SDLNameVRCapabilities; -extern SDLName const SDLNameVRCommands; -extern SDLName const SDLNameVRHelp; -extern SDLName const SDLNameVRHelpTitle; -extern SDLName const SDLNameVRSynonyms; -extern SDLName const SDLNameWayPoints; -extern SDLName const SDLNameWayPointType; -extern SDLName const SDLNameWidth; -extern SDLName const SDLNameWiperStatus; -extern SDLName const SDLNameX; -extern SDLName const SDLNameY; -extern SDLName const SDLNameYear; - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNames.m b/SmartDeviceLink/SDLNames.m deleted file mode 100644 index 62ad20ecf..000000000 --- a/SmartDeviceLink/SDLNames.m +++ /dev/null @@ -1,645 +0,0 @@ -// SDLNames.h -// - -#import "NSMutableDictionary+Store.h" -#import "SDLNames.h" - -NS_ASSUME_NONNULL_BEGIN - -SDLName const SDLNameACEnable = @"acEnable"; -SDLName const SDLNameACEnableAvailable = @"acEnableAvailable"; -SDLName const SDLNameACMaxEnable = @"acMaxEnable"; -SDLName const SDLNameACMaxEnableAvailable = @"acMaxEnableAvailable"; -SDLName const SDLNameAccelerationPedalPosition = @"accPedalPosition"; -SDLName const SDLNameAction = @"action"; -SDLName const SDLNameActual = @"actual"; -SDLName const SDLNameAddCommand = @"AddCommand"; -SDLName const SDLNameAddress = @"address"; -SDLName const SDLNameAddressLines = @"addressLines"; -SDLName const SDLNameAdministrativeArea = @"administrativeArea"; -SDLName const SDLNameAddSubMenu = @"AddSubMenu"; -SDLName const SDLNameAirbagStatus = @"airbagStatus"; -SDLName const SDLNameAlert = @"Alert"; -SDLName const SDLNameAlertManeuver = @"AlertManeuver"; -SDLName const SDLNameAlertText1 = @"alertText1"; -SDLName const SDLNameAlertText2 = @"alertText2"; -SDLName const SDLNameAlertText3 = @"alertText3"; -SDLName const SDLNameAlignment = @"alignment"; -SDLName const SDLNameAllowed = @"allowed"; -SDLName const SDLNameAllocatedModules = @"allocatedModules"; -SDLName const SDLNameAltitude = @"altitude"; -SDLName const SDLNameAltitudeMeters = @"altitudeMeters"; -SDLName const SDLNameAmbientLightSensorStatus = @"ambientLightSensorStatus"; -SDLName const SDLNameAmbientLightStatus = @"ambientLightStatus"; -SDLName const SDLNameAppBundleId = @"appBundleID"; -SDLName const SDLNameAppHMIType = @"appHMIType"; -SDLName const SDLNameAppId = @"appID"; -SDLName const SDLNameAppInfo = @"appInfo"; -SDLName const SDLNameAppName = @"appName"; -SDLName const SDLNameAppDisplayName = @"appDisplayName"; -SDLName const SDLNameAppVersion = @"appVersion"; -SDLName const SDLNameAudioControlCapabilities = @"audioControlCapabilities"; -SDLName const SDLNameAudioControlData = @"audioControlData"; -SDLName const SDLNameAudioPassThruCapabilities = @"audioPassThruCapabilities"; -SDLName const SDLNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; -SDLName const SDLNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; -SDLName const SDLNameAudioStreamingIndicator = @"audioStreamingIndicator"; -SDLName const SDLNameAudioStreamingState = @"audioStreamingState"; -SDLName const SDLNameAudioType = @"audioType"; -SDLName const SDLNameAutoCompleteText = @"autoCompleteText"; -SDLName const SDLNameAutoModeEnable = @"autoModeEnable"; -SDLName const SDLNameAutoModeEnableAvailable = @"autoModeEnableAvailable"; -SDLName const SDLNameAuxECallNotificationStatus = @"auxECallNotificationStatus"; -SDLName const SDLNameAvailableHDs = @"availableHDs"; -SDLName const SDLNameAvailableHDsAvailable = @"availableHDsAvailable"; -SDLName const SDLNameBackgroundColor = @"backgroundColor"; -SDLName const SDLNameBackTiltAngle = @"backTiltAngle"; -SDLName const SDLNameBackTiltAngleAvailable = @"backTiltAngleAvailable"; -SDLName const SDLNameBackVerticalPosition = @"backVerticalPosition"; -SDLName const SDLNameBackVerticalPositionAvailable = @"backVerticalPositionAvailable"; -SDLName const SDLNameBand = @"band"; -SDLName const SDLNameBatteryLevelStatus = @"battLevelStatus"; -SDLName const SDLNameBeltStatus = @"beltStatus"; -SDLName const SDLNameBitsPerSample = @"bitsPerSample"; -SDLName const SDLNameBodyInformation = @"bodyInformation"; -SDLName const SDLNameBlue = @"blue"; -SDLName const SDLNameBluetoothIconOn = @"btIconOn"; -SDLName const SDLNameBulkData = @"bulkData"; -SDLName const SDLNameButtonCapabilities = @"buttonCapabilities"; -SDLName const SDLNameButtonEventMode = @"buttonEventMode"; -SDLName const SDLNameButtonName = @"buttonName"; -SDLName const SDLNameButtonPress = @"ButtonPress"; -SDLName const SDLNameButtonPressMode = @"buttonPressMode"; -SDLName const SDLNameCoolingEnabled = @"coolingEnabled"; -SDLName const SDLNameCoolingEnabledAvailable = @"coolingEnabledAvailable"; -SDLName const SDLNameCoolingLevel = @"coolingLevel"; -SDLName const SDLNameCoolingLevelAvailable = @"coolingLevelAvailable"; -SDLName const SDLNameCoordinate = @"c"; -SDLName const SDLNameCallActive = @"callActive"; -SDLName const SDLNameCarModeStatus = @"carModeStatus"; -SDLName const SDLNameCarrier = @"carrier"; -SDLName const SDLNameChangeRegistration = @"ChangeRegistration"; -SDLName const SDLNameChannelId = @"channelId"; -SDLName const SDLNameChannelName = @"channelName"; -SDLName const SDLNameChannelSetting = @"channelSetting"; -SDLName const SDLNameCharacterSet = @"characterSet"; -SDLName const SDLNameChoiceId = @"choiceID"; -SDLName const SDLNameChoiceSet = @"choiceSet"; -SDLName const SDLNameCirculateAirEnable = @"circulateAirEnable"; -SDLName const SDLNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable"; -SDLName const SDLNameClimateControlData = @"climateControlData"; -SDLName const SDLNameClimateControlCapabilities = @"climateControlCapabilities"; -SDLName const SDLNameClusterModes = @"clusterModes"; -SDLName const SDLNameClusterModeStatus = @"clusterModeStatus"; -SDLName const SDLNameColor = @"color"; -SDLName const SDLNameCommandIcon = @"cmdIcon"; -SDLName const SDLNameCommandId = @"cmdID"; -SDLName const SDLNameCompassDirection = @"compassDirection"; -SDLName const SDLNameCorrelationId = @"correlationID"; -SDLName const SDLNameCountryCode = @"countryCode"; -SDLName const SDLNameCountryName = @"countryName"; -SDLName const SDLNameCRC = @"crc"; -SDLName const SDLNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet"; -SDLName const SDLNameClockText = @"CT"; -SDLName const SDLNameCurrentTemperature = @"currentTemperature"; -SDLName const SDLNameCushion = @"cushion"; -SDLName const SDLNameCustomButtonId = @"customButtonID"; -SDLName const SDLNameCustomPresets = @"customPresets"; -SDLName const SDLNameData = @"data"; -SDLName const SDLNameDataResult = @"dataResult"; -SDLName const SDLNameDataType = @"dataType"; -SDLName const SDLNameDay = @"day"; -SDLName const SDLNameDayColorScheme = @"dayColorScheme"; -SDLName const SDLNameDefrostZone = @"defrostZone"; -SDLName const SDLNameDefrostZoneAvailable = @"defrostZoneAvailable"; -SDLName const SDLNameDeleteCommand = @"DeleteCommand"; -SDLName const SDLNameDeleteFile = @"DeleteFile"; -SDLName const SDLNameDeleteInteractionChoiceSet = @"DeleteInteractionChoiceSet"; -SDLName const SDLNameDeleteSubMenu = @"DeleteSubMenu"; -SDLName const SDLNameDeliveryMode = @"deliveryMode"; -SDLName const SDLNameDensity = @"density"; -SDLName const SDLNameDensityAvailable = @"densityAvailable"; -SDLName const SDLNameDesiredTemperature = @"desiredTemperature"; -SDLName const SDLNameDesiredTemperatureAvailable = @"desiredTemperatureAvailable"; -SDLName const SDLNameDeviceInfo = @"deviceInfo"; -SDLName const SDLNameDeviceStatus = @"deviceStatus"; -SDLName const SDLNameDiagnosticMessage = @"DiagnosticMessage"; -SDLName const SDLNameDialNumberEnabled = @"dialNumberEnabled"; -SDLName const SDLNameDIDLocation = @"didLocation"; -SDLName const SDLNameDIDResult = @"didResult"; -SDLName const SDLNameDimension = @"dimension"; -SDLName const SDLNameDisplayCapabilities = @"displayCapabilities"; -SDLName const SDLNameDisplayLayout = @"displayLayout"; -SDLName const SDLNameDisplayMode = @"displayMode"; -SDLName const SDLNameDisplayModeUnitAvailable = @"displayModeUnitAvailable"; -SDLName const SDLNameDisplayType = @"displayType"; -SDLName const SDLNameDistanceToEmpty = @"distanceToEmpty"; -SDLName const SDLNameDistanceToManeuver = @"distanceToManeuver"; -SDLName const SDLNameDistanceToManeuverScale = @"distanceToManeuverScale"; -SDLName const SDLNameDistanceUnitAvailable = @"distanceUnitAvailable"; -SDLName const SDLNameDistanceUnit = @"distanceUnit"; -SDLName const SDLNameDoublePressAvailable = @"doublePressAvailable"; -SDLName const SDLNameDriverAirbagDeployed = @"driverAirbagDeployed"; -SDLName const SDLNameDriverBeltDeployed = @"driverBeltDeployed"; -SDLName const SDLNameDriverBraking = @"driverBraking"; -SDLName const SDLNameDriverBuckleBelted = @"driverBuckleBelted"; -SDLName const SDLNameDriverCurtainAirbagDeployed = @"driverCurtainAirbagDeployed"; -SDLName const SDLNameDriverDistractionStatus = @"driverDistractionStatus"; -SDLName const SDLNameDriverDoorAjar = @"driverDoorAjar"; -SDLName const SDLNameDriverKneeAirbagDeployed = @"driverKneeAirbagDeployed"; -SDLName const SDLNameDriverSideAirbagDeployed = @"driverSideAirbagDeployed"; -SDLName const SDLNameDTC = @"dtc"; -SDLName const SDLNameDTCMask = @"dtcMask"; -SDLName const SDLNameDualModeEnable = @"dualModeEnable"; -SDLName const SDLNameDualModeEnableAvailable = @"dualModeEnableAvailable"; -SDLName const SDLNameDuration = @"duration"; -SDLName const SDLNameE911Override = @"e911Override"; -SDLName const SDLNameECallConfirmationStatus = @"eCallConfirmationStatus"; -SDLName const SDLNameECallEventActive = @"eCallEventActive"; -SDLName const SDLNameECallInfo = @"eCallInfo"; -SDLName const SDLNameECallNotificationStatus = @"eCallNotificationStatus"; -SDLName const SDLNameECUHeader = @"ecuHeader"; -SDLName const SDLNameECUName = @"ecuName"; -SDLName const SDLNameElectronicParkBrakeStatus = @"electronicParkBrakeStatus"; -SDLName const SDLNameEmergencyEvent = @"emergencyEvent"; -SDLName const SDLNameEmergencyEventType = @"emergencyEventType"; -SDLName const SDLNameEncodedSyncPData = @"EncodedSyncPData"; -SDLName const SDLNameEndAudioPassThru = @"EndAudioPassThru"; -SDLName const SDLNameEndTime = @"endTime"; -SDLName const SDLNameEngineOilLife = @"engineOilLife"; -SDLName const SDLNameEngineTorque = @"engineTorque"; -SDLName const SDLNameEqualizerAvailable = @"equalizerAvailable"; -SDLName const SDLNameEqualizerMaxChannelId = @"equalizerMaxChannelId"; -SDLName const SDLNameEqualizerSettings = @"equalizerSettings";; -SDLName const SDLNameETA = @"eta"; -SDLName const SDLNameEvent = @"event"; -SDLName const SDLNameExternalTemperature = @"externalTemperature"; -SDLName const SDLNameFanSpeed = @"fanSpeed"; -SDLName const SDLNameFanSpeedAvailable = @"fanSpeedAvailable"; -SDLName const SDLNameFCCFacilityId = @"fccFacilityId"; -SDLName const SDLNameFilename = @"fileName"; -SDLName const SDLNameFilenames = @"filenames"; -SDLName const SDLNameFileType = @"fileType"; -SDLName const SDLNameFirmness = @"firmness"; -SDLName const SDLNameFirmwareRevision = @"firmwareRev"; -SDLName const SDLNameFreeModules = @"freeModules"; -SDLName const SDLNameFrequencyInteger = @"frequencyInteger"; -SDLName const SDLNameFrequencyFraction = @"frequencyFraction"; -SDLName const SDLNameFrontVerticalPosition = @"frontVerticalPosition"; -SDLName const SDLNameFrontVerticalPositionAvailable = @"frontVerticalPositionAvailable"; -SDLName const SDLNameFuelCutoffStatus = @"fuelCutoffStatus"; -SDLName const SDLNameFuelLevel = @"fuelLevel"; -SDLName const SDLNameFuelLevelState = @"fuelLevel_State"; -SDLName const SDLNameFuelMaintenanceMode = @"fuelMaintenanceMode"; -SDLName const SDLNameFuelRange = @"fuelRange"; -SDLName const SDLNameFullAppID = @"fullAppID"; -SDLName const SDLNameGenericResponse = @"GenericResponse"; -SDLName const SDLNameGetDTCs = @"GetDTCs"; -SDLName const SDLNameGetInteriorVehicleData = @"GetInteriorVehicleData"; -SDLName const SDLNameGetSystemCapability = @"GetSystemCapability"; -SDLName const SDLNameGetVehicleData = @"GetVehicleData"; -SDLName const SDLNameGetWayPoints = @"GetWayPoints"; -SDLName const SDLNameGetWayPointsEnabled = @"getWayPointsEnabled"; -SDLName const SDLNameGPS = @"gps"; -SDLName const SDLNameGraphic = @"graphic"; -SDLName const SDLNameGraphicSupported = @"graphicSupported"; -SDLName const SDLNameGreen = @"green"; -SDLName const SDLNameHapticRectData = @"hapticRectData"; -SDLName const SDLNameHapticSpatialDataSupported = @"hapticSpatialDataSupported"; -SDLName const SDLNameHardware = @"hardware"; -SDLName const SDLNameHashId = @"hashID"; -SDLName const SDLNameHDChannel = @"hdChannel"; -SDLName const SDLNameHDChannelAvailable = @"hdChannelAvailable"; -SDLName const SDLNameHDOP = @"hdop"; -SDLName const SDLNameHDRadioEnable = @"hdRadioEnable"; -SDLName const SDLNameHDRadioEnableAvailable = @"hdRadioEnableAvailable"; -SDLName const SDLNameHeading = @"heading"; -SDLName const SDLNameHeadLampStatus = @"headLampStatus"; -SDLName const SDLNameHeadSupportHorizontalPosition = @"headSupportHorizontalPosition"; -SDLName const SDLNameHeadSupportHorizontalPositionAvailable = @"headSupportHorizontalPositionAvailable"; -SDLName const SDLNameHeadSupportVerticalPosition = @"headSupportVerticalPosition"; -SDLName const SDLNameHeadSupportVerticalPositionAvailable = @"headSupportVerticalPositionAvailable"; -SDLName const SDLNameHeatingLevel = @"heatingLevel"; -SDLName const SDLNameHeatingLevelAvailable = @"heatingLevelAvailable"; -SDLName const SDLNameHeatingEnabled = @"heatingEnabled"; -SDLName const SDLNameHeatingEnabledAvailable = @"heatingEnabledAvailable"; -SDLName const SDLNameHeatedSteeringWheelAvailable = @"heatedSteeringWheelAvailable"; -SDLName const SDLNameHeatedWindshieldAvailable = @"heatedWindshieldAvailable"; -SDLName const SDLNameHeatedRearWindowAvailable = @"heatedRearWindowAvailable"; -SDLName const SDLNameHeatedMirrorsAvailable = @"heatedMirrorsAvailable"; -SDLName const SDLNameHeatedSteeringWheelEnable = @"heatedSteeringWheelEnable"; -SDLName const SDLNameHeatedWindshieldEnable = @"heatedWindshieldEnable"; -SDLName const SDLNameHeatedRearWindowEnable = @"heatedRearWindowEnable"; -SDLName const SDLNameHeatedMirrorsEnable = @"heatedMirrorsEnable"; -SDLName const SDLNameHeight = @"height"; -SDLName const SDLNameHelpPrompt = @"helpPrompt"; -SDLName const SDLNameHighBeamsOn = @"highBeamsOn"; -SDLName const SDLNameHMICapabilities = @"hmiCapabilities"; -SDLName const SDLNameHmiSettingsControlData = @"hmiSettingsControlData"; -SDLName const SDLNameHMIDisplayLanguage = @"hmiDisplayLanguage"; -SDLName const SDLNameHMIDisplayLanguageDesired = @"hmiDisplayLanguageDesired"; -SDLName const SDLNameHMILevel = @"hmiLevel"; -SDLName const SDLNameHMILevelLowercase = @"hmilevel"; -SDLName const SDLNameHMIPermissions = @"hmiPermissions"; -SDLName const SDLNameHmiSettingsControlCapabilities = @"hmiSettingsControlCapabilities"; -SDLName const SDLNameHMIZoneCapabilities = @"hmiZoneCapabilities"; -SDLName const SDLNameHorizontalPosition = @"horizontalPosition"; -SDLName const SDLNameHorizontalPositionAvailable = @"horizontalPositionAvailable"; -SDLName const SDLNameHour = @"hour"; -SDLName const SDLNameHours = @"hours"; -SDLName const SDLNameIconResumed = @"iconResumed"; -SDLName const SDLNameId = @"id"; -SDLName const SDLNameIgnitionStableStatus = @"ignitionStableStatus"; -SDLName const SDLNameIgnitionStatus = @"ignitionStatus"; -SDLName const SDLNameImage = @"image"; -SDLName const SDLNameImageFields = @"imageFields"; -SDLName const SDLNameImageResolution = @"imageResolution"; -SDLName const SDLNameImageSupported = @"imageSupported"; -SDLName const SDLNameImageTemplate = @"isTemplate"; -SDLName const SDLNameImageType = @"imageType"; -SDLName const SDLNameImageTypeSupported = @"imageTypeSupported"; -SDLName const SDLNameInfo = @"info"; -SDLName const SDLNameInitialPrompt = @"initialPrompt"; -SDLName const SDLNameInitialText = @"initialText"; -SDLName const SDLNameInnerLeftRear = @"innerLeftRear"; -SDLName const SDLNameInnerRightRear = @"innerRightRear"; -SDLName const SDLNameInstantFuelConsumption = @"instantFuelConsumption"; -SDLName const SDLNameInteractionChoiceSetId = @"interactionChoiceSetID"; -SDLName const SDLNameInteractionChoiceSetIdList = @"interactionChoiceSetIDList"; -SDLName const SDLNameInteractionLayout = @"interactionLayout"; -SDLName const SDLNameInteractionMode = @"interactionMode"; -SDLName const SDLNameIsHighlighted = @"isHighlighted"; -SDLName const SDLNameIsMediaApplication = @"isMediaApplication"; -SDLName const SDLNameIsSubscribed = @"isSubscribed"; -SDLName const SDLNameKeepContext = @"keepContext"; -SDLName const SDLNameKeepContextAvailable = @"keepContextAvailable"; -SDLName const SDLNameKeyboardLayout = @"keyboardLayout"; -SDLName const SDLNameKeyboardProperties = @"keyboardProperties"; -SDLName const SDLNameKeypressMode = @"keypressMode"; -SDLName const SDLNameLabel = @"label"; -SDLName const SDLNameLanguage = @"language"; -SDLName const SDLNameLanguageDesired = @"languageDesired"; -SDLName const SDLNameLatitudeDegrees = @"latitudeDegrees"; -SDLName const SDLNameLeftFront = @"leftFront"; -SDLName const SDLNameLeftRear = @"leftRear"; -SDLName const SDLNameLeftRearInflatableBelted = @"leftRearInflatableBelted"; -SDLName const SDLNameLeftRow2BuckleBelted = @"leftRow2BuckleBelted"; -SDLName const SDLNameLeftRow3BuckleBelted = @"leftRow3BuckleBelted"; -SDLName const SDLNameLength = @"length"; -SDLName const SDLNameLightControlCapabilities = @"lightControlCapabilities"; -SDLName const SDLNameLightControlData = @"lightControlData"; -SDLName const SDLNameLightState = @"lightState"; -SDLName const SDLNameLimitedCharacterList = @"limitedCharacterList"; -SDLName const SDLNameListFiles = @"ListFiles"; -SDLName const SDLNameLocality = @"locality"; -SDLName const SDLNameLocationCoordinate = @"coordinate"; -SDLName const SDLNameLocationDescription = @"locationDescription"; -SDLName const SDLNameLocationImage = @"locationImage"; -SDLName const SDLNameLocationName = @"locationName"; -SDLName const SDLNameLocationTimeStamp = @"timeStamp"; -SDLName const SDLNameLongitudeDegrees = @"longitudeDegrees"; -SDLName const SDLNameLongPress = @"longPress"; -SDLName const SDLNameLongPressAvailable = @"longPressAvailable"; -SDLName const SDLNameLowBeamsOn = @"lowBeamsOn"; -SDLName const SDLNameMainField1 = @"mainField1"; -SDLName const SDLNameMainField2 = @"mainField2"; -SDLName const SDLNameMainField3 = @"mainField3"; -SDLName const SDLNameMainField4 = @"mainField4"; -SDLName const SDLNameMajorVersion = @"majorVersion"; -SDLName const SDLNameMake = @"make"; -SDLName const SDLNameManeuverComplete = @"maneuverComplete"; -SDLName const SDLNameManualTextEntry = @"manualTextEntry"; -SDLName const SDLNameMassageCushionFirmness = @"massageCushionFirmness"; -SDLName const SDLNameMassageCushionFirmnessAvailable = @"massageCushionFirmnessAvailable"; -SDLName const SDLNameMassageEnabled = @"massageEnabled"; -SDLName const SDLNameMassageEnabledAvailable = @"massageEnabledAvailable"; -SDLName const SDLNameMassageMode = @"massageMode"; -SDLName const SDLNameMassageModeAvailable = @"massageModeAvailable"; -SDLName const SDLNameMassageZone = @"massageZone"; -SDLName const SDLNameMaxBitrate = @"maxBitrate"; -SDLName const SDLNameMaxDuration = @"maxDuration"; -SDLName const SDLNameMaximumChangeVelocity = @"maximumChangeVelocity"; -SDLName const SDLNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts"; -SDLName const SDLNameMediaClock = @"mediaClock"; -SDLName const SDLNameMediaClockFormats = @"mediaClockFormats"; -SDLName const SDLNameMediaTrack = @"mediaTrack"; -SDLName const SDLNameMemory = @"memory"; -SDLName const SDLNameMemoryAvailable = @"memoryAvailable"; -SDLName const SDLNameMenuIcon = @"menuIcon"; -SDLName const SDLNameMenuId = @"menuID"; -SDLName const SDLNameMenuName = @"menuName"; -SDLName const SDLNameMenuParams = @"menuParams"; -SDLName const SDLNameMenuTitle = @"menuTitle"; -SDLName const SDLNameMessageData = @"messageData"; -SDLName const SDLNameMessageDataResult = @"messageDataResult"; -SDLName const SDLNameMessageLength = @"messageLength"; -SDLName const SDLNameMetadataTags = @"metadataTags"; -SDLName const SDLNameMiddleRow1BeltDeployed = @"middleRow1BeltDeployed"; -SDLName const SDLNameMiddleRow1BuckleBelted = @"middleRow1BuckleBelted"; -SDLName const SDLNameMiddleRow2BuckleBelted = @"middleRow2BuckleBelted"; -SDLName const SDLNameMiddleRow3BuckleBelted = @"middleRow3BuckleBelted"; -SDLName const SDLNameMillisecond = @"millisecond"; -SDLName const SDLNameMinorVersion = @"minorVersion"; -SDLName const SDLNameMinute = @"minute"; -SDLName const SDLNameMinutes = @"minutes"; -SDLName const SDLNameModel = @"model"; -SDLName const SDLNameModelYear = @"modelYear"; -SDLName const SDLNameMonoAudioOutputMuted = @"monoAudioOutputMuted"; -SDLName const SDLNameMonth = @"month"; -SDLName const SDLNameModuleData = @"moduleData"; -SDLName const SDLNameModuleName = @"moduleName"; -SDLName const SDLNameModuleType = @"moduleType"; -SDLName const SDLNameMultipleEvents = @"multipleEvents"; -SDLName const SDLNameMultiTouchAvailable = @"multiTouchAvailable"; -SDLName const SDLNameMuteAudio = @"muteAudio"; -SDLName const SDLNameMyKey = @"myKey"; -SDLName const SDLNameName = @"name"; -SDLName const SDLNameNavigation = @"navigation"; -SDLName const SDLNameNavigationCapability = @"navigationCapability"; -SDLName const SDLNameNavigationText = @"navigationText"; -SDLName const SDLNameNavigationText1 = @"navigationText1"; -SDLName const SDLNameNavigationText2 = @"navigationText2"; -SDLName const SDLNameNextTurnIcon = @"nextTurnIcon"; -SDLName const SDLNameNGNMediaScreenAppName = @"ngnMediaScreenAppName"; -SDLName const SDLNameNightColorScheme = @"nightColorScheme"; -SDLName const SDLNameNotification = @"notification"; -SDLName const SDLNameNumber = @"number"; -SDLName const SDLNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable"; -SDLName const SDLNameNumberTicks = @"numTicks"; -SDLName const SDLNameOdometer = @"odometer"; -SDLName const SDLNameOffset = @"offset"; -SDLName const SDLNameOnAppInterfaceUnregistered = @"OnAppInterfaceUnregistered"; -SDLName const SDLNameOnAudioPassThru = @"OnAudioPassThru"; -SDLName const SDLNameOnButtonEvent = @"OnButtonEvent"; -SDLName const SDLNameOnButtonPress = @"OnButtonPress"; -SDLName const SDLNameOnCommand = @"OnCommand"; -SDLName const SDLNameOnDriverDistraction = @"OnDriverDistraction"; -SDLName const SDLNameOnEncodedSyncPData = @"OnEncodedSyncPData"; -SDLName const SDLNameOnHashChange = @"OnHashChange"; -SDLName const SDLNameOnHMIStatus = @"OnHMIStatus"; -SDLName const SDLNameOnInteriorVehicleData = @"OnInteriorVehicleData"; -SDLName const SDLNameOnKeyboardInput = @"OnKeyboardInput"; -SDLName const SDLNameOnLanguageChange = @"OnLanguageChange"; -SDLName const SDLNameOnLockScreenStatus = @"OnLockScreenStatus"; -SDLName const SDLNameOnPermissionsChange = @"OnPermissionsChange"; -SDLName const SDLNameOnRCStatus = @"OnRCStatus"; -SDLName const SDLNameOnScreenPresetsAvailable = @"onScreenPresetsAvailable"; -SDLName const SDLNameOnSyncPData = @"OnSyncPData"; -SDLName const SDLNameOnSystemRequest = @"OnSystemRequest"; -SDLName const SDLNameOnTBTClientState = @"OnTBTClientState"; -SDLName const SDLNameOnTouchEvent = @"OnTouchEvent"; -SDLName const SDLNameOnVehicleData = @"OnVehicleData"; -SDLName const SDLNameOnWayPointChange = @"OnWayPointChange"; -SDLName const SDLNameOperationName = @"name"; -SDLName const SDLNameOS = @"os"; -SDLName const SDLNameOSVersion = @"osVersion"; -SDLName const SDLNameParameterPermissions = @"parameterPermissions"; -SDLName const SDLNameParameters = @"parameters"; -SDLName const SDLNameParentId = @"parentID"; -SDLName const SDLNameParkBrakeActive = @"parkBrakeActive"; -SDLName const SDLNamePassengerAirbagDeployed = @"passengerAirbagDeployed"; -SDLName const SDLNamePassengerBeltDeployed = @"passengerBeltDeployed"; -SDLName const SDLNamePassengerBuckleBelted = @"passengerBuckleBelted"; -SDLName const SDLNamePassengerChildDetected = @"passengerChildDetected"; -SDLName const SDLNamePassengerCurtainAirbagDeployed = @"passengerCurtainAirbagDeployed"; -SDLName const SDLNamePassengerDoorAjar = @"passengerDoorAjar"; -SDLName const SDLNamePassengerKneeAirbagDeployed = @"passengerKneeAirbagDeployed"; -SDLName const SDLNamePassengerSideAirbagDeployed = @"passengerSideAirbagDeployed"; -SDLName const SDLNamePatchVersion = @"patchVersion"; -SDLName const SDLNamePCMStreamCapabilities = @"pcmStreamCapabilities"; -SDLName const SDLNamePDOP = @"pdop"; -SDLName const SDLNamePerformAudioPassThru = @"PerformAudioPassThru"; -SDLName const SDLNamePerformInteraction = @"PerformInteraction"; -SDLName const SDLNamePermissionItem = @"permissionItem"; -SDLName const SDLNamePersistentFile = @"persistentFile"; -SDLName const SDLNamePhoneCall = @"phoneCall"; -SDLName const SDLNamePhoneCapability = @"phoneCapability"; -SDLName const SDLNamePhoneNumber = @"phoneNumber"; -SDLName const SDLNamePhoneRoaming = @"phoneRoaming"; -SDLName const SDLNamePrimaryColor = @"primaryColor"; -SDLName const SDLNameProgramIdentification = @"PI"; -SDLName const SDLNamePlayTone = @"playTone"; -SDLName const SDLNamePosition = @"position"; -SDLName const SDLNamePostalCode = @"postalCode"; -SDLName const SDLNamePowerModeActive = @"powerModeActive"; -SDLName const SDLNamePowerModeQualificationStatus = @"powerModeQualificationStatus"; -SDLName const SDLNamePowerModeStatus = @"powerModeStatus"; -SDLName const SDLNamePreferredResolution = @"preferredResolution"; -SDLName const SDLNamePrerecordedSpeech = @"prerecordedSpeech"; -SDLName const SDLNamePresetBankCapabilities = @"presetBankCapabilities"; -SDLName const SDLNamePressAvailable = @"pressAvailable"; -SDLName const SDLNamePressure = @"pressure"; -SDLName const SDLNamePressureTelltale = @"pressureTelltale"; -SDLName const SDLNamePrimaryAudioSource = @"primaryAudioSource"; -SDLName const SDLNamePRNDL = @"prndl"; -SDLName const SDLNameProgressIndicator = @"progressIndicator"; -SDLName const SDLNameProperties = @"properties"; -SDLName const SDLNameProgramService = @"PS"; -SDLName const SDLNameProgramType = @"PTY"; -SDLName const SDLNamePutFile = @"PutFile"; -SDLName const SDLNameRadioBandAvailable = @"radioBandAvailable"; -SDLName const SDLNameRadioControlCapabilities = @"radioControlCapabilities"; -SDLName const SDLNameRadioFrequencyAvailable = @"radioFrequencyAvailable"; -SDLName const SDLNameRadioControlData = @"radioControlData"; -SDLName const SDLNameRadioEnable = @"radioEnable"; -SDLName const SDLNameRadioEnableAvailable = @"radioEnableAvailable"; -SDLName const SDLNameRange = @"range"; -SDLName const SDLNameRDSData = @"rdsData"; -SDLName const SDLNameRDSDataAvailable = @"rdsDataAvailable"; -SDLName const SDLNameReadDID = @"ReadDID"; -SDLName const SDLNameRearLeftDoorAjar = @"rearLeftDoorAjar"; -SDLName const SDLNameRearRightDoorAjar = @"rearRightDoorAjar"; -SDLName const SDLNameReason = @"reason"; -SDLName const SDLNameRed = @"red"; -SDLName const SDLNameRect = @"rect"; -SDLName const SDLNameRegion = @"REG"; -SDLName const SDLNameRegisterAppInterface = @"RegisterAppInterface"; -SDLName const SDLNameRemoteControlCapability = @"remoteControlCapability"; -SDLName const SDLNameRequest = @"request"; -SDLName const SDLNameRequestSubType = @"requestSubType"; -SDLName const SDLNameRequestType = @"requestType"; -SDLName const SDLNameReserved = @"reserved"; -SDLName const SDLNameResetGlobalProperties = @"ResetGlobalProperties"; -SDLName const SDLNameSecondaryColor = @"secondaryColor"; -SDLName const SDLNameSetInteriorVehicleData = @"SetInteriorVehicleData"; -SDLName const SDLNameResolution = @"resolution"; -SDLName const SDLNameResolutionHeight = @"resolutionHeight"; -SDLName const SDLNameResolutionWidth = @"resolutionWidth"; -SDLName const SDLNameResponse = @"response"; -SDLName const SDLNameResult = @"result"; -SDLName const SDLNameResultCode = @"resultCode"; -SDLName const SDLNameRightFront = @"rightFront"; -SDLName const SDLNameRightRear = @"rightRear"; -SDLName const SDLNameRightRearInflatableBelted = @"rightRearInflatableBelted"; -SDLName const SDLNameRightRow2BuckleBelted = @"rightRow2BuckleBelted"; -SDLName const SDLNameRightRow3BuckleBelted = @"rightRow3BuckleBelted"; -SDLName const SDLNameRolloverEvent = @"rolloverEvent"; -SDLName const SDLNameRows = @"rows"; -SDLName const SDLNameRPCName = @"rpcName"; -SDLName const SDLNameRPM = @"rpm"; -SDLName const SDLNameRadioText = @"RT"; -SDLName const SDLNameSamplingRate = @"samplingRate"; -SDLName const SDLNameSatellites = @"satellites"; -SDLName const SDLNameScreenParams = @"screenParams"; -SDLName const SDLNameScrollableMessage = @"ScrollableMessage"; -SDLName const SDLNameScrollableMessageBody = @"scrollableMessageBody"; -SDLName const SDLNameSDLVersion = @"sdlVersion"; -SDLName const SDLNameSearchAddress = @"searchAddress"; -SDLName const SDLNameSeatControlData = @"seatControlData"; -SDLName const SDLNameSeatControlCapabilities = @"seatControlCapabilities"; -SDLName const SDLNameSecondaryGraphic = @"secondaryGraphic"; -SDLName const SDLNameSecondaryImage = @"secondaryImage"; -SDLName const SDLNameSecondaryText = @"secondaryText"; -SDLName const SDLNameSecond = @"second"; -SDLName const SDLNameSeconds = @"seconds"; -SDLName const SDLNameSendHapticData = @"SendHapticData"; -SDLName const SDLNameSendHapticDataResponse = @"SendHapticDataResponse"; -SDLName const SDLNameSendLocation = @"SendLocation"; -SDLName const SDLNameSendLocationEnabled = @"sendLocationEnabled"; -SDLName const SDLNameSetAppIcon = @"SetAppIcon"; -SDLName const SDLNameSetDisplayLayout = @"SetDisplayLayout"; -SDLName const SDLNameDisplayName = @"displayName"; -SDLName const SDLNameSetGlobalProperties = @"SetGlobalProperties"; -SDLName const SDLNameSetMediaClockTimer = @"SetMediaClockTimer"; -SDLName const SDLNameShortPress = @"shortPress"; -SDLName const SDLNameShortPressAvailable = @"shortPressAvailable"; -SDLName const SDLNameShow = @"Show"; -SDLName const SDLNameShowConstantTBT = @"ShowConstantTBT"; -SDLName const SDLNameSignalLevelStatus = @"signalLevelStatus"; -SDLName const SDLNameSignalChangeThreshold = @"signalChangeThreshold"; -SDLName const SDLNameSignalChangeThresholdAvailable = @"signalChangeThresholdAvailable"; -SDLName const SDLNameSignalStrength = @"signalStrength"; -SDLName const SDLNameSignalStrengthAvailable = @"signalStrengthAvailable"; -SDLName const SDLNameSiriusXMRadioAvailable = @"siriusxmRadioAvailable"; -SDLName const SDLNameSISData = @"sisData"; -SDLName const SDLNameSISDataAvailable = @"sisDataAvailable"; -SDLName const SDLNameSlider = @"Slider"; -SDLName const SDLNameSliderFooter = @"sliderFooter"; -SDLName const SDLNameSliderHeader = @"sliderHeader"; -SDLName const SDLNameSliderPosition = @"sliderPosition"; -SDLName const SDLNameSoftButtonCapabilities = @"softButtonCapabilities"; -SDLName const SDLNameSoftButtonId = @"softButtonID"; -SDLName const SDLNameSoftButtons = @"softButtons"; -SDLName const SDLNameSource = @"source"; -SDLName const SDLNameSourceAvailable = @"sourceAvailable"; -SDLName const SDLNameSpaceAvailable = @"spaceAvailable"; -SDLName const SDLNameSpeak = @"Speak"; -SDLName const SDLNameSpeechCapabilities = @"speechCapabilities"; -SDLName const SDLNameSpeed = @"speed"; -SDLName const SDLNameRGBColorSpaceAvailable = @"rgbColorSpaceAvailable"; -SDLName const SDLNameStartTime = @"startTime"; -SDLName const SDLNameState = @"state"; -SDLName const SDLNameStateAvailable = @"stateAvailable"; -SDLName const SDLNameStateOfCharge = @"stateOfCharge"; -SDLName const SDLNameStationIDNumber = @"stationIDNumber"; -SDLName const SDLNameStationLongName = @"stationLongName"; -SDLName const SDLNameStationLocation = @"stationLocation"; -SDLName const SDLNameStationMessage = @"stationMessage"; -SDLName const SDLNameStationShortName = @"stationShortName"; -SDLName const SDLNameStatus = @"status"; -SDLName const SDLNameStatusAvailable = @"statusAvailable"; -SDLName const SDLNameStatusBar = @"statusBar"; -SDLName const SDLNameSteeringWheelAngle = @"steeringWheelAngle"; -SDLName const SDLNameStereoAudioOutputMuted = @"stereoAudioOutputMuted"; -SDLName const SDLNameSubAdministrativeArea = @"subAdministrativeArea"; -SDLName const SDLNameSubLocality = @"subLocality"; -SDLName const SDLNameSubscribe = @"subscribe"; -SDLName const SDLNameSubscribeButton = @"SubscribeButton"; -SDLName const SDLNameSubscribeVehicleData = @"SubscribeVehicleData"; -SDLName const SDLNameSubscribeWayPoints = @"SubscribeWayPoints"; -SDLName const SDLNameSubThoroughfare = @"subThoroughfare"; -SDLName const SDLNameSuccess = @"success"; -SDLName const SDLNameSupportedDiagnosticModes = @"supportedDiagModes"; -SDLName const SDLNameSupportedFormats = @"supportedFormats"; -SDLName const SDLNameSupportedLights = @"supportedLights"; -SDLName const SDLNameSyncFileName = @"syncFileName"; -SDLName const SDLNameSyncMessageVersion = @"syncMsgVersion"; -SDLName const SDLNameSyncPData = @"SyncPData"; -SDLName const SDLNameSystemAction = @"systemAction"; -SDLName const SDLNameSystemCapability = @"systemCapability"; -SDLName const SDLNameSystemCapabilityType = @"systemCapabilityType"; -SDLName const SDLNameSystemContext = @"systemContext"; -SDLName const SDLNameSystemFile = @"systemFile"; -SDLName const SDLNameSystemRequest = @"SystemRequest"; -SDLName const SDLNameSystemSoftwareVersion = @"systemSoftwareVersion"; -SDLName const SDLNameDialNumber = @"DialNumber"; -SDLName const SDLNameTrafficAnnouncementIdentification = @"TA"; -SDLName const SDLNameTargetId = @"targetID"; -SDLName const SDLNameTemperatureUnit = @"temperatureUnit"; -SDLName const SDLNameTemperatureUnitAvailable = @"temperatureUnitAvailable"; -SDLName const SDLNameTemplatesAvailable = @"templatesAvailable"; -SDLName const SDLNameTertiaryText = @"tertiaryText"; -SDLName const SDLNameText = @"text"; -SDLName const SDLNameTextFields = @"textFields"; -SDLName const SDLNameTextMessageAvailable = @"textMsgAvailable"; -SDLName const SDLNameThoroughfare = @"thoroughfare"; -SDLName const SDLNameTimeout = @"timeout"; -SDLName const SDLNameTimeoutCapitalized = @"Timeout"; -SDLName const SDLNameTimeoutPrompt = @"timeoutPrompt"; -SDLName const SDLNameTimeToDestination = @"timeToDestination"; -SDLName const SDLNameTimezoneHourOffset = @"tz_hour"; -SDLName const SDLNameTimezoneMinuteOffset = @"tz_minute"; -SDLName const SDLNameTirePressure = @"tirePressure"; -SDLName const SDLNameTotalDistance = @"totalDistance"; -SDLName const SDLNameTouchEventAvailable = @"touchEventAvailable"; -SDLName const SDLNameTPMS = @"tpms"; -SDLName const SDLNameTrafficProgramIdentification = @"TP"; -SDLName const SDLNameTriggerSource = @"triggerSource"; -SDLName const SDLNameTrim = @"trim"; -SDLName const SDLNameTryAgainTime = @"tryAgainTime"; -SDLName const SDLNameTimestamp = @"ts"; -SDLName const SDLNameTTSChunks = @"ttsChunks"; -SDLName const SDLNameTTSName = @"ttsName"; -SDLName const SDLNameTurnIcon = @"turnIcon"; -SDLName const SDLNameTurnList = @"turnList"; -SDLName const SDLNameTurnSignal = @"turnSignal"; -SDLName const SDLNameType = @"type"; -SDLName const SDLNameUnit = @"unit"; -SDLName const SDLNameUnregisterAppInterface = @"UnregisterAppInterface"; -SDLName const SDLNameUnsubscribe = @"Unsubscribe"; -SDLName const SDLNameUnsubscribeButton = @"UnsubscribeButton"; -SDLName const SDLNameUnsubscribeVehicleData = @"UnsubscribeVehicleData"; -SDLName const SDLNameUnsubscribeWayPoints = @"UnsubscribeWayPoints"; -SDLName const SDLNameUpdateMode = @"updateMode"; -SDLName const SDLNameUpdateTurnList = @"UpdateTurnList"; -SDLName const SDLNameUpDownAvailable = @"upDownAvailable"; -SDLName const SDLNameURL = @"url"; -SDLName const SDLNameURLUppercase = @"URL"; -SDLName const SDLNameUserDisallowed = @"userDisallowed"; -SDLName const SDLNameUserSelected = @"userSelected"; -SDLName const SDLNameUTCDay = @"utcDay"; -SDLName const SDLNameUTCHours = @"utcHours"; -SDLName const SDLNameUTCMinutes = @"utcMinutes"; -SDLName const SDLNameUTCMonth = @"utcMonth"; -SDLName const SDLNameUTCSeconds = @"utcSeconds"; -SDLName const SDLNameUTCYear = @"utcYear"; -SDLName const SDLNameValue = @"value"; -SDLName const SDLNameVDOP = @"vdop"; -SDLName const SDLNameVehicleType = @"vehicleType"; -SDLName const SDLNameVerticalPosition = @"verticalPosition"; -SDLName const SDLNameVerticalPositionAvailable = @"verticalPositionAvailable"; -SDLName const SDLNameVideoCodec = @"codec"; -SDLName const SDLNameVideoProtocol = @"protocol"; -SDLName const SDLNameVideoStreaming = @"videoStreaming"; -SDLName const SDLNameVideoStreamingCapability = @"videoStreamingCapability"; -SDLName const SDLNameVideoStreamingState = @"videoStreamingState"; -SDLName const SDLNameVentilationMode = @"ventilationMode"; -SDLName const SDLNameVentilationModeAvailable = @"ventilationModeAvailable"; -SDLName const SDLNameVIN = @"vin"; -SDLName const SDLNameVoiceRecognitionOn = @"voiceRecOn"; -SDLName const SDLNameVolume = @"volume"; -SDLName const SDLNameVolumeAvailable = @"volumeAvailable"; -SDLName const SDLNameVRCapabilities = @"vrCapabilities"; -SDLName const SDLNameVRCommands = @"vrCommands"; -SDLName const SDLNameVRHelp = @"vrHelp"; -SDLName const SDLNameVRHelpTitle = @"vrHelpTitle"; -SDLName const SDLNameVRSynonyms = @"vrSynonyms"; -SDLName const SDLNameWayPoints = @"wayPoints"; -SDLName const SDLNameWayPointType = @"wayPointType"; -SDLName const SDLNameWidth = @"width"; -SDLName const SDLNameWiperStatus = @"wiperStatus"; -SDLName const SDLNameX = @"x"; -SDLName const SDLNameY = @"y"; -SDLName const SDLNameYear = @"year"; - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationAction.h b/SmartDeviceLink/SDLNavigationAction.h new file mode 100644 index 000000000..922ab404b --- /dev/null +++ b/SmartDeviceLink/SDLNavigationAction.h @@ -0,0 +1,49 @@ +// +// SDLNavigationAction.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/* + * A navigation action. + */ +typedef SDLEnum SDLNavigationAction SDL_SWIFT_ENUM; + +/* + * Using this action plus a supplied direction can give the type of turn. + */ +extern SDLNavigationAction const SDLNavigationActionTurn; + +/* + * A navigation action of exit. + */ +extern SDLNavigationAction const SDLNavigationActionExit; + +/* + * A navigation action of stay. + */ +extern SDLNavigationAction const SDLNavigationActionStay; + +/* + * A navigation action of merge. + */ +extern SDLNavigationAction const SDLNavigationActionMerge; + +/* + * A navigation action of ferry. + */ +extern SDLNavigationAction const SDLNavigationActionFerry; + +/* + * A navigation action of car shuttle train. + */ +extern SDLNavigationAction const SDLNavigationActionCarShuttleTrain; + +/* + * A navigation action of waypoint. + */ +extern SDLNavigationAction const SDLNavigationActionWaypoint; diff --git a/SmartDeviceLink/SDLNavigationAction.m b/SmartDeviceLink/SDLNavigationAction.m new file mode 100644 index 000000000..938acea68 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationAction.m @@ -0,0 +1,17 @@ +// +// SDLNavigationAction.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationAction.h" + +SDLNavigationAction const SDLNavigationActionTurn = @"TURN"; +SDLNavigationAction const SDLNavigationActionExit = @"EXIT"; +SDLNavigationAction const SDLNavigationActionStay = @"STAY"; +SDLNavigationAction const SDLNavigationActionMerge = @"MERGE"; +SDLNavigationAction const SDLNavigationActionFerry = @"FERRY"; +SDLNavigationAction const SDLNavigationActionCarShuttleTrain = @"CAR_SHUTTLE_TRAIN"; +SDLNavigationAction const SDLNavigationActionWaypoint = @"WAYPOINT"; diff --git a/SmartDeviceLink/SDLNavigationCapability.m b/SmartDeviceLink/SDLNavigationCapability.m index ffacc2d52..60c2034d4 100644 --- a/SmartDeviceLink/SDLNavigationCapability.m +++ b/SmartDeviceLink/SDLNavigationCapability.m @@ -9,7 +9,7 @@ #import "SDLNavigationCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -28,19 +28,19 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setSendLocationEnabled:(nullable NSNumber *)sendLocationEnabled { - [store sdl_setObject:sendLocationEnabled forName:SDLNameSendLocationEnabled]; + [store sdl_setObject:sendLocationEnabled forName:SDLRPCParameterNameSendLocationEnabled]; } - (nullable NSNumber *)sendLocationEnabled { - return [store sdl_objectForName:SDLNameSendLocationEnabled]; + return [store sdl_objectForName:SDLRPCParameterNameSendLocationEnabled ofClass:NSNumber.class error:nil]; } - (void)setGetWayPointsEnabled:(nullable NSNumber *)getWayPointsEnabled { - [store sdl_setObject:getWayPointsEnabled forName:SDLNameGetWayPointsEnabled]; + [store sdl_setObject:getWayPointsEnabled forName:SDLRPCParameterNameGetWayPointsEnabled]; } - (nullable NSNumber *)getWayPointsEnabled { - return [store sdl_objectForName:SDLNameGetWayPointsEnabled]; + return [store sdl_objectForName:SDLRPCParameterNameGetWayPointsEnabled ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLNavigationInstruction.h b/SmartDeviceLink/SDLNavigationInstruction.h new file mode 100644 index 000000000..88b347fc5 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationInstruction.h @@ -0,0 +1,109 @@ +// +// SDLNavigationInstruction.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +#import "SDLDirection.h" +#import "SDLNavigationAction.h" +#import "SDLNavigationJunction.h" + +@class SDLDateTime; +@class SDLImage; +@class SDLLocationDetails; + + +NS_ASSUME_NONNULL_BEGIN + +/* + * A navigation instruction. + */ +@interface SDLNavigationInstruction : SDLRPCStruct + +/** + * Convenience init for required parameters + * + * @param locationDetails The location details + * @param action The navigation action + * @return A SDLNavigationInstruction object + */ +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param locationDetails The location details + * @param action The navigation action + * @param eta The estimated time of arrival + * @param bearing The angle at which this instruction takes place + * @param junctionType The navigation junction type + * @param drivingSide Used to infer which side of the road this instruction takes place + * @param details This is a string representation of this instruction, used to display instructions to the users + * @param image An image representation of this instruction + * @return A SDLNavigationInstruction object + */ +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action eta:(nullable SDLDateTime *)eta bearing:(UInt16)bearing junctionType:(nullable SDLNavigationJunction)junctionType drivingSide:(nullable SDLDirection)drivingSide details:(nullable NSString *)details image:(nullable SDLImage *)image; + +/** + * The location details. + * + * SDLLocationDetails, Required + */ +@property (strong, nonatomic) SDLLocationDetails *locationDetails; + +/** + * The navigation action. + * + * SDLNavigationAction, Required + */ +@property (strong, nonatomic) SDLNavigationAction action; + +/** + * The estimated time of arrival. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *eta; + +/** + * The angle at which this instruction takes place. For example, 0 would mean straight, <=45 is bearing right, >= 135 is sharp right, between 45 and 135 is a regular right, and 180 is a U-Turn, etc. + * + * Integer, Optional, minValue="0" maxValue="359" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *bearing; + +/** + * The navigation junction type. + * + * SDLNavigationJunction, Optional + */ +@property (nullable, strong, nonatomic) SDLNavigationJunction junctionType; + +/** + * Used to infer which side of the road this instruction takes place. For a U-Turn (action=TURN, bearing=180) this will determine which direction the turn should take place. + * + * SDLDirection, Optional + */ +@property (nullable, strong, nonatomic) SDLDirection drivingSide; + +/** + * This is a string representation of this instruction, used to display instructions to the users. This is not intended to be read aloud to the users, see the param prompt in `NavigationServiceData` for that. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *details; + +/** + * An image representation of this instruction. + * + * SDLImage, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *image; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationInstruction.m b/SmartDeviceLink/SDLNavigationInstruction.m new file mode 100644 index 000000000..701ed2453 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationInstruction.m @@ -0,0 +1,116 @@ +// +// SDLNavigationInstruction.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationInstruction.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLDateTime.h" +#import "SDLImage.h" +#import "SDLLocationDetails.h" +#import "SDLRPCParameterNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLNavigationInstruction + +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action { + self = [super init]; + if (!self) { + return nil; + } + + self.locationDetails = locationDetails; + self.action = action; + + return self; +} + +- (instancetype)initWithLocationDetails:(SDLLocationDetails *)locationDetails action:(SDLNavigationAction)action eta:(nullable SDLDateTime *)eta bearing:(UInt16)bearing junctionType:(nullable SDLNavigationJunction)junctionType drivingSide:(nullable SDLDirection)drivingSide details:(nullable NSString *)details image:(nullable SDLImage *)image { + self = [self initWithLocationDetails:locationDetails action:action]; + if (!self) { + return nil; + } + + self.eta = eta; + self.bearing = @(bearing); + self.junctionType = junctionType; + self.drivingSide = drivingSide; + self.details = details; + self.image = image; + + return self; +} + +- (void)setLocationDetails:(SDLLocationDetails *)locationDetails { + [store sdl_setObject:locationDetails forName:SDLRPCParameterNameLocationDetails]; +} + +- (SDLLocationDetails *)locationDetails { + return [store sdl_objectForName:SDLRPCParameterNameLocationDetails ofClass:SDLLocationDetails.class error:nil]; +} + +- (void)setAction:(SDLNavigationAction)action { + [store sdl_setObject:action forName:SDLRPCParameterNameAction]; +} + +- (SDLNavigationAction)action { + return [store sdl_enumForName:SDLRPCParameterNameAction error:nil]; +} + +- (void)setEta:(nullable SDLDateTime *)eta { + [store sdl_setObject:eta forName:SDLRPCParameterNameETA]; +} + +- (nullable SDLDateTime *)eta { + return [store sdl_objectForName:SDLRPCParameterNameETA ofClass:SDLDateTime.class error:nil]; +} + +- (void)setBearing:(nullable NSNumber<SDLInt> *)bearing { + [store sdl_setObject:bearing forName:SDLRPCParameterNameBearing]; +} + +- (nullable NSNumber<SDLInt> *)bearing { + return [store sdl_objectForName:SDLRPCParameterNameBearing ofClass:NSNumber.class error:nil]; +} + +- (void)setJunctionType:(nullable SDLNavigationJunction)junctionType { + [store sdl_setObject:junctionType forName:SDLRPCParameterNameJunctionType]; +} + +- (nullable SDLNavigationJunction)junctionType { + return [store sdl_enumForName:SDLRPCParameterNameJunctionType error:nil]; +} + +- (void)setDrivingSide:(nullable SDLDirection)drivingSide { + [store sdl_setObject:drivingSide forName:SDLRPCParameterNameDrivingSide]; +} + +- (nullable SDLDirection)drivingSide { + return [store sdl_enumForName:SDLRPCParameterNameDrivingSide error:nil]; +} + +- (void)setDetails:(nullable NSString *)details { + [store sdl_setObject:details forName:SDLRPCParameterNameDetails]; +} + +- (nullable NSString *)details { + return [store sdl_objectForName:SDLRPCParameterNameDetails ofClass:NSString.class error:nil]; +} + +- (void)setImage:(nullable SDLImage *)image { + [store sdl_setObject:image forName:SDLRPCParameterNameImage]; +} + +- (nullable SDLImage *)image { + return [store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationJunction.h b/SmartDeviceLink/SDLNavigationJunction.h new file mode 100644 index 000000000..b542eeff9 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationJunction.h @@ -0,0 +1,54 @@ +// +// SDLNavigationJunction.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/* + * A navigation junction type. + */ +typedef SDLEnum SDLNavigationJunction SDL_SWIFT_ENUM; + +/* + * A junction that represents a standard intersection with a single road crossing another. + */ +extern SDLNavigationJunction const SDLNavigationJunctionRegular; + +/* + * A junction where the road splits off into two paths; a fork in the road. + */ +extern SDLNavigationJunction const SDLNavigationJunctionBifurcation; + +/* + * A junction that has multiple intersections and paths. + */ +extern SDLNavigationJunction const SDLNavigationJunctionMultiCarriageway; + +/* + * A junction where traffic moves in a single direction around a central, non-traversable point to reach one of the connecting roads. + */ +extern SDLNavigationJunction const SDLNavigationJunctionRoundabout; + +/* + * Similar to a roundabout, however the center of the roundabout is fully traversable. Also known as a mini-roundabout. + */ +extern SDLNavigationJunction const SDLNavigationJunctionTraversableRoundabout; + +/* + * A junction where lefts diverge to the right, then curve to the left, converting a left turn to a crossing maneuver. + */ +extern SDLNavigationJunction const SDLNavigationJunctionJughandle; + +/* + * Multiple way intersection that allows traffic to flow based on priority; most commonly right of way and first in, first out. + */ +extern SDLNavigationJunction const SDLNavigationJunctionAllWayYield; + +/* + * A junction designated for traffic turn arounds. + */ +extern SDLNavigationJunction const SDLNavigationJunctionTurnAround; diff --git a/SmartDeviceLink/SDLNavigationJunction.m b/SmartDeviceLink/SDLNavigationJunction.m new file mode 100644 index 000000000..3c5b81c15 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationJunction.m @@ -0,0 +1,19 @@ +// +// SDLNavigationJunction.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationJunction.h" + +SDLNavigationJunction const SDLNavigationJunctionRegular = @"REGULAR"; +SDLNavigationJunction const SDLNavigationJunctionBifurcation = @"BIFURCATION"; +SDLNavigationJunction const SDLNavigationJunctionMultiCarriageway = @"MULTI_CARRIAGEWAY"; +SDLNavigationJunction const SDLNavigationJunctionRoundabout = @"ROUNDABOUT"; +SDLNavigationJunction const SDLNavigationJunctionTraversableRoundabout = @"TRAVERSABLE_ROUNDABOUT"; +SDLNavigationJunction const SDLNavigationJunctionJughandle = @"JUGHANDLE"; +SDLNavigationJunction const SDLNavigationJunctionAllWayYield = @"ALL_WAY_YIELD"; +SDLNavigationJunction const SDLNavigationJunctionTurnAround = @"TURN_AROUND"; + diff --git a/SmartDeviceLink/SDLNavigationServiceData.h b/SmartDeviceLink/SDLNavigationServiceData.h new file mode 100644 index 000000000..2cef87dd7 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationServiceData.h @@ -0,0 +1,111 @@ +// +// SDLNavigationServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +@class SDLDateTime; +@class SDLLocationDetails; +@class SDLNavigationInstruction; + +NS_ASSUME_NONNULL_BEGIN + +/* + * This data is related to what a navigation service would provide. + */ +@interface SDLNavigationServiceData : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param timestamp Timestamp of when the data was generated + * @return A SDLNavigationServiceData object + */ +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param timestamp Timestamp of when the data was generated + * @param origin The start location + * @param destination The final destination location + * @param destinationETA The estimated time of arrival at the final destination location + * @param instructions Array ordered with all remaining instructions + * @param nextInstructionETA The estimated time of arrival at the next destination + * @param nextInstructionDistance The distance to this instruction from current location + * @param nextInstructionDistanceScale Distance till next maneuver (starting from) from previous maneuver + * @param prompt This is a prompt message that should be conveyed to the user through either display or voice (TTS) + * @return A SDLNavigationServiceData object + */ +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp origin:(nullable SDLLocationDetails *)origin destination:(nullable SDLLocationDetails *)destination destinationETA:(nullable SDLDateTime *)destinationETA instructions:(nullable NSArray<SDLNavigationInstruction *> *)instructions nextInstructionETA:(nullable SDLDateTime *)nextInstructionETA nextInstructionDistance:(float)nextInstructionDistance nextInstructionDistanceScale:(float)nextInstructionDistanceScale prompt:(nullable NSString *)prompt; + +/** + * This is the timestamp of when the data was generated. This is to ensure any time or distance given in the data can accurately be adjusted if necessary. + * + * SDLDateTime, Required + */ +@property (strong, nonatomic) SDLDateTime *timestamp; + +/** + * The start location. + * + * SDLLocationDetails, Optional + */ +@property (nullable, strong, nonatomic) SDLLocationDetails *origin; + +/** + * The final destination location. + * + * SDLLocationDetails, Optional + */ +@property (nullable, strong, nonatomic) SDLLocationDetails *destination; + +/** + * The estimated time of arrival at the final destination location. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *destinationETA; + +/** + * This array should be ordered with all remaining instructions. The start of this array should always contain the next instruction. + * + * Array of SDLNavigationInstruction, Optional + */ +@property (nullable, strong, nonatomic) NSArray<SDLNavigationInstruction *> *instructions; + +/** + * The estimated time of arrival at the next destination. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *nextInstructionETA; + +/** + * The distance to this instruction from current location. This should only be updated ever .1 unit of distance. For more accuracy the consumer can use the GPS location of itself and the next instruction. + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *nextInstructionDistance; + +/** + * Distance till next maneuver (starting from) from previous maneuver. + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *nextInstructionDistanceScale; + +/** + * This is a prompt message that should be conveyed to the user through either display or voice (TTS). This param will change often as it should represent the following: approaching instruction, post instruction, alerts that affect the current navigation session, etc. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *prompt; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationServiceData.m b/SmartDeviceLink/SDLNavigationServiceData.m new file mode 100644 index 000000000..e1ef35a9a --- /dev/null +++ b/SmartDeviceLink/SDLNavigationServiceData.m @@ -0,0 +1,124 @@ +// +// SDLNavigationServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLDateTime.h" +#import "SDLLocationDetails.h" +#import "SDLRPCParameterNames.h" +#import "SDLNavigationInstruction.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLNavigationServiceData + +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp { + self = [super init]; + if (!self) { + return nil; + } + + self.timestamp = timestamp; + + return self; +} + +- (instancetype)initWithTimestamp:(SDLDateTime *)timestamp origin:(nullable SDLLocationDetails *)origin destination:(nullable SDLLocationDetails *)destination destinationETA:(nullable SDLDateTime *)destinationETA instructions:(nullable NSArray<SDLNavigationInstruction *> *)instructions nextInstructionETA:(nullable SDLDateTime *)nextInstructionETA nextInstructionDistance:(float)nextInstructionDistance nextInstructionDistanceScale:(float)nextInstructionDistanceScale prompt:(nullable NSString *)prompt { + self = [self initWithTimestamp:timestamp]; + if (!self) { + return nil; + } + + self.origin = origin; + self.destination = destination; + self.destinationETA = destinationETA; + self.instructions = instructions; + self.nextInstructionETA = nextInstructionETA; + self.nextInstructionDistance = @(nextInstructionDistance); + self.nextInstructionDistanceScale = @(nextInstructionDistanceScale); + self.prompt = prompt; + + return self; +} + +- (void)setTimestamp:(SDLDateTime *)timestamp { + [store sdl_setObject:timestamp forName:SDLRPCParameterNameTimeStamp]; +} + +- (SDLDateTime *)timestamp { + return [store sdl_objectForName:SDLRPCParameterNameTimeStamp ofClass:SDLDateTime.class error:nil]; +} + +- (void)setOrigin:(nullable SDLLocationDetails *)origin { + [store sdl_setObject:origin forName:SDLRPCParameterNameOrigin]; +} + +- (nullable SDLLocationDetails *)origin { + return [store sdl_objectForName:SDLRPCParameterNameOrigin ofClass:SDLLocationDetails.class error:nil]; +} + +- (void)setDestination:(nullable SDLLocationDetails *)destination { + [store sdl_setObject:destination forName:SDLRPCParameterNameDestination]; +} + +- (nullable SDLLocationDetails *)destination { + return [store sdl_objectForName:SDLRPCParameterNameDestination ofClass:SDLLocationDetails.class error:nil]; +} + +- (void)setDestinationETA:(nullable SDLDateTime *)destinationETA { + [store sdl_setObject:destinationETA forName:SDLRPCParameterNameDestinationETA]; +} + +- (nullable SDLDateTime *)destinationETA { + return [store sdl_objectForName:SDLRPCParameterNameDestinationETA ofClass:SDLDateTime.class error:nil]; +} + +- (void)setInstructions:(nullable NSArray<SDLNavigationInstruction *> *)instructions { + [store sdl_setObject:instructions forName:SDLRPCParameterNameInstructions]; +} + +- (nullable NSArray<SDLNavigationInstruction *> *)instructions { + return [store sdl_objectsForName:SDLRPCParameterNameInstructions ofClass:SDLNavigationInstruction.class error:nil]; +} + +- (void)setNextInstructionETA:(nullable SDLDateTime *)nextInstructionETA { + [store sdl_setObject:nextInstructionETA forName:SDLRPCParameterNameNextInstructionETA]; +} + +- (nullable SDLDateTime *)nextInstructionETA { + return [store sdl_objectForName:SDLRPCParameterNameNextInstructionETA ofClass:SDLDateTime.class error:nil]; +} + +- (void)setNextInstructionDistance:(nullable NSNumber<SDLFloat> *)nextInstructionDistance { + [store sdl_setObject:nextInstructionDistance forName:SDLRPCParameterNameNextInstructionDistance]; +} + +- (nullable NSNumber<SDLFloat> *)nextInstructionDistance { + return [store sdl_objectForName:SDLRPCParameterNameNextInstructionDistance ofClass:NSNumber.class error:nil]; +} + +- (void)setNextInstructionDistanceScale:(nullable NSNumber<SDLFloat> *)nextInstructionDistanceScale { + [store sdl_setObject:nextInstructionDistanceScale forName:SDLRPCParameterNameNextInstructionDistanceScale]; +} + +- (nullable NSNumber<SDLFloat> *)nextInstructionDistanceScale { + return [store sdl_objectForName:SDLRPCParameterNameNextInstructionDistanceScale ofClass:NSNumber.class error:nil]; +} + +- (void)setPrompt:(nullable NSString *)prompt { + [store sdl_setObject:prompt forName:SDLRPCParameterNamePrompt]; +} + +- (nullable NSString *)prompt { + return [store sdl_objectForName:SDLRPCParameterNamePrompt ofClass:NSString.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationServiceManifest.h b/SmartDeviceLink/SDLNavigationServiceManifest.h new file mode 100644 index 000000000..5a9707558 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationServiceManifest.h @@ -0,0 +1,35 @@ +// +// SDLNavigationServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 2/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +/* + * A navigation service manifest. + */ +@interface SDLNavigationServiceManifest : SDLRPCStruct + +/** + * Convenience init. + * + * @param acceptsWayPoints Informs the subscriber if this service can actually accept way points + * @return A SDLNavigationServiceManifest object + */ +- (instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints; + +/** + * Informs the subscriber if this service can actually accept way points. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *acceptsWayPoints; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationServiceManifest.m b/SmartDeviceLink/SDLNavigationServiceManifest.m new file mode 100644 index 000000000..4211227f0 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationServiceManifest.m @@ -0,0 +1,39 @@ +// +// SDLNavigationServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 2/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationServiceManifest.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLNavigationServiceManifest + +- (instancetype)initWithAcceptsWayPoints:(BOOL)acceptsWayPoints { + self = [self init]; + if (!self) { + return nil; + } + + self.acceptsWayPoints = @(acceptsWayPoints); + + return self; +} + +- (void)setAcceptsWayPoints:(nullable NSNumber<SDLBool> *)acceptsWayPoints { + [store sdl_setObject:acceptsWayPoints forName:SDLRPCParameterNameAcceptsWayPoints]; +} + +- (nullable NSNumber<SDLBool> *)acceptsWayPoints { + return [store sdl_objectForName:SDLRPCParameterNameAcceptsWayPoints ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNotificationConstants.h b/SmartDeviceLink/SDLNotificationConstants.h index a2a371d3f..e75437551 100644 --- a/SmartDeviceLink/SDLNotificationConstants.h +++ b/SmartDeviceLink/SDLNotificationConstants.h @@ -132,14 +132,19 @@ extern SDLNotificationName const SDLDidReceiveDialNumberResponse; extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse; extern SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse; extern SDLNotificationName const SDLDidReceiveGenericResponse; +extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesResponse; +extern SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse; extern SDLNotificationName const SDLDidReceiveGetDTCsResponse; +extern SDLNotificationName const SDLDidReceiveGetFileResponse; extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse; extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse; extern SDLNotificationName const SDLDidReceiveListFilesResponse; +extern SDLNotificationName const SDLDidReceivePerformAppServiceInteractionResponse; extern SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse; extern SDLNotificationName const SDLDidReceivePerformInteractionResponse; +extern SDLNotificationName const SDLDidReceivePublishAppServiceResponse; extern SDLNotificationName const SDLDidReceivePutFileResponse; extern SDLNotificationName const SDLDidReceiveReadDIDResponse; extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse; @@ -148,6 +153,7 @@ extern SDLNotificationName const SDLDidReceiveScrollableMessageResponse; extern SDLNotificationName const SDLDidReceiveSendHapticDataResponse; extern SDLNotificationName const SDLDidReceiveSendLocationResponse; extern SDLNotificationName const SDLDidReceiveSetAppIconResponse; +extern SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesResponse; extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse; extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse; extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse; @@ -167,13 +173,74 @@ extern SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse; /** + * NSNotification names associated with specific RPC requests. + */ +#pragma mark - RPC requests +extern SDLNotificationName const SDLDidReceiveAddCommandRequest; +extern SDLNotificationName const SDLDidReceiveAddSubMenuRequest; +extern SDLNotificationName const SDLDidReceiveAlertRequest; +extern SDLNotificationName const SDLDidReceiveAlertManeuverRequest; +extern SDLNotificationName const SDLDidReceiveButtonPressRequest; +extern SDLNotificationName const SDLDidReceiveChangeRegistrationRequest; +extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest; +extern SDLNotificationName const SDLDidReceiveDeleteCommandRequest; +extern SDLNotificationName const SDLDidReceiveDeleteFileRequest; +extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest; +extern SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest; +extern SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest; +extern SDLNotificationName const SDLDidReceiveDialNumberRequest; +extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest; +extern SDLNotificationName const SDLDidReceiveEndAudioPassThruRequest; +extern SDLNotificationName const SDLDidReceiveGetAppServiceDataRequest; +extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest; +extern SDLNotificationName const SDLDidReceiveGetDTCsRequest; +extern SDLNotificationName const SDLDidReceiveGetFileRequest; +extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest; +extern SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest; +extern SDLNotificationName const SDLDidReceiveGetVehicleDataRequest; +extern SDLNotificationName const SDLDidReceiveGetWayPointsRequest; +extern SDLNotificationName const SDLDidReceiveListFilesRequest; +extern SDLNotificationName const SDLDidReceivePerformAppServiceInteractionRequest; +extern SDLNotificationName const SDLDidReceivePerformAudioPassThruRequest; +extern SDLNotificationName const SDLDidReceivePerformInteractionRequest; +extern SDLNotificationName const SDLDidReceivePublishAppServiceRequest; +extern SDLNotificationName const SDLDidReceivePutFileRequest; +extern SDLNotificationName const SDLDidReceiveReadDIDRequest; +extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest; +extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest; +extern SDLNotificationName const SDLDidReceiveScrollableMessageRequest; +extern SDLNotificationName const SDLDidReceiveSendHapticDataRequest; +extern SDLNotificationName const SDLDidReceiveSendLocationRequest; +extern SDLNotificationName const SDLDidReceiveSetAppIconRequest; +extern SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesRequest; +extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutRequest; +extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesRequest; +extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataRequest; +extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerRequest; +extern SDLNotificationName const SDLDidReceiveShowRequest; +extern SDLNotificationName const SDLDidReceiveShowConstantTBTRequest; +extern SDLNotificationName const SDLDidReceiveSliderRequest; +extern SDLNotificationName const SDLDidReceiveSpeakRequest; +extern SDLNotificationName const SDLDidReceiveSubscribeButtonRequest; +extern SDLNotificationName const SDLDidReceiveSubscribeVehicleDataRequest; +extern SDLNotificationName const SDLDidReceiveSubscribeWayPointsRequest; +extern SDLNotificationName const SDLDidReceiveSyncPDataRequest; +extern SDLNotificationName const SDLDidReceiveSystemRequestRequest; +extern SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceRequest; +extern SDLNotificationName const SDLDidReceiveUnsubscribeButtonRequest; +extern SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataRequest; +extern SDLNotificationName const SDLDidReceiveUnsubscribeWayPointsRequest; +extern SDLNotificationName const SDLDidReceiveUpdateTurnListRequest; + +/** * NSNotification names associated with specific RPC notifications. */ #pragma mark - RPC Notifications extern SDLNotificationName const SDLDidChangeDriverDistractionStateNotification; extern SDLNotificationName const SDLDidChangeHMIStatusNotification; -extern SDLNotificationName const SDLDidReceiveAudioPassThruNotification; +extern SDLNotificationName const SDLDidReceiveAppServiceDataNotification; extern SDLNotificationName const SDLDidReceiveAppUnregisteredNotification; +extern SDLNotificationName const SDLDidReceiveAudioPassThruNotification; extern SDLNotificationName const SDLDidReceiveButtonEventNotification; extern SDLNotificationName const SDLDidReceiveButtonPressNotification; extern SDLNotificationName const SDLDidReceiveCommandNotification; @@ -186,6 +253,7 @@ extern SDLNotificationName const SDLDidReceiveNewHashNotification; extern SDLNotificationName const SDLDidReceiveVehicleIconNotification; extern SDLNotificationName const SDLDidChangePermissionsNotification; extern SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification; +extern SDLNotificationName const SDLDidReceiveSystemCapabilityUpdatedNotification; extern SDLNotificationName const SDLDidReceiveSystemRequestNotification; extern SDLNotificationName const SDLDidChangeTurnByTurnStateNotification; extern SDLNotificationName const SDLDidReceiveTouchEventNotification; @@ -197,7 +265,7 @@ extern SDLNotificationName const SDLDidReceiveWaypointNotification; /** All of the possible SDL RPC Response notification names - @return The names + @return All response notification names */ + (NSArray<SDLNotificationName> *)allResponseNames; diff --git a/SmartDeviceLink/SDLNotificationConstants.m b/SmartDeviceLink/SDLNotificationConstants.m index 35f12b473..2f88aeed8 100644 --- a/SmartDeviceLink/SDLNotificationConstants.m +++ b/SmartDeviceLink/SDLNotificationConstants.m @@ -40,14 +40,19 @@ SDLNotificationName const SDLDidReceiveDialNumberResponse = @"com.sdl.response.d SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.response.encodedSyncPData"; SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.endAudioPassThru"; SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.generic"; +SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesResponse = @"com.sdl.response.getCloudAppProperties"; +SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse = @"com.sdl.response.getAppServiceData"; SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.getDTCs"; +SDLNotificationName const SDLDidReceiveGetFileResponse = @"com.sdl.response.getFile"; SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse = @"com.sdl.response.getInteriorVehicleData"; SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.getSystemCapabilities"; SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.getVehicleData"; SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.getWaypoints"; SDLNotificationName const SDLDidReceiveListFilesResponse = @"com.sdl.response.listFiles"; +SDLNotificationName const SDLDidReceivePerformAppServiceInteractionResponse = @"com.sdl.response.performAppServiceInteraction"; SDLNotificationName const SDLDidReceivePerformAudioPassThruResponse = @"com.sdl.response.performAudioPassThru"; SDLNotificationName const SDLDidReceivePerformInteractionResponse = @"com.sdl.response.performInteraction"; +SDLNotificationName const SDLDidReceivePublishAppServiceResponse = @"com.sdl.response.publishAppService"; SDLNotificationName const SDLDidReceivePutFileResponse = @"com.sdl.response.putFile"; SDLNotificationName const SDLDidReceiveReadDIDResponse = @"com.sdl.response.readDID"; SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse = @"com.sdl.response.registerAppInterface"; @@ -56,6 +61,7 @@ SDLNotificationName const SDLDidReceiveScrollableMessageResponse = @"com.sdl.res SDLNotificationName const SDLDidReceiveSendHapticDataResponse = @"com.sdl.response.sendHapticData"; SDLNotificationName const SDLDidReceiveSendLocationResponse = @"com.sdl.response.sendLocation"; SDLNotificationName const SDLDidReceiveSetAppIconResponse = @"com.sdl.response.setAppIcon"; +SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesResponse = @"com.sdl.response.setCloudAppProperties"; SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse = @"com.sdl.response.setDisplayLayout"; SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse = @"com.sdl.response.setGlobalProperties"; SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse = @"com.sdl.response.setInteriorVehicleData"; @@ -74,11 +80,69 @@ SDLNotificationName const SDLDidReceiveUnsubscribeButtonResponse = @"com.sdl.res SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataResponse = @"com.sdl.response.unsubscribeVehicleData"; SDLNotificationName const SDLDidReceiveUnsubscribeWaypointsResponse = @"com.sdl.response.unsubscribeWaypoints"; +#pragma mark - RPC Requests +SDLNotificationName const SDLDidReceiveAddCommandRequest = @"com.sdl.request.addCommand"; +SDLNotificationName const SDLDidReceiveAddSubMenuRequest = @"com.sdl.request.addSubMenu"; +SDLNotificationName const SDLDidReceiveAlertRequest = @"com.sdl.request.alert"; +SDLNotificationName const SDLDidReceiveAlertManeuverRequest = @"com.sdl.request.alertManeuver"; +SDLNotificationName const SDLDidReceiveButtonPressRequest = @"com.sdl.request.buttonPress"; +SDLNotificationName const SDLDidReceiveChangeRegistrationRequest = @"com.sdl.request.changeRegistration"; +SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest = @"com.sdl.request.createInteractionChoiceSet"; +SDLNotificationName const SDLDidReceiveDeleteCommandRequest = @"com.sdl.request.deleteCommand"; +SDLNotificationName const SDLDidReceiveDeleteFileRequest = @"com.sdl.request.deleteFile"; +SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest = @"com.sdl.request.deleteInteractionChoiceSet"; +SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest = @"com.sdl.request.deleteSubMenu"; +SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest = @"com.sdl.request.diagnosticMessage"; +SDLNotificationName const SDLDidReceiveDialNumberRequest = @"com.sdl.request.dialNumber"; +SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest = @"com.sdl.request.encodedSyncPData"; +SDLNotificationName const SDLDidReceiveEndAudioPassThruRequest = @"com.sdl.request.endAudioPassThru"; +SDLNotificationName const SDLDidReceiveGetAppServiceDataRequest = @"com.sdl.request.getAppServiceData"; +SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest = @"com.sdl.request.getCloudAppProperties"; +SDLNotificationName const SDLDidReceiveGetDTCsRequest = @"com.sdl.request.getDTCs"; +SDLNotificationName const SDLDidReceiveGetFileRequest = @"com.sdl.request.getFile"; +SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest = @"com.sdl.request.getInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest = @"com.sdl.request.getSystemCapability"; +SDLNotificationName const SDLDidReceiveGetVehicleDataRequest = @"com.sdl.request.getVehicleData"; +SDLNotificationName const SDLDidReceiveGetWayPointsRequest = @"com.sdl.request.getWayPoints"; +SDLNotificationName const SDLDidReceiveListFilesRequest = @"com.sdl.request.listFiles"; +SDLNotificationName const SDLDidReceivePerformAppServiceInteractionRequest = @"com.sdl.request.performAppServiceInteraction"; +SDLNotificationName const SDLDidReceivePerformAudioPassThruRequest = @"com.sdl.request.performAudioPassThru"; +SDLNotificationName const SDLDidReceivePerformInteractionRequest = @"com.sdl.request.performInteraction"; +SDLNotificationName const SDLDidReceivePublishAppServiceRequest = @"com.sdl.request.publishAppService"; +SDLNotificationName const SDLDidReceivePutFileRequest = @"com.sdl.request.putFile"; +SDLNotificationName const SDLDidReceiveReadDIDRequest = @"com.sdl.request.readDID"; +SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest = @"com.sdl.request.registerAppInterface"; +SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest = @"com.sdl.request.resetGlobalProperties"; +SDLNotificationName const SDLDidReceiveScrollableMessageRequest = @"com.sdl.request.scrollableMessage"; +SDLNotificationName const SDLDidReceiveSendHapticDataRequest = @"com.sdl.request.sendHapticData"; +SDLNotificationName const SDLDidReceiveSendLocationRequest = @"com.sdl.request.sendLocation"; +SDLNotificationName const SDLDidReceiveSetAppIconRequest = @"com.sdl.request.setAppIcon"; +SDLNotificationName const SDLDidReceiveSetCloudAppPropertiesRequest = @"com.sdl.request.setCloudAppProperties"; +SDLNotificationName const SDLDidReceiveSetDisplayLayoutRequest = @"com.sdl.request.setDisplayLayout"; +SDLNotificationName const SDLDidReceiveSetGlobalPropertiesRequest = @"com.sdl.request.setGlobalProperties"; +SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataRequest = @"com.sdl.request.setInteriorVehicleData"; +SDLNotificationName const SDLDidReceiveSetMediaClockTimerRequest = @"com.sdl.request.setMediaClockTimer"; +SDLNotificationName const SDLDidReceiveShowRequest = @"com.sdl.request.show"; +SDLNotificationName const SDLDidReceiveShowConstantTBTRequest = @"com.sdl.request.showConstantTBT"; +SDLNotificationName const SDLDidReceiveSliderRequest = @"com.sdl.request.slider"; +SDLNotificationName const SDLDidReceiveSpeakRequest = @"com.sdl.request.speak"; +SDLNotificationName const SDLDidReceiveSubscribeButtonRequest = @"com.sdl.request.subscribeButton"; +SDLNotificationName const SDLDidReceiveSubscribeVehicleDataRequest = @"com.sdl.request.subscribeVehicleData"; +SDLNotificationName const SDLDidReceiveSubscribeWayPointsRequest = @"com.sdl.request.subscribeWayPoints"; +SDLNotificationName const SDLDidReceiveSyncPDataRequest = @"com.sdl.request.syncPData"; +SDLNotificationName const SDLDidReceiveSystemRequestRequest = @"com.sdl.request.systemRequest"; +SDLNotificationName const SDLDidReceiveUnregisterAppInterfaceRequest = @"com.sdl.request.unregisterAppInterface"; +SDLNotificationName const SDLDidReceiveUnsubscribeButtonRequest = @"com.sdl.request.unsubscribeButton"; +SDLNotificationName const SDLDidReceiveUnsubscribeVehicleDataRequest = @"com.sdl.request.unsubscribeVehicleData"; +SDLNotificationName const SDLDidReceiveUnsubscribeWayPointsRequest = @"com.sdl.request.unsubscribeWayPoints"; +SDLNotificationName const SDLDidReceiveUpdateTurnListRequest = @"com.sdl.request.updateTurnList"; + #pragma mark - RPC Notifications SDLNotificationName const SDLDidChangeDriverDistractionStateNotification = @"com.sdl.notification.changeDriverDistractionStateNotification"; SDLNotificationName const SDLDidChangeHMIStatusNotification = @"com.sdl.notification.changeHMIStatus"; -SDLNotificationName const SDLDidReceiveAudioPassThruNotification = @"com.sdl.notification.audioPassThru"; +SDLNotificationName const SDLDidReceiveAppServiceDataNotification = @"com.sdl.notification.appServiceData"; SDLNotificationName const SDLDidReceiveAppUnregisteredNotification = @"com.sdl.notification.appUnregistered"; +SDLNotificationName const SDLDidReceiveAudioPassThruNotification = @"com.sdl.notification.audioPassThru"; SDLNotificationName const SDLDidReceiveButtonEventNotification = @"com.sdl.notification.buttonEvent"; SDLNotificationName const SDLDidReceiveButtonPressNotification = @"com.sdl.notification.buttonPress"; SDLNotificationName const SDLDidReceiveCommandNotification = @"com.sdl.notification.command"; @@ -89,8 +153,9 @@ SDLNotificationName const SDLDidChangeLanguageNotification = @"com.sdl.notificat SDLNotificationName const SDLDidChangeLockScreenStatusNotification = @"com.sdl.notification.lockScreenStatus"; SDLNotificationName const SDLDidReceiveNewHashNotification = @"com.sdl.notification.newHash"; SDLNotificationName const SDLDidChangePermissionsNotification = @"com.sdl.notification.changePermission"; -SDLNotificationName const SDLDidReceiveSystemRequestNotification = @"com.sdl.notification.receiveSystemRequest"; SDLNotificationName const SDLDidReceiveRemoteControlStatusNotification = @"com.sdl.notification.rcStatus"; +SDLNotificationName const SDLDidReceiveSystemCapabilityUpdatedNotification = @"com.sdl.notification.systemCapabilityUpdated"; +SDLNotificationName const SDLDidReceiveSystemRequestNotification = @"com.sdl.notification.receiveSystemRequest"; SDLNotificationName const SDLDidChangeTurnByTurnStateNotification = @"com.sdl.notification.changeTurnByTurnState"; SDLNotificationName const SDLDidReceiveTouchEventNotification = @"com.sdl.notification.touchEvent"; SDLNotificationName const SDLDidReceiveVehicleDataNotification = @"com.sdl.notification.vehicleData"; @@ -116,14 +181,19 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica SDLDidReceiveEncodedSyncPDataResponse, SDLDidReceiveEndAudioPassThruResponse, SDLDidReceiveGenericResponse, + SDLDidReceiveGetCloudAppPropertiesResponse, + SDLDidReceiveGetAppServiceDataResponse, SDLDidReceiveGetDTCsResponse, + SDLDidReceiveGetFileResponse, SDLDidReceiveGetInteriorVehicleDataResponse, SDLDidReceiveGetSystemCapabilitiesResponse, SDLDidReceiveGetVehicleDataResponse, SDLDidReceiveGetWaypointsResponse, SDLDidReceiveListFilesResponse, + SDLDidReceivePerformAppServiceInteractionResponse, SDLDidReceivePerformAudioPassThruResponse, SDLDidReceivePerformInteractionResponse, + SDLDidReceivePublishAppServiceResponse, SDLDidReceivePutFileResponse, SDLDidReceiveReadDIDResponse, SDLDidReceiveRegisterAppInterfaceResponse, @@ -132,6 +202,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica SDLDidReceiveSendHapticDataResponse, SDLDidReceiveSendLocationResponse, SDLDidReceiveSetAppIconResponse, + SDLDidReceiveSetCloudAppPropertiesResponse, SDLDidReceiveSetDisplayLayoutResponse, SDLDidReceiveSetGlobalPropertiesResponse, SDLDidReceiveSetInteriorVehicleDataResponse, diff --git a/SmartDeviceLink/SDLNotificationDispatcher.h b/SmartDeviceLink/SDLNotificationDispatcher.h index ba5089a25..f820ddc91 100644 --- a/SmartDeviceLink/SDLNotificationDispatcher.h +++ b/SmartDeviceLink/SDLNotificationDispatcher.h @@ -10,6 +10,7 @@ #import "SDLProxyListener.h" +@class SDLRPCRequest; @class SDLRPCResponse; @class SDLRPCNotification; @@ -22,13 +23,35 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLNotificationDispatcher : NSObject <SDLProxyListener> /** - * Post a notification with a specified name and object. + * Posts a notification with a specified name and object. * - * @param name The name of the notification to be dispatched. - * @param info The object to be send along in the `userInfo` dictionary. + * @param name The name of the notification to be dispatched. + * @param info The notification object to be sent in the `userInfo` dictionary. */ - (void)postNotificationName:(NSString *)name infoObject:(nullable id)info; + +/** + * Posts a request from Core with a specified name and request object + * + * @param name The name of the request to be dispatched + * @param request The request object to be sent in the `userInfo` dictionary + */ +- (void)postRPCRequestNotification:(NSString *)name request:(__kindof SDLRPCRequest *)request; + +/** + * Posts a response from Core with a specified name and response object + * + * @param name The name of the response to be dispatched + * @param response The response object to be sent in the `userInfo` dictionary + */ - (void)postRPCResponseNotification:(NSString *)name response:(__kindof SDLRPCResponse *)response; + +/** + * Posts a notification from Core with a specified name and notification object + * + * @param name The name of the notification to be dispatched + * @param rpcNotification The notification object to be sent in the `userInfo` dictionary + */ - (void)postRPCNotificationNotification:(NSString *)name notification:(__kindof SDLRPCNotification *)rpcNotification; @end diff --git a/SmartDeviceLink/SDLNotificationDispatcher.m b/SmartDeviceLink/SDLNotificationDispatcher.m index f2a4b6950..809f3170f 100644 --- a/SmartDeviceLink/SDLNotificationDispatcher.m +++ b/SmartDeviceLink/SDLNotificationDispatcher.m @@ -12,6 +12,7 @@ #import "SDLNotificationConstants.h" #import "SDLRPCNotification.h" #import "SDLRPCNotificationNotification.h" +#import "SDLRPCRequestNotification.h" #import "SDLRPCResponseNotification.h" NS_ASSUME_NONNULL_BEGIN @@ -35,6 +36,13 @@ NS_ASSUME_NONNULL_BEGIN [[NSNotificationCenter defaultCenter] postNotificationName:name object:self userInfo:userInfo]; } +- (void)postRPCRequestNotification:(NSString *)name request:(__kindof SDLRPCRequest *)request { + SDLRPCRequestNotification *notification = [[SDLRPCRequestNotification alloc] initWithName:name object:self rpcRequest:request]; + + // Runs on `com.sdl.rpcProcessingQueue` + [[NSNotificationCenter defaultCenter] postNotification:notification]; +} + - (void)postRPCResponseNotification:(NSString *)name response:(__kindof SDLRPCResponse *)response { SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:name object:self rpcResponse:response]; @@ -81,6 +89,8 @@ NS_ASSUME_NONNULL_BEGIN [self postNotificationName:SDLDidReceiveError infoObject:error]; } +# pragma mark - Responses + - (void)onReceivedLockScreenIcon:(UIImage *)icon { [self postNotificationName:SDLDidReceiveLockScreenIcon infoObject:icon]; } @@ -149,10 +159,22 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceiveGenericResponse response:response]; } +- (void)onGetCloudAppPropertiesResponse:(SDLGetCloudAppPropertiesResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveGetCloudAppPropertiesResponse response:response]; +} + +- (void)onGetAppServiceDataResponse:(SDLGetAppServiceDataResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveGetAppServiceDataResponse response:response]; +} + - (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response { [self postRPCResponseNotification:SDLDidReceiveGetDTCsResponse response:response]; } +- (void)onGetFileResponse:(SDLGetFileResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveGetFileResponse response:response]; +} + - (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response { [self postRPCResponseNotification:SDLDidReceiveGetInteriorVehicleDataResponse response:response]; } @@ -165,7 +187,7 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceiveGetVehicleDataResponse response:response]; } -- (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response { +- (void)onGetWayPointsResponse:(SDLGetWayPointsResponse *)response { [self postRPCResponseNotification:SDLDidReceiveGetWaypointsResponse response:response]; } @@ -173,6 +195,10 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceiveListFilesResponse response:response]; } +- (void)onPerformAppServiceInteractionResponse:(SDLPerformAppServiceInteractionResponse *)response { + [self postRPCResponseNotification:SDLDidReceivePerformAppServiceInteractionResponse response:response]; +} + - (void)onPerformAudioPassThruResponse:(SDLPerformAudioPassThruResponse *)response { [self postRPCResponseNotification:SDLDidReceivePerformAudioPassThruResponse response:response]; } @@ -181,6 +207,10 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceivePerformInteractionResponse response:response]; } +- (void)onPublishAppServiceResponse:(SDLPublishAppServiceResponse *)response { + [self postRPCResponseNotification:SDLDidReceivePublishAppServiceResponse response:response]; +} + - (void)onPutFileResponse:(SDLPutFileResponse *)response { [self postRPCResponseNotification:SDLDidReceivePutFileResponse response:response]; } @@ -213,6 +243,10 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceiveSetAppIconResponse response:response]; } +- (void)onSetCloudAppPropertiesResponse:(SDLSetCloudAppPropertiesResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveSetCloudAppPropertiesResponse response:response]; +} + - (void)onSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)response { [self postRPCResponseNotification:SDLDidReceiveSetDisplayLayoutResponse response:response]; } @@ -281,10 +315,238 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceiveUnsubscribeWaypointsResponse response:response]; } +# pragma mark - Requests + +- (void)onAddCommand:(SDLAddCommand *)request { + [self postRPCRequestNotification:SDLDidReceiveAddCommandRequest request:request]; +} + +- (void)onAddSubMenu:(SDLAddSubMenu *)request { + [self postRPCRequestNotification:SDLDidReceiveAddSubMenuRequest request:request]; +} + +- (void)onAlert:(SDLAlert *)request { + [self postRPCRequestNotification:SDLDidReceiveAlertRequest request:request]; +} + +- (void)onAlertManeuver:(SDLAlertManeuver *)request { + [self postRPCRequestNotification:SDLDidReceiveAlertManeuverRequest request:request]; +} + +- (void)onButtonPress:(SDLButtonPress *)request { + [self postRPCRequestNotification:SDLDidReceiveButtonPressRequest request:request]; +} + +- (void)onChangeRegistration:(SDLChangeRegistration *)request { + [self postRPCRequestNotification:SDLDidReceiveChangeRegistrationRequest request:request]; +} + +- (void)onCreateInteractionChoiceSet:(SDLCreateInteractionChoiceSet *)request { + [self postRPCRequestNotification:SDLDidReceiveCreateInteractionChoiceSetRequest request:request]; +} + +- (void)onDeleteCommand:(SDLDeleteCommand *)request { + [self postRPCRequestNotification:SDLDidReceiveDeleteCommandRequest request:request]; +} + +- (void)onDeleteFile:(SDLDeleteFile *)request { + [self postRPCRequestNotification:SDLDidReceiveDeleteFileRequest request:request]; +} + +- (void)onDeleteInteractionChoiceSet:(SDLDeleteInteractionChoiceSet *)request { + [self postRPCRequestNotification:SDLDidReceiveDeleteInteractionChoiceSetRequest request:request]; +} + +- (void)onDeleteSubMenu:(SDLDeleteSubMenu *)request { + [self postRPCRequestNotification:SDLDidReceiveDeleteSubMenuRequest request:request]; +} + +- (void)onDiagnosticMessage:(SDLDiagnosticMessage *)request { + [self postRPCRequestNotification:SDLDidReceiveDiagnosticMessageRequest request:request]; +} + +- (void)onDialNumber:(SDLDialNumber *)request { + [self postRPCRequestNotification:SDLDidReceiveDialNumberRequest request:request]; +} + +- (void)onEncodedSyncPData:(SDLEncodedSyncPData *)request { + [self postRPCRequestNotification:SDLDidReceiveEncodedSyncPDataRequest request:request]; +} + +- (void)onEndAudioPassThru:(SDLEndAudioPassThru *)request { + [self postRPCRequestNotification:SDLDidReceiveEndAudioPassThruRequest request:request]; +} + +- (void)onGetAppServiceData:(SDLGetAppServiceData *)request { + [self postRPCRequestNotification:SDLDidReceiveGetAppServiceDataRequest request:request]; +} + +- (void)onGetCloudAppProperties:(SDLGetCloudAppProperties *)request { + [self postRPCRequestNotification:SDLDidReceiveGetCloudAppPropertiesRequest request:request]; +} + +- (void)onGetDTCs:(SDLGetDTCs *)request { + [self postRPCRequestNotification:SDLDidReceiveGetDTCsRequest request:request]; +} + +- (void)onGetFile:(SDLGetFile *)request { + [self postRPCRequestNotification:SDLDidReceiveGetFileRequest request:request]; +} + +- (void)onGetInteriorVehicleData:(SDLGetInteriorVehicleData *)request { + [self postRPCRequestNotification:SDLDidReceiveGetInteriorVehicleDataRequest request:request]; +} + +- (void)onGetSystemCapability:(SDLGetSystemCapability *)request { + [self postRPCRequestNotification:SDLDidReceiveGetSystemCapabilityRequest request:request]; +} + +- (void)onGetVehicleData:(SDLGetVehicleData *)request { + [self postRPCRequestNotification:SDLDidReceiveGetVehicleDataRequest request:request]; +} + +- (void)onGetWayPoints:(SDLGetWayPoints *)request { + [self postRPCRequestNotification:SDLDidReceiveGetWayPointsRequest request:request]; +} + +- (void)onListFiles:(SDLListFiles *)request { + [self postRPCRequestNotification:SDLDidReceiveListFilesRequest request:request]; +} + +- (void)onPerformAppServiceInteraction:(SDLPerformAppServiceInteraction *)request { + [self postRPCRequestNotification:SDLDidReceivePerformAppServiceInteractionRequest request:request]; +} + +- (void)onPerformAudioPassThru:(SDLPerformAudioPassThru *)request { + [self postRPCRequestNotification:SDLDidReceivePerformAudioPassThruRequest request:request]; +} + +- (void)onPerformInteraction:(SDLPerformInteraction *)request { + [self postRPCRequestNotification:SDLDidReceivePerformInteractionRequest request:request]; +} + +- (void)onPublishAppService:(SDLPublishAppService *)request { + [self postRPCRequestNotification:SDLDidReceivePublishAppServiceRequest request:request]; +} + +- (void)onPutFile:(SDLPutFile *)request { + [self postRPCRequestNotification:SDLDidReceivePutFileRequest request:request]; +} + +- (void)onReadDID:(SDLReadDID *)request { + [self postRPCRequestNotification:SDLDidReceiveReadDIDRequest request:request]; +} + +- (void)onRegisterAppInterface:(SDLRegisterAppInterface *)request { + [self postRPCRequestNotification:SDLDidReceiveRegisterAppInterfaceRequest request:request]; +} + +- (void)onResetGlobalProperties:(SDLResetGlobalProperties *)request { + [self postRPCRequestNotification:SDLDidReceiveResetGlobalPropertiesRequest request:request]; +} + +- (void)onScrollableMessage:(SDLScrollableMessage *)request { + [self postRPCRequestNotification:SDLDidReceiveScrollableMessageRequest request:request]; +} + +- (void)onSendHapticData:(SDLSendHapticData *)request { + [self postRPCRequestNotification:SDLDidReceiveSendHapticDataRequest request:request]; +} + +- (void)onSendLocation:(SDLSendLocation *)request { + [self postRPCRequestNotification:SDLDidReceiveSendLocationRequest request:request]; +} + +- (void)onSetAppIcon:(SDLSetAppIcon *)request { + [self postRPCRequestNotification:SDLDidReceiveSetAppIconRequest request:request]; +} + +- (void)onSetCloudAppProperties:(SDLSetCloudAppProperties *)request { + [self postRPCRequestNotification:SDLDidReceiveSetCloudAppPropertiesRequest request:request]; +} + +- (void)onSetDisplayLayout:(SDLSetDisplayLayout *)request { + [self postRPCRequestNotification:SDLDidReceiveSetDisplayLayoutRequest request:request]; +} + +- (void)onSetGlobalProperties:(SDLSetGlobalProperties *)request { + [self postRPCRequestNotification:SDLDidReceiveSetGlobalPropertiesRequest request:request]; +} + +- (void)onSetInteriorVehicleData:(SDLSetInteriorVehicleData *)request { + [self postRPCRequestNotification:SDLDidReceiveSetInteriorVehicleDataRequest request:request]; +} + +- (void)onSetMediaClockTimer:(SDLSetMediaClockTimer *)request { + [self postRPCRequestNotification:SDLDidReceiveSetMediaClockTimerRequest request:request]; +} + +- (void)onShow:(SDLShow *)request { + [self postRPCRequestNotification:SDLDidReceiveShowRequest request:request]; +} + +- (void)onShowConstantTBT:(SDLShowConstantTBT *)request { + [self postRPCRequestNotification:SDLDidReceiveShowConstantTBTRequest request:request]; +} + +- (void)onSlider:(SDLSlider *)request { + [self postRPCRequestNotification:SDLDidReceiveSliderRequest request:request]; +} + +- (void)onSpeak:(SDLSpeak *)request { + [self postRPCRequestNotification:SDLDidReceiveSpeakRequest request:request]; +} + +- (void)onSubscribeButton:(SDLSubscribeButton *)request { + [self postRPCRequestNotification:SDLDidReceiveSubscribeButtonRequest request:request]; +} + +- (void)onSubscribeVehicleData:(SDLSubscribeVehicleData *)request { + [self postRPCRequestNotification:SDLDidReceiveSubscribeVehicleDataRequest request:request]; +} + +- (void)onSubscribeWayPoints:(SDLSubscribeWayPoints *)request { + [self postRPCRequestNotification:SDLDidReceiveSubscribeWayPointsRequest request:request]; +} + +- (void)onSyncPData:(SDLSyncPData *)request { + [self postRPCRequestNotification:SDLDidReceiveSyncPDataRequest request:request]; +} + +-(void)onSystemRequest:(SDLSystemRequest *)request { + [self postRPCRequestNotification:SDLDidReceiveSystemRequestRequest request:request]; +} + +- (void)onUnregisterAppInterface:(SDLUnregisterAppInterface *)request { + [self postRPCRequestNotification:SDLDidReceiveUnregisterAppInterfaceRequest request:request]; +} + +- (void)onUnsubscribeButton:(SDLUnsubscribeButton *)request { + [self postRPCRequestNotification:SDLDidReceiveUnsubscribeButtonRequest request:request]; +} + +- (void)onUnsubscribeVehicleData:(SDLUnsubscribeVehicleData *)request { + [self postRPCRequestNotification:SDLDidReceiveUnsubscribeVehicleDataRequest request:request]; +} + +- (void)onUnsubscribeWayPoints:(SDLUnsubscribeWayPoints *)request { + [self postRPCRequestNotification:SDLDidReceiveUnsubscribeWayPointsRequest request:request]; +} + +- (void)onUpdateTurnList:(SDLUpdateTurnList *)request { + [self postRPCRequestNotification:SDLDidReceiveUpdateTurnListRequest request:request]; +} + +# pragma mark - Notifications + - (void)onOnAppInterfaceUnregistered:(SDLOnAppInterfaceUnregistered *)notification { [self postRPCNotificationNotification:SDLDidReceiveAppUnregisteredNotification notification:notification]; } +- (void)onOnAppServiceData:(SDLOnAppServiceData *)notification { + [self postRPCNotificationNotification:SDLDidReceiveAppServiceDataNotification notification:notification]; +} + - (void)onOnAudioPassThru:(SDLOnAudioPassThru *)notification { [self postRPCNotificationNotification:SDLDidReceiveAudioPassThruNotification notification:notification]; } @@ -337,6 +599,10 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCNotificationNotification:SDLDidReceiveSystemRequestNotification notification:notification]; } +- (void)onOnSystemCapabilityUpdated:(SDLOnSystemCapabilityUpdated *)notification { + [self postRPCNotificationNotification:SDLDidReceiveSystemCapabilityUpdatedNotification notification:notification]; +} + - (void)onOnSystemRequest:(SDLOnSystemRequest *)notification { [self postRPCNotificationNotification:SDLDidReceiveSystemRequestNotification notification:notification]; } diff --git a/SmartDeviceLink/SDLOasisAddress.m b/SmartDeviceLink/SDLOasisAddress.m index 97bfbe8cf..634695db9 100644 --- a/SmartDeviceLink/SDLOasisAddress.m +++ b/SmartDeviceLink/SDLOasisAddress.m @@ -4,7 +4,7 @@ #import "SDLOasisAddress.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -34,75 +34,75 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setCountryName:(nullable NSString *)countryName { - [store sdl_setObject:countryName forName:SDLNameCountryName]; + [store sdl_setObject:countryName forName:SDLRPCParameterNameCountryName]; } - (nullable NSString *)countryName { - return [store sdl_objectForName:SDLNameCountryName]; + return [store sdl_objectForName:SDLRPCParameterNameCountryName ofClass:NSString.class error:nil]; } - (void)setCountryCode:(nullable NSString *)countryCode { - [store sdl_setObject:countryCode forName:SDLNameCountryCode]; + [store sdl_setObject:countryCode forName:SDLRPCParameterNameCountryCode]; } - (nullable NSString *)countryCode { - return [store sdl_objectForName:SDLNameCountryCode]; + return [store sdl_objectForName:SDLRPCParameterNameCountryCode ofClass:NSString.class error:nil]; } - (void)setPostalCode:(nullable NSString *)postalCode { - [store sdl_setObject:postalCode forName:SDLNamePostalCode]; + [store sdl_setObject:postalCode forName:SDLRPCParameterNamePostalCode]; } - (nullable NSString *)postalCode { - return [store sdl_objectForName:SDLNamePostalCode]; + return [store sdl_objectForName:SDLRPCParameterNamePostalCode ofClass:NSString.class error:nil]; } - (void)setAdministrativeArea:(nullable NSString *)administrativeArea { - [store sdl_setObject:administrativeArea forName:SDLNameAdministrativeArea]; + [store sdl_setObject:administrativeArea forName:SDLRPCParameterNameAdministrativeArea]; } - (nullable NSString *)administrativeArea { - return [store sdl_objectForName:SDLNameAdministrativeArea]; + return [store sdl_objectForName:SDLRPCParameterNameAdministrativeArea ofClass:NSString.class error:nil]; } - (void)setSubAdministrativeArea:(nullable NSString *)subAdministrativeArea { - [store sdl_setObject:subAdministrativeArea forName:SDLNameSubAdministrativeArea]; + [store sdl_setObject:subAdministrativeArea forName:SDLRPCParameterNameSubAdministrativeArea]; } - (nullable NSString *)subAdministrativeArea { - return [store sdl_objectForName:SDLNameSubAdministrativeArea]; + return [store sdl_objectForName:SDLRPCParameterNameSubAdministrativeArea ofClass:NSString.class error:nil]; } - (void)setLocality:(nullable NSString *)locality { - [store sdl_setObject:locality forName:SDLNameLocality]; + [store sdl_setObject:locality forName:SDLRPCParameterNameLocality]; } - (nullable NSString *)locality { - return [store sdl_objectForName:SDLNameLocality]; + return [store sdl_objectForName:SDLRPCParameterNameLocality ofClass:NSString.class error:nil]; } - (void)setSubLocality:(nullable NSString *)subLocality { - [store sdl_setObject:subLocality forName:SDLNameSubLocality]; + [store sdl_setObject:subLocality forName:SDLRPCParameterNameSubLocality]; } - (nullable NSString *)subLocality { - return [store sdl_objectForName:SDLNameSubLocality]; + return [store sdl_objectForName:SDLRPCParameterNameSubLocality ofClass:NSString.class error:nil]; } - (void)setThoroughfare:(nullable NSString *)thoroughfare { - [store sdl_setObject:thoroughfare forName:SDLNameThoroughfare]; + [store sdl_setObject:thoroughfare forName:SDLRPCParameterNameThoroughfare]; } - (nullable NSString *)thoroughfare { - return [store sdl_objectForName:SDLNameThoroughfare]; + return [store sdl_objectForName:SDLRPCParameterNameThoroughfare ofClass:NSString.class error:nil]; } - (void)setSubThoroughfare:(nullable NSString *)subThoroughfare { - [store sdl_setObject:subThoroughfare forName:SDLNameSubThoroughfare]; + [store sdl_setObject:subThoroughfare forName:SDLRPCParameterNameSubThoroughfare]; } - (nullable NSString *)subThoroughfare { - return [store sdl_objectForName:SDLNameSubThoroughfare]; + return [store sdl_objectForName:SDLRPCParameterNameSubThoroughfare ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m b/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m index a38ac0738..39cd7acb1 100644 --- a/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m +++ b/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m @@ -4,24 +4,26 @@ #import "SDLOnAppInterfaceUnregistered.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnAppInterfaceUnregistered - (instancetype)init { - if (self = [super initWithName:SDLNameOnAppInterfaceUnregistered]) { + if (self = [super initWithName:SDLRPCFunctionNameOnAppInterfaceUnregistered]) { } return self; } - (void)setReason:(SDLAppInterfaceUnregisteredReason)reason { - [parameters sdl_setObject:reason forName:SDLNameReason]; + [parameters sdl_setObject:reason forName:SDLRPCParameterNameReason]; } - (SDLAppInterfaceUnregisteredReason)reason { - return [parameters sdl_objectForName:SDLNameReason]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameReason error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnAppServiceData.h b/SmartDeviceLink/SDLOnAppServiceData.h new file mode 100644 index 000000000..f3a4ff16c --- /dev/null +++ b/SmartDeviceLink/SDLOnAppServiceData.h @@ -0,0 +1,38 @@ +// +// SDLOnAppServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCNotification.h" + +@class SDLAppServiceData; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * This notification includes the data that is updated from the specific service. + */ +@interface SDLOnAppServiceData : SDLRPCNotification + +/** + * Convenience init for all parameters. + * + * @param serviceData The updated app service data + * @return A SDLOnAppServiceData object + */ +- (instancetype)initWithServiceData:(SDLAppServiceData *)serviceData; + +/** + * The updated app service data. + * + * SDLAppServiceData, Required + */ +@property (strong, nonatomic) SDLAppServiceData *serviceData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnAppServiceData.m b/SmartDeviceLink/SDLOnAppServiceData.m new file mode 100644 index 000000000..c532ff4ea --- /dev/null +++ b/SmartDeviceLink/SDLOnAppServiceData.m @@ -0,0 +1,48 @@ +// +// SDLOnAppServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLOnAppServiceData.h" +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +#import "SDLAppServiceData.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLOnAppServiceData + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameOnAppServiceData]) { + } + return self; +} + +- (instancetype)initWithServiceData:(SDLAppServiceData *)serviceData { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceData = serviceData; + + return self; +} + +- (void)setServiceData:(SDLAppServiceData *)serviceData { + [parameters sdl_setObject:serviceData forName:SDLRPCParameterNameServiceData]; +} + +- (SDLAppServiceData *)serviceData { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameServiceData ofClass:SDLAppServiceData.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnAudioPassThru.m b/SmartDeviceLink/SDLOnAudioPassThru.m index 2ab8fefc4..3775b5040 100644 --- a/SmartDeviceLink/SDLOnAudioPassThru.m +++ b/SmartDeviceLink/SDLOnAudioPassThru.m @@ -5,14 +5,15 @@ #import "SDLOnAudioPassThru.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnAudioPassThru - (instancetype)init { - if (self = [super initWithName:SDLNameOnAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNameOnAudioPassThru]) { } return self; } diff --git a/SmartDeviceLink/SDLOnButtonEvent.m b/SmartDeviceLink/SDLOnButtonEvent.m index 4d65422a8..61a033e8a 100644 --- a/SmartDeviceLink/SDLOnButtonEvent.m +++ b/SmartDeviceLink/SDLOnButtonEvent.m @@ -4,42 +4,43 @@ #import "SDLOnButtonEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnButtonEvent - (instancetype)init { - if (self = [super initWithName:SDLNameOnButtonEvent]) { + if (self = [super initWithName:SDLRPCFunctionNameOnButtonEvent]) { } return self; } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonName]; - return (SDLButtonName)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } - (void)setButtonEventMode:(SDLButtonEventMode)buttonEventMode { - [parameters sdl_setObject:buttonEventMode forName:SDLNameButtonEventMode]; + [parameters sdl_setObject:buttonEventMode forName:SDLRPCParameterNameButtonEventMode]; } - (SDLButtonEventMode)buttonEventMode { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonEventMode]; - return (SDLButtonEventMode)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonEventMode error:&error]; } - (void)setCustomButtonID:(nullable NSNumber<SDLInt> *)customButtonID { - [parameters sdl_setObject:customButtonID forName:SDLNameCustomButtonId]; + [parameters sdl_setObject:customButtonID forName:SDLRPCParameterNameCustomButtonId]; } - (nullable NSNumber<SDLInt> *)customButtonID { - return [parameters sdl_objectForName:SDLNameCustomButtonId]; + return [parameters sdl_objectForName:SDLRPCParameterNameCustomButtonId ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnButtonPress.m b/SmartDeviceLink/SDLOnButtonPress.m index addeccfd8..90dc42e4b 100644 --- a/SmartDeviceLink/SDLOnButtonPress.m +++ b/SmartDeviceLink/SDLOnButtonPress.m @@ -4,42 +4,43 @@ #import "SDLOnButtonPress.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnButtonPress - (instancetype)init { - if (self = [super initWithName:SDLNameOnButtonPress]) { + if (self = [super initWithName:SDLRPCFunctionNameOnButtonPress]) { } return self; } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonName]; - return (SDLButtonName)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } - (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { - [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode]; + [parameters sdl_setObject:buttonPressMode forName:SDLRPCParameterNameButtonPressMode]; } - (SDLButtonPressMode)buttonPressMode { - NSObject *obj = [parameters sdl_objectForName:SDLNameButtonPressMode]; - return (SDLButtonPressMode)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error]; } - (void)setCustomButtonID:(nullable NSNumber<SDLInt> *)customButtonID { - [parameters sdl_setObject:customButtonID forName:SDLNameCustomButtonId]; + [parameters sdl_setObject:customButtonID forName:SDLRPCParameterNameCustomButtonId]; } - (nullable NSNumber<SDLInt> *)customButtonID { - return [parameters sdl_objectForName:SDLNameCustomButtonId]; + return [parameters sdl_objectForName:SDLRPCParameterNameCustomButtonId ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnCommand.m b/SmartDeviceLink/SDLOnCommand.m index f1d547852..b6048249e 100644 --- a/SmartDeviceLink/SDLOnCommand.m +++ b/SmartDeviceLink/SDLOnCommand.m @@ -4,33 +4,35 @@ #import "SDLOnCommand.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnCommand - (instancetype)init { - if (self = [super initWithName:SDLNameOnCommand]) { + if (self = [super initWithName:SDLRPCFunctionNameOnCommand]) { } return self; } - (void)setCmdID:(NSNumber<SDLInt> *)cmdID { - [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; + [parameters sdl_setObject:cmdID forName:SDLRPCParameterNameCommandId]; } - (NSNumber<SDLInt> *)cmdID { - return [parameters sdl_objectForName:SDLNameCommandId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameCommandId ofClass:NSNumber.class error:&error]; } - (void)setTriggerSource:(SDLTriggerSource)triggerSource { - [parameters sdl_setObject:triggerSource forName:SDLNameTriggerSource]; + [parameters sdl_setObject:triggerSource forName:SDLRPCParameterNameTriggerSource]; } - (SDLTriggerSource)triggerSource { - NSObject *obj = [parameters sdl_objectForName:SDLNameTriggerSource]; - return (SDLTriggerSource)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameTriggerSource error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnDriverDistraction.m b/SmartDeviceLink/SDLOnDriverDistraction.m index cba06de2e..147964af8 100644 --- a/SmartDeviceLink/SDLOnDriverDistraction.m +++ b/SmartDeviceLink/SDLOnDriverDistraction.m @@ -4,7 +4,8 @@ #import "SDLOnDriverDistraction.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLDriverDistractionState.h" NS_ASSUME_NONNULL_BEGIN @@ -12,18 +13,18 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLOnDriverDistraction - (instancetype)init { - if (self = [super initWithName:SDLNameOnDriverDistraction]) { + if (self = [super initWithName:SDLRPCFunctionNameOnDriverDistraction]) { } return self; } - (void)setState:(SDLDriverDistractionState)state { - [parameters sdl_setObject:state forName:SDLNameState]; + [parameters sdl_setObject:state forName:SDLRPCParameterNameState]; } - (SDLDriverDistractionState)state { - NSObject *obj = [parameters sdl_objectForName:SDLNameState]; - return (SDLDriverDistractionState)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameState error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnEncodedSyncPData.m b/SmartDeviceLink/SDLOnEncodedSyncPData.m index d9796b4cb..873411c80 100644 --- a/SmartDeviceLink/SDLOnEncodedSyncPData.m +++ b/SmartDeviceLink/SDLOnEncodedSyncPData.m @@ -4,40 +4,42 @@ #import "SDLOnEncodedSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnEncodedSyncPData - (instancetype)init { - if (self = [super initWithName:SDLNameOnEncodedSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnEncodedSyncPData]) { } return self; } - (void)setData:(NSArray<NSString *> *)data { - [parameters sdl_setObject:data forName:SDLNameData]; + [parameters sdl_setObject:data forName:SDLRPCParameterNameData]; } - (NSArray<NSString *> *)data { - return [parameters sdl_objectForName:SDLNameData]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameData ofClass:NSString.class error:&error]; } - (void)setURL:(nullable NSString *)URL { - [parameters sdl_setObject:URL forName:SDLNameURLUppercase]; + [parameters sdl_setObject:URL forName:SDLRPCParameterNameURLUppercase]; } - (nullable NSString *)URL { - return [parameters sdl_objectForName:SDLNameURLUppercase]; + return [parameters sdl_objectForName:SDLRPCParameterNameURLUppercase ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber<SDLInt> *)Timeout { - [parameters sdl_setObject:Timeout forName:SDLNameTimeoutCapitalized]; + [parameters sdl_setObject:Timeout forName:SDLRPCParameterNameTimeoutCapitalized]; } - (nullable NSNumber<SDLInt> *)Timeout { - return [parameters sdl_objectForName:SDLNameTimeoutCapitalized]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeoutCapitalized ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnHMIStatus.m b/SmartDeviceLink/SDLOnHMIStatus.m index b345856f4..8ab94e60f 100644 --- a/SmartDeviceLink/SDLOnHMIStatus.m +++ b/SmartDeviceLink/SDLOnHMIStatus.m @@ -6,7 +6,8 @@ #import "NSMutableDictionary+Store.h" #import "SDLAudioStreamingState.h" #import "SDLHMILevel.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemContext.h" NS_ASSUME_NONNULL_BEGIN @@ -14,44 +15,44 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLOnHMIStatus - (instancetype)init { - if (self = [super initWithName:SDLNameOnHMIStatus]) { + if (self = [super initWithName:SDLRPCFunctionNameOnHMIStatus]) { } return self; } - (void)setHmiLevel:(SDLHMILevel)hmiLevel { - [parameters sdl_setObject:hmiLevel forName:SDLNameHMILevel]; + [parameters sdl_setObject:hmiLevel forName:SDLRPCParameterNameHMILevel]; } - (SDLHMILevel)hmiLevel { - NSObject *obj = [parameters sdl_objectForName:SDLNameHMILevel]; - return (SDLHMILevel)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameHMILevel error:&error]; } - (void)setAudioStreamingState:(SDLAudioStreamingState)audioStreamingState { - [parameters sdl_setObject:audioStreamingState forName:SDLNameAudioStreamingState]; + [parameters sdl_setObject:audioStreamingState forName:SDLRPCParameterNameAudioStreamingState]; } - (SDLAudioStreamingState)audioStreamingState { - NSObject *obj = [parameters sdl_objectForName:SDLNameAudioStreamingState]; - return (SDLAudioStreamingState)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingState error:&error]; } - (void)setVideoStreamingState:(nullable SDLVideoStreamingState)videoStreamingState { - [parameters sdl_setObject:videoStreamingState forName:SDLNameVideoStreamingState]; + [parameters sdl_setObject:videoStreamingState forName:SDLRPCParameterNameVideoStreamingState]; } - (nullable SDLVideoStreamingState)videoStreamingState { - return [parameters sdl_objectForName:SDLNameVideoStreamingState]; + return [parameters sdl_enumForName:SDLRPCParameterNameVideoStreamingState error:nil]; } - (void)setSystemContext:(SDLSystemContext)systemContext { - [parameters sdl_setObject:systemContext forName:SDLNameSystemContext]; + [parameters sdl_setObject:systemContext forName:SDLRPCParameterNameSystemContext]; } - (SDLSystemContext)systemContext { - NSObject *obj = [parameters sdl_objectForName:SDLNameSystemContext]; - return (SDLSystemContext)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameSystemContext error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnHashChange.m b/SmartDeviceLink/SDLOnHashChange.m index f3fb70731..7f0f6e9b4 100644 --- a/SmartDeviceLink/SDLOnHashChange.m +++ b/SmartDeviceLink/SDLOnHashChange.m @@ -5,24 +5,26 @@ #import "SDLOnHashChange.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnHashChange - (instancetype)init { - if (self = [super initWithName:SDLNameOnHashChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnHashChange]) { } return self; } - (void)setHashID:(NSString *)hashID { - [parameters sdl_setObject:hashID forName:SDLNameHashId]; + [parameters sdl_setObject:hashID forName:SDLRPCParameterNameHashId]; } - (NSString *)hashID { - return [parameters sdl_objectForName:SDLNameHashId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameHashId ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnInteriorVehicleData.m b/SmartDeviceLink/SDLOnInteriorVehicleData.m index bb065608c..f052ceaae 100644 --- a/SmartDeviceLink/SDLOnInteriorVehicleData.m +++ b/SmartDeviceLink/SDLOnInteriorVehicleData.m @@ -3,7 +3,8 @@ // #import "SDLOnInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLModuleData.h" #import "NSMutableDictionary+Store.h" @@ -12,17 +13,18 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLOnInteriorVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameOnInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnInteriorVehicleData]) { } return self; } - (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; + [parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } - (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnKeyboardInput.m b/SmartDeviceLink/SDLOnKeyboardInput.m index a6bd02295..6f781c377 100644 --- a/SmartDeviceLink/SDLOnKeyboardInput.m +++ b/SmartDeviceLink/SDLOnKeyboardInput.m @@ -4,33 +4,34 @@ #import "SDLOnKeyboardInput.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnKeyboardInput - (instancetype)init { - if (self = [super initWithName:SDLNameOnKeyboardInput]) { + if (self = [super initWithName:SDLRPCFunctionNameOnKeyboardInput]) { } return self; } - (void)setEvent:(SDLKeyboardEvent)event { - [parameters sdl_setObject:event forName:SDLNameEvent]; + [parameters sdl_setObject:event forName:SDLRPCParameterNameEvent]; } - (SDLKeyboardEvent)event { - NSObject *obj = [parameters sdl_objectForName:SDLNameEvent]; - return (SDLKeyboardEvent)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameEvent error:&error]; } - (void)setData:(nullable NSString *)data { - [parameters sdl_setObject:data forName:SDLNameData]; + [parameters sdl_setObject:data forName:SDLRPCParameterNameData]; } - (nullable NSString *)data { - return [parameters sdl_objectForName:SDLNameData]; + return [parameters sdl_objectForName:SDLRPCParameterNameData ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnLanguageChange.m b/SmartDeviceLink/SDLOnLanguageChange.m index 419875f73..922b86eec 100644 --- a/SmartDeviceLink/SDLOnLanguageChange.m +++ b/SmartDeviceLink/SDLOnLanguageChange.m @@ -5,34 +5,35 @@ #import "NSMutableDictionary+Store.h" #import "SDLLanguage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnLanguageChange - (instancetype)init { - if (self = [super initWithName:SDLNameOnLanguageChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnLanguageChange]) { } return self; } - (void)setLanguage:(SDLLanguage)language { - [parameters sdl_setObject:language forName:SDLNameLanguage]; + [parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (SDLLanguage)language { - NSObject *obj = [parameters sdl_objectForName:SDLNameLanguage]; - return (SDLLanguage)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameLanguage error:&error]; } - (void)setHmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { - [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; + [parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; } - (SDLLanguage)hmiDisplayLanguage { - NSObject *obj = [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; - return (SDLLanguage)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:&error]; } diff --git a/SmartDeviceLink/SDLOnLockScreenStatus.m b/SmartDeviceLink/SDLOnLockScreenStatus.m index d2007956e..7c24099e4 100644 --- a/SmartDeviceLink/SDLOnLockScreenStatus.m +++ b/SmartDeviceLink/SDLOnLockScreenStatus.m @@ -8,48 +8,53 @@ #import "NSMutableDictionary+Store.h" #import "SDLHMILevel.h" #import "SDLLockScreenStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnLockScreenStatus - (instancetype)init { - if (self = [super initWithName:SDLNameOnLockScreenStatus]) { + if (self = [super initWithName:SDLRPCFunctionNameOnLockScreenStatus]) { } return self; } - (void)setLockScreenStatus:(SDLLockScreenStatus)lockScreenStatus { - [parameters sdl_setObject:lockScreenStatus forName:SDLNameOnLockScreenStatus]; + [parameters sdl_setObject:lockScreenStatus forName:SDLRPCParameterNameOnLockScreenStatus]; } - (SDLLockScreenStatus)lockScreenStatus { - return [parameters sdl_objectForName:SDLNameOnLockScreenStatus]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameOnLockScreenStatus error:&error]; } - (void)setHmiLevel:(SDLHMILevel)hmiLevel { - [parameters sdl_setObject:hmiLevel forName:SDLNameHMILevel]; + [parameters sdl_setObject:hmiLevel forName:SDLRPCParameterNameHMILevel]; } - (SDLHMILevel)hmiLevel { - return [parameters sdl_objectForName:SDLNameHMILevel]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameHMILevel error:&error]; } - (void)setUserSelected:(NSNumber<SDLBool> *)userSelected { - [parameters sdl_setObject:userSelected forName:SDLNameUserSelected]; + [parameters sdl_setObject:userSelected forName:SDLRPCParameterNameUserSelected]; } - (NSNumber<SDLBool> *)userSelected { - return [parameters sdl_objectForName:SDLNameUserSelected]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameUserSelected ofClass:NSNumber.class error:&error]; } - (void)setDriverDistractionStatus:(NSNumber<SDLBool> *)driverDistractionStatus { - [parameters sdl_setObject:driverDistractionStatus forName:SDLNameDriverDistractionStatus]; + [parameters sdl_setObject:driverDistractionStatus forName:SDLRPCParameterNameDriverDistractionStatus]; } - (NSNumber<SDLBool> *)driverDistractionStatus { - return [parameters sdl_objectForName:SDLNameDriverDistractionStatus]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameDriverDistractionStatus ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnPermissionsChange.m b/SmartDeviceLink/SDLOnPermissionsChange.m index da908698a..f517a197d 100644 --- a/SmartDeviceLink/SDLOnPermissionsChange.m +++ b/SmartDeviceLink/SDLOnPermissionsChange.m @@ -4,7 +4,8 @@ #import "SDLOnPermissionsChange.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPermissionItem.h" NS_ASSUME_NONNULL_BEGIN @@ -12,17 +13,18 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLOnPermissionsChange - (instancetype)init { - if (self = [super initWithName:SDLNameOnPermissionsChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnPermissionsChange]) { } return self; } - (void)setPermissionItem:(NSArray<SDLPermissionItem *> *)permissionItem { - [parameters sdl_setObject:permissionItem forName:SDLNamePermissionItem]; + [parameters sdl_setObject:permissionItem forName:SDLRPCParameterNamePermissionItem]; } - (NSArray<SDLPermissionItem *> *)permissionItem { - return [parameters sdl_objectsForName:SDLNamePermissionItem ofClass:SDLPermissionItem.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNamePermissionItem ofClass:SDLPermissionItem.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnRCStatus.m b/SmartDeviceLink/SDLOnRCStatus.m index eeae2506e..551131661 100644 --- a/SmartDeviceLink/SDLOnRCStatus.m +++ b/SmartDeviceLink/SDLOnRCStatus.m @@ -5,41 +5,44 @@ #import "NSMutableDictionary+Store.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnRCStatus - (instancetype)init { - if (self = [super initWithName:SDLNameOnRCStatus]) { + if (self = [super initWithName:SDLRPCFunctionNameOnRCStatus]) { } return self; } - (nullable NSNumber<SDLBool> *)allowed { - return [parameters sdl_objectForName:SDLNameAllowed]; + return [parameters sdl_objectForName:SDLRPCParameterNameAllowed ofClass:NSNumber.class error:nil]; } - (void)setAllowed:(nullable NSNumber<SDLBool> *)allowed { - [parameters sdl_setObject:allowed forName:SDLNameAllowed]; + [parameters sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; } - (void)setAllocatedModules:(NSArray<SDLModuleData *> *)allocatedModules { - [parameters sdl_setObject:allocatedModules forName:SDLNameAllocatedModules]; + [parameters sdl_setObject:allocatedModules forName:SDLRPCParameterNameAllocatedModules]; } - (NSArray<SDLModuleData *> *)allocatedModules { - return [parameters sdl_objectsForName:SDLNameAllocatedModules ofClass:SDLModuleData.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameAllocatedModules ofClass:SDLModuleData.class error:&error]; } - (void)setFreeModules:(NSArray<SDLModuleData *> *)freeModules { - [parameters sdl_setObject:freeModules forName:SDLNameFreeModules]; + [parameters sdl_setObject:freeModules forName:SDLRPCParameterNameFreeModules]; } - (NSArray<SDLModuleData *> *)freeModules { - return [parameters sdl_objectsForName:SDLNameFreeModules ofClass:SDLModuleData.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameFreeModules ofClass:SDLModuleData.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnSyncPData.m b/SmartDeviceLink/SDLOnSyncPData.m index 13446ab88..d470b80c2 100644 --- a/SmartDeviceLink/SDLOnSyncPData.m +++ b/SmartDeviceLink/SDLOnSyncPData.m @@ -5,32 +5,34 @@ #import "SDLOnSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + NS_ASSUME_NONNULL_BEGIN @implementation SDLOnSyncPData - (instancetype)init { - if (self = [super initWithName:SDLNameOnSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnSyncPData]) { } return self; } - (void)setURL:(nullable NSString *)URL { - [parameters sdl_setObject:URL forName:SDLNameURLUppercase]; + [parameters sdl_setObject:URL forName:SDLRPCParameterNameURLUppercase]; } - (nullable NSString *)URL { - return [parameters sdl_objectForName:SDLNameURLUppercase]; + return [parameters sdl_objectForName:SDLRPCParameterNameURLUppercase ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber<SDLInt> *)Timeout { - [parameters sdl_setObject:Timeout forName:SDLNameTimeoutCapitalized]; + [parameters sdl_setObject:Timeout forName:SDLRPCParameterNameTimeoutCapitalized]; } - (nullable NSNumber<SDLInt> *)Timeout { - return [parameters sdl_objectForName:SDLNameTimeoutCapitalized]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeoutCapitalized ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h b/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h new file mode 100644 index 000000000..35a720901 --- /dev/null +++ b/SmartDeviceLink/SDLOnSystemCapabilityUpdated.h @@ -0,0 +1,37 @@ +// +// SDLOnSystemCapabilityUpdated.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCNotification.h" + +@class SDLSystemCapability; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A notification to inform the connected device that a specific system capability has changed. + */ +@interface SDLOnSystemCapabilityUpdated : SDLRPCNotification + +/** + * Convenience init for required parameters + * + * @param systemCapability The system capability that has been updated + * @return A SDLOnSystemCapabilityUpdated object + */ +- (instancetype)initWithSystemCapability:(SDLSystemCapability *)systemCapability; + +/** + * The system capability that has been updated. + * + * SDLSystemCapability, Required + */ +@property (strong, nonatomic) SDLSystemCapability *systemCapability; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m b/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m new file mode 100644 index 000000000..f9809e12d --- /dev/null +++ b/SmartDeviceLink/SDLOnSystemCapabilityUpdated.m @@ -0,0 +1,48 @@ +// +// SDLOnSystemCapabilityUpdated.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLOnSystemCapabilityUpdated.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSystemCapability.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLOnSystemCapabilityUpdated + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameOnSystemCapabilityUpdated]) { + } + return self; +} + +- (instancetype)initWithSystemCapability:(SDLSystemCapability *)systemCapability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapability = systemCapability; + + return self; +} + +- (void)setSystemCapability:(SDLSystemCapability *)systemCapability { + [parameters sdl_setObject:systemCapability forName:SDLRPCParameterNameSystemCapability]; +} + +- (SDLSystemCapability *)systemCapability { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSystemCapability ofClass:SDLSystemCapability.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnSystemRequest.m b/SmartDeviceLink/SDLOnSystemRequest.m index aecd16ab3..211d68528 100644 --- a/SmartDeviceLink/SDLOnSystemRequest.m +++ b/SmartDeviceLink/SDLOnSystemRequest.m @@ -4,72 +4,74 @@ #import "SDLOnSystemRequest.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnSystemRequest - (instancetype)init { - if (self = [super initWithName:SDLNameOnSystemRequest]) { + if (self = [super initWithName:SDLRPCFunctionNameOnSystemRequest]) { } return self; } - (void)setRequestType:(SDLRequestType)requestType { - [parameters sdl_setObject:requestType forName:SDLNameRequestType]; + [parameters sdl_setObject:requestType forName:SDLRPCParameterNameRequestType]; } - (SDLRequestType)requestType { - return [parameters sdl_objectForName:SDLNameRequestType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameRequestType error:&error]; } - (void)setRequestSubType:(nullable NSString *)requestSubType { - [parameters sdl_setObject:requestSubType forName:SDLNameRequestSubType]; + [parameters sdl_setObject:requestSubType forName:SDLRPCParameterNameRequestSubType]; } - (nullable NSString *)requestSubType { - return [parameters sdl_objectForName:SDLNameRequestSubType]; + return [parameters sdl_objectForName:SDLRPCParameterNameRequestSubType ofClass:NSString.class error:nil]; } - (void)setUrl:(nullable NSString *)url { - [parameters sdl_setObject:url forName:SDLNameURL]; + [parameters sdl_setObject:url forName:SDLRPCParameterNameURL]; } - (nullable NSString *)url { - return [parameters sdl_objectForName:SDLNameURL]; + return [parameters sdl_objectForName:SDLRPCParameterNameURL ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber<SDLInt> *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber<SDLInt> *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } - (void)setFileType:(nullable SDLFileType)fileType { - [parameters sdl_setObject:fileType forName:SDLNameFileType]; + [parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; } - (nullable SDLFileType)fileType { - return [parameters sdl_objectForName:SDLNameFileType]; + return [parameters sdl_enumForName:SDLRPCParameterNameFileType error:nil]; } - (void)setOffset:(nullable NSNumber<SDLInt> *)offset { - [parameters sdl_setObject:offset forName:SDLNameOffset]; + [parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; } - (nullable NSNumber<SDLInt> *)offset { - return [parameters sdl_objectForName:SDLNameOffset]; + return [parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; } - (void)setLength:(nullable NSNumber<SDLInt> *)length { - [parameters sdl_setObject:length forName:SDLNameLength]; + [parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; } - (nullable NSNumber<SDLInt> *)length { - return [parameters sdl_objectForName:SDLNameLength]; + return [parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnTBTClientState.m b/SmartDeviceLink/SDLOnTBTClientState.m index 41bc28f0d..de8017174 100644 --- a/SmartDeviceLink/SDLOnTBTClientState.m +++ b/SmartDeviceLink/SDLOnTBTClientState.m @@ -4,25 +4,26 @@ #import "SDLOnTBTClientState.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnTBTClientState - (instancetype)init { - if (self = [super initWithName:SDLNameOnTBTClientState]) { + if (self = [super initWithName:SDLRPCFunctionNameOnTBTClientState]) { } return self; } - (void)setState:(SDLTBTState)state { - [parameters sdl_setObject:state forName:SDLNameState]; + [parameters sdl_setObject:state forName:SDLRPCParameterNameState]; } - (SDLTBTState)state { - NSObject *obj = [parameters sdl_objectForName:SDLNameState]; - return (SDLTBTState)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameState error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnTouchEvent.m b/SmartDeviceLink/SDLOnTouchEvent.m index 08cb844c1..0d8eea442 100644 --- a/SmartDeviceLink/SDLOnTouchEvent.m +++ b/SmartDeviceLink/SDLOnTouchEvent.m @@ -4,7 +4,8 @@ #import "SDLOnTouchEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTouchEvent.h" NS_ASSUME_NONNULL_BEGIN @@ -12,26 +13,27 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLOnTouchEvent - (instancetype)init { - if (self = [super initWithName:SDLNameOnTouchEvent]) { + if (self = [super initWithName:SDLRPCFunctionNameOnTouchEvent]) { } return self; } - (void)setType:(SDLTouchType)type { - [parameters sdl_setObject:type forName:SDLNameType]; + [parameters sdl_setObject:type forName:SDLRPCParameterNameType]; } - (SDLTouchType)type { - NSObject *obj = [parameters sdl_objectForName:SDLNameType]; - return (SDLTouchType)obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameType error:&error]; } - (void)setEvent:(NSArray<SDLTouchEvent *> *)event { - [parameters sdl_setObject:event forName:SDLNameEvent]; + [parameters sdl_setObject:event forName:SDLRPCParameterNameEvent]; } - (NSArray<SDLTouchEvent *> *)event { - return [parameters sdl_objectsForName:SDLNameEvent ofClass:SDLTouchEvent.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameEvent ofClass:SDLTouchEvent.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLOnVehicleData.h b/SmartDeviceLink/SDLOnVehicleData.h index f4449c070..463245d30 100644 --- a/SmartDeviceLink/SDLOnVehicleData.h +++ b/SmartDeviceLink/SDLOnVehicleData.h @@ -181,6 +181,11 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) SDLTurnSignal turnSignal; +/** + The cloud app vehicle ID + */ +@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnVehicleData.m b/SmartDeviceLink/SDLOnVehicleData.m index 8c77db316..3e07fe7e9 100644 --- a/SmartDeviceLink/SDLOnVehicleData.m +++ b/SmartDeviceLink/SDLOnVehicleData.m @@ -15,7 +15,8 @@ #import "SDLGPSData.h" #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTireStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -23,242 +24,249 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLOnVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameOnVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameOnVehicleData]) { } return self; } - (void)setGps:(nullable SDLGPSData *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLGPSData *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLGPSData.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLGPSData.class error:nil]; } - (void)setSpeed:(nullable NSNumber<SDLFloat> *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber<SDLFloat> *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber<SDLInt> *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber<SDLInt> *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber<SDLFloat> *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber<SDLFloat> *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLComponentVolumeStatus)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [parameters sdl_enumForName:SDLRPCParameterNameFuelLevelState error:nil]; } - (void)setFuelRange:(nullable NSArray<SDLFuelRange *> *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSArray<SDLFuelRange *> *)fuelRange { - return [parameters sdl_objectsForName:SDLNameFuelRange ofClass:SDLFuelRange.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameFuelRange ofClass:SDLFuelRange.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber<SDLFloat> *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber<SDLFloat> *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber<SDLFloat> *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber<SDLFloat> *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setVin:(nullable NSString *)vin { - [parameters sdl_setObject:vin forName:SDLNameVIN]; + [parameters sdl_setObject:vin forName:SDLRPCParameterNameVIN]; } - (nullable NSString *)vin { - return [parameters sdl_objectForName:SDLNameVIN]; + return [parameters sdl_objectForName:SDLRPCParameterNameVIN ofClass:NSString.class error:nil]; } - (void)setPrndl:(nullable SDLPRNDL)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLPRNDL)prndl { - NSObject *obj = [parameters sdl_objectForName:SDLNamePRNDL]; - return (SDLPRNDL)obj; + return [parameters sdl_enumForName:SDLRPCParameterNamePRNDL error:nil]; } - (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLTireStatus *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLTireStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLTireStatus.class error:nil]; } - (void)setOdometer:(nullable NSNumber<SDLInt> *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber<SDLInt> *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLBeltStatus *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLBeltStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLBeltStatus.class error:nil]; } - (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLBodyInformation *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLBodyInformation.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLBodyInformation.class error:nil]; } - (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLDeviceStatus *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLDeviceStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLDeviceStatus.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataEventStatus)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [parameters sdl_enumForName:SDLRPCParameterNameDriverBraking error:nil]; } - (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLWiperStatus)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [parameters sdl_enumForName:SDLRPCParameterNameWiperStatus error:nil]; } - (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLHeadLampStatus *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLHeadLampStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLHeadLampStatus.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber<SDLFloat> *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber<SDLFloat> *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber<SDLFloat> *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber<SDLFloat> *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber<SDLFloat> *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber<SDLFloat> *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber<SDLFloat> *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber<SDLFloat> *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLECallInfo *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLECallInfo.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLECallInfo.class error:nil]; } - (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLAirbagStatus *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLAirbagStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLAirbagStatus.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLEmergencyEvent *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLEmergencyEvent.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLEmergencyEvent.class error:nil]; } - (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable SDLClusterModeStatus *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus ofClass:SDLClusterModeStatus.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:SDLClusterModeStatus.class error:nil]; } - (void)setMyKey:(nullable SDLMyKey *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLMyKey *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLMyKey.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLMyKey.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLElectronicParkBrakeStatus)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [parameters sdl_enumForName:SDLRPCParameterNameElectronicParkBrakeStatus error:nil]; } - (void)setTurnSignal:(nullable SDLTurnSignal)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLTurnSignal)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [parameters sdl_enumForName:SDLRPCParameterNameTurnSignal error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSString *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSString *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLOnWayPointChange.m b/SmartDeviceLink/SDLOnWayPointChange.m index 70c7c4242..bc7b5a492 100644 --- a/SmartDeviceLink/SDLOnWayPointChange.m +++ b/SmartDeviceLink/SDLOnWayPointChange.m @@ -5,24 +5,26 @@ #import "NSMutableDictionary+Store.h" #import "SDLLocationDetails.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLOnWayPointChange - (instancetype)init { - if (self = [super initWithName:SDLNameOnWayPointChange]) { + if (self = [super initWithName:SDLRPCFunctionNameOnWayPointChange]) { } return self; } - (void)setWaypoints:(NSArray<SDLLocationDetails *> *)waypoints { - [parameters sdl_setObject:waypoints forName:SDLNameWayPoints]; + [parameters sdl_setObject:waypoints forName:SDLRPCParameterNameWayPoints]; } - (NSArray<SDLLocationDetails *> *)waypoints { - return [parameters sdl_objectsForName:SDLNameWayPoints ofClass:SDLLocationDetails.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameWayPoints ofClass:SDLLocationDetails.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLParameterPermissions.m b/SmartDeviceLink/SDLParameterPermissions.m index bcc2f7047..005955a50 100644 --- a/SmartDeviceLink/SDLParameterPermissions.m +++ b/SmartDeviceLink/SDLParameterPermissions.m @@ -5,26 +5,28 @@ #import "SDLParameterPermissions.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLParameterPermissions - (void)setAllowed:(NSArray<NSString *> *)allowed { - [store sdl_setObject:allowed forName:SDLNameAllowed]; + [store sdl_setObject:allowed forName:SDLRPCParameterNameAllowed]; } - (NSArray<NSString *> *)allowed { - return [store sdl_objectForName:SDLNameAllowed]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameAllowed ofClass:NSString.class error:&error]; } - (void)setUserDisallowed:(NSArray<NSString *> *)userDisallowed { - [store sdl_setObject:userDisallowed forName:SDLNameUserDisallowed]; + [store sdl_setObject:userDisallowed forName:SDLRPCParameterNameUserDisallowed]; } - (NSArray<NSString *> *)userDisallowed { - return [store sdl_objectForName:SDLNameUserDisallowed]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameUserDisallowed ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLPerformAppServiceInteraction.h b/SmartDeviceLink/SDLPerformAppServiceInteraction.h new file mode 100644 index 000000000..f85c66387 --- /dev/null +++ b/SmartDeviceLink/SDLPerformAppServiceInteraction.h @@ -0,0 +1,79 @@ +// +// SDLPerformAppServiceInteraction.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * App service providers will likely have different actions exposed to the module and app service consumers. It will be difficult to standardize these actions by RPC versions and can easily become stale. Therefore, we introduce a best-effort attempt to take actions on a service. + * + * The `PerformAppServiceInteraction` request will be sent to the service that has the matching `appServiceId`. The `serviceUri` should be the fully qualified URI with all parameters that are necessary for the given action. The URI prefix and actions list will be contained in the app service provider's manifest. SDL takes no steps to validate an app service provider's action sheet JSON object. In the future, plug in libraries could be added to handle these sheets on a provider by provider basis. + * + * An app service consumer can also request for this service to become the active service of its respective type. If the app service consumer currently has an HMI state of HMI_FULL this request can be performed without user interaction. If the app is currently not in that state, the HMI should present the user with a choice to allow this app service provider to become the active service of its specified type. If the app service provider is not allowed to become active, the request will not be sent to it and an unsuccessful response will be sent to the requester. + * + * SDL should make no guarantees that: + * 1. App service providers offer URI prefix and URI Schema + * 2. App service providers will correctly respond to the requests + * 3. The requested app service provider will become the active service of that type + * 4. The `serviceUri` will be a correctly formatted URI from the app service consumer + */ +@interface SDLPerformAppServiceInteraction : SDLRPCRequest + +/** + * Convenience init for required parameters. + * + * @param serviceUri The service URI + * @param serviceID The app service ID + * @param originApp The origin app + * @return A SDLPerformAppServiceInteraction object + */ +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp; + +/** + * Convenience init for all parameters. + * + * @param serviceUri The service URI + * @param serviceID The app service ID + * @param originApp The origin app + * @param requestServiceActive Whether or not the service is active + * @return A SDLPerformAppServiceInteraction object + */ +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp requestServiceActive:(BOOL)requestServiceActive; + +/** + * Fully qualified URI based on a predetermined scheme provided by the app service. SDL makes no guarantee that this URI is correct. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceUri; + +/** + * The service ID that the app consumer wishes to send this URI. + * + * String, Required + */ +@property (strong, nonatomic) NSString *serviceID; + +/** + * This string is the appID of the app requesting the app service provider take the specific action. + * + * String, Required + */ +@property (strong, nonatomic) NSString *originApp; + +/** + * This flag signals the requesting consumer would like this service to become the active primary service of the destination's type. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *requestServiceActive; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAppServiceInteraction.m b/SmartDeviceLink/SDLPerformAppServiceInteraction.m new file mode 100644 index 000000000..292ae39b4 --- /dev/null +++ b/SmartDeviceLink/SDLPerformAppServiceInteraction.m @@ -0,0 +1,86 @@ +// +// SDLPerformAppServiceInteraction.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPerformAppServiceInteraction.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPerformAppServiceInteraction + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePerformAppServiceInteraction]) { + } + return self; +} + +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceUri = serviceUri; + self.serviceID = serviceID; + self.originApp = originApp; + + return self; +} + +- (instancetype)initWithServiceUri:(NSString *)serviceUri serviceID:(NSString *)serviceID originApp:(NSString *)originApp requestServiceActive:(BOOL)requestServiceActive { + self = [self initWithServiceUri:serviceUri serviceID:serviceID originApp:originApp]; + if (!self) { + return nil; + } + + self.requestServiceActive = @(requestServiceActive); + + return self; +} + +- (void)setServiceUri:(NSString *)serviceUri { + [parameters sdl_setObject:serviceUri forName:SDLRPCParameterNameServiceUri]; +} + +- (NSString *)serviceUri { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameServiceUri ofClass:NSString.class error:&error]; +} + +- (void)setServiceID:(NSString *)serviceID { + [parameters sdl_setObject:serviceID forName:SDLRPCParameterNameServiceID]; +} + +- (NSString *)serviceID { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameServiceID ofClass:NSString.class error:&error]; +} + +- (void)setOriginApp:(NSString *)originApp { + [parameters sdl_setObject:originApp forName:SDLRPCParameterNameOriginApp]; +} + +- (NSString *)originApp { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameOriginApp ofClass:NSString.class error:&error]; +} + +- (void)setRequestServiceActive:(nullable NSNumber<SDLBool> *)requestServiceActive { + [parameters sdl_setObject:requestServiceActive forName:SDLRPCParameterNameRequestServiceActive]; +} + +- (nullable NSNumber<SDLBool> *)requestServiceActive { + return [parameters sdl_objectForName:SDLRPCParameterNameRequestServiceActive ofClass:NSNumber.class error:nil]; +} +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h b/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h new file mode 100644 index 000000000..7d5d6cc13 --- /dev/null +++ b/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h @@ -0,0 +1,36 @@ +// +// SDLPerformAppServiceInteractionResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + + +NS_ASSUME_NONNULL_BEGIN + +/* + * Response to the request to request an app service. + */ +@interface SDLPerformAppServiceInteractionResponse : SDLRPCResponse + +/** + * Convenience init for all parameters. + * + * @param serviceSpecificResult The service can provide specific result strings to the consumer through this param. + * @return A SDLPerformAppServiceInteractionResponse object + */ +- (instancetype)initWithServiceSpecificResult:(NSString *)serviceSpecificResult; + +/** + * The service can provide specific result strings to the consumer through this param. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *serviceSpecificResult; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m b/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m new file mode 100644 index 000000000..112d7c209 --- /dev/null +++ b/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.m @@ -0,0 +1,46 @@ +// +// SDLPerformAppServiceInteractionResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPerformAppServiceInteractionResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPerformAppServiceInteractionResponse + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePerformAppServiceInteraction]) { + } + return self; +} + +- (instancetype)initWithServiceSpecificResult:(NSString *)serviceSpecificResult { + self = [self init]; + if (!self) { + return nil; + } + + self.serviceSpecificResult = serviceSpecificResult; + + return self; +} + +- (void)setServiceSpecificResult:(nullable NSString *)serviceSpecificResult { + [parameters sdl_setObject:serviceSpecificResult forName:SDLRPCParameterNameServiceSpecificResult]; +} + +- (nullable NSString *)serviceSpecificResult { + return [parameters sdl_objectForName:SDLRPCParameterNameServiceSpecificResult ofClass:NSString.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAudioPassThru.m b/SmartDeviceLink/SDLPerformAudioPassThru.m index f2bbbdf10..85917babe 100644 --- a/SmartDeviceLink/SDLPerformAudioPassThru.m +++ b/SmartDeviceLink/SDLPerformAudioPassThru.m @@ -5,7 +5,8 @@ #import "SDLPerformAudioPassThru.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" NS_ASSUME_NONNULL_BEGIN @@ -13,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformAudioPassThru - (instancetype)init { - if (self = [super initWithName:SDLNamePerformAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformAudioPassThru]) { } return self; } @@ -57,68 +58,71 @@ NS_ASSUME_NONNULL_BEGIN - (void)setInitialPrompt:(nullable NSArray<SDLTTSChunk *> *)initialPrompt { - [parameters sdl_setObject:initialPrompt forName:SDLNameInitialPrompt]; + [parameters sdl_setObject:initialPrompt forName:SDLRPCParameterNameInitialPrompt]; } - (nullable NSArray<SDLTTSChunk *> *)initialPrompt { - return [parameters sdl_objectsForName:SDLNameInitialPrompt ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameInitialPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setAudioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 { - [parameters sdl_setObject:audioPassThruDisplayText1 forName:SDLNameAudioPassThruDisplayText1]; + [parameters sdl_setObject:audioPassThruDisplayText1 forName:SDLRPCParameterNameAudioPassThruDisplayText1]; } - (nullable NSString *)audioPassThruDisplayText1 { - return [parameters sdl_objectForName:SDLNameAudioPassThruDisplayText1]; + return [parameters sdl_objectForName:SDLRPCParameterNameAudioPassThruDisplayText1 ofClass:NSString.class error:nil]; } - (void)setAudioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 { - [parameters sdl_setObject:audioPassThruDisplayText2 forName:SDLNameAudioPassThruDisplayText2]; + [parameters sdl_setObject:audioPassThruDisplayText2 forName:SDLRPCParameterNameAudioPassThruDisplayText2]; } - (nullable NSString *)audioPassThruDisplayText2 { - return [parameters sdl_objectForName:SDLNameAudioPassThruDisplayText2]; + return [parameters sdl_objectForName:SDLRPCParameterNameAudioPassThruDisplayText2 ofClass:NSString.class error:nil]; } - (void)setSamplingRate:(SDLSamplingRate)samplingRate { - [parameters sdl_setObject:samplingRate forName:SDLNameSamplingRate]; + [parameters sdl_setObject:samplingRate forName:SDLRPCParameterNameSamplingRate]; } - (SDLSamplingRate)samplingRate { - NSObject *obj = [parameters sdl_objectForName:SDLNameSamplingRate]; - return (SDLSamplingRate )obj; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameSamplingRate error:&error]; } - (void)setMaxDuration:(NSNumber<SDLInt> *)maxDuration { - [parameters sdl_setObject:maxDuration forName:SDLNameMaxDuration]; + [parameters sdl_setObject:maxDuration forName:SDLRPCParameterNameMaxDuration]; } - (NSNumber<SDLInt> *)maxDuration { - return [parameters sdl_objectForName:SDLNameMaxDuration]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameMaxDuration ofClass:NSNumber.class error:&error]; } - (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { - [parameters sdl_setObject:bitsPerSample forName:SDLNameBitsPerSample]; + [parameters sdl_setObject:bitsPerSample forName:SDLRPCParameterNameBitsPerSample]; } - (SDLBitsPerSample)bitsPerSample { - return [parameters sdl_objectForName:SDLNameBitsPerSample]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameBitsPerSample error:&error]; } - (void)setAudioType:(SDLAudioType)audioType { - [parameters sdl_setObject:audioType forName:SDLNameAudioType]; + [parameters sdl_setObject:audioType forName:SDLRPCParameterNameAudioType]; } - (SDLAudioType)audioType { - return [parameters sdl_objectForName:SDLNameAudioType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameAudioType error:&error]; } - (void)setMuteAudio:(nullable NSNumber<SDLBool> *)muteAudio { - [parameters sdl_setObject:muteAudio forName:SDLNameMuteAudio]; + [parameters sdl_setObject:muteAudio forName:SDLRPCParameterNameMuteAudio]; } - (nullable NSNumber<SDLBool> *)muteAudio { - return [parameters sdl_objectForName:SDLNameMuteAudio]; + return [parameters sdl_objectForName:SDLRPCParameterNameMuteAudio ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLPerformAudioPassThruResponse.m b/SmartDeviceLink/SDLPerformAudioPassThruResponse.m index 31a5c5a57..66d2f72e1 100644 --- a/SmartDeviceLink/SDLPerformAudioPassThruResponse.m +++ b/SmartDeviceLink/SDLPerformAudioPassThruResponse.m @@ -5,14 +5,15 @@ #import "SDLPerformAudioPassThruResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformAudioPassThruResponse - (instancetype)init { - if (self = [super initWithName:SDLNamePerformAudioPassThru]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformAudioPassThru]) { } return self; } diff --git a/SmartDeviceLink/SDLPerformInteraction.m b/SmartDeviceLink/SDLPerformInteraction.m index c4faeda37..b80e1bed6 100644 --- a/SmartDeviceLink/SDLPerformInteraction.m +++ b/SmartDeviceLink/SDLPerformInteraction.m @@ -5,7 +5,8 @@ #import "SDLPerformInteraction.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" #import "SDLVrHelpItem.h" @@ -14,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformInteraction - (instancetype)init { - if (self = [super initWithName:SDLNamePerformInteraction]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformInteraction]) { } return self; } @@ -91,75 +92,78 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setInitialText:(NSString *)initialText { - [parameters sdl_setObject:initialText forName:SDLNameInitialText]; + [parameters sdl_setObject:initialText forName:SDLRPCParameterNameInitialText]; } - (NSString *)initialText { - return [parameters sdl_objectForName:SDLNameInitialText]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameInitialText ofClass:NSString.class error:&error]; } - (void)setInitialPrompt:(nullable NSArray<SDLTTSChunk *> *)initialPrompt { - [parameters sdl_setObject:initialPrompt forName:SDLNameInitialPrompt]; + [parameters sdl_setObject:initialPrompt forName:SDLRPCParameterNameInitialPrompt]; } - (nullable NSArray<SDLTTSChunk *> *)initialPrompt { - return [parameters sdl_objectsForName:SDLNameInitialPrompt ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameInitialPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setInteractionMode:(SDLInteractionMode)interactionMode { - [parameters sdl_setObject:interactionMode forName:SDLNameInteractionMode]; + [parameters sdl_setObject:interactionMode forName:SDLRPCParameterNameInteractionMode]; } - (SDLInteractionMode)interactionMode { - return [parameters sdl_objectForName:SDLNameInteractionMode]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameInteractionMode error:&error]; } - (void)setInteractionChoiceSetIDList:(NSArray<NSNumber<SDLInt> *> *)interactionChoiceSetIDList { - [parameters sdl_setObject:interactionChoiceSetIDList forName:SDLNameInteractionChoiceSetIdList]; + [parameters sdl_setObject:interactionChoiceSetIDList forName:SDLRPCParameterNameInteractionChoiceSetIdList]; } - (NSArray<NSNumber<SDLInt> *> *)interactionChoiceSetIDList { - return [parameters sdl_objectForName:SDLNameInteractionChoiceSetIdList]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameInteractionChoiceSetIdList ofClass:NSNumber.class error:&error]; } - (void)setHelpPrompt:(nullable NSArray<SDLTTSChunk *> *)helpPrompt { - [parameters sdl_setObject:helpPrompt forName:SDLNameHelpPrompt]; + [parameters sdl_setObject:helpPrompt forName:SDLRPCParameterNameHelpPrompt]; } - (nullable NSArray<SDLTTSChunk *> *)helpPrompt { - return [parameters sdl_objectsForName:SDLNameHelpPrompt ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameHelpPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setTimeoutPrompt:(nullable NSArray<SDLTTSChunk *> *)timeoutPrompt { - [parameters sdl_setObject:timeoutPrompt forName:SDLNameTimeoutPrompt]; + [parameters sdl_setObject:timeoutPrompt forName:SDLRPCParameterNameTimeoutPrompt]; } - (nullable NSArray<SDLTTSChunk *> *)timeoutPrompt { - return [parameters sdl_objectsForName:SDLNameTimeoutPrompt ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTimeoutPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setTimeout:(nullable NSNumber<SDLInt> *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber<SDLInt> *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } - (void)setVrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp { - [parameters sdl_setObject:vrHelp forName:SDLNameVRHelp]; + [parameters sdl_setObject:vrHelp forName:SDLRPCParameterNameVRHelp]; } - (nullable NSArray<SDLVRHelpItem *> *)vrHelp { - return [parameters sdl_objectsForName:SDLNameVRHelp ofClass:SDLVRHelpItem.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameVRHelp ofClass:SDLVRHelpItem.class error:nil]; } - (void)setInteractionLayout:(nullable SDLLayoutMode)interactionLayout { - [parameters sdl_setObject:interactionLayout forName:SDLNameInteractionLayout]; + [parameters sdl_setObject:interactionLayout forName:SDLRPCParameterNameInteractionLayout]; } - (nullable SDLLayoutMode)interactionLayout { - return [parameters sdl_objectForName:SDLNameInteractionLayout]; + return [parameters sdl_enumForName:SDLRPCParameterNameInteractionLayout error:nil]; } @end diff --git a/SmartDeviceLink/SDLPerformInteractionResponse.m b/SmartDeviceLink/SDLPerformInteractionResponse.m index 085c844d5..8da3c6bfe 100644 --- a/SmartDeviceLink/SDLPerformInteractionResponse.m +++ b/SmartDeviceLink/SDLPerformInteractionResponse.m @@ -5,40 +5,41 @@ #import "SDLPerformInteractionResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformInteractionResponse - (instancetype)init { - if (self = [super initWithName:SDLNamePerformInteraction]) { + if (self = [super initWithName:SDLRPCFunctionNamePerformInteraction]) { } return self; } - (void)setChoiceID:(nullable NSNumber<SDLInt> *)choiceID { - [parameters sdl_setObject:choiceID forName:SDLNameChoiceId]; + [parameters sdl_setObject:choiceID forName:SDLRPCParameterNameChoiceId]; } - (nullable NSNumber<SDLInt> *)choiceID { - return [parameters sdl_objectForName:SDLNameChoiceId]; + return [parameters sdl_objectForName:SDLRPCParameterNameChoiceId ofClass:NSNumber.class error:nil]; } - (void)setManualTextEntry:(nullable NSString *)manualTextEntry { - [parameters sdl_setObject:manualTextEntry forName:SDLNameManualTextEntry]; + [parameters sdl_setObject:manualTextEntry forName:SDLRPCParameterNameManualTextEntry]; } - (nullable NSString *)manualTextEntry { - return [parameters sdl_objectForName:SDLNameManualTextEntry]; + return [parameters sdl_objectForName:SDLRPCParameterNameManualTextEntry ofClass:NSString.class error:nil]; } - (void)setTriggerSource:(nullable SDLTriggerSource)triggerSource { - [parameters sdl_setObject:triggerSource forName:SDLNameTriggerSource]; + [parameters sdl_setObject:triggerSource forName:SDLRPCParameterNameTriggerSource]; } - (nullable SDLTriggerSource)triggerSource { - return [parameters sdl_objectForName:SDLNameTriggerSource]; + return [parameters sdl_enumForName:SDLRPCParameterNameTriggerSource error:nil]; } @end diff --git a/SmartDeviceLink/SDLPermissionConstants.h b/SmartDeviceLink/SDLPermissionConstants.h index 03b89867a..1ff832d48 100644 --- a/SmartDeviceLink/SDLPermissionConstants.h +++ b/SmartDeviceLink/SDLPermissionConstants.h @@ -57,6 +57,6 @@ typedef NS_ENUM(NSUInteger, SDLPermissionGroupStatus) { * @param change A dictionary of permission changes containing <key(String): RPC Name, object(BOOL): YES if the RPC is allowed, NO if it is not allowed> * @param status The change made to all of the RPCs in the changedDict. Allowed, if all RPCs are now allowed, Disallowed if all RPCs are now disallowed, or Mixed if some are allowed, and some are disallowed */ -typedef void (^SDLPermissionsChangedHandler)(NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *_Nonnull change, SDLPermissionGroupStatus status); +typedef void (^SDLPermissionsChangedHandler)(NSDictionary<SDLPermissionRPCName, NSNumber *> *_Nonnull change, SDLPermissionGroupStatus status); NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPermissionItem.m b/SmartDeviceLink/SDLPermissionItem.m index 01cdf127b..462f7aaf3 100644 --- a/SmartDeviceLink/SDLPermissionItem.m +++ b/SmartDeviceLink/SDLPermissionItem.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLHMIPermissions.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLParameterPermissions.h" NS_ASSUME_NONNULL_BEGIN @@ -13,27 +13,30 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLPermissionItem - (void)setRpcName:(NSString *)rpcName { - [store sdl_setObject:rpcName forName:SDLNameRPCName]; + [store sdl_setObject:rpcName forName:SDLRPCParameterNameRPCName]; } - (NSString *)rpcName { - return [store sdl_objectForName:SDLNameRPCName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameRPCName ofClass:NSString.class error:&error]; } - (void)setHmiPermissions:(SDLHMIPermissions *)hmiPermissions { - [store sdl_setObject:hmiPermissions forName:SDLNameHMIPermissions]; + [store sdl_setObject:hmiPermissions forName:SDLRPCParameterNameHMIPermissions]; } - (SDLHMIPermissions *)hmiPermissions { - return [store sdl_objectForName:SDLNameHMIPermissions ofClass:SDLHMIPermissions.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameHMIPermissions ofClass:SDLHMIPermissions.class error:&error]; } - (void)setParameterPermissions:(SDLParameterPermissions *)parameterPermissions { - [store sdl_setObject:parameterPermissions forName:SDLNameParameterPermissions]; + [store sdl_setObject:parameterPermissions forName:SDLRPCParameterNameParameterPermissions]; } - (SDLParameterPermissions *)parameterPermissions { - return [store sdl_objectForName:SDLNameParameterPermissions ofClass:SDLParameterPermissions.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameParameterPermissions ofClass:SDLParameterPermissions.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLPermissionManager.h b/SmartDeviceLink/SDLPermissionManager.h index 1fcd2322a..99ace1b2a 100644 --- a/SmartDeviceLink/SDLPermissionManager.h +++ b/SmartDeviceLink/SDLPermissionManager.h @@ -55,7 +55,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return A dictionary specifying if the passed in RPC names are currently allowed or not */ -- (NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *)statusOfRPCs:(NSArray<SDLPermissionRPCName> *)rpcNames; +- (NSDictionary<SDLPermissionRPCName, NSNumber *> *)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. diff --git a/SmartDeviceLink/SDLPermissionManager.m b/SmartDeviceLink/SDLPermissionManager.m index 08c37eebe..6904190e2 100644 --- a/SmartDeviceLink/SDLPermissionManager.m +++ b/SmartDeviceLink/SDLPermissionManager.m @@ -119,8 +119,8 @@ NS_ASSUME_NONNULL_BEGIN } } -- (NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *)statusOfRPCs:(NSArray<SDLPermissionRPCName> *)rpcNames { - NSMutableDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *permissionAllowedDict = [NSMutableDictionary dictionary]; +- (NSDictionary<SDLPermissionRPCName, NSNumber *> *)statusOfRPCs:(NSArray<SDLPermissionRPCName> *)rpcNames { + NSMutableDictionary<SDLPermissionRPCName, NSNumber *> *permissionAllowedDict = [NSMutableDictionary dictionary]; for (NSString *rpcName in rpcNames) { BOOL allowed = [self isRPCAllowed:rpcName]; @@ -149,7 +149,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)sdl_callFilterObserver:(SDLPermissionFilter *)filter { SDLPermissionGroupStatus permissionStatus = [self groupStatusOfRPCs:filter.rpcNames]; - NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *allowedDict = [self statusOfRPCs:filter.rpcNames]; + NSDictionary<SDLPermissionRPCName, NSNumber *> *allowedDict = [self statusOfRPCs:filter.rpcNames]; filter.handler(allowedDict, permissionStatus); } diff --git a/SmartDeviceLink/SDLPhoneCapability.m b/SmartDeviceLink/SDLPhoneCapability.m index 5089f8ad3..0d19a7957 100644 --- a/SmartDeviceLink/SDLPhoneCapability.m +++ b/SmartDeviceLink/SDLPhoneCapability.m @@ -9,7 +9,7 @@ #import "SDLPhoneCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -27,11 +27,11 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setDialNumberEnabled:(nullable NSNumber *)dialNumberEnabled { - [store sdl_setObject:dialNumberEnabled forName:SDLNameDialNumberEnabled]; + [store sdl_setObject:dialNumberEnabled forName:SDLRPCParameterNameDialNumberEnabled]; } - (nullable NSNumber *)dialNumberEnabled { - return [store sdl_objectForName:SDLNameDialNumberEnabled]; + return [store sdl_objectForName:SDLRPCParameterNameDialNumberEnabled ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLPreloadChoicesOperation.m b/SmartDeviceLink/SDLPreloadChoicesOperation.m index 725c6bae1..8fe9718cb 100644 --- a/SmartDeviceLink/SDLPreloadChoicesOperation.m +++ b/SmartDeviceLink/SDLPreloadChoicesOperation.m @@ -81,11 +81,13 @@ NS_ASSUME_NONNULL_BEGIN NSMutableArray<SDLArtwork *> *artworksToUpload = [NSMutableArray arrayWithCapacity:self.cellsToUpload.count]; for (SDLChoiceCell *cell in self.cellsToUpload) { - if ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceImage]) { - cell.artwork != nil ? [artworksToUpload addObject:cell.artwork] : nil; + if ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceImage] + && [self sdl_artworkNeedsUpload:cell.artwork]) { + [artworksToUpload addObject:cell.artwork]; } - if ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage]) { - cell.secondaryArtwork != nil ? [artworksToUpload addObject:cell.secondaryArtwork] : nil; + if ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage] + && [self sdl_artworkNeedsUpload:cell.secondaryArtwork]) { + [artworksToUpload addObject:cell.secondaryArtwork]; } } @@ -107,14 +109,27 @@ NS_ASSUME_NONNULL_BEGIN }]; } +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); +} + - (void)sdl_preloadCells { _currentState = SDLPreloadChoicesOperationStatePreloadingChoices; NSMutableArray<SDLCreateInteractionChoiceSet *> *choiceRPCs = [NSMutableArray arrayWithCapacity:self.cellsToUpload.count]; for (SDLChoiceCell *cell in self.cellsToUpload) { - [choiceRPCs addObject:[self sdl_choiceFromCell:cell]]; + SDLCreateInteractionChoiceSet *csCell = [self sdl_choiceFromCell:cell]; + if(csCell != nil) { + [choiceRPCs addObject:csCell]; + } } - + if (choiceRPCs.count == 0) { + SDLLogE(@"All choice cells to send are nil, so the choice set will not be shown"); + self.internalError = [NSError sdl_choiceSetManager_failedToCreateMenuItems]; + [self finishOperation]; + return; + } + __weak typeof(self) weakSelf = self; __block NSMutableDictionary<SDLRPCRequest *, NSError *> *errors = [NSMutableDictionary dictionary]; [self.connectionManager sendRequests:[choiceRPCs copy] progressHandler:^(__kindof SDLRPCRequest * _Nonnull request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error, float percentComplete) { @@ -123,7 +138,7 @@ NS_ASSUME_NONNULL_BEGIN } } completionHandler:^(BOOL success) { if (!success) { - SDLLogW(@"Error preloading choice cells: %@", errors); + SDLLogE(@"Error preloading choice cells: %@", errors); weakSelf.internalError = [NSError sdl_choiceSetManager_choiceUploadFailed:errors]; } @@ -135,20 +150,25 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Assembling Choice Data -- (SDLCreateInteractionChoiceSet *)sdl_choiceFromCell:(SDLChoiceCell *)cell { +- (nullable SDLCreateInteractionChoiceSet *)sdl_choiceFromCell:(SDLChoiceCell *)cell { NSArray<NSString *> *vrCommands = nil; if (cell.voiceCommands == nil) { vrCommands = self.isVROptional ? nil : @[[NSString stringWithFormat:@"%hu", cell.choiceId]]; } else { vrCommands = cell.voiceCommands; } - + NSString *menuName = [self.displayCapabilities hasTextFieldOfName:SDLTextFieldNameMenuName] ? cell.text : nil; + if(!menuName) { + SDLLogE(@"Could not convert SDLChoiceCell to SDLCreateInteractionChoiceSet. It will not be shown. Cell: %@", cell); + return nil; + } + NSString *secondaryText = [self.displayCapabilities hasTextFieldOfName:SDLTextFieldNameSecondaryText] ? cell.secondaryText : nil; NSString *tertiaryText = [self.displayCapabilities hasTextFieldOfName:SDLTextFieldNameTertiaryText] ? cell.tertiaryText : nil; - SDLImage *image = ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceImage] && cell.artwork != nil) ? [[SDLImage alloc] initWithName:cell.artwork.name isTemplate:cell.artwork.isTemplate] : nil; - SDLImage *secondaryImage = ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage] && cell.secondaryArtwork != nil) ? [[SDLImage alloc] initWithName:cell.secondaryArtwork.name isTemplate:cell.secondaryArtwork.isTemplate] : nil; + SDLImage *image = ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceImage] && cell.artwork != nil) ? cell.artwork.imageRPC : nil; + SDLImage *secondaryImage = ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameChoiceSecondaryImage] && cell.secondaryArtwork != nil) ? cell.secondaryArtwork.imageRPC : nil; SDLChoice *choice = [[SDLChoice alloc] initWithId:cell.choiceId menuName:(NSString *_Nonnull)menuName vrCommands:(NSArray<NSString *> * _Nonnull)vrCommands image:image secondaryText:secondaryText secondaryImage:secondaryImage tertiaryText:tertiaryText]; diff --git a/SmartDeviceLink/SDLPresetBankCapabilities.m b/SmartDeviceLink/SDLPresetBankCapabilities.m index 2fe43d7a7..ac11666ed 100644 --- a/SmartDeviceLink/SDLPresetBankCapabilities.m +++ b/SmartDeviceLink/SDLPresetBankCapabilities.m @@ -5,18 +5,19 @@ #import "SDLPresetBankCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPresetBankCapabilities - (void)setOnScreenPresetsAvailable:(NSNumber<SDLBool> *)onScreenPresetsAvailable { - [store sdl_setObject:onScreenPresetsAvailable forName:SDLNameOnScreenPresetsAvailable]; + [store sdl_setObject:onScreenPresetsAvailable forName:SDLRPCParameterNameOnScreenPresetsAvailable]; } - (NSNumber<SDLBool> *)onScreenPresetsAvailable { - return [store sdl_objectForName:SDLNameOnScreenPresetsAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameOnScreenPresetsAvailable ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLProtocol.h b/SmartDeviceLink/SDLProtocol.h index e4d0e44fc..82777f167 100644 --- a/SmartDeviceLink/SDLProtocol.h +++ b/SmartDeviceLink/SDLProtocol.h @@ -56,6 +56,11 @@ extern NSString *const SDLProtocolSecurityErrorDomain; */ @property (nonatomic, copy) NSString *appId; +/** + * The auth token, if any, returned with the `StartServiceACK` for the RPC service from the module. + */ +@property (strong, nonatomic, readonly, nullable) NSString *authToken; + #pragma mark - Sending /** diff --git a/SmartDeviceLink/SDLProtocol.m b/SmartDeviceLink/SDLProtocol.m index ab6eb647e..2e95ccf3c 100644 --- a/SmartDeviceLink/SDLProtocol.m +++ b/SmartDeviceLink/SDLProtocol.m @@ -25,6 +25,7 @@ #import "SDLRPCResponse.h" #import "SDLSecurityType.h" #import "SDLTimer.h" +#import "SDLVersion.h" #import "SDLV2ProtocolHeader.h" NSString *const SDLProtocolSecurityErrorDomain = @"com.sdl.protocol.security"; @@ -48,6 +49,9 @@ NS_ASSUME_NONNULL_BEGIN @property (strong, nonatomic) NSMutableDictionary<SDLServiceTypeBox *, SDLProtocolHeader *> *serviceHeaders; @property (assign, nonatomic) int32_t hashId; +// Readonly public properties +@property (strong, nonatomic, readwrite, nullable) NSString *authToken; + @end @@ -155,7 +159,7 @@ NS_ASSUME_NONNULL_BEGIN } - (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)serviceType encrypted:(BOOL)encryption payload:(nullable NSData *)payload { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; NSData *servicePayload = payload; switch (serviceType) { @@ -215,7 +219,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - End Service - (void)endServiceWithType:(SDLServiceType)serviceType { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.frameType = SDLFrameTypeControl; header.serviceType = serviceType; header.frameData = SDLFrameInfoEndService; @@ -224,7 +228,7 @@ NS_ASSUME_NONNULL_BEGIN // Assemble the payload, it's a full control frame if we're on 5.0+, it's just the hash id if we are not NSData *payload = nil; if (self.hashId != SDLControlFrameInt32NotFound) { - if([SDLGlobals sharedGlobals].majorProtocolVersion > 4) { + if([SDLGlobals sharedGlobals].protocolVersion.major > 4) { SDLControlFramePayloadEndService *endServicePayload = [[SDLControlFramePayloadEndService alloc] initWithHashId:self.hashId]; payload = endServicePayload.data; } else { @@ -240,12 +244,12 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Register Secondary Transport - (void)registerSecondaryTransport { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.frameType = SDLFrameTypeControl; header.serviceType = SDLServiceTypeControl; header.frameData = SDLFrameInfoRegisterSecondaryTransport; header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeControl]; - if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 2) { + if ([SDLGlobals sharedGlobals].protocolVersion.major >= 2) { [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; } @@ -262,7 +266,7 @@ NS_ASSUME_NONNULL_BEGIN - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError *__autoreleasing *)error { NSParameterAssert(message != nil); - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[message serializeAsDictionary:(Byte)[SDLGlobals sharedGlobals].majorProtocolVersion] options:kNilOptions error:error]; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[message serializeAsDictionary:(Byte)[SDLGlobals sharedGlobals].protocolVersion.major] options:kNilOptions error:error]; if (error != nil) { SDLLogW(@"Error encoding JSON data: %@", *error); @@ -273,7 +277,7 @@ NS_ASSUME_NONNULL_BEGIN // Build the message payload. Include the binary header if necessary // VERSION DEPENDENT CODE - switch ([SDLGlobals sharedGlobals].majorProtocolVersion) { + switch ([SDLGlobals sharedGlobals].protocolVersion.major) { case 1: { // No binary header in version 1 messagePayload = jsonData; @@ -311,12 +315,12 @@ NS_ASSUME_NONNULL_BEGIN } } break; default: { - NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals sharedGlobals].majorProtocolVersion), message); + NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals sharedGlobals].protocolVersion.major), message); } break; } // Build the protocol level header & message - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.encrypted = encryption; header.frameType = SDLFrameTypeSingle; header.serviceType = (message.bulkData.length <= 0) ? SDLServiceTypeRPC : SDLServiceTypeBulkData; @@ -324,7 +328,7 @@ NS_ASSUME_NONNULL_BEGIN header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; // V2+ messages need to have message ID property set. - if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 2) { + if ([SDLGlobals sharedGlobals].protocolVersion.major >= 2) { [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; } @@ -367,7 +371,7 @@ NS_ASSUME_NONNULL_BEGIN } - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encryption:(BOOL)encryption { - SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.encrypted = encryption; header.frameType = SDLFrameTypeSingle; header.serviceType = service; @@ -481,7 +485,11 @@ NS_ASSUME_NONNULL_BEGIN if (startServiceACKPayload.hashId != SDLControlFrameInt32NotFound) { self.hashId = startServiceACKPayload.hashId; } - [SDLGlobals sharedGlobals].maxHeadUnitVersion = (startServiceACKPayload.protocolVersion != nil) ? startServiceACKPayload.protocolVersion : [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; + + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = (startServiceACKPayload.protocolVersion != nil) ? [SDLVersion versionWithString:startServiceACKPayload.protocolVersion] : [SDLVersion versionWithMajor:startServiceACK.header.version minor:0 patch:0]; + + self.authToken = [SDLGlobals.sharedGlobals.maxHeadUnitProtocolVersion isGreaterThanOrEqualToVersion:[[SDLVersion alloc] initWithMajor:5 minor:2 patch:0]] ? startServiceACKPayload.authToken : nil; + // TODO: Hash id? } break; default: @@ -491,7 +499,7 @@ NS_ASSUME_NONNULL_BEGIN // V4 and below packet switch (startServiceACK.header.serviceType) { case SDLServiceTypeRPC: { - [SDLGlobals sharedGlobals].maxHeadUnitVersion = [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = [SDLVersion versionWithMajor:startServiceACK.header.version minor:0 patch:0]; } break; default: break; @@ -566,7 +574,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)handleHeartbeatForSession:(Byte)session { // Respond with a heartbeat ACK - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:(UInt8)[SDLGlobals sharedGlobals].protocolVersion.major]; header.frameType = SDLFrameTypeControl; header.serviceType = SDLServiceTypeControl; header.frameData = SDLFrameInfoHeartbeatACK; diff --git a/SmartDeviceLink/SDLProtocolMessage.m b/SmartDeviceLink/SDLProtocolMessage.m index 66680e40e..81fc23e82 100644 --- a/SmartDeviceLink/SDLProtocolMessage.m +++ b/SmartDeviceLink/SDLProtocolMessage.m @@ -6,7 +6,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLFunctionID.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLProtocolHeader.h" #import "SDLRPCPayload.h" #import "SDLV1ProtocolMessage.h" @@ -60,7 +60,7 @@ NS_ASSUME_NONNULL_BEGIN if (self.header.version >= 2) { SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload]; if (rpcPayload) { - SDLName functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; + SDLRPCParameterName functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; UInt8 rpcType = rpcPayload.rpcType; NSArray<NSString *> *rpcTypeNames = @[@"Request", @"Response", @"Notification"]; diff --git a/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink/SDLProxy.m index c484a3f29..27454817e 100644 --- a/SmartDeviceLink/SDLProxy.m +++ b/SmartDeviceLink/SDLProxy.m @@ -39,6 +39,10 @@ #import "SDLTransportType.h" #import "SDLUnsubscribeButton.h" #import "SDLVehicleType.h" +#import "SDLVersion.h" + +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @@ -47,7 +51,7 @@ typedef NSString SDLVehicleMake; typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error); typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error); -NSString *const SDLProxyVersion = @"6.1.2"; +NSString *const SDLProxyVersion = @"6.2.0"; const float StartSessionTime = 10.0; const float NotifyProxyClosedDelay = (float)0.1; const int PoliciesCorrelationId = 65535; @@ -296,7 +300,7 @@ static float DefaultConnectionTimeout = 45.0; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - (BOOL)sdl_adaptButtonSubscribeMessage:(SDLSubscribeButton *)message { - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { SDLSubscribeButton *playPauseMessage = [message copy]; playPauseMessage.buttonName = SDLButtonNamePlayPause; @@ -333,7 +337,7 @@ static float DefaultConnectionTimeout = 45.0; } - (BOOL)sdl_adaptButtonUnsubscribeMessage:(SDLUnsubscribeButton *)message { - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { if ([message.buttonName isEqualToEnum:SDLButtonNameOk]) { SDLUnsubscribeButton *playPauseMessage = [message copy]; playPauseMessage.buttonName = SDLButtonNamePlayPause; @@ -384,7 +388,7 @@ static float DefaultConnectionTimeout = 45.0; NSString *messageType = [message messageType]; // If it's a response, append response - if ([messageType isEqualToString:SDLNameResponse]) { + if ([messageType isEqualToString:SDLRPCParameterNameResponse]) { BOOL notGenericResponseMessage = ![functionName isEqualToString:@"GenericResponse"]; if (notGenericResponseMessage) { functionName = [NSString stringWithFormat:@"%@Response", functionName]; @@ -395,10 +399,10 @@ static float DefaultConnectionTimeout = 45.0; NSString *functionClassName = [NSString stringWithFormat:@"SDL%@", functionName]; SDLRPCMessage *newMessage = [[NSClassFromString(functionClassName) alloc] initWithDictionary:[dict mutableCopy]]; + // Log the RPC message + SDLLogV(@"Message received: %@", newMessage); + // Intercept and handle several messages ourselves - if ([functionName isEqualToString:SDLNameOnAppInterfaceUnregistered] || [functionName isEqualToString:SDLNameUnregisterAppInterface]) { - [self handleRPCUnregistered:dict]; - } if ([functionName isEqualToString:@"RegisterAppInterfaceResponse"]) { [self handleRegisterAppInterfaceResponse:(SDLRPCResponse *)newMessage]; @@ -419,7 +423,7 @@ static float DefaultConnectionTimeout = 45.0; if ([functionName isEqualToString:@"OnButtonPress"]) { SDLOnButtonPress *message = (SDLOnButtonPress *)newMessage; - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { BOOL handledRPC = [self sdl_handleOnButtonPressPostV5:message]; if (handledRPC) { return; } } else { // RPC version of 4 or less (connected to an old head unit) @@ -430,7 +434,7 @@ static float DefaultConnectionTimeout = 45.0; if ([functionName isEqualToString:@"OnButtonEvent"]) { SDLOnButtonEvent *message = (SDLOnButtonEvent *)newMessage; - if ([SDLGlobals sharedGlobals].rpcVersion.majorVersion.intValue >= 5) { + if ([SDLGlobals sharedGlobals].rpcVersion.major >= 5) { BOOL handledRPC = [self sdl_handleOnButtonEventPostV5:message]; if (handledRPC) { return; } } else { @@ -440,6 +444,11 @@ static float DefaultConnectionTimeout = 45.0; } [self sdl_invokeDelegateMethodsWithFunction:functionName message:newMessage]; + + //Intercepting SDLRPCFunctionNameOnAppInterfaceUnregistered must happen after it is broadcasted as a notification above. This will prevent reconnection attempts in the lifecycle manager when the AppInterfaceUnregisteredReason should prevent reconnections. + if ([functionName isEqualToString:SDLRPCFunctionNameOnAppInterfaceUnregistered] || [functionName isEqualToString:SDLRPCFunctionNameUnregisterAppInterface]) { + [self handleRPCUnregistered:dict]; + } // When an OnHMIStatus notification comes in, after passing it on (above), generate an "OnLockScreenNotification" if ([functionName isEqualToString:@"OnHMIStatus"]) { @@ -475,7 +484,7 @@ static float DefaultConnectionTimeout = 45.0; self.protocol.securityManager.appId = self.appId; } - if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 4) { + if ([SDLGlobals sharedGlobals].protocolVersion.major >= 4) { [self sendMobileHMIState]; // Send SDL updates to application state [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendMobileHMIState) name:UIApplicationDidBecomeActiveNotification object:nil]; @@ -506,7 +515,9 @@ static float DefaultConnectionTimeout = 45.0; if ([requestType isEqualToEnum:SDLRequestTypeProprietary]) { [self handleSystemRequestProprietary:systemRequest]; } else if ([requestType isEqualToEnum:SDLRequestTypeLockScreenIconURL]) { - [self handleSystemRequestLockScreenIconURL:systemRequest]; + [self sdl_handleSystemRequestLockScreenIconURL:systemRequest]; + } else if ([requestType isEqualToEnum:SDLRequestTypeIconURL]) { + [self sdl_handleSystemRequestIconURL:systemRequest]; } else if ([requestType isEqualToEnum:SDLRequestTypeHTTP]) { [self sdl_handleSystemRequestHTTP:systemRequest]; } else if ([requestType isEqualToEnum:SDLRequestTypeLaunchApp]) { @@ -604,7 +615,7 @@ static float DefaultConnectionTimeout = 45.0; #pragma mark Handle Post-Invoke of Delegate Methods - (void)handleAfterHMIStatus:(SDLRPCMessage *)message { - SDLHMILevel hmiLevel = (SDLHMILevel)[message getParameters:SDLNameHMILevel]; + SDLHMILevel hmiLevel = (SDLHMILevel)[message getParameters:SDLRPCParameterNameHMILevel]; _lsm.hmiLevel = hmiLevel; SEL callbackSelector = NSSelectorFromString(@"onOnLockScreenNotification:"); @@ -612,7 +623,7 @@ static float DefaultConnectionTimeout = 45.0; } - (void)handleAfterDriverDistraction:(SDLRPCMessage *)message { - NSString *stateString = (NSString *)[message getParameters:SDLNameState]; + NSString *stateString = (NSString *)[message getParameters:SDLRPCParameterNameState]; BOOL state = [stateString isEqualToString:@"DD_ON"] ? YES : NO; _lsm.driverDistracted = state; @@ -693,7 +704,7 @@ static float DefaultConnectionTimeout = 45.0; }]; } -- (void)handleSystemRequestLockScreenIconURL:(SDLOnSystemRequest *)request { +- (void)sdl_handleSystemRequestLockScreenIconURL:(SDLOnSystemRequest *)request { __weak typeof(self) weakSelf = self; [self sdl_sendDataTaskWithURL:[NSURL URLWithString:request.url] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { @@ -708,6 +719,26 @@ static float DefaultConnectionTimeout = 45.0; }]; } +- (void)sdl_handleSystemRequestIconURL:(SDLOnSystemRequest *)request { + __weak typeof(self) weakSelf = self; + [self sdl_sendDataTaskWithURL:[NSURL URLWithString:request.url] + completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + if (error != nil) { + SDLLogW(@"OnSystemRequest (icon url) HTTP download task failed: %@", error.localizedDescription); + return; + } else if (data.length == 0) { + SDLLogW(@"OnSystemRequest (icon url) HTTP download task failed to get the cloud app icon image data"); + return; + } + + SDLSystemRequest *iconURLSystemRequest = [[SDLSystemRequest alloc] initWithType:SDLRequestTypeIconURL fileName:request.url]; + iconURLSystemRequest.bulkData = data; + + [strongSelf sendRPC:iconURLSystemRequest]; + }]; +} + - (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { if (request.bulkData.length == 0) { // TODO: not sure how we want to handle http requests that don't have bulk data (maybe as GET?) diff --git a/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink/SDLProxyListener.h index d9f0c25ed..7625d46a2 100644 --- a/SmartDeviceLink/SDLProxyListener.h +++ b/SmartDeviceLink/SDLProxyListener.h @@ -3,29 +3,57 @@ #import <UIKit/UIKit.h> +@class SDLAddCommand; @class SDLAddCommandResponse; +@class SDLAddSubMenu; @class SDLAddSubMenuResponse; +@class SDLAlert; +@class SDLAlertManeuver; @class SDLAlertManeuverResponse; @class SDLAlertResponse; +@class SDLButtonPress; @class SDLButtonPressResponse; +@class SDLChangeRegistration; @class SDLChangeRegistrationResponse; +@class SDLCreateInteractionChoiceSet; @class SDLCreateInteractionChoiceSetResponse; +@class SDLDeleteCommand; @class SDLDeleteCommandResponse; +@class SDLDeleteFile; @class SDLDeleteFileResponse; +@class SDLDeleteInteractionChoiceSet; @class SDLDeleteInteractionChoiceSetResponse; +@class SDLDeleteSubMenu; @class SDLDeleteSubMenuResponse; +@class SDLDiagnosticMessage; @class SDLDiagnosticMessageResponse; +@class SDLDialNumber; @class SDLDialNumberResponse; +@class SDLEncodedSyncPData; @class SDLEncodedSyncPDataResponse; +@class SDLEndAudioPassThru; @class SDLEndAudioPassThruResponse; @class SDLGenericResponse; +@class SDLGetCloudAppProperties; +@class SDLGetCloudAppPropertiesResponse; +@class SDLGetAppServiceData; +@class SDLGetAppServiceDataResponse; +@class SDLGetDTCs; @class SDLGetDTCsResponse; +@class SDLGetFile; +@class SDLGetFileResponse; +@class SDLGetInteriorVehicleData; @class SDLGetInteriorVehicleDataResponse; +@class SDLGetSystemCapability; @class SDLGetSystemCapabilityResponse; +@class SDLGetVehicleData; @class SDLGetVehicleDataResponse; -@class SDLGetWaypointsResponse; +@class SDLGetWayPoints; +@class SDLGetWayPointsResponse; +@class SDLListFiles; @class SDLListFilesResponse; @class SDLOnAppInterfaceUnregistered; +@class SDLOnAppServiceData; @class SDLOnAudioPassThru; @class SDLOnButtonEvent; @class SDLOnButtonPress; @@ -41,39 +69,73 @@ @class SDLOnPermissionsChange; @class SDLOnRCStatus; @class SDLOnSyncPData; +@class SDLOnSystemCapabilityUpdated; @class SDLOnSystemRequest; -@class SDLOnVehicleData; @class SDLOnTBTClientState; @class SDLOnTouchEvent; @class SDLOnVehicleData; @class SDLOnWayPointChange; +@class SDLPerformAppServiceInteraction; +@class SDLPerformAppServiceInteractionResponse; +@class SDLPerformAudioPassThru; @class SDLPerformAudioPassThruResponse; +@class SDLPerformInteraction; @class SDLPerformInteractionResponse; +@class SDLPublishAppService; +@class SDLPublishAppServiceResponse; +@class SDLPutFile; @class SDLPutFileResponse; +@class SDLReadDID; @class SDLReadDIDResponse; +@class SDLRegisterAppInterface; @class SDLRegisterAppInterfaceResponse; +@class SDLResetGlobalProperties; @class SDLResetGlobalPropertiesResponse; +@class SDLScrollableMessage; @class SDLScrollableMessageResponse; +@class SDLSendHapticData; @class SDLSendHapticDataResponse; +@class SDLSendLocation; @class SDLSendLocationResponse; +@class SDLSetAppIcon; @class SDLSetAppIconResponse; +@class SDLSetCloudAppProperties; +@class SDLSetCloudAppPropertiesResponse; +@class SDLSetDisplayLayout; @class SDLSetDisplayLayoutResponse; +@class SDLSetGlobalProperties; @class SDLSetGlobalPropertiesResponse; +@class SDLSetInteriorVehicleData; @class SDLSetInteriorVehicleDataResponse; +@class SDLSetMediaClockTimer; @class SDLSetMediaClockTimerResponse; +@class SDLShow; +@class SDLShowConstantTBT; @class SDLShowConstantTBTResponse; @class SDLShowResponse; +@class SDLSlider; @class SDLSliderResponse; +@class SDLSpeak; @class SDLSpeakResponse; +@class SDLSubscribeButton; @class SDLSubscribeButtonResponse; +@class SDLSubscribeVehicleData; @class SDLSubscribeVehicleDataResponse; +@class SDLSubscribeWayPoints; @class SDLSubscribeWayPointsResponse; +@class SDLSyncPData; @class SDLSyncPDataResponse; -@class SDLUpdateTurnListResponse; +@class SDLSystemRequest; +@class SDLUnregisterAppInterface; @class SDLUnregisterAppInterfaceResponse; +@class SDLUnsubscribeButton; @class SDLUnsubscribeButtonResponse; +@class SDLUnsubscribeVehicleData; @class SDLUnsubscribeVehicleDataResponse; +@class SDLUnsubscribeWayPoints; @class SDLUnsubscribeWayPointsResponse; +@class SDLUpdateTurnList; +@class SDLUpdateTurnListResponse; NS_ASSUME_NONNULL_BEGIN @@ -105,6 +167,8 @@ NS_ASSUME_NONNULL_BEGIN @optional +#pragma mark - Responses + /** * Called when an Add Command Response is received from Core * @@ -211,18 +275,25 @@ NS_ASSUME_NONNULL_BEGIN - (void)onEndAudioPassThruResponse:(SDLEndAudioPassThruResponse *)response; /** - * Called when an Error message is received from Core + * Called when a Generic Response is received from Core * - * @param e An exception message + * @param response A SDLGenericResponse object */ -- (void)onError:(NSException *)e; +- (void)onGenericResponse:(SDLGenericResponse *)response; /** - * Called when a Generic Response is received from Core + * Called when a Get App Service Data Response is received from Core * - * @param response A SDLGenericResponse object + * @param response A SDLGetAppServiceDataResponse object */ -- (void)onGenericResponse:(SDLGenericResponse *)response; +- (void)onGetAppServiceDataResponse:(SDLGetAppServiceDataResponse *)response; + +/** + * Called when a GetCloudAppPropertiesResponse Response is received from Core + * + * @param response A SDLGetCloudAppPropertiesResponse object + */ +- (void)onGetCloudAppPropertiesResponse:(SDLGetCloudAppPropertiesResponse *)response; /** * Called when a Get DTCs Response is received from Core @@ -232,6 +303,13 @@ NS_ASSUME_NONNULL_BEGIN - (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response; /** + * Called when a Get File Response is received from Core + * + * @param response A SDLGetFileResponse object + */ +- (void)onGetFileResponse:(SDLGetFileResponse *)response; + +/** * Called when a Get Interior Vehicle Data Response is received from Core * * @param response A SDLGetInteriorVehicleDataResponse object @@ -257,7 +335,7 @@ NS_ASSUME_NONNULL_BEGIN * * @param response A SDLGetWaypointsResponse object */ -- (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response; +- (void)onGetWayPointsResponse:(SDLGetWayPointsResponse *)response; /** * Called when a List Files Response is received from Core @@ -274,137 +352,11 @@ NS_ASSUME_NONNULL_BEGIN - (void)onReceivedLockScreenIcon:(UIImage *)icon; /** - * Called when an On App Interface Unregistered notification is received from Core + * Called when a Perform App Service Interaction Response is received from Core * - * @param notification A SDLOnAppInterfaceUnregistered object + * @param response A SDLPerformAppServiceInteractionResponse object */ -- (void)onOnAppInterfaceUnregistered:(SDLOnAppInterfaceUnregistered *)notification; - -/** - * Called when an On Audio Pass Thru notification is received from Core - * - * @param notification A SDLOnAudioPassThru object - */ -- (void)onOnAudioPassThru:(SDLOnAudioPassThru *)notification; - -/** - * Called when an On Button Event notification is received from Core - * - * @param notification A SDLOnButtonEvent object - */ -- (void)onOnButtonEvent:(SDLOnButtonEvent *)notification; - -/** - * Called when an On Button Press notification is received from Core - * - * @param notification A SDLOnButtonPress object - */ -- (void)onOnButtonPress:(SDLOnButtonPress *)notification; - -/** - * Called when an On Command notification is received from Core - * - * @param notification A SDLOnCommand object - */ -- (void)onOnCommand:(SDLOnCommand *)notification; - -/** - * Called when an On Encoded Sync P Data notification is received from Core - * - * @param notification A SDLOnEncodedSyncPData object - */ -- (void)onOnEncodedSyncPData:(SDLOnEncodedSyncPData *)notification; - -/** - * Called when an On Hash Change notification is received from Core - * - * @param notification A SDLOnHashChange object - */ -- (void)onOnHashChange:(SDLOnHashChange *)notification; - -/** - * Called when an On Interior Vehicle Data notification is received from Core - * - * @param notification A SDLOnInteriorVehicleData object - */ -- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification; - -/** - * Called when an On Keyboard Input notification is received from Core - * - * @param notification A SDLOnKeyboardInput object - */ -- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification; - -/** - * Called when an On Language Change notification is received from Core - * - * @param notification A SDLOnLanguageChange object - */ -- (void)onOnLanguageChange:(SDLOnLanguageChange *)notification; - -/** - * Called when an On Lock Screen notification is received from Core - * - * @param notification A SDLOnLockScreenStatus object - */ -- (void)onOnLockScreenNotification:(SDLOnLockScreenStatus *)notification; - -/** - * Called when an On Permissions Change notification is received from Core - * - * @param notification A SDLOnPermissionsChange object - */ -- (void)onOnPermissionsChange:(SDLOnPermissionsChange *)notification; - -/** - * Called when an On RC Change notification is received from Core - * - * @param notification A SDLOnRCStatus object - */ -- (void)onOnRCStatus:(SDLOnRCStatus *)notification; - -/** - * Called when an On Sync P notification is received from Core - * - * @param notification A SDLOnSyncPData object - */ -- (void)onOnSyncPData:(SDLOnSyncPData *)notification; - -/** - * Called when an On System Request notification is received from Core - * - * @param notification A SDLOnSystemRequest object - */ -- (void)onOnSystemRequest:(SDLOnSystemRequest *)notification; - -/** - * Called when an On TBT Client State notification is received from Core - * - * @param notification A SDLOnTBTClientState object - */ -- (void)onOnTBTClientState:(SDLOnTBTClientState *)notification; - -/** - * Called when an On Touch Event notification is received from Core - * - * @param notification A SDLOnTouchEvent object - */ -- (void)onOnTouchEvent:(SDLOnTouchEvent *)notification; - -/** - * Called when an On Vehicle Data notification is received from Core - * - * @param notification A SDLOnVehicleData object - */ -- (void)onOnVehicleData:(SDLOnVehicleData *)notification; - -/** - * Called when an On Way Point Change notification is received from Core - * - * @param notification A SDLOnWayPointChange object - */ -- (void)onOnWayPointChange:(SDLOnWayPointChange *)notification; +- (void)onPerformAppServiceInteractionResponse:(SDLPerformAppServiceInteractionResponse *)response; /** * Called when a Perform Audio Pass Thru Response is received from Core @@ -421,6 +373,13 @@ NS_ASSUME_NONNULL_BEGIN - (void)onPerformInteractionResponse:(SDLPerformInteractionResponse *)response; /** + * Called when a Publish App Service Response is received from Core + * + * @param response A SDLPublishAppService object + */ +- (void)onPublishAppServiceResponse:(SDLPublishAppServiceResponse *)response; + +/** * Called when a Put File Response is received from Core * * @param response A SDLPutFileResponse object @@ -477,6 +436,13 @@ NS_ASSUME_NONNULL_BEGIN - (void)onSetAppIconResponse:(SDLSetAppIconResponse *)response; /** + * Called when a SetCloudAppPropertiesResponse is received from Core + * + * @param response A SDLSetCloudAppPropertiesResponse object + */ +- (void)onSetCloudAppPropertiesResponse:(SDLSetCloudAppPropertiesResponse *)response; + +/** * Called when a Set Display Layout Response is received from Core * * @param response A SDLSetDisplayLayoutResponse object @@ -595,6 +561,552 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWayPointsResponse *)response; +#pragma mark - Requests + +/** + * Called when a `AddCommand` request is received from Core + * + * @param request A SDLAddCommand object + */ +- (void)onAddCommand:(SDLAddCommand *)request; + +/** + * Called when a `AddSubMenu` request is received from Core + * + * @param request A SDLAddSubMenu object + */ +- (void)onAddSubMenu:(SDLAddSubMenu *)request; + +/** + * Called when a `Alert` request is received from Core + * + * @param request A SDLAlert object + */ +- (void)onAlert:(SDLAlert *)request; + +/** + * Called when a `AlertManeuver` request is received from Core + * + * @param request A SDLAlertManeuver object + */ +- (void)onAlertManeuver:(SDLAlertManeuver *)request; + +/** + * Called when a `ButtonPress` request is received from Core + * + * @param request A SDLButtonPress object + */ +- (void)onButtonPress:(SDLButtonPress *)request; + +/** + * Called when a `ChangeRegistration` request is received from Core + * + * @param request A SDLChangeRegistration object + */ +- (void)onChangeRegistration:(SDLChangeRegistration *)request; + +/** + * Called when a `CreateInteractionChoiceSet` request is received from Core + * + * @param request A SDLCreateInteractionChoiceSet object + */ +- (void)onCreateInteractionChoiceSet:(SDLCreateInteractionChoiceSet *)request; + +/** + * Called when a `DeleteCommand` request is received from Core + * + * @param request A SDLDeleteCommand object + */ +- (void)onDeleteCommand:(SDLDeleteCommand *)request; + +/** + * Called when a `DeleteFile` request is received from Core + * + * @param request A SDLDeleteFile object + */ +- (void)onDeleteFile:(SDLDeleteFile *)request; + +/** + * Called when a `DeleteInteractionChoiceSet` request is received from Core + * + * @param request A SDLDeleteInteractionChoiceSet object + */ +- (void)onDeleteInteractionChoiceSet:(SDLDeleteInteractionChoiceSet *)request; + +/** + * Called when a `DeleteSubMenu` request is received from Core + * + * @param request A SDLDeleteSubMenu object + */ +- (void)onDeleteSubMenu:(SDLDeleteSubMenu *)request; + +/** + * Called when a `DiagnosticMessage` request is received from Core + * + * @param request A SDLDiagnosticMessage object + */ +- (void)onDiagnosticMessage:(SDLDiagnosticMessage *)request; + +/** + * Called when a `DialNumber` request is received from Core + * + * @param request A SDLDialNumber object + */ +- (void)onDialNumber:(SDLDialNumber *)request; + +/** + * Called when a `EncodedSyncPData` request is received from Core + * + * @param request A SDLEncodedSyncPData object + */ +- (void)onEncodedSyncPData:(SDLEncodedSyncPData *)request; + +/** + * Called when a `EndAudioPassThru` request is received from Core + * + * @param request A SDLEndAudioPassThru object + */ +- (void)onEndAudioPassThru:(SDLEndAudioPassThru *)request; + +/** + * Called when a `GetAppServiceData` request is received from Core + * + * @param request A SDLGetAppServiceData object + */ +- (void)onGetAppServiceData:(SDLGetAppServiceData *)request; + +/** + * Called when a `GetCloudAppProperties` request is received from Core + * + * @param request A SDLGetCloudAppProperties object + */ +- (void)onGetCloudAppProperties:(SDLGetCloudAppProperties *)request; + +/** + * Called when a `GetDTCs` request is received from Core + * + * @param request A SDLGetDTCs object + */ +- (void)onGetDTCs:(SDLGetDTCs *)request; + +/** + * Called when a `GetFile` request is received from Core + * + * @param request A SDLGetFile object + */ +- (void)onGetFile:(SDLGetFile *)request; + +/** + * Called when a `GetInteriorVehicleData` request is received from Core + * + * @param request A SDLGetInteriorVehicleData object + */ +- (void)onGetInteriorVehicleData:(SDLGetInteriorVehicleData *)request; + +/** + * Called when a `GetSystemCapability` request is received from Core + * + * @param request A SDLGetSystemCapability object + */ +- (void)onGetSystemCapability:(SDLGetSystemCapability *)request; + +/** + * Called when a `GetVehicleData` request is received from Core + * + * @param request A SDLGetVehicleData object + */ +- (void)onGetVehicleData:(SDLGetVehicleData *)request; + +/** + * Called when a `GetWayPoints` request is received from Core + * + * @param request A SDLGetWayPoints object + */ +- (void)onGetWayPoints:(SDLGetWayPoints *)request; + +/** + * Called when a `ListFiles` request is received from Core + * + * @param request A SDLListFiles object + */ +- (void)onListFiles:(SDLListFiles *)request; + +/** + * Called when a `PerformAppServiceInteraction` request is received from Core + * + * @param request A SDLPerformAppServiceInteraction object + */ +- (void)onPerformAppServiceInteraction:(SDLPerformAppServiceInteraction *)request; + +/** + * Called when a `PerformAudioPassThru` request is received from Core + * + * @param request A SDLPerformAudioPassThru object + */ +- (void)onPerformAudioPassThru:(SDLPerformAudioPassThru *)request; + +/** + * Called when a `PerformInteraction` request is received from Core + * + * @param request A SDLPerformInteraction object + */ +- (void)onPerformInteraction:(SDLPerformInteraction *)request; + +/** + * Called when a `PublishAppService` request is received from Core + * + * @param request A SDLPublishAppService object + */ +- (void)onPublishAppService:(SDLPublishAppService *)request; + +/** + * Called when a `PutFile` request is received from Core + * + * @param request A SDLPutFile object + */ +- (void)onPutFile:(SDLPutFile *)request; + +/** + * Called when a `ReadDID` request is received from Core + * + * @param request A SDLReadDID object + */ +- (void)onReadDID:(SDLReadDID *)request; + +/** + * Called when a `RegisterAppInterface` request is received from Core + * + * @param request A SDLRegisterAppInterface object + */ +- (void)onRegisterAppInterface:(SDLRegisterAppInterface *)request; + +/** + * Called when a `ResetGlobalProperties` request is received from Core + * + * @param request A SDLResetGlobalProperties object + */ +- (void)onResetGlobalProperties:(SDLResetGlobalProperties *)request; + +/** + * Called when a `ScrollableMessage` request is received from Core + * + * @param request A SDLScrollableMessage object + */ +- (void)onScrollableMessage:(SDLScrollableMessage *)request; + +/** + * Called when a `SendHapticData` request is received from Core + * + * @param request A SDLSendHapticData object + */ +- (void)onSendHapticData:(SDLSendHapticData *)request; + +/** + * Called when a `SendLocation` request is received from Core + * + * @param request A SDLSendLocation object + */ +- (void)onSendLocation:(SDLSendLocation *)request; + +/** + * Called when a `SetAppIcon` request is received from Core + * + * @param request A SDLSetAppIcon object + */ +- (void)onSetAppIcon:(SDLSetAppIcon *)request; + +/** + * Called when a `SetCloudAppProperties` request is received from Core + * + * @param request A SDLSetCloudAppProperties object + */ +- (void)onSetCloudAppProperties:(SDLSetCloudAppProperties *)request; + +/** + * Called when a `SetDisplayLayout` request is received from Core + * + * @param request A SDLSetDisplayLayout object + */ +- (void)onSetDisplayLayout:(SDLSetDisplayLayout *)request; + +/** + * Called when a `SetGlobalProperties` request is received from Core + * + * @param request A SDLSetGlobalProperties object + */ +- (void)onSetGlobalProperties:(SDLSetGlobalProperties *)request; + +/** + * Called when a `SetInteriorVehicleData` request is received from Core + * + * @param request A SDLSetInteriorVehicleData object + */ +- (void)onSetInteriorVehicleData:(SDLSetInteriorVehicleData *)request; + +/** + * Called when a `SetMediaClockTimer` request is received from Core + * + * @param request A SDLSetMediaClockTimer object + */ +- (void)onSetMediaClockTimer:(SDLSetMediaClockTimer *)request; + +/** + * Called when a `Show` request is received from Core + * + * @param request A SDLShow object + */ +- (void)onShow:(SDLShow *)request; + +/** + * Called when a `ShowConstantTBT` request is received from Core + * + * @param request A SDLShowConstantTBT object + */ +- (void)onShowConstantTBT:(SDLShowConstantTBT *)request; + +/** + * Called when a `Slider` request is received from Core + * + * @param request A SDLSlider object + */ +- (void)onSlider:(SDLSlider *)request; + +/** + * Called when a `Speak` request is received from Core + * + * @param request A SDLSpeak object + */ +- (void)onSpeak:(SDLSpeak *)request; + +/** + * Called when a `SubscribeButton` request is received from Core + * + * @param request A SDLSubscribeButton object + */ +- (void)onSubscribeButton:(SDLSubscribeButton *)request; + +/** + * Called when a `SubscribeVehicleData` request is received from Core + * + * @param request A SDLSubscribeVehicleData object + */ +- (void)onSubscribeVehicleData:(SDLSubscribeVehicleData *)request; + +/** + * Called when a `SubscribeWayPoints` request is received from Core + * + * @param request A SDLSubscribeWayPoints object + */ +- (void)onSubscribeWayPoints:(SDLSubscribeWayPoints *)request; + +/** + * Called when a `SyncPData` request is received from Core + * + * @param request A SDLSyncPData object + */ +- (void)onSyncPData:(SDLSyncPData *)request; + +/** + * Called when a `SystemRequest` request is received from Core + * + * @param request A SDLSystemRequest object + */ +- (void)onSystemRequest:(SDLSystemRequest *)request; + +/** + * Called when a `UnregisterAppInterface` request is received from Core + * + * @param request A SDLUnregisterAppInterface object + */ +- (void)onUnregisterAppInterface:(SDLUnregisterAppInterface *)request; + +/** + * Called when a `UnsubscribeButton` request is received from Core + * + * @param request A SDLUnsubscribeButton object + */ +- (void)onUnsubscribeButton:(SDLUnsubscribeButton *)request; + +/** + * Called when a `UnsubscribeVehicleData` request is received from Core + * + * @param request A SDLUnsubscribeVehicleData object + */ +- (void)onUnsubscribeVehicleData:(SDLUnsubscribeVehicleData *)request; + +/** + * Called when a `UnsubscribeWayPoints` request is received from Core + * + * @param request A SDLUnsubscribeWayPoints object + */ +- (void)onUnsubscribeWayPoints:(SDLUnsubscribeWayPoints *)request; + +/** + * Called when a `UpdateTurnList` request is received from Core + * + * @param request A SDLUpdateTurnList object + */ +- (void)onUpdateTurnList:(SDLUpdateTurnList *)request; + + +#pragma mark - Notifications + +/** + * Called when an On App Interface Unregistered notification is received from Core + * + * @param notification A SDLOnAppInterfaceUnregistered object + */ +- (void)onOnAppInterfaceUnregistered:(SDLOnAppInterfaceUnregistered *)notification; + +/** + * Called when an On App Service Data notification is received from Core + * + * @param notification A SDLOnAppServiceData object + */ +- (void)onOnAppServiceData:(SDLOnAppServiceData *)notification; + +/** + * Called when an On Audio Pass Thru notification is received from Core + * + * @param notification A SDLOnAudioPassThru object + */ +- (void)onOnAudioPassThru:(SDLOnAudioPassThru *)notification; + +/** + * Called when an On Button Event notification is received from Core + * + * @param notification A SDLOnButtonEvent object + */ +- (void)onOnButtonEvent:(SDLOnButtonEvent *)notification; + +/** + * Called when an On Button Press notification is received from Core + * + * @param notification A SDLOnButtonPress object + */ +- (void)onOnButtonPress:(SDLOnButtonPress *)notification; + +/** + * Called when an On Command notification is received from Core + * + * @param notification A SDLOnCommand object + */ +- (void)onOnCommand:(SDLOnCommand *)notification; + +/** + * Called when an On Encoded Sync P Data notification is received from Core + * + * @param notification A SDLOnEncodedSyncPData object + */ +- (void)onOnEncodedSyncPData:(SDLOnEncodedSyncPData *)notification; + +/** + * Called when an On Hash Change notification is received from Core + * + * @param notification A SDLOnHashChange object + */ +- (void)onOnHashChange:(SDLOnHashChange *)notification; + +/** + * Called when an On Interior Vehicle Data notification is received from Core + * + * @param notification A SDLOnInteriorVehicleData object + */ +- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification; + +/** + * Called when an On Keyboard Input notification is received from Core + * + * @param notification A SDLOnKeyboardInput object + */ +- (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification; + +/** + * Called when an On Language Change notification is received from Core + * + * @param notification A SDLOnLanguageChange object + */ +- (void)onOnLanguageChange:(SDLOnLanguageChange *)notification; + +/** + * Called when an On Lock Screen notification is received from Core + * + * @param notification A SDLOnLockScreenStatus object + */ +- (void)onOnLockScreenNotification:(SDLOnLockScreenStatus *)notification; + +/** + * Called when an On Permissions Change notification is received from Core + * + * @param notification A SDLOnPermissionsChange object + */ +- (void)onOnPermissionsChange:(SDLOnPermissionsChange *)notification; + +/** + * Called when an On RC Change notification is received from Core + * + * @param notification A SDLOnRCStatus object + */ +- (void)onOnRCStatus:(SDLOnRCStatus *)notification; + +/** + * Called when an On Sync P notification is received from Core + * + * @param notification A SDLOnSyncPData object + */ +- (void)onOnSyncPData:(SDLOnSyncPData *)notification; + +/** + * Called when an `OnSystemCapabilityUpdated` notification is received from Core + * + * @param notification A SDLOnSystemCapabilityUpdated object + */ +- (void)onOnSystemCapabilityUpdated:(SDLOnSystemCapabilityUpdated *)notification; + +/** + * Called when an On System Request notification is received from Core + * + * @param notification A SDLOnSystemRequest object + */ +- (void)onOnSystemRequest:(SDLOnSystemRequest *)notification; + +/** + * Called when an On TBT Client State notification is received from Core + * + * @param notification A SDLOnTBTClientState object + */ +- (void)onOnTBTClientState:(SDLOnTBTClientState *)notification; + +/** + * Called when an On Touch Event notification is received from Core + * + * @param notification A SDLOnTouchEvent object + */ +- (void)onOnTouchEvent:(SDLOnTouchEvent *)notification; + +/** + * Called when an On Vehicle Data notification is received from Core + * + * @param notification A SDLOnVehicleData object + */ +- (void)onOnVehicleData:(SDLOnVehicleData *)notification; + +/** + * Called when an On Way Point Change notification is received from Core + * + * @param notification A SDLOnWayPointChange object + */ +- (void)onOnWayPointChange:(SDLOnWayPointChange *)notification; + +#pragma mark - Other + +/** + * Called when an Error message is received from Core + * + * @param e An exception message + */ +- (void)onError:(NSException *)e; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPublishAppService.h b/SmartDeviceLink/SDLPublishAppService.h new file mode 100644 index 000000000..e9effe25d --- /dev/null +++ b/SmartDeviceLink/SDLPublishAppService.h @@ -0,0 +1,38 @@ +// +// SDLPublishAppService.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLAppServiceManifest; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * Registers a service offered by this app on the module. + */ +@interface SDLPublishAppService : SDLRPCRequest + +/** + * Convenience init. + * + * @param appServiceManifest The app service manifest + * @return A SDLPublishAppService object + */ +- (instancetype)initWithAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest; + +/** + * The manifest of the service that wishes to be published. + * + * SDLAppServiceManifest, Required + */ +@property (strong, nonatomic) SDLAppServiceManifest *appServiceManifest; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPublishAppService.m b/SmartDeviceLink/SDLPublishAppService.m new file mode 100644 index 000000000..de365af41 --- /dev/null +++ b/SmartDeviceLink/SDLPublishAppService.m @@ -0,0 +1,49 @@ +// +// SDLPublishAppService.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPublishAppService.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceManifest.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPublishAppService + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePublishAppService]) { + } + return self; +} + +- (instancetype)initWithAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest { + self = [self init]; + if (!self) { + return nil; + } + + self.appServiceManifest = appServiceManifest; + + return self; +} + +- (void)setAppServiceManifest:(SDLAppServiceManifest *)appServiceManifest { + [parameters sdl_setObject:appServiceManifest forName:SDLRPCParameterNameAppServiceManifest]; +} + +- (SDLAppServiceManifest *)appServiceManifest { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameAppServiceManifest ofClass:SDLAppServiceManifest.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPublishAppServiceResponse.h b/SmartDeviceLink/SDLPublishAppServiceResponse.h new file mode 100644 index 000000000..bf58d6a10 --- /dev/null +++ b/SmartDeviceLink/SDLPublishAppServiceResponse.h @@ -0,0 +1,38 @@ +// +// SDLPublishAppServiceResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +@class SDLAppServiceRecord; + +NS_ASSUME_NONNULL_BEGIN + +/* + * Response to the request to register a service offered by this app on the module. + */ +@interface SDLPublishAppServiceResponse : SDLRPCResponse + +/** + * Convenience init. + * + * @param appServiceRecord If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. + * @return A SDLPublishAppServiceResponse object + */ +- (instancetype)initWithAppServiceRecord:(SDLAppServiceRecord *)appServiceRecord; + +/** + * If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. + * + * SDLAppServiceRecord, Optional + */ +@property (nullable, strong, nonatomic) SDLAppServiceRecord *appServiceRecord; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPublishAppServiceResponse.m b/SmartDeviceLink/SDLPublishAppServiceResponse.m new file mode 100644 index 000000000..094a044ef --- /dev/null +++ b/SmartDeviceLink/SDLPublishAppServiceResponse.m @@ -0,0 +1,47 @@ +// +// SDLPublishAppServiceResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLPublishAppServiceResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLPublishAppServiceResponse + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNamePublishAppService]) { + } + return self; +} + +- (instancetype)initWithAppServiceRecord:(SDLAppServiceRecord *)appServiceRecord { + self = [self init]; + if (!self) { + return nil; + } + + self.appServiceRecord = appServiceRecord; + + return self; +} + +- (void)setAppServiceRecord:(nullable SDLAppServiceRecord *)appServiceRecord { + [parameters sdl_setObject:appServiceRecord forName:SDLRPCParameterNameAppServiceRecord]; +} + +- (nullable SDLAppServiceRecord *)appServiceRecord { + return [parameters sdl_objectForName:SDLRPCParameterNameAppServiceRecord ofClass:SDLAppServiceRecord.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPutFile.m b/SmartDeviceLink/SDLPutFile.m index f058b5ec2..5c54a712f 100644 --- a/SmartDeviceLink/SDLPutFile.m +++ b/SmartDeviceLink/SDLPutFile.m @@ -4,7 +4,8 @@ #import "SDLPutFile.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import <zlib.h> @@ -13,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLPutFile - (instancetype)init { - if (self = [super initWithName:SDLNamePutFile]) { + if (self = [super initWithName:SDLRPCFunctionNamePutFile]) { } return self; } @@ -83,59 +84,61 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Getters and Setters - (void)setSyncFileName:(NSString *)syncFileName { - [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; + [parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters sdl_objectForName:SDLNameSyncFileName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; } - (void)setFileType:(SDLFileType)fileType { - [parameters sdl_setObject:fileType forName:SDLNameFileType]; + [parameters sdl_setObject:fileType forName:SDLRPCParameterNameFileType]; } - (SDLFileType)fileType { - return [parameters sdl_objectForName:SDLNameFileType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameFileType error:&error]; } - (void)setPersistentFile:(nullable NSNumber<SDLBool> *)persistentFile { - [parameters sdl_setObject:persistentFile forName:SDLNamePersistentFile]; + [parameters sdl_setObject:persistentFile forName:SDLRPCParameterNamePersistentFile]; } - (nullable NSNumber<SDLBool> *)persistentFile { - return [parameters sdl_objectForName:SDLNamePersistentFile]; + return [parameters sdl_objectForName:SDLRPCParameterNamePersistentFile ofClass:NSNumber.class error:nil]; } - (void)setSystemFile:(nullable NSNumber<SDLBool> *)systemFile { - [parameters sdl_setObject:systemFile forName:SDLNameSystemFile]; + [parameters sdl_setObject:systemFile forName:SDLRPCParameterNameSystemFile]; } - (nullable NSNumber<SDLBool> *)systemFile { - return [parameters sdl_objectForName:SDLNameSystemFile]; + return [parameters sdl_objectForName:SDLRPCParameterNameSystemFile ofClass:NSNumber.class error:nil]; } - (void)setOffset:(nullable NSNumber<SDLUInt> *)offset { - [parameters sdl_setObject:offset forName:SDLNameOffset]; + [parameters sdl_setObject:offset forName:SDLRPCParameterNameOffset]; } - (nullable NSNumber<SDLUInt> *)offset { - return [parameters sdl_objectForName:SDLNameOffset]; + return [parameters sdl_objectForName:SDLRPCParameterNameOffset ofClass:NSNumber.class error:nil]; } - (void)setLength:(nullable NSNumber<SDLUInt> *)length { - [parameters sdl_setObject:length forName:SDLNameLength]; + [parameters sdl_setObject:length forName:SDLRPCParameterNameLength]; } - (nullable NSNumber<SDLUInt> *)length { - return [parameters sdl_objectForName:SDLNameLength]; + return [parameters sdl_objectForName:SDLRPCParameterNameLength ofClass:NSNumber.class error:nil]; } - (void)setCrc:(nullable NSNumber<SDLUInt> *)crc { - [parameters sdl_setObject:crc forName:SDLNameCRC]; + [parameters sdl_setObject:crc forName:SDLRPCParameterNameCRC]; } - (nullable NSNumber<SDLUInt> *)crc { - return [parameters sdl_objectForName:SDLNameCRC]; + return [parameters sdl_objectForName:SDLRPCParameterNameCRC ofClass:NSNumber.class error:nil]; } #pragma mark - Helpers diff --git a/SmartDeviceLink/SDLPutFileResponse.m b/SmartDeviceLink/SDLPutFileResponse.m index 93d0caa5e..906f9a5bb 100644 --- a/SmartDeviceLink/SDLPutFileResponse.m +++ b/SmartDeviceLink/SDLPutFileResponse.m @@ -5,24 +5,25 @@ #import "SDLPutFileResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLPutFileResponse - (instancetype)init { - if (self = [super initWithName:SDLNamePutFile]) { + if (self = [super initWithName:SDLRPCFunctionNamePutFile]) { } return self; } - (void)setSpaceAvailable:(nullable NSNumber<SDLInt> *)spaceAvailable { - [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; + [parameters sdl_setObject:spaceAvailable forName:SDLRPCParameterNameSpaceAvailable]; } - (nullable NSNumber<SDLInt> *)spaceAvailable { - return [parameters sdl_objectForName:SDLNameSpaceAvailable]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpaceAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRDSData.m b/SmartDeviceLink/SDLRDSData.m index 9a8f5586f..14219ba34 100755 --- a/SmartDeviceLink/SDLRDSData.m +++ b/SmartDeviceLink/SDLRDSData.m @@ -3,7 +3,7 @@ // #import "SDLRDSData.h" -#include "SDLNames.h" +#include "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -27,67 +27,67 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setProgramService:(nullable NSString *)programService { - [store sdl_setObject:programService forName:SDLNameProgramService]; + [store sdl_setObject:programService forName:SDLRPCParameterNameProgramService]; } - (nullable NSString *)programService { - return [store sdl_objectForName:SDLNameProgramService]; + return [store sdl_objectForName:SDLRPCParameterNameProgramService ofClass:NSString.class error:nil]; } - (void)setRadioText:(nullable NSString *)radioText { - [store sdl_setObject:radioText forName:SDLNameRadioText]; + [store sdl_setObject:radioText forName:SDLRPCParameterNameRadioText]; } - (nullable NSString *)radioText { - return [store sdl_objectForName:SDLNameRadioText]; + return [store sdl_objectForName:SDLRPCParameterNameRadioText ofClass:NSString.class error:nil]; } - (void)setClockText:(nullable NSString *)clockText { - [store sdl_setObject:clockText forName:SDLNameClockText]; + [store sdl_setObject:clockText forName:SDLRPCParameterNameClockText]; } - (nullable NSString *)clockText { - return [store sdl_objectForName:SDLNameClockText]; + return [store sdl_objectForName:SDLRPCParameterNameClockText ofClass:NSString.class error:nil]; } - (void)setProgramIdentification:(nullable NSString *)programIdentification { - [store sdl_setObject:programIdentification forName:SDLNameProgramIdentification]; + [store sdl_setObject:programIdentification forName:SDLRPCParameterNameProgramIdentification]; } - (nullable NSString *)programIdentification { - return [store sdl_objectForName:SDLNameProgramIdentification]; + return [store sdl_objectForName:SDLRPCParameterNameProgramIdentification ofClass:NSString.class error:nil]; } - (void)setProgramType:(nullable NSNumber<SDLInt> *)programType { - [store sdl_setObject:programType forName:SDLNameProgramType]; + [store sdl_setObject:programType forName:SDLRPCParameterNameProgramType]; } - (nullable NSNumber<SDLInt> *)programType { - return [store sdl_objectForName:SDLNameProgramType]; + return [store sdl_objectForName:SDLRPCParameterNameProgramType ofClass:NSNumber.class error:nil]; } - (void)setTrafficProgramIdentification:(nullable NSNumber<SDLBool> *)trafficProgramIdentification { - [store sdl_setObject:trafficProgramIdentification forName:SDLNameTrafficProgramIdentification]; + [store sdl_setObject:trafficProgramIdentification forName:SDLRPCParameterNameTrafficProgramIdentification]; } - (nullable NSNumber<SDLBool> *)trafficProgramIdentification { - return [store sdl_objectForName:SDLNameTrafficProgramIdentification]; + return [store sdl_objectForName:SDLRPCParameterNameTrafficProgramIdentification ofClass:NSNumber.class error:nil]; } - (void)setTrafficAnnouncementIdentification:(nullable NSNumber<SDLBool> *)trafficAnnouncementIdentification { - [store sdl_setObject:trafficAnnouncementIdentification forName:SDLNameTrafficAnnouncementIdentification]; + [store sdl_setObject:trafficAnnouncementIdentification forName:SDLRPCParameterNameTrafficAnnouncementIdentification]; } - (nullable NSNumber<SDLBool> *)trafficAnnouncementIdentification { - return [store sdl_objectForName:SDLNameTrafficAnnouncementIdentification]; + return [store sdl_objectForName:SDLRPCParameterNameTrafficAnnouncementIdentification ofClass:NSNumber.class error:nil]; } - (void)setRegion:(nullable NSString *)region { - [store sdl_setObject:region forName:SDLNameRegion]; + [store sdl_setObject:region forName:SDLRPCParameterNameRegion]; } - (nullable NSString *)region { - return [store sdl_objectForName:SDLNameRegion]; + return [store sdl_objectForName:SDLRPCParameterNameRegion ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRGBColor.m b/SmartDeviceLink/SDLRGBColor.m index 9ed7b30e9..ff2d4296e 100644 --- a/SmartDeviceLink/SDLRGBColor.m +++ b/SmartDeviceLink/SDLRGBColor.m @@ -9,7 +9,7 @@ #import "SDLRGBColor.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -41,27 +41,30 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Setters - (void)setRed:(NSNumber<SDLInt> *)red { - [store sdl_setObject:red forName:SDLNameRed]; + [store sdl_setObject:red forName:SDLRPCParameterNameRed]; } - (NSNumber<SDLInt> *)red { - return [store sdl_objectForName:SDLNameRed]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameRed ofClass:NSNumber.class error:&error]; } - (void)setGreen:(NSNumber<SDLInt> *)green { - [store sdl_setObject:green forName:SDLNameGreen]; + [store sdl_setObject:green forName:SDLRPCParameterNameGreen]; } - (NSNumber<SDLInt> *)green { - return [store sdl_objectForName:SDLNameGreen]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameGreen ofClass:NSNumber.class error:&error]; } - (void)setBlue:(NSNumber<SDLInt> *)blue { - [store sdl_setObject:blue forName:SDLNameBlue]; + [store sdl_setObject:blue forName:SDLRPCParameterNameBlue]; } - (NSNumber<SDLInt> *)blue { - return [store sdl_objectForName:SDLNameBlue]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameBlue ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLRPCFunctionNames.h b/SmartDeviceLink/SDLRPCFunctionNames.h new file mode 100644 index 000000000..52318c3bd --- /dev/null +++ b/SmartDeviceLink/SDLRPCFunctionNames.h @@ -0,0 +1,97 @@ +// +// SDLRPCFunctionNames.h +// SmartDeviceLink +// +// Created by Nicole on 3/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/* + * All RPC request / response / notification names + */ +typedef SDLEnum SDLRPCFunctionName SDL_SWIFT_ENUM; + +extern SDLRPCFunctionName const SDLRPCFunctionNameAddCommand; +extern SDLRPCFunctionName const SDLRPCFunctionNameAddSubMenu; +extern SDLRPCFunctionName const SDLRPCFunctionNameAlert; +extern SDLRPCFunctionName const SDLRPCFunctionNameAlertManeuver; +extern SDLRPCFunctionName const SDLRPCFunctionNameButtonPress; +extern SDLRPCFunctionName const SDLRPCFunctionNameChangeRegistration; +extern SDLRPCFunctionName const SDLRPCFunctionNameCreateInteractionChoiceSet; +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteCommand; +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteFile; +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteInteractionChoiceSet; +extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteSubMenu; +extern SDLRPCFunctionName const SDLRPCFunctionNameDiagnosticMessage; +extern SDLRPCFunctionName const SDLRPCFunctionNameDialNumber; +extern SDLRPCFunctionName const SDLRPCFunctionNameEncodedSyncPData; +extern SDLRPCFunctionName const SDLRPCFunctionNameEndAudioPassThru; +extern SDLRPCFunctionName const SDLRPCFunctionNameGenericResponse; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetAppServiceData; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetFile; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints; +extern SDLRPCFunctionName const SDLRPCFunctionNameListFiles; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnAppInterfaceUnregistered; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnAppServiceData; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnAudioPassThru; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnButtonEvent; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnButtonPress; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnCommand; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnDriverDistraction; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnEncodedSyncPData; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnHashChange; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnHMIStatus; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnInteriorVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnKeyboardInput; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnLanguageChange; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnLockScreenStatus; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnPermissionsChange; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnRCStatus; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnSyncPData; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnSystemCapabilityUpdated; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnSystemRequest; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnTBTClientState; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnTouchEvent; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameOnWayPointChange; +extern SDLRPCFunctionName const SDLRPCFunctionNamePerformAppServiceInteraction; +extern SDLRPCFunctionName const SDLRPCFunctionNamePerformAudioPassThru; +extern SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction; +extern SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService; +extern SDLRPCFunctionName const SDLRPCFunctionNamePutFile; +extern SDLRPCFunctionName const SDLRPCFunctionNameReadDID; +extern SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface; +extern SDLRPCFunctionName const SDLRPCFunctionNameReserved; +extern SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties; +extern SDLRPCFunctionName const SDLRPCFunctionNameScrollableMessage; +extern SDLRPCFunctionName const SDLRPCFunctionNameSendHapticData; +extern SDLRPCFunctionName const SDLRPCFunctionNameSendLocation; +extern SDLRPCFunctionName const SDLRPCFunctionNameSetAppIcon; +extern SDLRPCFunctionName const SDLRPCFunctionNameSetCloudAppProperties; +extern SDLRPCFunctionName const SDLRPCFunctionNameSetDisplayLayout; +extern SDLRPCFunctionName const SDLRPCFunctionNameSetGlobalProperties; +extern SDLRPCFunctionName const SDLRPCFunctionNameSetInteriorVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameSetMediaClockTimer; +extern SDLRPCFunctionName const SDLRPCFunctionNameShow; +extern SDLRPCFunctionName const SDLRPCFunctionNameShowConstantTBT; +extern SDLRPCFunctionName const SDLRPCFunctionNameSlider; +extern SDLRPCFunctionName const SDLRPCFunctionNameSpeak; +extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeButton; +extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameSubscribeWayPoints; +extern SDLRPCFunctionName const SDLRPCFunctionNameSyncPData; +extern SDLRPCFunctionName const SDLRPCFunctionNameSystemRequest; +extern SDLRPCFunctionName const SDLRPCFunctionNameUnregisterAppInterface; +extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton; +extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData; +extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints; +extern SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList; + + diff --git a/SmartDeviceLink/SDLRPCFunctionNames.m b/SmartDeviceLink/SDLRPCFunctionNames.m new file mode 100644 index 000000000..c51e98be0 --- /dev/null +++ b/SmartDeviceLink/SDLRPCFunctionNames.m @@ -0,0 +1,90 @@ +// +// SDLRPCFunctionNames.m +// SmartDeviceLink +// +// Created by Nicole on 3/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCFunctionNames.h" + +SDLRPCFunctionName const SDLRPCFunctionNameAddCommand = @"AddCommand"; +SDLRPCFunctionName const SDLRPCFunctionNameAddSubMenu = @"AddSubMenu"; +SDLRPCFunctionName const SDLRPCFunctionNameAlert = @"Alert"; +SDLRPCFunctionName const SDLRPCFunctionNameAlertManeuver = @"AlertManeuver"; +SDLRPCFunctionName const SDLRPCFunctionNameButtonPress = @"ButtonPress"; +SDLRPCFunctionName const SDLRPCFunctionNameChangeRegistration = @"ChangeRegistration"; +SDLRPCFunctionName const SDLRPCFunctionNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteCommand = @"DeleteCommand"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteFile = @"DeleteFile"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteInteractionChoiceSet = @"DeleteInteractionChoiceSet"; +SDLRPCFunctionName const SDLRPCFunctionNameDeleteSubMenu = @"DeleteSubMenu"; +SDLRPCFunctionName const SDLRPCFunctionNameDiagnosticMessage = @"DiagnosticMessage"; +SDLRPCFunctionName const SDLRPCFunctionNameDialNumber = @"DialNumber"; +SDLRPCFunctionName const SDLRPCFunctionNameEncodedSyncPData = @"EncodedSyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameEndAudioPassThru = @"EndAudioPassThru"; +SDLRPCFunctionName const SDLRPCFunctionNameGenericResponse = @"GenericResponse"; +SDLRPCFunctionName const SDLRPCFunctionNameGetAppServiceData = @"GetAppServiceData"; +SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs = @"GetDTCs"; +SDLRPCFunctionName const SDLRPCFunctionNameGetFile = @"GetFile"; +SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties = @"GetCloudAppProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData = @"GetInteriorVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability = @"GetSystemCapability"; +SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData = @"GetVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints = @"GetWayPoints"; +SDLRPCFunctionName const SDLRPCFunctionNameListFiles = @"ListFiles"; +SDLRPCFunctionName const SDLRPCFunctionNameOnAppInterfaceUnregistered = @"OnAppInterfaceUnregistered"; +SDLRPCFunctionName const SDLRPCFunctionNameOnAppServiceData = @"OnAppServiceData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnAudioPassThru = @"OnAudioPassThru"; +SDLRPCFunctionName const SDLRPCFunctionNameOnButtonEvent = @"OnButtonEvent"; +SDLRPCFunctionName const SDLRPCFunctionNameOnButtonPress = @"OnButtonPress"; +SDLRPCFunctionName const SDLRPCFunctionNameOnCommand = @"OnCommand"; +SDLRPCFunctionName const SDLRPCFunctionNameOnDriverDistraction = @"OnDriverDistraction"; +SDLRPCFunctionName const SDLRPCFunctionNameOnEncodedSyncPData = @"OnEncodedSyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnHashChange = @"OnHashChange"; +SDLRPCFunctionName const SDLRPCFunctionNameOnHMIStatus = @"OnHMIStatus"; +SDLRPCFunctionName const SDLRPCFunctionNameOnInteriorVehicleData = @"OnInteriorVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnKeyboardInput = @"OnKeyboardInput"; +SDLRPCFunctionName const SDLRPCFunctionNameOnLanguageChange = @"OnLanguageChange"; +SDLRPCFunctionName const SDLRPCFunctionNameOnLockScreenStatus = @"OnLockScreenStatus"; +SDLRPCFunctionName const SDLRPCFunctionNameOnPermissionsChange = @"OnPermissionsChange"; +SDLRPCFunctionName const SDLRPCFunctionNameOnRCStatus = @"OnRCStatus"; +SDLRPCFunctionName const SDLRPCFunctionNameOnSyncPData = @"OnSyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnSystemCapabilityUpdated = @"OnSystemCapabilityUpdated"; +SDLRPCFunctionName const SDLRPCFunctionNameOnSystemRequest = @"OnSystemRequest"; +SDLRPCFunctionName const SDLRPCFunctionNameOnTBTClientState = @"OnTBTClientState"; +SDLRPCFunctionName const SDLRPCFunctionNameOnTouchEvent = @"OnTouchEvent"; +SDLRPCFunctionName const SDLRPCFunctionNameOnVehicleData = @"OnVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameOnWayPointChange = @"OnWayPointChange"; +SDLRPCFunctionName const SDLRPCFunctionNamePerformAppServiceInteraction = @"PerformAppServiceInteraction"; +SDLRPCFunctionName const SDLRPCFunctionNamePerformAudioPassThru = @"PerformAudioPassThru"; +SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction = @"PerformInteraction"; +SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService = @"PublishAppService"; +SDLRPCFunctionName const SDLRPCFunctionNamePutFile = @"PutFile"; +SDLRPCFunctionName const SDLRPCFunctionNameReadDID = @"ReadDID"; +SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface = @"RegisterAppInterface"; +SDLRPCFunctionName const SDLRPCFunctionNameReserved = @"reserved"; +SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties = @"ResetGlobalProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameScrollableMessage = @"ScrollableMessage"; +SDLRPCFunctionName const SDLRPCFunctionNameSendHapticData = @"SendHapticData"; +SDLRPCFunctionName const SDLRPCFunctionNameSendLocation = @"SendLocation"; +SDLRPCFunctionName const SDLRPCFunctionNameSetAppIcon = @"SetAppIcon"; +SDLRPCFunctionName const SDLRPCFunctionNameSetCloudAppProperties = @"SetCloudAppProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameSetDisplayLayout = @"SetDisplayLayout"; +SDLRPCFunctionName const SDLRPCFunctionNameSetGlobalProperties = @"SetGlobalProperties"; +SDLRPCFunctionName const SDLRPCFunctionNameSetInteriorVehicleData = @"SetInteriorVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameSetMediaClockTimer = @"SetMediaClockTimer"; +SDLRPCFunctionName const SDLRPCFunctionNameShow = @"Show"; +SDLRPCFunctionName const SDLRPCFunctionNameShowConstantTBT = @"ShowConstantTBT"; +SDLRPCFunctionName const SDLRPCFunctionNameSlider = @"Slider"; +SDLRPCFunctionName const SDLRPCFunctionNameSpeak = @"Speak"; +SDLRPCFunctionName const SDLRPCFunctionNameSubscribeButton = @"SubscribeButton"; +SDLRPCFunctionName const SDLRPCFunctionNameSubscribeVehicleData = @"SubscribeVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameSubscribeWayPoints = @"SubscribeWayPoints"; +SDLRPCFunctionName const SDLRPCFunctionNameSyncPData = @"SyncPData"; +SDLRPCFunctionName const SDLRPCFunctionNameSystemRequest = @"SystemRequest"; +SDLRPCFunctionName const SDLRPCFunctionNameUnregisterAppInterface = @"UnregisterAppInterface"; +SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton = @"UnsubscribeButton"; +SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData = @"UnsubscribeVehicleData"; +SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints = @"UnsubscribeWayPoints"; +SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList = @"UpdateTurnList"; diff --git a/SmartDeviceLink/SDLRPCMessage.m b/SmartDeviceLink/SDLRPCMessage.m index 7ca6b4b56..1d55d5f61 100644 --- a/SmartDeviceLink/SDLRPCMessage.m +++ b/SmartDeviceLink/SDLRPCMessage.m @@ -5,7 +5,7 @@ #import "SDLRPCMessage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -17,10 +17,10 @@ NS_ASSUME_NONNULL_BEGIN if (self = [super init]) { function = [[NSMutableDictionary alloc] initWithCapacity:3]; parameters = [[NSMutableDictionary alloc] init]; - messageType = SDLNameRequest; + messageType = SDLRPCParameterNameRequest; [store setObject:function forKey:messageType]; - [function setObject:parameters forKey:SDLNameParameters]; - [function setObject:name forKey:SDLNameOperationName]; + [function setObject:parameters forKey:SDLRPCParameterNameParameters]; + [function setObject:name forKey:SDLRPCParameterNameOperationName]; } return self; } @@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN if (self = [super initWithDictionary:dict]) { NSEnumerator *enumerator = [store keyEnumerator]; while (messageType = [enumerator nextObject]) { - if (![messageType isEqualToString:SDLNameBulkData]) { + if (![messageType isEqualToString:SDLRPCParameterNameBulkData]) { break; } } @@ -37,25 +37,25 @@ NS_ASSUME_NONNULL_BEGIN store[messageType] = [store[messageType] mutableCopy]; function = store[messageType]; - function[SDLNameParameters] = [function[SDLNameParameters] mutableCopy]; - parameters = function[SDLNameParameters]; + function[SDLRPCParameterNameParameters] = [function[SDLRPCParameterNameParameters] mutableCopy]; + parameters = function[SDLRPCParameterNameParameters]; } - self.bulkData = dict[SDLNameBulkData]; + self.bulkData = dict[SDLRPCParameterNameBulkData]; } return self; } - (nullable NSString *)getFunctionName { - return [function sdl_objectForName:SDLNameOperationName]; + return [function sdl_objectForName:SDLRPCParameterNameOperationName ofClass:NSString.class error:nil]; } - (void)setFunctionName:(nullable NSString *)functionName { - [function sdl_setObject:functionName forName:SDLNameOperationName]; + [function sdl_setObject:functionName forName:SDLRPCParameterNameOperationName]; } - (nullable NSObject *)getParameters:(NSString *)functionName { - return [parameters sdl_objectForName:functionName]; + return [parameters sdl_objectForName:functionName ofClass:NSObject.class error:nil]; } - (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value { diff --git a/SmartDeviceLink/SDLRPCNotification.m b/SmartDeviceLink/SDLRPCNotification.m index f300a2148..6bec6fd29 100644 --- a/SmartDeviceLink/SDLRPCNotification.m +++ b/SmartDeviceLink/SDLRPCNotification.m @@ -5,7 +5,7 @@ #import "SDLRPCNotification.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - messageType = SDLNameNotification; + messageType = SDLRPCParameterNameNotification; [store setObject:function forKey:messageType]; return self; @@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - messageType = SDLNameNotification; + messageType = SDLRPCParameterNameNotification; [store setObject:function forKey:messageType]; return self; diff --git a/SmartDeviceLink/SDLRPCParameterNames.h b/SmartDeviceLink/SDLRPCParameterNames.h new file mode 100644 index 000000000..6e346e357 --- /dev/null +++ b/SmartDeviceLink/SDLRPCParameterNames.h @@ -0,0 +1,678 @@ +// SDLRPCParameterNames.h +// + +#import <Foundation/Foundation.h> +#import "SDLMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString* SDLRPCParameterName SDL_SWIFT_ENUM; + +extern SDLRPCParameterName const SDLRPCParameterNameACEnable; +extern SDLRPCParameterName const SDLRPCParameterNameACEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameACMaxEnable; +extern SDLRPCParameterName const SDLRPCParameterNameACMaxEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameAccelerationPedalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameAcceptsWayPoints; +extern SDLRPCParameterName const SDLRPCParameterNameAction; +extern SDLRPCParameterName const SDLRPCParameterNameActual; +extern SDLRPCParameterName const SDLRPCParameterNameAddress; +extern SDLRPCParameterName const SDLRPCParameterNameAddressLines; +extern SDLRPCParameterName const SDLRPCParameterNameAdministrativeArea; +extern SDLRPCParameterName const SDLRPCParameterNameAirbagStatus; +extern SDLRPCParameterName const SDLRPCParameterNameAlerts; +extern SDLRPCParameterName const SDLRPCParameterNameAlertText1; +extern SDLRPCParameterName const SDLRPCParameterNameAlertText2; +extern SDLRPCParameterName const SDLRPCParameterNameAlertText3; +extern SDLRPCParameterName const SDLRPCParameterNameAlignment; +extern SDLRPCParameterName const SDLRPCParameterNameAllocatedModules; +extern SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers; +extern SDLRPCParameterName const SDLRPCParameterNameAllowed; +extern SDLRPCParameterName const SDLRPCParameterNameAltitude; +extern SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters; +extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus; +extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightStatus; +extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureHigh; +extern SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureLow; +extern SDLRPCParameterName const SDLRPCParameterNameAppBundleId; +extern SDLRPCParameterName const SDLRPCParameterNameAppDisplayName; +extern SDLRPCParameterName const SDLRPCParameterNameAppHMIType; +extern SDLRPCParameterName const SDLRPCParameterNameAppId; +extern SDLRPCParameterName const SDLRPCParameterNameAppInfo; +extern SDLRPCParameterName const SDLRPCParameterNameAppName; +extern SDLRPCParameterName const SDLRPCParameterNameAppServiceId; +extern SDLRPCParameterName const SDLRPCParameterNameAppServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord; +extern SDLRPCParameterName const SDLRPCParameterNameAppServices; +extern SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameAppVersion; +extern SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameAudioControlData; +extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1; +extern SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2; +extern SDLRPCParameterName const SDLRPCParameterNameAudioStreamingIndicator; +extern SDLRPCParameterName const SDLRPCParameterNameAudioStreamingState; +extern SDLRPCParameterName const SDLRPCParameterNameAudioType; +extern SDLRPCParameterName const SDLRPCParameterNameAuthToken; +extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteText; +extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable; +extern SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDs; +extern SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameBackgroundColor; +extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle; +extern SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameBand; +extern SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus; +extern SDLRPCParameterName const SDLRPCParameterNameBearing; +extern SDLRPCParameterName const SDLRPCParameterNameBeltStatus; +extern SDLRPCParameterName const SDLRPCParameterNameBitsPerSample; +extern SDLRPCParameterName const SDLRPCParameterNameBodyInformation; +extern SDLRPCParameterName const SDLRPCParameterNameBlue; +extern SDLRPCParameterName const SDLRPCParameterNameBluetoothIconOn; +extern SDLRPCParameterName const SDLRPCParameterNameBulkData; +extern SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameButtonEventMode; +extern SDLRPCParameterName const SDLRPCParameterNameButtonName; +extern SDLRPCParameterName const SDLRPCParameterNameButtonPressMode; +extern SDLRPCParameterName const SDLRPCParameterNameColor; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevel; +extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameCoordinate; +extern SDLRPCParameterName const SDLRPCParameterNameCallActive; +extern SDLRPCParameterName const SDLRPCParameterNameCarModeStatus; +extern SDLRPCParameterName const SDLRPCParameterNameCarrier; +extern SDLRPCParameterName const SDLRPCParameterNameChannelId; +extern SDLRPCParameterName const SDLRPCParameterNameChannelName; +extern SDLRPCParameterName const SDLRPCParameterNameChannelSetting; +extern SDLRPCParameterName const SDLRPCParameterNameCharacterSet; +extern SDLRPCParameterName const SDLRPCParameterNameChoiceId; +extern SDLRPCParameterName const SDLRPCParameterNameChoiceSet; +extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable; +extern SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameClimateControlData; +extern SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameCloudCover; +extern SDLRPCParameterName const SDLRPCParameterNameClusterModes; +extern SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus; +extern SDLRPCParameterName const SDLRPCParameterNameCommandIcon; +extern SDLRPCParameterName const SDLRPCParameterNameCommandId; +extern SDLRPCParameterName const SDLRPCParameterNameCompassDirection; +extern SDLRPCParameterName const SDLRPCParameterNameCorrelationId; +extern SDLRPCParameterName const SDLRPCParameterNameCountryCode; +extern SDLRPCParameterName const SDLRPCParameterNameCountryName; +extern SDLRPCParameterName const SDLRPCParameterNameCRC; +extern SDLRPCParameterName const SDLRPCParameterNameClockText; +extern SDLRPCParameterName const SDLRPCParameterNameCloudAppVehicleID; +extern SDLRPCParameterName const SDLRPCParameterNameCloudTransportType; +extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecast; +extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported; +extern SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameCushion; +extern SDLRPCParameterName const SDLRPCParameterNameCustomButtonId; +extern SDLRPCParameterName const SDLRPCParameterNameCustomPresets; +extern SDLRPCParameterName const SDLRPCParameterNameData; +extern SDLRPCParameterName const SDLRPCParameterNameDataResult; +extern SDLRPCParameterName const SDLRPCParameterNameDataType; +extern SDLRPCParameterName const SDLRPCParameterNameDay; +extern SDLRPCParameterName const SDLRPCParameterNameDayColorScheme; +extern SDLRPCParameterName const SDLRPCParameterNameDefrostZone; +extern SDLRPCParameterName const SDLRPCParameterNameDefrostZoneAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDeliveryMode; +extern SDLRPCParameterName const SDLRPCParameterNameDensity; +extern SDLRPCParameterName const SDLRPCParameterNameDensityAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDesiredTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameDesiredTemperatureAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDestination; +extern SDLRPCParameterName const SDLRPCParameterNameDestinationETA; +extern SDLRPCParameterName const SDLRPCParameterNameDetails; +extern SDLRPCParameterName const SDLRPCParameterNameDeviceInfo; +extern SDLRPCParameterName const SDLRPCParameterNameDeviceStatus; +extern SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameDIDLocation; +extern SDLRPCParameterName const SDLRPCParameterNameDIDResult; +extern SDLRPCParameterName const SDLRPCParameterNameDimension; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayMode; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayLayout; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayName; +extern SDLRPCParameterName const SDLRPCParameterNameDisplayType; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnit; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale; +extern SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverBraking; +extern SDLRPCParameterName const SDLRPCParameterNameDriverBuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus; +extern SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameDrivingSide; +extern SDLRPCParameterName const SDLRPCParameterNameDTC; +extern SDLRPCParameterName const SDLRPCParameterNameDTCMask; +extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnable; +extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameDuration; +extern SDLRPCParameterName const SDLRPCParameterNameE911Override; +extern SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus; +extern SDLRPCParameterName const SDLRPCParameterNameECallEventActive; +extern SDLRPCParameterName const SDLRPCParameterNameECallInfo; +extern SDLRPCParameterName const SDLRPCParameterNameECallNotificationStatus; +extern SDLRPCParameterName const SDLRPCParameterNameECUHeader; +extern SDLRPCParameterName const SDLRPCParameterNameECUName; +extern SDLRPCParameterName const SDLRPCParameterNameElectronicParkBrakeStatus; +extern SDLRPCParameterName const SDLRPCParameterNameEmergencyEvent; +extern SDLRPCParameterName const SDLRPCParameterNameEmergencyEventType; +extern SDLRPCParameterName const SDLRPCParameterNameEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameEndpoint; +extern SDLRPCParameterName const SDLRPCParameterNameEndTime; +extern SDLRPCParameterName const SDLRPCParameterNameEngineOilLife; +extern SDLRPCParameterName const SDLRPCParameterNameEngineTorque; +extern SDLRPCParameterName const SDLRPCParameterNameEqualizerAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameEqualizerMaxChannelId; +extern SDLRPCParameterName const SDLRPCParameterNameEqualizerSettings; +extern SDLRPCParameterName const SDLRPCParameterNameETA; +extern SDLRPCParameterName const SDLRPCParameterNameEvent; +extern SDLRPCParameterName const SDLRPCParameterNameExpires; +extern SDLRPCParameterName const SDLRPCParameterNameExternalTemperature; +extern SDLRPCParameterName const SDLRPCParameterNameFanSpeed; +extern SDLRPCParameterName const SDLRPCParameterNameFanSpeedAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameFCCFacilityId; +extern SDLRPCParameterName const SDLRPCParameterNameFilename; +extern SDLRPCParameterName const SDLRPCParameterNameFilenames; +extern SDLRPCParameterName const SDLRPCParameterNameFileType; +extern SDLRPCParameterName const SDLRPCParameterNameFirmness; +extern SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision; +extern SDLRPCParameterName const SDLRPCParameterNameFreeModules; +extern SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger; +extern SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction; +extern SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameFuelCutoffStatus; +extern SDLRPCParameterName const SDLRPCParameterNameFuelLevel; +extern SDLRPCParameterName const SDLRPCParameterNameFuelLevelState; +extern SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode; +extern SDLRPCParameterName const SDLRPCParameterNameFuelRange; +extern SDLRPCParameterName const SDLRPCParameterNameFullAppID; +extern SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameGPS; +extern SDLRPCParameterName const SDLRPCParameterNameGraphic; +extern SDLRPCParameterName const SDLRPCParameterNameGraphicSupported; +extern SDLRPCParameterName const SDLRPCParameterNameGreen; +extern SDLRPCParameterName const SDLRPCParameterNameHandledRPCs; +extern SDLRPCParameterName const SDLRPCParameterNameHapticRectData; +extern SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported; +extern SDLRPCParameterName const SDLRPCParameterNameHardware; +extern SDLRPCParameterName const SDLRPCParameterNameHashId; +extern SDLRPCParameterName const SDLRPCParameterNameHDOP; +extern SDLRPCParameterName const SDLRPCParameterNameHDChannel; +extern SDLRPCParameterName const SDLRPCParameterNameHDChannelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHDRadioEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHDRadioEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeading; +extern SDLRPCParameterName const SDLRPCParameterNameHeadLampStatus; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingLevel; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingLevelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameHeatingEnabledAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsEnable; +extern SDLRPCParameterName const SDLRPCParameterNameHeight; +extern SDLRPCParameterName const SDLRPCParameterNameHelpPrompt; +extern SDLRPCParameterName const SDLRPCParameterNameHighBeamsOn; +extern SDLRPCParameterName const SDLRPCParameterNameHMICapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguage; +extern SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguageDesired; +extern SDLRPCParameterName const SDLRPCParameterNameHMILevel; +extern SDLRPCParameterName const SDLRPCParameterNameHMIPermissions; +extern SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlData; +extern SDLRPCParameterName const SDLRPCParameterNameHMIZoneCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameHorizontalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameHorizontalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameHour; +extern SDLRPCParameterName const SDLRPCParameterNameHourlyForecast; +extern SDLRPCParameterName const SDLRPCParameterNameHours; +extern SDLRPCParameterName const SDLRPCParameterNameHumidity; +extern SDLRPCParameterName const SDLRPCParameterNameHybridAppPreference; +extern SDLRPCParameterName const SDLRPCParameterNameIconResumed; +extern SDLRPCParameterName const SDLRPCParameterNameId; +extern SDLRPCParameterName const SDLRPCParameterNameIgnitionStableStatus; +extern SDLRPCParameterName const SDLRPCParameterNameIgnitionStatus; +extern SDLRPCParameterName const SDLRPCParameterNameImage; +extern SDLRPCParameterName const SDLRPCParameterNameImageFields; +extern SDLRPCParameterName const SDLRPCParameterNameImageResolution; +extern SDLRPCParameterName const SDLRPCParameterNameImageSupported; +extern SDLRPCParameterName const SDLRPCParameterNameImageTemplate; +extern SDLRPCParameterName const SDLRPCParameterNameImageType; +extern SDLRPCParameterName const SDLRPCParameterNameImageTypeSupported; +extern SDLRPCParameterName const SDLRPCParameterNameInfo; +extern SDLRPCParameterName const SDLRPCParameterNameInitialPrompt; +extern SDLRPCParameterName const SDLRPCParameterNameInitialText; +extern SDLRPCParameterName const SDLRPCParameterNameInnerLeftRear; +extern SDLRPCParameterName const SDLRPCParameterNameInnerRightRear; +extern SDLRPCParameterName const SDLRPCParameterNameInstantFuelConsumption; +extern SDLRPCParameterName const SDLRPCParameterNameInstructions; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetId; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetIdList; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionLayout; +extern SDLRPCParameterName const SDLRPCParameterNameInteractionMode; +extern SDLRPCParameterName const SDLRPCParameterNameIsExplicit; +extern SDLRPCParameterName const SDLRPCParameterNameIsHighlighted; +extern SDLRPCParameterName const SDLRPCParameterNameIsMediaApplication; +extern SDLRPCParameterName const SDLRPCParameterNameIsSubscribed; +extern SDLRPCParameterName const SDLRPCParameterNameJunctionType; +extern SDLRPCParameterName const SDLRPCParameterNameKeepContext; +extern SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout; +extern SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties; +extern SDLRPCParameterName const SDLRPCParameterNameKeypressMode; +extern SDLRPCParameterName const SDLRPCParameterNameLabel; +extern SDLRPCParameterName const SDLRPCParameterNameLanguage; +extern SDLRPCParameterName const SDLRPCParameterNameLanguageDesired; +extern SDLRPCParameterName const SDLRPCParameterNameLatitudeDegrees; +extern SDLRPCParameterName const SDLRPCParameterNameLeftFront; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRear; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameLength; +extern SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameLightControlData; +extern SDLRPCParameterName const SDLRPCParameterNameLightState; +extern SDLRPCParameterName const SDLRPCParameterNameLimitedCharacterList; +extern SDLRPCParameterName const SDLRPCParameterNameLocality; +extern SDLRPCParameterName const SDLRPCParameterNameLocation; +extern SDLRPCParameterName const SDLRPCParameterNameLocationCoordinate; +extern SDLRPCParameterName const SDLRPCParameterNameLocationDescription; +extern SDLRPCParameterName const SDLRPCParameterNameLocationDetails; +extern SDLRPCParameterName const SDLRPCParameterNameLocationImage; +extern SDLRPCParameterName const SDLRPCParameterNameLocationName; +extern SDLRPCParameterName const SDLRPCParameterNameLongitudeDegrees; +extern SDLRPCParameterName const SDLRPCParameterNameLongPress; +extern SDLRPCParameterName const SDLRPCParameterNameLongPressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameLowBeamsOn; +extern SDLRPCParameterName const SDLRPCParameterNameMainField1; +extern SDLRPCParameterName const SDLRPCParameterNameMainField2; +extern SDLRPCParameterName const SDLRPCParameterNameMainField3; +extern SDLRPCParameterName const SDLRPCParameterNameMainField4; +extern SDLRPCParameterName const SDLRPCParameterNameMainField1Type; +extern SDLRPCParameterName const SDLRPCParameterNameMainField2Type; +extern SDLRPCParameterName const SDLRPCParameterNameMainField3Type; +extern SDLRPCParameterName const SDLRPCParameterNameMainField4Type; +extern SDLRPCParameterName const SDLRPCParameterNameMajorVersion; +extern SDLRPCParameterName const SDLRPCParameterNameMake; +extern SDLRPCParameterName const SDLRPCParameterNameManeuverComplete; +extern SDLRPCParameterName const SDLRPCParameterNameManualTextEntry; +extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness; +extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabledAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMassageMode; +extern SDLRPCParameterName const SDLRPCParameterNameMassageModeAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMemoryAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMassageZone; +extern SDLRPCParameterName const SDLRPCParameterNameMaxBitrate; +extern SDLRPCParameterName const SDLRPCParameterNameMaxDuration; +extern SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount; +extern SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity; +extern SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount; +extern SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount; +extern SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts; +extern SDLRPCParameterName const SDLRPCParameterNameMediaAlbum; +extern SDLRPCParameterName const SDLRPCParameterNameMediaArtist; +extern SDLRPCParameterName const SDLRPCParameterNameMediaClock; +extern SDLRPCParameterName const SDLRPCParameterNameMediaClockFormats; +extern SDLRPCParameterName const SDLRPCParameterNameMediaServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameMediaServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameMediaTitle; +extern SDLRPCParameterName const SDLRPCParameterNameMediaTrack; +extern SDLRPCParameterName const SDLRPCParameterNameMediaType; +extern SDLRPCParameterName const SDLRPCParameterNameMemory; +extern SDLRPCParameterName const SDLRPCParameterNameMenuIcon; +extern SDLRPCParameterName const SDLRPCParameterNameMenuId; +extern SDLRPCParameterName const SDLRPCParameterNameMenuName; +extern SDLRPCParameterName const SDLRPCParameterNameMenuParams; +extern SDLRPCParameterName const SDLRPCParameterNameMenuTitle; +extern SDLRPCParameterName const SDLRPCParameterNameMessageData; +extern SDLRPCParameterName const SDLRPCParameterNameMessageDataResult; +extern SDLRPCParameterName const SDLRPCParameterNameMessageLength; +extern SDLRPCParameterName const SDLRPCParameterNameMetadataTags; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BeltDeployed; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow2BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameMiddleRow3BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameMillisecond; +extern SDLRPCParameterName const SDLRPCParameterNameMinorVersion; +extern SDLRPCParameterName const SDLRPCParameterNameMinute; +extern SDLRPCParameterName const SDLRPCParameterNameMinuteForecast; +extern SDLRPCParameterName const SDLRPCParameterNameMinutes; +extern SDLRPCParameterName const SDLRPCParameterNameModel; +extern SDLRPCParameterName const SDLRPCParameterNameModuleData; +extern SDLRPCParameterName const SDLRPCParameterNameModuleName; +extern SDLRPCParameterName const SDLRPCParameterNameModuleType; +extern SDLRPCParameterName const SDLRPCParameterNameModelYear; +extern SDLRPCParameterName const SDLRPCParameterNameMonoAudioOutputMuted; +extern SDLRPCParameterName const SDLRPCParameterNameMonth; +extern SDLRPCParameterName const SDLRPCParameterNameMoonPhase; +extern SDLRPCParameterName const SDLRPCParameterNameMultidayForecast; +extern SDLRPCParameterName const SDLRPCParameterNameMultipleEvents; +extern SDLRPCParameterName const SDLRPCParameterNameMultiTouchAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameMuteAudio; +extern SDLRPCParameterName const SDLRPCParameterNameMyKey; +extern SDLRPCParameterName const SDLRPCParameterNameName; +extern SDLRPCParameterName const SDLRPCParameterNameNavigation; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationCapability; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationText; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationText1; +extern SDLRPCParameterName const SDLRPCParameterNameNavigationText2; +extern SDLRPCParameterName const SDLRPCParameterNameNearestStormBearing; +extern SDLRPCParameterName const SDLRPCParameterNameNearestStormDistance; +extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistance; +extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistanceScale; +extern SDLRPCParameterName const SDLRPCParameterNameNextInstructionETA; +extern SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon; +extern SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName; +extern SDLRPCParameterName const SDLRPCParameterNameNicknames; +extern SDLRPCParameterName const SDLRPCParameterNameNightColorScheme; +extern SDLRPCParameterName const SDLRPCParameterNameNotification; +extern SDLRPCParameterName const SDLRPCParameterNameNumber; +extern SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameNumberTicks; +extern SDLRPCParameterName const SDLRPCParameterNameOdometer; +extern SDLRPCParameterName const SDLRPCParameterNameOffset; +extern SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus; +extern SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameOperationName; +extern SDLRPCParameterName const SDLRPCParameterNameOrigin; +extern SDLRPCParameterName const SDLRPCParameterNameOriginApp; +extern SDLRPCParameterName const SDLRPCParameterNameOS; +extern SDLRPCParameterName const SDLRPCParameterNameOSVersion; +extern SDLRPCParameterName const SDLRPCParameterNameParameterPermissions; +extern SDLRPCParameterName const SDLRPCParameterNameParameters; +extern SDLRPCParameterName const SDLRPCParameterNameParentId; +extern SDLRPCParameterName const SDLRPCParameterNameParkBrakeActive; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed; +extern SDLRPCParameterName const SDLRPCParameterNamePatchVersion; +extern SDLRPCParameterName const SDLRPCParameterNamePCMStreamCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNamePDOP; +extern SDLRPCParameterName const SDLRPCParameterNamePermissionItem; +extern SDLRPCParameterName const SDLRPCParameterNamePersistentFile; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneCall; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneCapability; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneNumber; +extern SDLRPCParameterName const SDLRPCParameterNamePhoneRoaming; +extern SDLRPCParameterName const SDLRPCParameterNamePlaylistName; +extern SDLRPCParameterName const SDLRPCParameterNamePlayTone; +extern SDLRPCParameterName const SDLRPCParameterNamePosition; +extern SDLRPCParameterName const SDLRPCParameterNamePostalCode; +extern SDLRPCParameterName const SDLRPCParameterNamePowerModeActive; +extern SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus; +extern SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipProbability; +extern SDLRPCParameterName const SDLRPCParameterNamePrecipType; +extern SDLRPCParameterName const SDLRPCParameterNamePreferredResolution; +extern SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech; +extern SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNamePressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNamePressure; +extern SDLRPCParameterName const SDLRPCParameterNamePressureTelltale; +extern SDLRPCParameterName const SDLRPCParameterNamePrimaryAudioSource; +extern SDLRPCParameterName const SDLRPCParameterNamePrimaryColor; +extern SDLRPCParameterName const SDLRPCParameterNamePRNDL; +extern SDLRPCParameterName const SDLRPCParameterNameProgramIdentification; +extern SDLRPCParameterName const SDLRPCParameterNameProgressIndicator; +extern SDLRPCParameterName const SDLRPCParameterNameProperties; +extern SDLRPCParameterName const SDLRPCParameterNameProgramService; +extern SDLRPCParameterName const SDLRPCParameterNameProgramType; +extern SDLRPCParameterName const SDLRPCParameterNamePrompt; +extern SDLRPCParameterName const SDLRPCParameterNameQueueCurrentTrackNumber; +extern SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackDuration; +extern SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackProgress; +extern SDLRPCParameterName const SDLRPCParameterNameQueueTotalTrackCount; +extern SDLRPCParameterName const SDLRPCParameterNameRadioBandAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRadioControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameRadioControlData; +extern SDLRPCParameterName const SDLRPCParameterNameRadioEnable; +extern SDLRPCParameterName const SDLRPCParameterNameRadioEnableAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRange; +extern SDLRPCParameterName const SDLRPCParameterNameRDSData; +extern SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar; +extern SDLRPCParameterName const SDLRPCParameterNameReason; +extern SDLRPCParameterName const SDLRPCParameterNameRect; +extern SDLRPCParameterName const SDLRPCParameterNameRed; +extern SDLRPCParameterName const SDLRPCParameterNameRegion; +extern SDLRPCParameterName const SDLRPCParameterNameRegions; +extern SDLRPCParameterName const SDLRPCParameterNameRemoteControlCapability; +extern SDLRPCParameterName const SDLRPCParameterNameRequest; +extern SDLRPCParameterName const SDLRPCParameterNameRequestServiceActive; +extern SDLRPCParameterName const SDLRPCParameterNameRequestSubType; +extern SDLRPCParameterName const SDLRPCParameterNameRequestType; +extern SDLRPCParameterName const SDLRPCParameterNameReserved; +extern SDLRPCParameterName const SDLRPCParameterNameResolution; +extern SDLRPCParameterName const SDLRPCParameterNameResolutionHeight; +extern SDLRPCParameterName const SDLRPCParameterNameResolutionWidth; +extern SDLRPCParameterName const SDLRPCParameterNameResponse; +extern SDLRPCParameterName const SDLRPCParameterNameResult; +extern SDLRPCParameterName const SDLRPCParameterNameResultCode; +extern SDLRPCParameterName const SDLRPCParameterNameRightFront; +extern SDLRPCParameterName const SDLRPCParameterNameRightRear; +extern SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted; +extern SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted; +extern SDLRPCParameterName const SDLRPCParameterNameRolloverEvent; +extern SDLRPCParameterName const SDLRPCParameterNameRows; +extern SDLRPCParameterName const SDLRPCParameterNameRPCName; +extern SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion; +extern SDLRPCParameterName const SDLRPCParameterNameRPM; +extern SDLRPCParameterName const SDLRPCParameterNameRadioText; +extern SDLRPCParameterName const SDLRPCParameterNameSamplingRate; +extern SDLRPCParameterName const SDLRPCParameterNameSatellites; +extern SDLRPCParameterName const SDLRPCParameterNameScreenParams; +extern SDLRPCParameterName const SDLRPCParameterNameScrollableMessageBody; +extern SDLRPCParameterName const SDLRPCParameterNameSDLVersion; +extern SDLRPCParameterName const SDLRPCParameterNameSearchAddress; +extern SDLRPCParameterName const SDLRPCParameterNameSeatControlData; +extern SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryColor; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryImage; +extern SDLRPCParameterName const SDLRPCParameterNameSecondaryText; +extern SDLRPCParameterName const SDLRPCParameterNameSecond; +extern SDLRPCParameterName const SDLRPCParameterNameSeconds; +extern SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled; +extern SDLRPCParameterName const SDLRPCParameterNameServiceActive; +extern SDLRPCParameterName const SDLRPCParameterNameServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameServiceIcon; +extern SDLRPCParameterName const SDLRPCParameterNameServiceID; +extern SDLRPCParameterName const SDLRPCParameterNameServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameServiceName; +extern SDLRPCParameterName const SDLRPCParameterNameServicePublished; +extern SDLRPCParameterName const SDLRPCParameterNameServiceSpecificResult; +extern SDLRPCParameterName const SDLRPCParameterNameServiceType; +extern SDLRPCParameterName const SDLRPCParameterNameServiceUri; +extern SDLRPCParameterName const SDLRPCParameterNameSeverity; +extern SDLRPCParameterName const SDLRPCParameterNameShortPress; +extern SDLRPCParameterName const SDLRPCParameterNameShortPressAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSignalLevelStatus; +extern SDLRPCParameterName const SDLRPCParameterNameSignalChangeThreshold; +extern SDLRPCParameterName const SDLRPCParameterNameSignalChangeThresholdAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSignalStrength; +extern SDLRPCParameterName const SDLRPCParameterNameSignalStrengthAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSiriusXMRadioAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSISData; +extern SDLRPCParameterName const SDLRPCParameterNameSISDataAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSliderFooter; +extern SDLRPCParameterName const SDLRPCParameterNameSliderHeader; +extern SDLRPCParameterName const SDLRPCParameterNameSliderPosition; +extern SDLRPCParameterName const SDLRPCParameterNameSoftButtonCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameSoftButtonId; +extern SDLRPCParameterName const SDLRPCParameterNameSoftButtons; +extern SDLRPCParameterName const SDLRPCParameterNameSource; +extern SDLRPCParameterName const SDLRPCParameterNameSourceAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSpaceAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameSpeechCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameSpeed; +extern SDLRPCParameterName const SDLRPCParameterNameRGBColorSpaceAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameStartTime; +extern SDLRPCParameterName const SDLRPCParameterNameState; +extern SDLRPCParameterName const SDLRPCParameterNameStateAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameStateOfCharge; +extern SDLRPCParameterName const SDLRPCParameterNameStationIDNumber; +extern SDLRPCParameterName const SDLRPCParameterNameStationLongName; +extern SDLRPCParameterName const SDLRPCParameterNameStationLocation; +extern SDLRPCParameterName const SDLRPCParameterNameStationMessage; +extern SDLRPCParameterName const SDLRPCParameterNameStationShortName; +extern SDLRPCParameterName const SDLRPCParameterNameStatus; +extern SDLRPCParameterName const SDLRPCParameterNameStatusAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameStatusBar; +extern SDLRPCParameterName const SDLRPCParameterNameSteeringWheelAngle; +extern SDLRPCParameterName const SDLRPCParameterNameStereoAudioOutputMuted; +extern SDLRPCParameterName const SDLRPCParameterNameSubAdministrativeArea; +extern SDLRPCParameterName const SDLRPCParameterNameSubLocality; +extern SDLRPCParameterName const SDLRPCParameterNameSubscribe; +extern SDLRPCParameterName const SDLRPCParameterNameSubThoroughfare; +extern SDLRPCParameterName const SDLRPCParameterNameSuccess; +extern SDLRPCParameterName const SDLRPCParameterNameSummary; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedFormats; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedLights; +extern SDLRPCParameterName const SDLRPCParameterNameSyncFileName; +extern SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion; +extern SDLRPCParameterName const SDLRPCParameterNameSystemAction; +extern SDLRPCParameterName const SDLRPCParameterNameSystemCapability; +extern SDLRPCParameterName const SDLRPCParameterNameSystemCapabilityType; +extern SDLRPCParameterName const SDLRPCParameterNameSystemContext; +extern SDLRPCParameterName const SDLRPCParameterNameSystemFile; +extern SDLRPCParameterName const SDLRPCParameterNameSystemSoftwareVersion; +extern SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackDuration; +extern SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackProgress; +extern SDLRPCParameterName const SDLRPCParameterNameTrafficAnnouncementIdentification; +extern SDLRPCParameterName const SDLRPCParameterNameTargetId; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureLow; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit; +extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTertiaryText; +extern SDLRPCParameterName const SDLRPCParameterNameText; +extern SDLRPCParameterName const SDLRPCParameterNameTextFields; +extern SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameThoroughfare; +extern SDLRPCParameterName const SDLRPCParameterNameTime; +extern SDLRPCParameterName const SDLRPCParameterNameTimeIssued; +extern SDLRPCParameterName const SDLRPCParameterNameTimeout; +extern SDLRPCParameterName const SDLRPCParameterNameTimeoutCapitalized; +extern SDLRPCParameterName const SDLRPCParameterNameTimeoutPrompt; +extern SDLRPCParameterName const SDLRPCParameterNameTS; +extern SDLRPCParameterName const SDLRPCParameterNameTimeStamp; +extern SDLRPCParameterName const SDLRPCParameterNameTimeToDestination; +extern SDLRPCParameterName const SDLRPCParameterNameTimezoneHourOffset; +extern SDLRPCParameterName const SDLRPCParameterNameTimezoneMinuteOffset; +extern SDLRPCParameterName const SDLRPCParameterNameTirePressure; +extern SDLRPCParameterName const SDLRPCParameterNameTitle; +extern SDLRPCParameterName const SDLRPCParameterNameTotalDistance; +extern SDLRPCParameterName const SDLRPCParameterNameTouchEventAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameTPMS; +extern SDLRPCParameterName const SDLRPCParameterNameTrafficProgramIdentification; +extern SDLRPCParameterName const SDLRPCParameterNameTriggerSource; +extern SDLRPCParameterName const SDLRPCParameterNameTrim; +extern SDLRPCParameterName const SDLRPCParameterNameTryAgainTime; +extern SDLRPCParameterName const SDLRPCParameterNameTTSChunks; +extern SDLRPCParameterName const SDLRPCParameterNameTTSName; +extern SDLRPCParameterName const SDLRPCParameterNameTurnIcon; +extern SDLRPCParameterName const SDLRPCParameterNameTurnList; +extern SDLRPCParameterName const SDLRPCParameterNameTurnSignal; +extern SDLRPCParameterName const SDLRPCParameterNameType; +extern SDLRPCParameterName const SDLRPCParameterNameUnit; +extern SDLRPCParameterName const SDLRPCParameterNameUnsubscribe; +extern SDLRPCParameterName const SDLRPCParameterNameUpdatedAppServiceRecord; +extern SDLRPCParameterName const SDLRPCParameterNameUpdateMode; +extern SDLRPCParameterName const SDLRPCParameterNameUpdateReason; +extern SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameURL; +extern SDLRPCParameterName const SDLRPCParameterNameURLUppercase; +extern SDLRPCParameterName const SDLRPCParameterNameUserDisallowed; +extern SDLRPCParameterName const SDLRPCParameterNameUserSelected; +extern SDLRPCParameterName const SDLRPCParameterNameUTCDay; +extern SDLRPCParameterName const SDLRPCParameterNameUTCHours; +extern SDLRPCParameterName const SDLRPCParameterNameUTCMinutes; +extern SDLRPCParameterName const SDLRPCParameterNameUTCMonth; +extern SDLRPCParameterName const SDLRPCParameterNameUTCSeconds; +extern SDLRPCParameterName const SDLRPCParameterNameUTCYear; +extern SDLRPCParameterName const SDLRPCParameterNameValue; +extern SDLRPCParameterName const SDLRPCParameterNameVDOP; +extern SDLRPCParameterName const SDLRPCParameterNameVehicleType; +extern SDLRPCParameterName const SDLRPCParameterNameVerticalPosition; +extern SDLRPCParameterName const SDLRPCParameterNameVerticalPositionAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameVideoCodec; +extern SDLRPCParameterName const SDLRPCParameterNameVideoProtocol; +extern SDLRPCParameterName const SDLRPCParameterNameVideoStreaming; +extern SDLRPCParameterName const SDLRPCParameterNameVideoStreamingCapability; +extern SDLRPCParameterName const SDLRPCParameterNameVideoStreamingState; +extern SDLRPCParameterName const SDLRPCParameterNameVisibility; +extern SDLRPCParameterName const SDLRPCParameterNameVentilationMode; +extern SDLRPCParameterName const SDLRPCParameterNameVentilationModeAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameVIN; +extern SDLRPCParameterName const SDLRPCParameterNameVoiceRecognitionOn; +extern SDLRPCParameterName const SDLRPCParameterNameVolume; +extern SDLRPCParameterName const SDLRPCParameterNameVolumeAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameVRCapabilities; +extern SDLRPCParameterName const SDLRPCParameterNameVRCommands; +extern SDLRPCParameterName const SDLRPCParameterNameVRHelp; +extern SDLRPCParameterName const SDLRPCParameterNameVRHelpTitle; +extern SDLRPCParameterName const SDLRPCParameterNameVRSynonyms; +extern SDLRPCParameterName const SDLRPCParameterNameWayPoints; +extern SDLRPCParameterName const SDLRPCParameterNameWayPointType; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherForLocationSupported; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherIcon; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherServiceData; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherServiceManifest; +extern SDLRPCParameterName const SDLRPCParameterNameWeatherSummary; +extern SDLRPCParameterName const SDLRPCParameterNameWidth; +extern SDLRPCParameterName const SDLRPCParameterNameWindBearing; +extern SDLRPCParameterName const SDLRPCParameterNameWindGust; +extern SDLRPCParameterName const SDLRPCParameterNameWindSpeed; +extern SDLRPCParameterName const SDLRPCParameterNameWiperStatus; +extern SDLRPCParameterName const SDLRPCParameterNameX; +extern SDLRPCParameterName const SDLRPCParameterNameY; +extern SDLRPCParameterName const SDLRPCParameterNameYear; + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCParameterNames.m b/SmartDeviceLink/SDLRPCParameterNames.m new file mode 100644 index 000000000..0aae8440d --- /dev/null +++ b/SmartDeviceLink/SDLRPCParameterNames.m @@ -0,0 +1,673 @@ +// SDLRPCParameterNames.h +// + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +SDLRPCParameterName const SDLRPCParameterNameACEnable = @"acEnable"; +SDLRPCParameterName const SDLRPCParameterNameACEnableAvailable = @"acEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameACMaxEnable = @"acMaxEnable"; +SDLRPCParameterName const SDLRPCParameterNameACMaxEnableAvailable = @"acMaxEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameAccelerationPedalPosition = @"accPedalPosition"; +SDLRPCParameterName const SDLRPCParameterNameAcceptsWayPoints = @"acceptsWayPoints"; +SDLRPCParameterName const SDLRPCParameterNameAction = @"action"; +SDLRPCParameterName const SDLRPCParameterNameActual = @"actual"; +SDLRPCParameterName const SDLRPCParameterNameAddress = @"address"; +SDLRPCParameterName const SDLRPCParameterNameAddressLines = @"addressLines"; +SDLRPCParameterName const SDLRPCParameterNameAdministrativeArea = @"administrativeArea"; +SDLRPCParameterName const SDLRPCParameterNameAirbagStatus = @"airbagStatus"; +SDLRPCParameterName const SDLRPCParameterNameAlerts = @"alerts"; +SDLRPCParameterName const SDLRPCParameterNameAlertText1 = @"alertText1"; +SDLRPCParameterName const SDLRPCParameterNameAlertText2 = @"alertText2"; +SDLRPCParameterName const SDLRPCParameterNameAlertText3 = @"alertText3"; +SDLRPCParameterName const SDLRPCParameterNameAlignment = @"alignment"; +SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers = @"allowAppConsumers"; +SDLRPCParameterName const SDLRPCParameterNameAllowed = @"allowed"; +SDLRPCParameterName const SDLRPCParameterNameAllocatedModules = @"allocatedModules"; +SDLRPCParameterName const SDLRPCParameterNameAltitude = @"altitude"; +SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters = @"altitudeMeters"; +SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus = @"ambientLightSensorStatus"; +SDLRPCParameterName const SDLRPCParameterNameAmbientLightStatus = @"ambientLightStatus"; +SDLRPCParameterName const SDLRPCParameterNameApparentTemperature = @"apparentTemperature"; +SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureHigh = @"apparentTemperatureHigh"; +SDLRPCParameterName const SDLRPCParameterNameApparentTemperatureLow = @"apparentTemperatureLow"; +SDLRPCParameterName const SDLRPCParameterNameAppBundleId = @"appBundleID"; +SDLRPCParameterName const SDLRPCParameterNameAppHMIType = @"appHMIType"; +SDLRPCParameterName const SDLRPCParameterNameAppId = @"appID"; +SDLRPCParameterName const SDLRPCParameterNameAppInfo = @"appInfo"; +SDLRPCParameterName const SDLRPCParameterNameAppName = @"appName"; +SDLRPCParameterName const SDLRPCParameterNameAppServiceId = @"appServiceId"; +SDLRPCParameterName const SDLRPCParameterNameAppServiceManifest = @"appServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord = @"appServiceRecord"; +SDLRPCParameterName const SDLRPCParameterNameAppServices = @"appServices"; +SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities = @"appServicesCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameAppDisplayName = @"appDisplayName"; +SDLRPCParameterName const SDLRPCParameterNameAppVersion = @"appVersion"; +SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities = @"audioControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameAudioControlData = @"audioControlData"; +SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities = @"audioPassThruCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; +SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; +SDLRPCParameterName const SDLRPCParameterNameAudioStreamingIndicator = @"audioStreamingIndicator"; +SDLRPCParameterName const SDLRPCParameterNameAudioStreamingState = @"audioStreamingState"; +SDLRPCParameterName const SDLRPCParameterNameAudioType = @"audioType"; +SDLRPCParameterName const SDLRPCParameterNameAuthToken = @"authToken"; +SDLRPCParameterName const SDLRPCParameterNameAutoCompleteText = @"autoCompleteText"; +SDLRPCParameterName const SDLRPCParameterNameAutoModeEnable = @"autoModeEnable"; +SDLRPCParameterName const SDLRPCParameterNameAutoModeEnableAvailable = @"autoModeEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameAuxECallNotificationStatus = @"auxECallNotificationStatus"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDs = @"availableHDs"; +SDLRPCParameterName const SDLRPCParameterNameAvailableHDsAvailable = @"availableHDsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameBackgroundColor = @"backgroundColor"; +SDLRPCParameterName const SDLRPCParameterNameBackTiltAngle = @"backTiltAngle"; +SDLRPCParameterName const SDLRPCParameterNameBackTiltAngleAvailable = @"backTiltAngleAvailable"; +SDLRPCParameterName const SDLRPCParameterNameBackVerticalPosition = @"backVerticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameBackVerticalPositionAvailable = @"backVerticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameBand = @"band"; +SDLRPCParameterName const SDLRPCParameterNameBatteryLevelStatus = @"battLevelStatus"; +SDLRPCParameterName const SDLRPCParameterNameBearing = @"bearing"; +SDLRPCParameterName const SDLRPCParameterNameBeltStatus = @"beltStatus"; +SDLRPCParameterName const SDLRPCParameterNameBitsPerSample = @"bitsPerSample"; +SDLRPCParameterName const SDLRPCParameterNameBodyInformation = @"bodyInformation"; +SDLRPCParameterName const SDLRPCParameterNameBlue = @"blue"; +SDLRPCParameterName const SDLRPCParameterNameBluetoothIconOn = @"btIconOn"; +SDLRPCParameterName const SDLRPCParameterNameBulkData = @"bulkData"; +SDLRPCParameterName const SDLRPCParameterNameButtonCapabilities = @"buttonCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameButtonEventMode = @"buttonEventMode"; +SDLRPCParameterName const SDLRPCParameterNameButtonName = @"buttonName"; +SDLRPCParameterName const SDLRPCParameterNameButtonPressMode = @"buttonPressMode"; +SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled = @"coolingEnabled"; +SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable = @"coolingEnabledAvailable"; +SDLRPCParameterName const SDLRPCParameterNameCoolingLevel = @"coolingLevel"; +SDLRPCParameterName const SDLRPCParameterNameCoolingLevelAvailable = @"coolingLevelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameCoordinate = @"c"; +SDLRPCParameterName const SDLRPCParameterNameCallActive = @"callActive"; +SDLRPCParameterName const SDLRPCParameterNameCarModeStatus = @"carModeStatus"; +SDLRPCParameterName const SDLRPCParameterNameCarrier = @"carrier"; +SDLRPCParameterName const SDLRPCParameterNameChannelId = @"channelId"; +SDLRPCParameterName const SDLRPCParameterNameChannelName = @"channelName"; +SDLRPCParameterName const SDLRPCParameterNameChannelSetting = @"channelSetting"; +SDLRPCParameterName const SDLRPCParameterNameCharacterSet = @"characterSet"; +SDLRPCParameterName const SDLRPCParameterNameChoiceId = @"choiceID"; +SDLRPCParameterName const SDLRPCParameterNameChoiceSet = @"choiceSet"; +SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnable = @"circulateAirEnable"; +SDLRPCParameterName const SDLRPCParameterNameCirculateAirEnableAvailable = @"circulateAirEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameClimateControlData = @"climateControlData"; +SDLRPCParameterName const SDLRPCParameterNameClimateControlCapabilities = @"climateControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameCloudCover = @"cloudCover"; +SDLRPCParameterName const SDLRPCParameterNameClusterModes = @"clusterModes"; +SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus = @"clusterModeStatus"; +SDLRPCParameterName const SDLRPCParameterNameColor = @"color"; +SDLRPCParameterName const SDLRPCParameterNameCommandIcon = @"cmdIcon"; +SDLRPCParameterName const SDLRPCParameterNameCommandId = @"cmdID"; +SDLRPCParameterName const SDLRPCParameterNameCompassDirection = @"compassDirection"; +SDLRPCParameterName const SDLRPCParameterNameCorrelationId = @"correlationID"; +SDLRPCParameterName const SDLRPCParameterNameCountryCode = @"countryCode"; +SDLRPCParameterName const SDLRPCParameterNameCountryName = @"countryName"; +SDLRPCParameterName const SDLRPCParameterNameCRC = @"crc"; +SDLRPCParameterName const SDLRPCParameterNameClockText = @"CT"; +SDLRPCParameterName const SDLRPCParameterNameCloudAppVehicleID = @"cloudAppVehicleID"; +SDLRPCParameterName const SDLRPCParameterNameCloudTransportType = @"cloudTransportType"; +SDLRPCParameterName const SDLRPCParameterNameCurrentForecast = @"currentForecast"; +SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported = @"currentForecastSupported"; +SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature = @"currentTemperature"; +SDLRPCParameterName const SDLRPCParameterNameCushion = @"cushion"; +SDLRPCParameterName const SDLRPCParameterNameCustomButtonId = @"customButtonID"; +SDLRPCParameterName const SDLRPCParameterNameCustomPresets = @"customPresets"; +SDLRPCParameterName const SDLRPCParameterNameData = @"data"; +SDLRPCParameterName const SDLRPCParameterNameDataResult = @"dataResult"; +SDLRPCParameterName const SDLRPCParameterNameDataType = @"dataType"; +SDLRPCParameterName const SDLRPCParameterNameDay = @"day"; +SDLRPCParameterName const SDLRPCParameterNameDayColorScheme = @"dayColorScheme"; +SDLRPCParameterName const SDLRPCParameterNameDefrostZone = @"defrostZone"; +SDLRPCParameterName const SDLRPCParameterNameDefrostZoneAvailable = @"defrostZoneAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDeliveryMode = @"deliveryMode"; +SDLRPCParameterName const SDLRPCParameterNameDensity = @"density"; +SDLRPCParameterName const SDLRPCParameterNameDensityAvailable = @"densityAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDesiredTemperature = @"desiredTemperature"; +SDLRPCParameterName const SDLRPCParameterNameDesiredTemperatureAvailable = @"desiredTemperatureAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDestination = @"destination"; +SDLRPCParameterName const SDLRPCParameterNameDestinationETA = @"destinationETA"; +SDLRPCParameterName const SDLRPCParameterNameDeviceInfo = @"deviceInfo"; +SDLRPCParameterName const SDLRPCParameterNameDeviceStatus = @"deviceStatus"; +SDLRPCParameterName const SDLRPCParameterNameDetails = @"details"; +SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled = @"dialNumberEnabled"; +SDLRPCParameterName const SDLRPCParameterNameDIDLocation = @"didLocation"; +SDLRPCParameterName const SDLRPCParameterNameDIDResult = @"didResult"; +SDLRPCParameterName const SDLRPCParameterNameDimension = @"dimension"; +SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities = @"displayCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameDisplayLayout = @"displayLayout"; +SDLRPCParameterName const SDLRPCParameterNameDisplayMode = @"displayMode"; +SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable = @"displayModeUnitAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDisplayType = @"displayType"; +SDLRPCParameterName const SDLRPCParameterNameDistanceToEmpty = @"distanceToEmpty"; +SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuver = @"distanceToManeuver"; +SDLRPCParameterName const SDLRPCParameterNameDistanceToManeuverScale = @"distanceToManeuverScale"; +SDLRPCParameterName const SDLRPCParameterNameDistanceUnitAvailable = @"distanceUnitAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDistanceUnit = @"distanceUnit"; +SDLRPCParameterName const SDLRPCParameterNameDoublePressAvailable = @"doublePressAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDriverAirbagDeployed = @"driverAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverBeltDeployed = @"driverBeltDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverBraking = @"driverBraking"; +SDLRPCParameterName const SDLRPCParameterNameDriverBuckleBelted = @"driverBuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameDriverCurtainAirbagDeployed = @"driverCurtainAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverDistractionStatus = @"driverDistractionStatus"; +SDLRPCParameterName const SDLRPCParameterNameDriverDoorAjar = @"driverDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNameDriverKneeAirbagDeployed = @"driverKneeAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDriverSideAirbagDeployed = @"driverSideAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNameDrivingSide = @"drivingSide"; +SDLRPCParameterName const SDLRPCParameterNameDTC = @"dtc"; +SDLRPCParameterName const SDLRPCParameterNameDTCMask = @"dtcMask"; +SDLRPCParameterName const SDLRPCParameterNameDualModeEnable = @"dualModeEnable"; +SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable = @"dualModeEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameDuration = @"duration"; +SDLRPCParameterName const SDLRPCParameterNameE911Override = @"e911Override"; +SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus = @"eCallConfirmationStatus"; +SDLRPCParameterName const SDLRPCParameterNameECallEventActive = @"eCallEventActive"; +SDLRPCParameterName const SDLRPCParameterNameECallInfo = @"eCallInfo"; +SDLRPCParameterName const SDLRPCParameterNameECallNotificationStatus = @"eCallNotificationStatus"; +SDLRPCParameterName const SDLRPCParameterNameECUHeader = @"ecuHeader"; +SDLRPCParameterName const SDLRPCParameterNameECUName = @"ecuName"; +SDLRPCParameterName const SDLRPCParameterNameElectronicParkBrakeStatus = @"electronicParkBrakeStatus"; +SDLRPCParameterName const SDLRPCParameterNameEmergencyEvent = @"emergencyEvent"; +SDLRPCParameterName const SDLRPCParameterNameEmergencyEventType = @"emergencyEventType"; +SDLRPCParameterName const SDLRPCParameterNameEnabled = @"enabled"; +SDLRPCParameterName const SDLRPCParameterNameEndpoint = @"endpoint"; +SDLRPCParameterName const SDLRPCParameterNameEndTime = @"endTime"; +SDLRPCParameterName const SDLRPCParameterNameEngineOilLife = @"engineOilLife"; +SDLRPCParameterName const SDLRPCParameterNameEngineTorque = @"engineTorque"; +SDLRPCParameterName const SDLRPCParameterNameEqualizerAvailable = @"equalizerAvailable"; +SDLRPCParameterName const SDLRPCParameterNameEqualizerMaxChannelId = @"equalizerMaxChannelId"; +SDLRPCParameterName const SDLRPCParameterNameEqualizerSettings = @"equalizerSettings";; +SDLRPCParameterName const SDLRPCParameterNameETA = @"eta"; +SDLRPCParameterName const SDLRPCParameterNameEvent = @"event"; +SDLRPCParameterName const SDLRPCParameterNameExpires = @"expires"; +SDLRPCParameterName const SDLRPCParameterNameExternalTemperature = @"externalTemperature"; +SDLRPCParameterName const SDLRPCParameterNameFanSpeed = @"fanSpeed"; +SDLRPCParameterName const SDLRPCParameterNameFanSpeedAvailable = @"fanSpeedAvailable"; +SDLRPCParameterName const SDLRPCParameterNameFCCFacilityId = @"fccFacilityId"; +SDLRPCParameterName const SDLRPCParameterNameFilename = @"fileName"; +SDLRPCParameterName const SDLRPCParameterNameFilenames = @"filenames"; +SDLRPCParameterName const SDLRPCParameterNameFileType = @"fileType"; +SDLRPCParameterName const SDLRPCParameterNameFirmness = @"firmness"; +SDLRPCParameterName const SDLRPCParameterNameFirmwareRevision = @"firmwareRev"; +SDLRPCParameterName const SDLRPCParameterNameFreeModules = @"freeModules"; +SDLRPCParameterName const SDLRPCParameterNameFrequencyInteger = @"frequencyInteger"; +SDLRPCParameterName const SDLRPCParameterNameFrequencyFraction = @"frequencyFraction"; +SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPosition = @"frontVerticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameFrontVerticalPositionAvailable = @"frontVerticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameFuelCutoffStatus = @"fuelCutoffStatus"; +SDLRPCParameterName const SDLRPCParameterNameFuelLevel = @"fuelLevel"; +SDLRPCParameterName const SDLRPCParameterNameFuelLevelState = @"fuelLevel_State"; +SDLRPCParameterName const SDLRPCParameterNameFuelMaintenanceMode = @"fuelMaintenanceMode"; +SDLRPCParameterName const SDLRPCParameterNameFuelRange = @"fuelRange"; +SDLRPCParameterName const SDLRPCParameterNameFullAppID = @"fullAppID"; +SDLRPCParameterName const SDLRPCParameterNameGetWayPointsEnabled = @"getWayPointsEnabled"; +SDLRPCParameterName const SDLRPCParameterNameGPS = @"gps"; +SDLRPCParameterName const SDLRPCParameterNameGraphic = @"graphic"; +SDLRPCParameterName const SDLRPCParameterNameGraphicSupported = @"graphicSupported"; +SDLRPCParameterName const SDLRPCParameterNameGreen = @"green"; +SDLRPCParameterName const SDLRPCParameterNameHandledRPCs = @"handledRPCs"; +SDLRPCParameterName const SDLRPCParameterNameHapticRectData = @"hapticRectData"; +SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported = @"hapticSpatialDataSupported"; +SDLRPCParameterName const SDLRPCParameterNameHardware = @"hardware"; +SDLRPCParameterName const SDLRPCParameterNameHashId = @"hashID"; +SDLRPCParameterName const SDLRPCParameterNameHDChannel = @"hdChannel"; +SDLRPCParameterName const SDLRPCParameterNameHDChannelAvailable = @"hdChannelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHDOP = @"hdop"; +SDLRPCParameterName const SDLRPCParameterNameHDRadioEnable = @"hdRadioEnable"; +SDLRPCParameterName const SDLRPCParameterNameHDRadioEnableAvailable = @"hdRadioEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeading = @"heading"; +SDLRPCParameterName const SDLRPCParameterNameHeadLampStatus = @"headLampStatus"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPosition = @"headSupportHorizontalPosition"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportHorizontalPositionAvailable = @"headSupportHorizontalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPosition = @"headSupportVerticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameHeadSupportVerticalPositionAvailable = @"headSupportVerticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatingLevel = @"heatingLevel"; +SDLRPCParameterName const SDLRPCParameterNameHeatingLevelAvailable = @"heatingLevelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatingEnabled = @"heatingEnabled"; +SDLRPCParameterName const SDLRPCParameterNameHeatingEnabledAvailable = @"heatingEnabledAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelAvailable = @"heatedSteeringWheelAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldAvailable = @"heatedWindshieldAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowAvailable = @"heatedRearWindowAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsAvailable = @"heatedMirrorsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedSteeringWheelEnable = @"heatedSteeringWheelEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedWindshieldEnable = @"heatedWindshieldEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedRearWindowEnable = @"heatedRearWindowEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeatedMirrorsEnable = @"heatedMirrorsEnable"; +SDLRPCParameterName const SDLRPCParameterNameHeight = @"height"; +SDLRPCParameterName const SDLRPCParameterNameHelpPrompt = @"helpPrompt"; +SDLRPCParameterName const SDLRPCParameterNameHighBeamsOn = @"highBeamsOn"; +SDLRPCParameterName const SDLRPCParameterNameHMICapabilities = @"hmiCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlData = @"hmiSettingsControlData"; +SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguage = @"hmiDisplayLanguage"; +SDLRPCParameterName const SDLRPCParameterNameHMIDisplayLanguageDesired = @"hmiDisplayLanguageDesired"; +SDLRPCParameterName const SDLRPCParameterNameHMILevel = @"hmiLevel"; +SDLRPCParameterName const SDLRPCParameterNameHMILevelLowercase = @"hmilevel"; +SDLRPCParameterName const SDLRPCParameterNameHMIPermissions = @"hmiPermissions"; +SDLRPCParameterName const SDLRPCParameterNameHmiSettingsControlCapabilities = @"hmiSettingsControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameHMIZoneCapabilities = @"hmiZoneCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameHorizontalPosition = @"horizontalPosition"; +SDLRPCParameterName const SDLRPCParameterNameHorizontalPositionAvailable = @"horizontalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameHour = @"hour"; +SDLRPCParameterName const SDLRPCParameterNameHourlyForecast = @"hourlyForecast"; +SDLRPCParameterName const SDLRPCParameterNameHours = @"hours"; +SDLRPCParameterName const SDLRPCParameterNameHumidity = @"humidity"; +SDLRPCParameterName const SDLRPCParameterNameHybridAppPreference = @"hybridAppPreference"; +SDLRPCParameterName const SDLRPCParameterNameIconResumed = @"iconResumed"; +SDLRPCParameterName const SDLRPCParameterNameId = @"id"; +SDLRPCParameterName const SDLRPCParameterNameIgnitionStableStatus = @"ignitionStableStatus"; +SDLRPCParameterName const SDLRPCParameterNameIgnitionStatus = @"ignitionStatus"; +SDLRPCParameterName const SDLRPCParameterNameImage = @"image"; +SDLRPCParameterName const SDLRPCParameterNameImageFields = @"imageFields"; +SDLRPCParameterName const SDLRPCParameterNameImageResolution = @"imageResolution"; +SDLRPCParameterName const SDLRPCParameterNameImageSupported = @"imageSupported"; +SDLRPCParameterName const SDLRPCParameterNameImageTemplate = @"isTemplate"; +SDLRPCParameterName const SDLRPCParameterNameImageType = @"imageType"; +SDLRPCParameterName const SDLRPCParameterNameImageTypeSupported = @"imageTypeSupported"; +SDLRPCParameterName const SDLRPCParameterNameInfo = @"info"; +SDLRPCParameterName const SDLRPCParameterNameInitialPrompt = @"initialPrompt"; +SDLRPCParameterName const SDLRPCParameterNameInitialText = @"initialText"; +SDLRPCParameterName const SDLRPCParameterNameInnerLeftRear = @"innerLeftRear"; +SDLRPCParameterName const SDLRPCParameterNameInnerRightRear = @"innerRightRear"; +SDLRPCParameterName const SDLRPCParameterNameInstantFuelConsumption = @"instantFuelConsumption"; +SDLRPCParameterName const SDLRPCParameterNameInstructions = @"instructions"; +SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetId = @"interactionChoiceSetID"; +SDLRPCParameterName const SDLRPCParameterNameInteractionChoiceSetIdList = @"interactionChoiceSetIDList"; +SDLRPCParameterName const SDLRPCParameterNameInteractionLayout = @"interactionLayout"; +SDLRPCParameterName const SDLRPCParameterNameInteractionMode = @"interactionMode"; +SDLRPCParameterName const SDLRPCParameterNameIsExplicit = @"isExplicit"; +SDLRPCParameterName const SDLRPCParameterNameIsHighlighted = @"isHighlighted"; +SDLRPCParameterName const SDLRPCParameterNameIsMediaApplication = @"isMediaApplication"; +SDLRPCParameterName const SDLRPCParameterNameIsSubscribed = @"isSubscribed"; +SDLRPCParameterName const SDLRPCParameterNameJunctionType = @"junctionType"; +SDLRPCParameterName const SDLRPCParameterNameKeepContext = @"keepContext"; +SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable = @"keepContextAvailable"; +SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout = @"keyboardLayout"; +SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties = @"keyboardProperties"; +SDLRPCParameterName const SDLRPCParameterNameKeypressMode = @"keypressMode"; +SDLRPCParameterName const SDLRPCParameterNameLabel = @"label"; +SDLRPCParameterName const SDLRPCParameterNameLanguage = @"language"; +SDLRPCParameterName const SDLRPCParameterNameLanguageDesired = @"languageDesired"; +SDLRPCParameterName const SDLRPCParameterNameLatitudeDegrees = @"latitudeDegrees"; +SDLRPCParameterName const SDLRPCParameterNameLeftFront = @"leftFront"; +SDLRPCParameterName const SDLRPCParameterNameLeftRear = @"leftRear"; +SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted = @"leftRearInflatableBelted"; +SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted = @"leftRow2BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted = @"leftRow3BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameLength = @"length"; +SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities = @"lightControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameLightControlData = @"lightControlData"; +SDLRPCParameterName const SDLRPCParameterNameLightState = @"lightState"; +SDLRPCParameterName const SDLRPCParameterNameLimitedCharacterList = @"limitedCharacterList"; +SDLRPCParameterName const SDLRPCParameterNameLocality = @"locality"; +SDLRPCParameterName const SDLRPCParameterNameLocation = @"location"; +SDLRPCParameterName const SDLRPCParameterNameLocationCoordinate = @"coordinate"; +SDLRPCParameterName const SDLRPCParameterNameLocationDescription = @"locationDescription"; +SDLRPCParameterName const SDLRPCParameterNameLocationDetails = @"locationDetails"; +SDLRPCParameterName const SDLRPCParameterNameLocationImage = @"locationImage"; +SDLRPCParameterName const SDLRPCParameterNameLocationName = @"locationName"; +SDLRPCParameterName const SDLRPCParameterNameLongitudeDegrees = @"longitudeDegrees"; +SDLRPCParameterName const SDLRPCParameterNameLongPress = @"longPress"; +SDLRPCParameterName const SDLRPCParameterNameLongPressAvailable = @"longPressAvailable"; +SDLRPCParameterName const SDLRPCParameterNameLowBeamsOn = @"lowBeamsOn"; +SDLRPCParameterName const SDLRPCParameterNameMainField1 = @"mainField1"; +SDLRPCParameterName const SDLRPCParameterNameMainField2 = @"mainField2"; +SDLRPCParameterName const SDLRPCParameterNameMainField3 = @"mainField3"; +SDLRPCParameterName const SDLRPCParameterNameMainField4 = @"mainField4"; +SDLRPCParameterName const SDLRPCParameterNameMajorVersion = @"majorVersion"; +SDLRPCParameterName const SDLRPCParameterNameMake = @"make"; +SDLRPCParameterName const SDLRPCParameterNameManeuverComplete = @"maneuverComplete"; +SDLRPCParameterName const SDLRPCParameterNameManualTextEntry = @"manualTextEntry"; +SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness = @"massageCushionFirmness"; +SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable = @"massageCushionFirmnessAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMassageEnabled = @"massageEnabled"; +SDLRPCParameterName const SDLRPCParameterNameMassageEnabledAvailable = @"massageEnabledAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMassageMode = @"massageMode"; +SDLRPCParameterName const SDLRPCParameterNameMassageModeAvailable = @"massageModeAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMassageZone = @"massageZone"; +SDLRPCParameterName const SDLRPCParameterNameMaxBitrate = @"maxBitrate"; +SDLRPCParameterName const SDLRPCParameterNameMaxDuration = @"maxDuration"; +SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount = @"maxHourlyForecastAmount"; +SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity = @"maximumChangeVelocity"; +SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount = @"maxMinutelyForecastAmount"; +SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount = @"maxMultidayForecastAmount"; +SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts"; +SDLRPCParameterName const SDLRPCParameterNameMediaAlbum = @"mediaAlbum"; +SDLRPCParameterName const SDLRPCParameterNameMediaArtist = @"mediaArtist"; +SDLRPCParameterName const SDLRPCParameterNameMediaClock = @"mediaClock"; +SDLRPCParameterName const SDLRPCParameterNameMediaClockFormats = @"mediaClockFormats"; +SDLRPCParameterName const SDLRPCParameterNameMediaServiceData = @"mediaServiceData"; +SDLRPCParameterName const SDLRPCParameterNameMediaServiceManifest = @"mediaServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameMediaTitle = @"mediaTitle"; +SDLRPCParameterName const SDLRPCParameterNameMediaTrack = @"mediaTrack"; +SDLRPCParameterName const SDLRPCParameterNameMediaType = @"mediaType"; +SDLRPCParameterName const SDLRPCParameterNameMemory = @"memory"; +SDLRPCParameterName const SDLRPCParameterNameMemoryAvailable = @"memoryAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMenuIcon = @"menuIcon"; +SDLRPCParameterName const SDLRPCParameterNameMenuId = @"menuID"; +SDLRPCParameterName const SDLRPCParameterNameMenuName = @"menuName"; +SDLRPCParameterName const SDLRPCParameterNameMenuParams = @"menuParams"; +SDLRPCParameterName const SDLRPCParameterNameMenuTitle = @"menuTitle"; +SDLRPCParameterName const SDLRPCParameterNameMessageData = @"messageData"; +SDLRPCParameterName const SDLRPCParameterNameMessageDataResult = @"messageDataResult"; +SDLRPCParameterName const SDLRPCParameterNameMessageLength = @"messageLength"; +SDLRPCParameterName const SDLRPCParameterNameMetadataTags = @"metadataTags"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BeltDeployed = @"middleRow1BeltDeployed"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow1BuckleBelted = @"middleRow1BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow2BuckleBelted = @"middleRow2BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameMiddleRow3BuckleBelted = @"middleRow3BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameMillisecond = @"millisecond"; +SDLRPCParameterName const SDLRPCParameterNameMinorVersion = @"minorVersion"; +SDLRPCParameterName const SDLRPCParameterNameMinute = @"minute"; +SDLRPCParameterName const SDLRPCParameterNameMinuteForecast = @"minuteForecast"; +SDLRPCParameterName const SDLRPCParameterNameMinutes = @"minutes"; +SDLRPCParameterName const SDLRPCParameterNameModel = @"model"; +SDLRPCParameterName const SDLRPCParameterNameModuleData = @"moduleData"; +SDLRPCParameterName const SDLRPCParameterNameModuleName = @"moduleName"; +SDLRPCParameterName const SDLRPCParameterNameModuleType = @"moduleType"; +SDLRPCParameterName const SDLRPCParameterNameModelYear = @"modelYear"; +SDLRPCParameterName const SDLRPCParameterNameMonoAudioOutputMuted = @"monoAudioOutputMuted"; +SDLRPCParameterName const SDLRPCParameterNameMonth = @"month"; +SDLRPCParameterName const SDLRPCParameterNameMoonPhase = @"moonPhase"; +SDLRPCParameterName const SDLRPCParameterNameMultidayForecast = @"multidayForecast"; +SDLRPCParameterName const SDLRPCParameterNameMultipleEvents = @"multipleEvents"; +SDLRPCParameterName const SDLRPCParameterNameMultiTouchAvailable = @"multiTouchAvailable"; +SDLRPCParameterName const SDLRPCParameterNameMuteAudio = @"muteAudio"; +SDLRPCParameterName const SDLRPCParameterNameMyKey = @"myKey"; +SDLRPCParameterName const SDLRPCParameterNameName = @"name"; +SDLRPCParameterName const SDLRPCParameterNameNavigation = @"navigation"; +SDLRPCParameterName const SDLRPCParameterNameNavigationCapability = @"navigationCapability"; +SDLRPCParameterName const SDLRPCParameterNameNavigationServiceData = @"navigationServiceData"; +SDLRPCParameterName const SDLRPCParameterNameNavigationServiceManifest = @"navigationServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameNavigationText = @"navigationText"; +SDLRPCParameterName const SDLRPCParameterNameNavigationText1 = @"navigationText1"; +SDLRPCParameterName const SDLRPCParameterNameNavigationText2 = @"navigationText2"; +SDLRPCParameterName const SDLRPCParameterNameNearestStormBearing = @"nearestStormBearing"; +SDLRPCParameterName const SDLRPCParameterNameNearestStormDistance = @"nearestStormDistance"; +SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistance = @"nextInstructionDistance"; +SDLRPCParameterName const SDLRPCParameterNameNextInstructionDistanceScale = @"nextInstructionDistanceScale"; +SDLRPCParameterName const SDLRPCParameterNameNextInstructionETA = @"nextInstructionETA"; +SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon = @"nextTurnIcon"; +SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName = @"ngnMediaScreenAppName"; +SDLRPCParameterName const SDLRPCParameterNameNicknames = @"nicknames"; +SDLRPCParameterName const SDLRPCParameterNameNightColorScheme = @"nightColorScheme"; +SDLRPCParameterName const SDLRPCParameterNameNotification = @"notification"; +SDLRPCParameterName const SDLRPCParameterNameNumber = @"number"; +SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameNumberTicks = @"numTicks"; +SDLRPCParameterName const SDLRPCParameterNameOdometer = @"odometer"; +SDLRPCParameterName const SDLRPCParameterNameOffset = @"offset"; +SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus = @"OnLockScreenStatus"; +SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable = @"onScreenPresetsAvailable"; +SDLRPCParameterName const SDLRPCParameterNameOperationName = @"name"; +SDLRPCParameterName const SDLRPCParameterNameOrigin = @"origin"; +SDLRPCParameterName const SDLRPCParameterNameOriginApp = @"originApp"; +SDLRPCParameterName const SDLRPCParameterNameOS = @"os"; +SDLRPCParameterName const SDLRPCParameterNameOSVersion = @"osVersion"; +SDLRPCParameterName const SDLRPCParameterNameParameterPermissions = @"parameterPermissions"; +SDLRPCParameterName const SDLRPCParameterNameParameters = @"parameters"; +SDLRPCParameterName const SDLRPCParameterNameParentId = @"parentID"; +SDLRPCParameterName const SDLRPCParameterNameParkBrakeActive = @"parkBrakeActive"; +SDLRPCParameterName const SDLRPCParameterNamePassengerAirbagDeployed = @"passengerAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerBeltDeployed = @"passengerBeltDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerBuckleBelted = @"passengerBuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNamePassengerChildDetected = @"passengerChildDetected"; +SDLRPCParameterName const SDLRPCParameterNamePassengerCurtainAirbagDeployed = @"passengerCurtainAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerDoorAjar = @"passengerDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNamePassengerKneeAirbagDeployed = @"passengerKneeAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePassengerSideAirbagDeployed = @"passengerSideAirbagDeployed"; +SDLRPCParameterName const SDLRPCParameterNamePatchVersion = @"patchVersion"; +SDLRPCParameterName const SDLRPCParameterNamePCMStreamCapabilities = @"pcmStreamCapabilities"; +SDLRPCParameterName const SDLRPCParameterNamePDOP = @"pdop"; +SDLRPCParameterName const SDLRPCParameterNamePermissionItem = @"permissionItem"; +SDLRPCParameterName const SDLRPCParameterNamePersistentFile = @"persistentFile"; +SDLRPCParameterName const SDLRPCParameterNamePhoneCall = @"phoneCall"; +SDLRPCParameterName const SDLRPCParameterNamePhoneCapability = @"phoneCapability"; +SDLRPCParameterName const SDLRPCParameterNamePhoneNumber = @"phoneNumber"; +SDLRPCParameterName const SDLRPCParameterNamePhoneRoaming = @"phoneRoaming"; +SDLRPCParameterName const SDLRPCParameterNamePrimaryColor = @"primaryColor"; +SDLRPCParameterName const SDLRPCParameterNamePlaylistName = @"playlistName"; +SDLRPCParameterName const SDLRPCParameterNamePlayTone = @"playTone"; +SDLRPCParameterName const SDLRPCParameterNamePosition = @"position"; +SDLRPCParameterName const SDLRPCParameterNamePostalCode = @"postalCode"; +SDLRPCParameterName const SDLRPCParameterNamePrecipAccumulation = @"precipAccumulation"; +SDLRPCParameterName const SDLRPCParameterNamePrecipIntensity = @"precipIntensity"; +SDLRPCParameterName const SDLRPCParameterNamePrecipProbability = @"precipProbability"; +SDLRPCParameterName const SDLRPCParameterNamePrecipType = @"precipType"; +SDLRPCParameterName const SDLRPCParameterNamePowerModeActive = @"powerModeActive"; +SDLRPCParameterName const SDLRPCParameterNamePowerModeQualificationStatus = @"powerModeQualificationStatus"; +SDLRPCParameterName const SDLRPCParameterNamePowerModeStatus = @"powerModeStatus"; +SDLRPCParameterName const SDLRPCParameterNamePreferredResolution = @"preferredResolution"; +SDLRPCParameterName const SDLRPCParameterNamePrerecordedSpeech = @"prerecordedSpeech"; +SDLRPCParameterName const SDLRPCParameterNamePresetBankCapabilities = @"presetBankCapabilities"; +SDLRPCParameterName const SDLRPCParameterNamePressAvailable = @"pressAvailable"; +SDLRPCParameterName const SDLRPCParameterNamePressure = @"pressure"; +SDLRPCParameterName const SDLRPCParameterNamePressureTelltale = @"pressureTelltale"; +SDLRPCParameterName const SDLRPCParameterNamePrimaryAudioSource = @"primaryAudioSource"; +SDLRPCParameterName const SDLRPCParameterNamePRNDL = @"prndl"; +SDLRPCParameterName const SDLRPCParameterNameProgramIdentification = @"PI"; +SDLRPCParameterName const SDLRPCParameterNameProgressIndicator = @"progressIndicator"; +SDLRPCParameterName const SDLRPCParameterNameProperties = @"properties"; +SDLRPCParameterName const SDLRPCParameterNameProgramService = @"PS"; +SDLRPCParameterName const SDLRPCParameterNameProgramType = @"PTY"; +SDLRPCParameterName const SDLRPCParameterNamePrompt = @"prompt"; +SDLRPCParameterName const SDLRPCParameterNameQueueCurrentTrackNumber = @"queueCurrentTrackNumber"; +SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackDuration = @"queuePlaybackDuration"; +SDLRPCParameterName const SDLRPCParameterNameQueuePlaybackProgress = @"queuePlaybackProgress"; +SDLRPCParameterName const SDLRPCParameterNameQueueTotalTrackCount = @"queueTotalTrackCount"; +SDLRPCParameterName const SDLRPCParameterNameRadioBandAvailable = @"radioBandAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRadioControlCapabilities = @"radioControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameRadioFrequencyAvailable = @"radioFrequencyAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRadioControlData = @"radioControlData"; +SDLRPCParameterName const SDLRPCParameterNameRadioEnable = @"radioEnable"; +SDLRPCParameterName const SDLRPCParameterNameRadioEnableAvailable = @"radioEnableAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRange = @"range"; +SDLRPCParameterName const SDLRPCParameterNameRDSData = @"rdsData"; +SDLRPCParameterName const SDLRPCParameterNameRDSDataAvailable = @"rdsDataAvailable"; +SDLRPCParameterName const SDLRPCParameterNameRearLeftDoorAjar = @"rearLeftDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNameRearRightDoorAjar = @"rearRightDoorAjar"; +SDLRPCParameterName const SDLRPCParameterNameReason = @"reason"; +SDLRPCParameterName const SDLRPCParameterNameRed = @"red"; +SDLRPCParameterName const SDLRPCParameterNameRect = @"rect"; +SDLRPCParameterName const SDLRPCParameterNameRegion = @"REG"; +SDLRPCParameterName const SDLRPCParameterNameRegions = @"regions"; +SDLRPCParameterName const SDLRPCParameterNameRemoteControlCapability = @"remoteControlCapability"; +SDLRPCParameterName const SDLRPCParameterNameRequest = @"request"; +SDLRPCParameterName const SDLRPCParameterNameRequestServiceActive = @"requestServiceActive"; +SDLRPCParameterName const SDLRPCParameterNameRequestSubType = @"requestSubType"; +SDLRPCParameterName const SDLRPCParameterNameRequestType = @"requestType"; +SDLRPCParameterName const SDLRPCParameterNameReserved = @"reserved"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryColor = @"secondaryColor"; +SDLRPCParameterName const SDLRPCParameterNameResolution = @"resolution"; +SDLRPCParameterName const SDLRPCParameterNameResolutionHeight = @"resolutionHeight"; +SDLRPCParameterName const SDLRPCParameterNameResolutionWidth = @"resolutionWidth"; +SDLRPCParameterName const SDLRPCParameterNameResponse = @"response"; +SDLRPCParameterName const SDLRPCParameterNameResult = @"result"; +SDLRPCParameterName const SDLRPCParameterNameResultCode = @"resultCode"; +SDLRPCParameterName const SDLRPCParameterNameRightFront = @"rightFront"; +SDLRPCParameterName const SDLRPCParameterNameRightRear = @"rightRear"; +SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted = @"rightRearInflatableBelted"; +SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted = @"rightRow2BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted = @"rightRow3BuckleBelted"; +SDLRPCParameterName const SDLRPCParameterNameRolloverEvent = @"rolloverEvent"; +SDLRPCParameterName const SDLRPCParameterNameRows = @"rows"; +SDLRPCParameterName const SDLRPCParameterNameRPCName = @"rpcName"; +SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion = @"rpcSpecVersion"; +SDLRPCParameterName const SDLRPCParameterNameRPM = @"rpm"; +SDLRPCParameterName const SDLRPCParameterNameRadioText = @"RT"; +SDLRPCParameterName const SDLRPCParameterNameSamplingRate = @"samplingRate"; +SDLRPCParameterName const SDLRPCParameterNameSatellites = @"satellites"; +SDLRPCParameterName const SDLRPCParameterNameScreenParams = @"screenParams"; +SDLRPCParameterName const SDLRPCParameterNameScrollableMessageBody = @"scrollableMessageBody"; +SDLRPCParameterName const SDLRPCParameterNameSDLVersion = @"sdlVersion"; +SDLRPCParameterName const SDLRPCParameterNameSearchAddress = @"searchAddress"; +SDLRPCParameterName const SDLRPCParameterNameSeatControlData = @"seatControlData"; +SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities = @"seatControlCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic = @"secondaryGraphic"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryImage = @"secondaryImage"; +SDLRPCParameterName const SDLRPCParameterNameSecondaryText = @"secondaryText"; +SDLRPCParameterName const SDLRPCParameterNameSecond = @"second"; +SDLRPCParameterName const SDLRPCParameterNameSeconds = @"seconds"; +SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled = @"sendLocationEnabled"; +SDLRPCParameterName const SDLRPCParameterNameServiceActive = @"serviceActive"; +SDLRPCParameterName const SDLRPCParameterNameServiceData = @"serviceData"; +SDLRPCParameterName const SDLRPCParameterNameServiceIcon = @"serviceIcon"; +SDLRPCParameterName const SDLRPCParameterNameServiceID = @"serviceID"; +SDLRPCParameterName const SDLRPCParameterNameServiceManifest = @"serviceManifest"; +SDLRPCParameterName const SDLRPCParameterNameServiceName = @"serviceName"; +SDLRPCParameterName const SDLRPCParameterNameServicePublished = @"servicePublished"; +SDLRPCParameterName const SDLRPCParameterNameServiceSpecificResult = @"serviceSpecificResult"; +SDLRPCParameterName const SDLRPCParameterNameServiceType = @"serviceType"; +SDLRPCParameterName const SDLRPCParameterNameServiceUri = @"serviceUri"; +SDLRPCParameterName const SDLRPCParameterNameDisplayName = @"displayName"; +SDLRPCParameterName const SDLRPCParameterNameSeverity = @"severity"; +SDLRPCParameterName const SDLRPCParameterNameShortPress = @"shortPress"; +SDLRPCParameterName const SDLRPCParameterNameShortPressAvailable = @"shortPressAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSignalLevelStatus = @"signalLevelStatus"; +SDLRPCParameterName const SDLRPCParameterNameSignalChangeThreshold = @"signalChangeThreshold"; +SDLRPCParameterName const SDLRPCParameterNameSignalChangeThresholdAvailable = @"signalChangeThresholdAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSignalStrength = @"signalStrength"; +SDLRPCParameterName const SDLRPCParameterNameSignalStrengthAvailable = @"signalStrengthAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSiriusXMRadioAvailable = @"siriusxmRadioAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSISData = @"sisData"; +SDLRPCParameterName const SDLRPCParameterNameSISDataAvailable = @"sisDataAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSliderFooter = @"sliderFooter"; +SDLRPCParameterName const SDLRPCParameterNameSliderHeader = @"sliderHeader"; +SDLRPCParameterName const SDLRPCParameterNameSliderPosition = @"sliderPosition"; +SDLRPCParameterName const SDLRPCParameterNameSoftButtonCapabilities = @"softButtonCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameSoftButtonId = @"softButtonID"; +SDLRPCParameterName const SDLRPCParameterNameSoftButtons = @"softButtons"; +SDLRPCParameterName const SDLRPCParameterNameSource = @"source"; +SDLRPCParameterName const SDLRPCParameterNameSourceAvailable = @"sourceAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSpaceAvailable = @"spaceAvailable"; +SDLRPCParameterName const SDLRPCParameterNameSpeechCapabilities = @"speechCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameSpeed = @"speed"; +SDLRPCParameterName const SDLRPCParameterNameRGBColorSpaceAvailable = @"rgbColorSpaceAvailable"; +SDLRPCParameterName const SDLRPCParameterNameStartTime = @"startTime"; +SDLRPCParameterName const SDLRPCParameterNameState = @"state"; +SDLRPCParameterName const SDLRPCParameterNameStateAvailable = @"stateAvailable"; +SDLRPCParameterName const SDLRPCParameterNameStateOfCharge = @"stateOfCharge"; +SDLRPCParameterName const SDLRPCParameterNameStationIDNumber = @"stationIDNumber"; +SDLRPCParameterName const SDLRPCParameterNameStationLongName = @"stationLongName"; +SDLRPCParameterName const SDLRPCParameterNameStationLocation = @"stationLocation"; +SDLRPCParameterName const SDLRPCParameterNameStationMessage = @"stationMessage"; +SDLRPCParameterName const SDLRPCParameterNameStationShortName = @"stationShortName"; +SDLRPCParameterName const SDLRPCParameterNameStatus = @"status"; +SDLRPCParameterName const SDLRPCParameterNameStatusAvailable = @"statusAvailable"; +SDLRPCParameterName const SDLRPCParameterNameStatusBar = @"statusBar"; +SDLRPCParameterName const SDLRPCParameterNameSteeringWheelAngle = @"steeringWheelAngle"; +SDLRPCParameterName const SDLRPCParameterNameStereoAudioOutputMuted = @"stereoAudioOutputMuted"; +SDLRPCParameterName const SDLRPCParameterNameSubAdministrativeArea = @"subAdministrativeArea"; +SDLRPCParameterName const SDLRPCParameterNameSubLocality = @"subLocality"; +SDLRPCParameterName const SDLRPCParameterNameSubscribe = @"subscribe"; +SDLRPCParameterName const SDLRPCParameterNameSubThoroughfare = @"subThoroughfare"; +SDLRPCParameterName const SDLRPCParameterNameSuccess = @"success"; +SDLRPCParameterName const SDLRPCParameterNameSummary = @"summary"; +SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes = @"supportedDiagModes"; +SDLRPCParameterName const SDLRPCParameterNameSupportedFormats = @"supportedFormats"; +SDLRPCParameterName const SDLRPCParameterNameSupportedLights = @"supportedLights"; +SDLRPCParameterName const SDLRPCParameterNameSyncFileName = @"syncFileName"; +SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion = @"syncMsgVersion"; +SDLRPCParameterName const SDLRPCParameterNameSystemAction = @"systemAction"; +SDLRPCParameterName const SDLRPCParameterNameSystemCapability = @"systemCapability"; +SDLRPCParameterName const SDLRPCParameterNameSystemCapabilityType = @"systemCapabilityType"; +SDLRPCParameterName const SDLRPCParameterNameSystemContext = @"systemContext"; +SDLRPCParameterName const SDLRPCParameterNameSystemFile = @"systemFile"; +SDLRPCParameterName const SDLRPCParameterNameSystemSoftwareVersion = @"systemSoftwareVersion"; +SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackDuration = @"trackPlaybackDuration"; +SDLRPCParameterName const SDLRPCParameterNameTrackPlaybackProgress = @"trackPlaybackProgress"; +SDLRPCParameterName const SDLRPCParameterNameTrafficAnnouncementIdentification = @"TA"; +SDLRPCParameterName const SDLRPCParameterNameTargetId = @"targetID"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh = @"temperatureHigh"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureLow = @"temperatureLow"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit = @"temperatureUnit"; +SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable = @"temperatureUnitAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable = @"templatesAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTertiaryText = @"tertiaryText"; +SDLRPCParameterName const SDLRPCParameterNameText = @"text"; +SDLRPCParameterName const SDLRPCParameterNameTextFields = @"textFields"; +SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable = @"textMsgAvailable"; +SDLRPCParameterName const SDLRPCParameterNameThoroughfare = @"thoroughfare"; +SDLRPCParameterName const SDLRPCParameterNameTimeIssued = @"timeIssued"; +SDLRPCParameterName const SDLRPCParameterNameTime = @"time"; +SDLRPCParameterName const SDLRPCParameterNameTimeout = @"timeout"; +SDLRPCParameterName const SDLRPCParameterNameTimeoutCapitalized = @"Timeout"; +SDLRPCParameterName const SDLRPCParameterNameTimeoutPrompt = @"timeoutPrompt"; +SDLRPCParameterName const SDLRPCParameterNameTS = @"ts"; +SDLRPCParameterName const SDLRPCParameterNameTimeStamp = @"timeStamp"; +SDLRPCParameterName const SDLRPCParameterNameTimeToDestination = @"timeToDestination"; +SDLRPCParameterName const SDLRPCParameterNameTimezoneHourOffset = @"tz_hour"; +SDLRPCParameterName const SDLRPCParameterNameTimezoneMinuteOffset = @"tz_minute"; +SDLRPCParameterName const SDLRPCParameterNameTirePressure = @"tirePressure"; +SDLRPCParameterName const SDLRPCParameterNameTitle = @"title"; +SDLRPCParameterName const SDLRPCParameterNameTotalDistance = @"totalDistance"; +SDLRPCParameterName const SDLRPCParameterNameTouchEventAvailable = @"touchEventAvailable"; +SDLRPCParameterName const SDLRPCParameterNameTPMS = @"tpms"; +SDLRPCParameterName const SDLRPCParameterNameTrafficProgramIdentification = @"TP"; +SDLRPCParameterName const SDLRPCParameterNameTriggerSource = @"triggerSource"; +SDLRPCParameterName const SDLRPCParameterNameTrim = @"trim"; +SDLRPCParameterName const SDLRPCParameterNameTryAgainTime = @"tryAgainTime"; +SDLRPCParameterName const SDLRPCParameterNameTTSChunks = @"ttsChunks"; +SDLRPCParameterName const SDLRPCParameterNameTTSName = @"ttsName"; +SDLRPCParameterName const SDLRPCParameterNameTurnIcon = @"turnIcon"; +SDLRPCParameterName const SDLRPCParameterNameTurnList = @"turnList"; +SDLRPCParameterName const SDLRPCParameterNameTurnSignal = @"turnSignal"; +SDLRPCParameterName const SDLRPCParameterNameType = @"type"; +SDLRPCParameterName const SDLRPCParameterNameUnit = @"unit"; +SDLRPCParameterName const SDLRPCParameterNameUnsubscribe = @"Unsubscribe"; +SDLRPCParameterName const SDLRPCParameterNameUpdatedAppServiceRecord = @"updatedAppServiceRecord"; +SDLRPCParameterName const SDLRPCParameterNameUpdateMode = @"updateMode"; +SDLRPCParameterName const SDLRPCParameterNameUpdateReason= @"updateReason"; +SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable = @"upDownAvailable"; +SDLRPCParameterName const SDLRPCParameterNameURL = @"url"; +SDLRPCParameterName const SDLRPCParameterNameURLUppercase = @"URL"; +SDLRPCParameterName const SDLRPCParameterNameUserDisallowed = @"userDisallowed"; +SDLRPCParameterName const SDLRPCParameterNameUserSelected = @"userSelected"; +SDLRPCParameterName const SDLRPCParameterNameUTCDay = @"utcDay"; +SDLRPCParameterName const SDLRPCParameterNameUTCHours = @"utcHours"; +SDLRPCParameterName const SDLRPCParameterNameUTCMinutes = @"utcMinutes"; +SDLRPCParameterName const SDLRPCParameterNameUTCMonth = @"utcMonth"; +SDLRPCParameterName const SDLRPCParameterNameUTCSeconds = @"utcSeconds"; +SDLRPCParameterName const SDLRPCParameterNameUTCYear = @"utcYear"; +SDLRPCParameterName const SDLRPCParameterNameValue = @"value"; +SDLRPCParameterName const SDLRPCParameterNameVDOP = @"vdop"; +SDLRPCParameterName const SDLRPCParameterNameVehicleType = @"vehicleType"; +SDLRPCParameterName const SDLRPCParameterNameVerticalPosition = @"verticalPosition"; +SDLRPCParameterName const SDLRPCParameterNameVerticalPositionAvailable = @"verticalPositionAvailable"; +SDLRPCParameterName const SDLRPCParameterNameVideoCodec = @"codec"; +SDLRPCParameterName const SDLRPCParameterNameVideoProtocol = @"protocol"; +SDLRPCParameterName const SDLRPCParameterNameVideoStreaming = @"videoStreaming"; +SDLRPCParameterName const SDLRPCParameterNameVideoStreamingCapability = @"videoStreamingCapability"; +SDLRPCParameterName const SDLRPCParameterNameVideoStreamingState = @"videoStreamingState"; +SDLRPCParameterName const SDLRPCParameterNameVisibility = @"visibility"; +SDLRPCParameterName const SDLRPCParameterNameVentilationMode = @"ventilationMode"; +SDLRPCParameterName const SDLRPCParameterNameVentilationModeAvailable = @"ventilationModeAvailable"; +SDLRPCParameterName const SDLRPCParameterNameVIN = @"vin"; +SDLRPCParameterName const SDLRPCParameterNameVoiceRecognitionOn = @"voiceRecOn"; +SDLRPCParameterName const SDLRPCParameterNameVolume = @"volume"; +SDLRPCParameterName const SDLRPCParameterNameVolumeAvailable = @"volumeAvailable"; +SDLRPCParameterName const SDLRPCParameterNameVRCapabilities = @"vrCapabilities"; +SDLRPCParameterName const SDLRPCParameterNameVRCommands = @"vrCommands"; +SDLRPCParameterName const SDLRPCParameterNameVRHelp = @"vrHelp"; +SDLRPCParameterName const SDLRPCParameterNameVRHelpTitle = @"vrHelpTitle"; +SDLRPCParameterName const SDLRPCParameterNameVRSynonyms = @"vrSynonyms"; +SDLRPCParameterName const SDLRPCParameterNameWayPoints = @"wayPoints"; +SDLRPCParameterName const SDLRPCParameterNameWayPointType = @"wayPointType"; +SDLRPCParameterName const SDLRPCParameterNameWeatherForLocationSupported = @"weatherForLocationSupported"; +SDLRPCParameterName const SDLRPCParameterNameWeatherIcon = @"weatherIcon"; +SDLRPCParameterName const SDLRPCParameterNameWeatherServiceData = @"weatherServiceData"; +SDLRPCParameterName const SDLRPCParameterNameWeatherServiceManifest = @"weatherServiceManifest"; +SDLRPCParameterName const SDLRPCParameterNameWeatherSummary = @"weatherSummary"; +SDLRPCParameterName const SDLRPCParameterNameWidth = @"width"; +SDLRPCParameterName const SDLRPCParameterNameWindBearing = @"windBearing"; +SDLRPCParameterName const SDLRPCParameterNameWindGust = @"windGust"; +SDLRPCParameterName const SDLRPCParameterNameWindSpeed = @"windSpeed"; +SDLRPCParameterName const SDLRPCParameterNameWiperStatus = @"wiperStatus"; +SDLRPCParameterName const SDLRPCParameterNameX = @"x"; +SDLRPCParameterName const SDLRPCParameterNameY = @"y"; +SDLRPCParameterName const SDLRPCParameterNameYear = @"year"; + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCRequest.m b/SmartDeviceLink/SDLRPCRequest.m index 434c3e781..7c3a7c618 100644 --- a/SmartDeviceLink/SDLRPCRequest.m +++ b/SmartDeviceLink/SDLRPCRequest.m @@ -5,18 +5,19 @@ #import "SDLRPCRequest.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLRPCRequest - (NSNumber<SDLInt> *)correlationID { - return [function sdl_objectForName:SDLNameCorrelationId]; + NSError *error = nil; + return [function sdl_objectForName:SDLRPCParameterNameCorrelationId ofClass:NSNumber.class error:&error]; } - (void)setCorrelationID:(NSNumber<SDLInt> *)corrID { - [function sdl_setObject:corrID forName:SDLNameCorrelationId]; + [function sdl_setObject:corrID forName:SDLRPCParameterNameCorrelationId]; } @end diff --git a/SmartDeviceLink/SDLRPCRequestNotification.h b/SmartDeviceLink/SDLRPCRequestNotification.h new file mode 100644 index 000000000..248358e0a --- /dev/null +++ b/SmartDeviceLink/SDLRPCRequestNotification.h @@ -0,0 +1,51 @@ +// +// SDLRPCRequestNotification.h +// SmartDeviceLink +// +// Created by Nicole on 2/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +@class SDLRPCRequest; + +NS_ASSUME_NONNULL_BEGIN + +/** + * A NSNotification object that makes retrieving internal SDLRPCRequest data easier + */ +@interface SDLRPCRequestNotification : NSNotification + +/** + * The request to be included in the userinfo dictionary + */ +@property (copy, nonatomic, readonly) __kindof SDLRPCRequest *request; + +/** + * Create an NSNotification object containing an SDLRPCRequest + * + * @param name The NSNotification name + * @param object The NSNotification object + * @param request The SDLRPCRequest payload + * @return The NSNotification + */ +- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcRequest:(__kindof SDLRPCRequest *)request; + +/** + * Returns whether or not the containing request is equal to a class, not including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isRequestMemberOfClass:(Class)aClass; + +/** + * Returns whether or not the containing request is a kind of class, including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isRequestKindOfClass:(Class)aClass; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCRequestNotification.m b/SmartDeviceLink/SDLRPCRequestNotification.m new file mode 100644 index 000000000..4ac6250c6 --- /dev/null +++ b/SmartDeviceLink/SDLRPCRequestNotification.m @@ -0,0 +1,49 @@ +// +// SDLRPCRequestNotification.m +// SmartDeviceLink +// +// Created by Nicole on 2/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequestNotification.h" + +#import "SDLNotificationConstants.h" +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRPCRequestNotification + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wimplicit-atomic-properties" +@synthesize name = _name; +@synthesize object = _object; +@synthesize userInfo = _userInfo; +#pragma clang diagnostic pop + +- (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcRequest:(__kindof SDLRPCRequest *)request { + _name = name; + _object = object; + _userInfo = @{SDLNotificationUserInfoObject: request}; + + return self; +} + +- (__kindof SDLRPCRequest *)request { + return _userInfo[SDLNotificationUserInfoObject]; +} + +- (BOOL)isRequestMemberOfClass:(Class)aClass { + NSAssert([self.request isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.request isMemberOfClass:aClass]; +} + +- (BOOL)isRequestKindOfClass:(Class)aClass { + NSAssert([self.request isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.request isKindOfClass:aClass]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCResponse.m b/SmartDeviceLink/SDLRPCResponse.m index a7a839f54..d288da5c7 100644 --- a/SmartDeviceLink/SDLRPCResponse.m +++ b/SmartDeviceLink/SDLRPCResponse.m @@ -5,7 +5,7 @@ #import "SDLRPCResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLResult.h" NS_ASSUME_NONNULL_BEGIN @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - messageType = SDLNameResponse; + messageType = SDLRPCParameterNameResponse; [store sdl_setObject:function forName:messageType]; return self; @@ -30,42 +30,45 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - messageType = SDLNameResponse; + messageType = SDLRPCParameterNameResponse; [store sdl_setObject:function forName:messageType]; return self; } - (NSNumber<SDLInt> *)correlationID { - return [function sdl_objectForName:SDLNameCorrelationId]; + NSError *error = nil; + return [function sdl_objectForName:SDLRPCParameterNameCorrelationId ofClass:NSNumber.class error:&error]; } - (void)setCorrelationID:(NSNumber<SDLInt> *)corrID { - [function sdl_setObject:corrID forName:SDLNameCorrelationId]; + [function sdl_setObject:corrID forName:SDLRPCParameterNameCorrelationId]; } - (void)setSuccess:(NSNumber<SDLBool> *)success { - [parameters sdl_setObject:success forName:SDLNameSuccess]; + [parameters sdl_setObject:success forName:SDLRPCParameterNameSuccess]; } - (NSNumber<SDLBool> *)success { - return [parameters sdl_objectForName:SDLNameSuccess]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSuccess ofClass:NSNumber.class error:&error]; } - (void)setResultCode:(SDLResult)resultCode { - [parameters sdl_setObject:resultCode forName:SDLNameResultCode]; + [parameters sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; } - (SDLResult)resultCode { - return [parameters sdl_objectForName:SDLNameResultCode]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; } - (void)setInfo:(nullable NSString *)info { - [parameters sdl_setObject:info forName:SDLNameInfo]; + [parameters sdl_setObject:info forName:SDLRPCParameterNameInfo]; } - (nullable NSString *)info { - return [parameters sdl_objectForName:SDLNameInfo]; + return [parameters sdl_objectForName:SDLRPCParameterNameInfo ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRPCResponseNotification.h b/SmartDeviceLink/SDLRPCResponseNotification.h index c6c7cdf3a..4434f2a04 100644 --- a/SmartDeviceLink/SDLRPCResponseNotification.h +++ b/SmartDeviceLink/SDLRPCResponseNotification.h @@ -14,22 +14,22 @@ NS_ASSUME_NONNULL_BEGIN /** - An NSNotification object that makes retrieving internal SDLRPCResponse data easier + * A NSNotification object that makes retrieving internal SDLRPCResponse data easier */ @interface SDLRPCResponseNotification : NSNotification /** - The response within the userinfo dictionary + * The response to be included within the userinfo dictionary */ @property (copy, nonatomic, readonly) __kindof SDLRPCResponse *response; /** - Create an NSNotification object caontaining an SDLRPCResponse - - @param name The NSNotification name - @param object The NSNotification object - @param response The SDLRPCResponse payload - @return The NSNotification + * Create an NSNotification object containing an SDLRPCResponse + * + * @param name The NSNotification name + * @param object The NSNotification object + * @param response The SDLRPCResponse payload + * @return The NSNotification */ - (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcResponse:(__kindof SDLRPCResponse *)response; diff --git a/SmartDeviceLink/SDLRPCStruct.m b/SmartDeviceLink/SDLRPCStruct.m index b0bccaac1..9fd177e1d 100644 --- a/SmartDeviceLink/SDLRPCStruct.m +++ b/SmartDeviceLink/SDLRPCStruct.m @@ -5,7 +5,7 @@ #import "SDLRPCStruct.h" #import "SDLEnum.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -34,7 +34,7 @@ NS_ASSUME_NONNULL_BEGIN NSString *messageType = store.keyEnumerator.nextObject; NSMutableDictionary<NSString *, id> *function = store[messageType]; if ([function isKindOfClass:NSMutableDictionary.class]) { - NSMutableDictionary<NSString *, id> *parameters = function[SDLNameParameters]; + NSMutableDictionary<NSString *, id> *parameters = function[SDLRPCParameterNameParameters]; return [self.class sdl_serializeDictionary:parameters version:version]; } else { return [self.class sdl_serializeDictionary:store version:version]; diff --git a/SmartDeviceLink/SDLRTPH264Packetizer.h b/SmartDeviceLink/SDLRTPH264Packetizer.h index b909fa1d1..043a8ab05 100644 --- a/SmartDeviceLink/SDLRTPH264Packetizer.h +++ b/SmartDeviceLink/SDLRTPH264Packetizer.h @@ -28,15 +28,7 @@ NS_ASSUME_NONNULL_BEGIN */ @property (assign, nonatomic) UInt8 payloadType; -/** - * SSRC of RTP header field. - * - * SSRC field identifies the source of a stream and it should be - * chosen randomly (see section 3 and 5.1 in RFC 3550). - * - * @note A random value is generated and used as default. - */ -@property (assign, nonatomic) UInt32 ssrc; +- (instancetype)initWithSSRC:(UInt32)ssrc; @end diff --git a/SmartDeviceLink/SDLRTPH264Packetizer.m b/SmartDeviceLink/SDLRTPH264Packetizer.m index e0f994ede..ddb5f80e9 100644 --- a/SmartDeviceLink/SDLRTPH264Packetizer.m +++ b/SmartDeviceLink/SDLRTPH264Packetizer.m @@ -55,12 +55,22 @@ static inline void sdl_writeLongInNetworkByteOrder(UInt8 *buffer, UInt32 value) NS_ASSUME_NONNULL_BEGIN @interface SDLRTPH264Packetizer () + @property (assign, nonatomic) UInt32 initialTimestamp; @property (assign, nonatomic) UInt16 sequenceNum; +@property (assign, nonatomic) UInt32 ssrc; + @end @implementation SDLRTPH264Packetizer +- (instancetype)initWithSSRC:(UInt32)ssrc { + self = [self init]; + _ssrc = ssrc; + + return self; +} + - (instancetype)init { self = [super init]; if (!self) { @@ -71,7 +81,6 @@ NS_ASSUME_NONNULL_BEGIN // initial value of the sequence number and timestamp should be random ([5.1] in RFC3550) _initialTimestamp = arc4random_uniform(UINT32_MAX); _sequenceNum = (UInt16)arc4random_uniform(UINT16_MAX); - _ssrc = arc4random_uniform(UINT32_MAX); return self; } diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.m b/SmartDeviceLink/SDLRadioControlCapabilities.m index db45eb8ae..58b9b7e79 100644 --- a/SmartDeviceLink/SDLRadioControlCapabilities.m +++ b/SmartDeviceLink/SDLRadioControlCapabilities.m @@ -3,7 +3,7 @@ // #import "SDLRadioControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -38,107 +38,108 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setRadioEnableAvailable:(nullable NSNumber<SDLBool> *)radioEnableAvailable { - [store sdl_setObject:radioEnableAvailable forName:SDLNameRadioEnableAvailable]; + [store sdl_setObject:radioEnableAvailable forName:SDLRPCParameterNameRadioEnableAvailable]; } - (nullable NSNumber<SDLBool> *)radioEnableAvailable { - return [store sdl_objectForName:SDLNameRadioEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameRadioEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setRadioBandAvailable:(nullable NSNumber<SDLBool> *)radioBandAvailable { - [store sdl_setObject:radioBandAvailable forName:SDLNameRadioBandAvailable]; + [store sdl_setObject:radioBandAvailable forName:SDLRPCParameterNameRadioBandAvailable]; } - (nullable NSNumber<SDLBool> *)radioBandAvailable { - return [store sdl_objectForName:SDLNameRadioBandAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameRadioBandAvailable ofClass:NSNumber.class error:nil]; } - (void)setRadioFrequencyAvailable:(nullable NSNumber<SDLBool> *)radioFrequencyAvailable { - [store sdl_setObject:radioFrequencyAvailable forName:SDLNameRadioFrequencyAvailable]; + [store sdl_setObject:radioFrequencyAvailable forName:SDLRPCParameterNameRadioFrequencyAvailable]; } - (nullable NSNumber<SDLBool> *)radioFrequencyAvailable { - return [store sdl_objectForName:SDLNameRadioFrequencyAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameRadioFrequencyAvailable ofClass:NSNumber.class error:nil]; } - (void)setHdChannelAvailable:(nullable NSNumber<SDLBool> *)hdChannelAvailable { - [store sdl_setObject:hdChannelAvailable forName:SDLNameHDChannelAvailable]; + [store sdl_setObject:hdChannelAvailable forName:SDLRPCParameterNameHDChannelAvailable]; } - (nullable NSNumber<SDLBool> *)hdChannelAvailable { - return [store sdl_objectForName:SDLNameHDChannelAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHDChannelAvailable ofClass:NSNumber.class error:nil]; } - (void)setRdsDataAvailable:(nullable NSNumber<SDLBool> *)rdsDataAvailable { - [store sdl_setObject:rdsDataAvailable forName:SDLNameRDSDataAvailable]; + [store sdl_setObject:rdsDataAvailable forName:SDLRPCParameterNameRDSDataAvailable]; } - (nullable NSNumber<SDLBool> *)rdsDataAvailable { - return [store sdl_objectForName:SDLNameRDSDataAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameRDSDataAvailable ofClass:NSNumber.class error:nil]; } - (void)setAvailableHDsAvailable:(nullable NSNumber<SDLBool> *)availableHDsAvailable { - [store sdl_setObject:availableHDsAvailable forName:SDLNameAvailableHDsAvailable]; + [store sdl_setObject:availableHDsAvailable forName:SDLRPCParameterNameAvailableHDsAvailable]; } - (nullable NSNumber<SDLBool> *)availableHDsAvailable { - return [store sdl_objectForName:SDLNameAvailableHDsAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameAvailableHDsAvailable ofClass:NSNumber.class error:nil]; } - (void)setStateAvailable:(nullable NSNumber<SDLBool> *)stateAvailable { - [store sdl_setObject:stateAvailable forName:SDLNameStateAvailable]; + [store sdl_setObject:stateAvailable forName:SDLRPCParameterNameStateAvailable]; } - (nullable NSNumber<SDLBool> *)stateAvailable { - return [store sdl_objectForName:SDLNameStateAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameStateAvailable ofClass:NSNumber.class error:nil]; } - (void)setSignalStrengthAvailable:(nullable NSNumber<SDLBool> *)signalStrengthAvailable { - [store sdl_setObject:signalStrengthAvailable forName:SDLNameSignalStrengthAvailable]; + [store sdl_setObject:signalStrengthAvailable forName:SDLRPCParameterNameSignalStrengthAvailable]; } - (nullable NSNumber<SDLBool> *)signalStrengthAvailable { - return [store sdl_objectForName:SDLNameSignalStrengthAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameSignalStrengthAvailable ofClass:NSNumber.class error:nil]; } - (void)setSignalChangeThresholdAvailable:(nullable NSNumber<SDLBool> *)signalChangeThresholdAvailable { - [store sdl_setObject:signalChangeThresholdAvailable forName:SDLNameSignalChangeThresholdAvailable]; + [store sdl_setObject:signalChangeThresholdAvailable forName:SDLRPCParameterNameSignalChangeThresholdAvailable]; } - (nullable NSNumber<SDLBool> *)signalChangeThresholdAvailable { - return [store sdl_objectForName:SDLNameSignalChangeThresholdAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameSignalChangeThresholdAvailable ofClass:NSNumber.class error:nil]; } - (void)setHdRadioEnableAvailable:(nullable NSNumber<SDLBool> *)hdRadioEnableAvailable { - [store sdl_setObject:hdRadioEnableAvailable forName:SDLNameHDRadioEnableAvailable]; + [store sdl_setObject:hdRadioEnableAvailable forName:SDLRPCParameterNameHDRadioEnableAvailable]; } - (nullable NSNumber<SDLBool> *)hdRadioEnableAvailable { - return [store sdl_objectForName:SDLNameHDRadioEnableAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHDRadioEnableAvailable ofClass:NSNumber.class error:nil]; } - (void)setSiriusXMRadioAvailable:(nullable NSNumber<SDLBool> *)siriusXMRadioAvailable { - [store sdl_setObject:siriusXMRadioAvailable forName:SDLNameSiriusXMRadioAvailable]; + [store sdl_setObject:siriusXMRadioAvailable forName:SDLRPCParameterNameSiriusXMRadioAvailable]; } - (nullable NSNumber<SDLBool> *)siriusXMRadioAvailable { - return [store sdl_objectForName:SDLNameSiriusXMRadioAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameSiriusXMRadioAvailable ofClass:NSNumber.class error:nil]; } - (void)setSisDataAvailable:(nullable NSNumber<SDLBool> *)sisDataAvailable { - [store sdl_setObject:sisDataAvailable forName:SDLNameSISDataAvailable]; + [store sdl_setObject:sisDataAvailable forName:SDLRPCParameterNameSISDataAvailable]; } - (nullable NSNumber<SDLBool> *)sisDataAvailable { - return [store sdl_objectForName:SDLNameSISDataAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameSISDataAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRadioControlData.m b/SmartDeviceLink/SDLRadioControlData.m index f1af68204..a87bd3367 100644 --- a/SmartDeviceLink/SDLRadioControlData.m +++ b/SmartDeviceLink/SDLRadioControlData.m @@ -3,7 +3,7 @@ // #import "SDLRadioControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRDSData.h" #import "SDLSISData.h" #import "NSMutableDictionary+Store.h" @@ -44,99 +44,99 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setFrequencyInteger:(nullable NSNumber<SDLInt> *)frequencyInteger { - [store sdl_setObject:frequencyInteger forName:SDLNameFrequencyInteger]; + [store sdl_setObject:frequencyInteger forName:SDLRPCParameterNameFrequencyInteger]; } - (nullable NSNumber<SDLInt> *)frequencyInteger { - return [store sdl_objectForName:SDLNameFrequencyInteger]; + return [store sdl_objectForName:SDLRPCParameterNameFrequencyInteger ofClass:NSNumber.class error:nil]; } - (void)setFrequencyFraction:(nullable NSNumber<SDLInt> *)frequencyFraction { - [store sdl_setObject:frequencyFraction forName:SDLNameFrequencyFraction]; + [store sdl_setObject:frequencyFraction forName:SDLRPCParameterNameFrequencyFraction]; } - (nullable NSNumber<SDLInt> *)frequencyFraction { - return [store sdl_objectForName:SDLNameFrequencyFraction]; + return [store sdl_objectForName:SDLRPCParameterNameFrequencyFraction ofClass:NSNumber.class error:nil]; } - (void)setBand:(nullable SDLRadioBand)band { - [store sdl_setObject:band forName:SDLNameBand]; + [store sdl_setObject:band forName:SDLRPCParameterNameBand]; } - (nullable SDLRadioBand)band{ - return [store sdl_objectForName:SDLNameBand]; + return [store sdl_enumForName:SDLRPCParameterNameBand error:nil]; } - (void)setRdsData:(nullable SDLRDSData *)rdsData { - [store sdl_setObject:rdsData forName:SDLNameRDSData]; + [store sdl_setObject:rdsData forName:SDLRPCParameterNameRDSData]; } - (nullable SDLRDSData *)rdsData { - return [store sdl_objectForName:SDLNameRDSData ofClass:SDLRDSData.class]; + return [store sdl_objectForName:SDLRPCParameterNameRDSData ofClass:SDLRDSData.class error:nil]; } - (void)setAvailableHDs:(nullable NSNumber<SDLInt> *)availableHDs { - [store sdl_setObject:availableHDs forName:SDLNameAvailableHDs]; + [store sdl_setObject:availableHDs forName:SDLRPCParameterNameAvailableHDs]; } - (nullable NSNumber<SDLInt> *)availableHDs { - return [store sdl_objectForName:SDLNameAvailableHDs]; + return [store sdl_objectForName:SDLRPCParameterNameAvailableHDs ofClass:NSNumber.class error:nil]; } - (void)setHdChannel:(nullable NSNumber<SDLInt> *)hdChannel { - [store sdl_setObject:hdChannel forName:SDLNameHDChannel]; + [store sdl_setObject:hdChannel forName:SDLRPCParameterNameHDChannel]; } - (nullable NSNumber<SDLInt> *)hdChannel { - return [store sdl_objectForName:SDLNameHDChannel]; + return [store sdl_objectForName:SDLRPCParameterNameHDChannel ofClass:NSNumber.class error:nil]; } - (void)setSignalStrength:(nullable NSNumber<SDLInt> *)signalStrength { - [store sdl_setObject:signalStrength forName:SDLNameSignalStrength]; + [store sdl_setObject:signalStrength forName:SDLRPCParameterNameSignalStrength]; } - (nullable NSNumber<SDLInt> *)signalStrength { - return [store sdl_objectForName:SDLNameSignalStrength]; + return [store sdl_objectForName:SDLRPCParameterNameSignalStrength ofClass:NSNumber.class error:nil]; } - (void)setSignalChangeThreshold:(nullable NSNumber<SDLInt> *)signalChangeThreshold { - [store sdl_setObject:signalChangeThreshold forName:SDLNameSignalChangeThreshold]; + [store sdl_setObject:signalChangeThreshold forName:SDLRPCParameterNameSignalChangeThreshold]; } - (nullable NSNumber<SDLInt> *)signalChangeThreshold { - return [store sdl_objectForName:SDLNameSignalChangeThreshold]; + return [store sdl_objectForName:SDLRPCParameterNameSignalChangeThreshold ofClass:NSNumber.class error:nil]; } - (void)setRadioEnable:(nullable NSNumber<SDLBool> *)radioEnable { - [store sdl_setObject:radioEnable forName:SDLNameRadioEnable]; + [store sdl_setObject:radioEnable forName:SDLRPCParameterNameRadioEnable]; } - (nullable NSNumber<SDLBool> *)radioEnable { - return [store sdl_objectForName:SDLNameRadioEnable]; + return [store sdl_objectForName:SDLRPCParameterNameRadioEnable ofClass:NSNumber.class error:nil]; } - (void)setState:(nullable SDLRadioState)state { - [store sdl_setObject:state forName:SDLNameState]; + [store sdl_setObject:state forName:SDLRPCParameterNameState]; } - (nullable SDLRadioState)state { - return [store sdl_objectForName:SDLNameState]; + return [store sdl_enumForName:SDLRPCParameterNameState error:nil]; } - (void)setHdRadioEnable:(nullable NSNumber<SDLBool> *)hdRadioEnable { - [store sdl_setObject:hdRadioEnable forName:SDLNameHDRadioEnable]; + [store sdl_setObject:hdRadioEnable forName:SDLRPCParameterNameHDRadioEnable]; } - (nullable NSNumber<SDLBool> *)hdRadioEnable { - return [store sdl_objectForName:SDLNameHDRadioEnable]; + return [store sdl_objectForName:SDLRPCParameterNameHDRadioEnable ofClass:NSNumber.class error:nil]; } - (void)setSisData:(nullable SDLSISData *)sisData { - [store sdl_setObject:sisData forName:SDLNameSISData]; + [store sdl_setObject:sisData forName:SDLRPCParameterNameSISData]; } - (nullable SDLSISData *)sisData { - return [store sdl_objectForName:SDLNameSISData ofClass:SDLSISData.class]; + return [store sdl_objectForName:SDLRPCParameterNameSISData ofClass:SDLSISData.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLReadDID.m b/SmartDeviceLink/SDLReadDID.m index 9e2a906fd..01996893a 100644 --- a/SmartDeviceLink/SDLReadDID.m +++ b/SmartDeviceLink/SDLReadDID.m @@ -5,14 +5,15 @@ #import "SDLReadDID.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLReadDID - (instancetype)init { - if (self = [super initWithName:SDLNameReadDID]) { + if (self = [super initWithName:SDLRPCFunctionNameReadDID]) { } return self; } @@ -30,19 +31,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setEcuName:(NSNumber<SDLInt> *)ecuName { - [parameters sdl_setObject:ecuName forName:SDLNameECUName]; + [parameters sdl_setObject:ecuName forName:SDLRPCParameterNameECUName]; } - (NSNumber<SDLInt> *)ecuName { - return [parameters sdl_objectForName:SDLNameECUName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameECUName ofClass:NSNumber.class error:&error]; } - (void)setDidLocation:(NSArray<NSNumber<SDLInt> *> *)didLocation { - [parameters sdl_setObject:didLocation forName:SDLNameDIDLocation]; + [parameters sdl_setObject:didLocation forName:SDLRPCParameterNameDIDLocation]; } - (NSArray<NSNumber<SDLInt> *> *)didLocation { - return [parameters sdl_objectForName:SDLNameDIDLocation]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameDIDLocation ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLReadDIDResponse.m b/SmartDeviceLink/SDLReadDIDResponse.m index 5b3901950..8bf510370 100644 --- a/SmartDeviceLink/SDLReadDIDResponse.m +++ b/SmartDeviceLink/SDLReadDIDResponse.m @@ -6,24 +6,25 @@ #import "NSMutableDictionary+Store.h" #import "SDLDIDResult.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLReadDIDResponse - (instancetype)init { - if (self = [super initWithName:SDLNameReadDID]) { + if (self = [super initWithName:SDLRPCFunctionNameReadDID]) { } return self; } - (void)setDidResult:(nullable NSArray<SDLDIDResult *> *)didResult { - [parameters sdl_setObject:didResult forName:SDLNameDIDResult]; + [parameters sdl_setObject:didResult forName:SDLRPCParameterNameDIDResult]; } - (nullable NSArray<SDLDIDResult *> *)didResult { - return [parameters sdl_objectsForName:SDLNameDIDResult ofClass:SDLDIDResult.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameDIDResult ofClass:SDLDIDResult.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRectangle.m b/SmartDeviceLink/SDLRectangle.m index d9e6e412b..64a368e13 100644 --- a/SmartDeviceLink/SDLRectangle.m +++ b/SmartDeviceLink/SDLRectangle.m @@ -8,7 +8,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLRectangle.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" @implementation SDLRectangle @@ -29,35 +29,39 @@ } - (void)setX:(NSNumber<SDLFloat> *)x { - [store sdl_setObject:x forName:SDLNameX]; + [store sdl_setObject:x forName:SDLRPCParameterNameX]; } - (NSNumber<SDLFloat> *)x { - return [store sdl_objectForName:SDLNameX]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameX ofClass:NSNumber.class error:&error]; } - (void)setY:(NSNumber<SDLFloat> *)y { - [store sdl_setObject:y forName:SDLNameY]; + [store sdl_setObject:y forName:SDLRPCParameterNameY]; } - (NSNumber<SDLFloat> *)y { - return [store sdl_objectForName:SDLNameY]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameY ofClass:NSNumber.class error:&error]; } - (void)setWidth:(NSNumber<SDLFloat> *)width { - [store sdl_setObject:width forName:SDLNameWidth]; + [store sdl_setObject:width forName:SDLRPCParameterNameWidth]; } - (NSNumber<SDLFloat> *)width { - return [store sdl_objectForName:SDLNameWidth]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameWidth ofClass:NSNumber.class error:&error]; } - (void)setHeight:(NSNumber<SDLFloat> *)height { - [store sdl_setObject:height forName:SDLNameHeight]; + [store sdl_setObject:height forName:SDLRPCParameterNameHeight]; } - (NSNumber<SDLFloat> *)height { - return [store sdl_objectForName:SDLNameHeight]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameHeight ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLRegisterAppInterface.m b/SmartDeviceLink/SDLRegisterAppInterface.m index cf23d1be6..963522619 100644 --- a/SmartDeviceLink/SDLRegisterAppInterface.m +++ b/SmartDeviceLink/SDLRegisterAppInterface.m @@ -11,7 +11,8 @@ #import "SDLGlobals.h" #import "SDLLanguage.h" #import "SDLLifecycleConfiguration.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSyncMsgVersion.h" #import "SDLTemplateColorScheme.h" #import "SDLTTSChunk.h" @@ -23,7 +24,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Lifecycle - (instancetype)init { - if (self = [super initWithName:SDLNameRegisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameRegisterAppInterface]) { } return self; } @@ -116,131 +117,136 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Getters and Setters - (void)setSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - [parameters sdl_setObject:syncMsgVersion forName:SDLNameSyncMessageVersion]; + [parameters sdl_setObject:syncMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; } - (SDLSyncMsgVersion *)syncMsgVersion { - return [parameters sdl_objectForName:SDLNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class error:nil]; } - (void)setAppName:(NSString *)appName { - [parameters sdl_setObject:appName forName:SDLNameAppName]; + [parameters sdl_setObject:appName forName:SDLRPCParameterNameAppName]; } - (NSString *)appName { - return [parameters sdl_objectForName:SDLNameAppName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameAppName ofClass:NSString.class error:&error]; } - (void)setTtsName:(nullable NSArray<SDLTTSChunk *> *)ttsName { - [parameters sdl_setObject:ttsName forName:SDLNameTTSName]; + [parameters sdl_setObject:ttsName forName:SDLRPCParameterNameTTSName]; } - (nullable NSArray<SDLTTSChunk *> *)ttsName { - return [parameters sdl_objectsForName:SDLNameTTSName ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTTSName ofClass:SDLTTSChunk.class error:nil]; } - (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { - [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLNameNGNMediaScreenAppName]; + [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLRPCParameterNameNGNMediaScreenAppName]; } - (nullable NSString *)ngnMediaScreenAppName { - return [parameters sdl_objectForName:SDLNameNGNMediaScreenAppName]; + return [parameters sdl_objectForName:SDLRPCParameterNameNGNMediaScreenAppName ofClass:NSString.class error:nil]; } - (void)setVrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms { - [parameters sdl_setObject:vrSynonyms forName:SDLNameVRSynonyms]; + [parameters sdl_setObject:vrSynonyms forName:SDLRPCParameterNameVRSynonyms]; } - (nullable NSArray<NSString *> *)vrSynonyms { - return [parameters sdl_objectForName:SDLNameVRSynonyms]; + return [parameters sdl_objectsForName:SDLRPCParameterNameVRSynonyms ofClass:NSString.class error:nil]; } - (void)setIsMediaApplication:(NSNumber<SDLBool> *)isMediaApplication { - [parameters sdl_setObject:isMediaApplication forName:SDLNameIsMediaApplication]; + [parameters sdl_setObject:isMediaApplication forName:SDLRPCParameterNameIsMediaApplication]; } - (NSNumber<SDLBool> *)isMediaApplication { - return [parameters sdl_objectForName:SDLNameIsMediaApplication]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameIsMediaApplication ofClass:NSNumber.class error:&error]; } - (void)setLanguageDesired:(SDLLanguage)languageDesired { - [parameters sdl_setObject:languageDesired forName:SDLNameLanguageDesired]; + [parameters sdl_setObject:languageDesired forName:SDLRPCParameterNameLanguageDesired]; } - (SDLLanguage)languageDesired { - return [parameters sdl_objectForName:SDLNameLanguageDesired]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameLanguageDesired error:&error]; } - (void)setHmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired { - [parameters sdl_setObject:hmiDisplayLanguageDesired forName:SDLNameHMIDisplayLanguageDesired]; + [parameters sdl_setObject:hmiDisplayLanguageDesired forName:SDLRPCParameterNameHMIDisplayLanguageDesired]; } - (SDLLanguage)hmiDisplayLanguageDesired { - return [parameters sdl_objectForName:SDLNameHMIDisplayLanguageDesired]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguageDesired error:&error]; } - (void)setAppHMIType:(nullable NSArray<SDLAppHMIType> *)appHMIType { - [parameters sdl_setObject:appHMIType forName:SDLNameAppHMIType]; + [parameters sdl_setObject:appHMIType forName:SDLRPCParameterNameAppHMIType]; } - (nullable NSArray<SDLAppHMIType> *)appHMIType { - return [parameters sdl_objectForName:SDLNameAppHMIType]; + return [parameters sdl_enumsForName:SDLRPCParameterNameAppHMIType error:nil]; } - (void)setHashID:(nullable NSString *)hashID { - [parameters sdl_setObject:hashID forName:SDLNameHashId]; + [parameters sdl_setObject:hashID forName:SDLRPCParameterNameHashId]; } - (nullable NSString *)hashID { - return [parameters sdl_objectForName:SDLNameHashId]; + return [parameters sdl_objectForName:SDLRPCParameterNameHashId ofClass:NSString.class error:nil]; } - (void)setDeviceInfo:(nullable SDLDeviceInfo *)deviceInfo { - [parameters sdl_setObject:deviceInfo forName:SDLNameDeviceInfo]; + [parameters sdl_setObject:deviceInfo forName:SDLRPCParameterNameDeviceInfo]; } - (nullable SDLDeviceInfo *)deviceInfo { - return [parameters sdl_objectForName:SDLNameDeviceInfo ofClass:SDLDeviceInfo.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceInfo ofClass:SDLDeviceInfo.class error:nil]; } - (void)setAppID:(NSString *)appID { - [parameters sdl_setObject:appID forName:SDLNameAppId]; + [parameters sdl_setObject:appID forName:SDLRPCParameterNameAppId]; } - (NSString *)appID { - return [parameters sdl_objectForName:SDLNameAppId]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameAppId ofClass:NSString.class error:&error]; } - (void)setFullAppID:(nullable NSString *)fullAppID { - [parameters sdl_setObject:fullAppID forName:SDLNameFullAppID]; + [parameters sdl_setObject:fullAppID forName:SDLRPCParameterNameFullAppID]; } - (nullable NSString *)fullAppID { - return [parameters sdl_objectForName:SDLNameFullAppID]; + return [parameters sdl_objectForName:SDLRPCParameterNameFullAppID ofClass:NSString.class error:nil]; } - (void)setAppInfo:(nullable SDLAppInfo *)appInfo { - [parameters sdl_setObject:appInfo forName:SDLNameAppInfo]; + [parameters sdl_setObject:appInfo forName:SDLRPCParameterNameAppInfo]; } - (nullable SDLAppInfo *)appInfo { - return [parameters sdl_objectForName:SDLNameAppInfo ofClass:SDLAppInfo.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAppInfo ofClass:SDLAppInfo.class error:nil]; } - (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [parameters sdl_setObject:dayColorScheme forName:SDLNameDayColorScheme]; + [parameters sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; } - (nullable SDLTemplateColorScheme *)dayColorScheme { - return [parameters sdl_objectForName:SDLNameDayColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } - (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [parameters sdl_setObject:nightColorScheme forName:SDLNameNightColorScheme]; + [parameters sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; } - (nullable SDLTemplateColorScheme *)nightColorScheme { - return [parameters sdl_objectForName:SDLNameNightColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m index f8b3b626b..d91d0dfb0 100644 --- a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m +++ b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m @@ -9,7 +9,8 @@ #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" #import "SDLHMICapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPresetBankCapabilities.h" #import "SDLSoftButtonCapabilities.h" #import "SDLSyncMsgVersion.h" @@ -21,161 +22,161 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLRegisterAppInterfaceResponse - (instancetype)init { - if (self = [super initWithName:SDLNameRegisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameRegisterAppInterface]) { } return self; } - (void)setSyncMsgVersion:(nullable SDLSyncMsgVersion *)syncMsgVersion { - [parameters sdl_setObject:syncMsgVersion forName:SDLNameSyncMessageVersion]; + [parameters sdl_setObject:syncMsgVersion forName:SDLRPCParameterNameSyncMessageVersion]; } - (nullable SDLSyncMsgVersion *)syncMsgVersion { - return [parameters sdl_objectForName:SDLNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class error:nil]; } - (void)setLanguage:(nullable SDLLanguage)language { - [parameters sdl_setObject:language forName:SDLNameLanguage]; + [parameters sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (nullable SDLLanguage)language { - return [parameters sdl_objectForName:SDLNameLanguage]; + return [parameters sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; } - (void)setHmiDisplayLanguage:(nullable SDLLanguage)hmiDisplayLanguage { - [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; + [parameters sdl_setObject:hmiDisplayLanguage forName:SDLRPCParameterNameHMIDisplayLanguage]; } - (nullable SDLLanguage)hmiDisplayLanguage { - return [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; + return [parameters sdl_enumForName:SDLRPCParameterNameHMIDisplayLanguage error:nil]; } - (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { - [parameters sdl_setObject:displayCapabilities forName:SDLNameDisplayCapabilities]; + [parameters sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; } - (nullable SDLDisplayCapabilities *)displayCapabilities { - return [parameters sdl_objectForName:SDLNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class error:nil]; } - (void)setButtonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities { - [parameters sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities]; + [parameters sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; } - (nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities { - return [parameters sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; } - (void)setSoftButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities { - [parameters sdl_setObject:softButtonCapabilities forName:SDLNameSoftButtonCapabilities]; + [parameters sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; } - (nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities { - return [parameters sdl_objectsForName:SDLNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; } - (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { - [parameters sdl_setObject:presetBankCapabilities forName:SDLNamePresetBankCapabilities]; + [parameters sdl_setObject:presetBankCapabilities forName:SDLRPCParameterNamePresetBankCapabilities]; } - (nullable SDLPresetBankCapabilities *)presetBankCapabilities { - return [parameters sdl_objectForName:SDLNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class]; + return [parameters sdl_objectForName:SDLRPCParameterNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class error:nil]; } - (void)setHmiZoneCapabilities:(nullable NSArray<SDLHMIZoneCapabilities> *)hmiZoneCapabilities { - [parameters sdl_setObject:hmiZoneCapabilities forName:SDLNameHMIZoneCapabilities]; + [parameters sdl_setObject:hmiZoneCapabilities forName:SDLRPCParameterNameHMIZoneCapabilities]; } - (nullable NSArray<SDLHMIZoneCapabilities> *)hmiZoneCapabilities { - return [parameters sdl_objectForName:SDLNameHMIZoneCapabilities]; + return [parameters sdl_enumsForName:SDLRPCParameterNameHMIZoneCapabilities error:nil]; } - (void)setSpeechCapabilities:(nullable NSArray<SDLSpeechCapabilities> *)speechCapabilities { - [parameters sdl_setObject:speechCapabilities forName:SDLNameSpeechCapabilities]; + [parameters sdl_setObject:speechCapabilities forName:SDLRPCParameterNameSpeechCapabilities]; } - (nullable NSArray<SDLSpeechCapabilities> *)speechCapabilities { - return [parameters sdl_objectForName:SDLNameSpeechCapabilities]; + return [parameters sdl_enumsForName:SDLRPCParameterNameSpeechCapabilities error:nil]; } - (void)setPrerecordedSpeech:(nullable NSArray<SDLPrerecordedSpeech> *)prerecordedSpeech { - [parameters sdl_setObject:prerecordedSpeech forName:SDLNamePrerecordedSpeech]; + [parameters sdl_setObject:prerecordedSpeech forName:SDLRPCParameterNamePrerecordedSpeech]; } - (nullable NSArray<SDLPrerecordedSpeech> *)prerecordedSpeech { - return [parameters sdl_objectForName:SDLNamePrerecordedSpeech]; + return [parameters sdl_enumsForName:SDLRPCParameterNamePrerecordedSpeech error:nil]; } - (void)setVrCapabilities:(nullable NSArray<SDLVRCapabilities> *)vrCapabilities { - [parameters sdl_setObject:vrCapabilities forName:SDLNameVRCapabilities]; + [parameters sdl_setObject:vrCapabilities forName:SDLRPCParameterNameVRCapabilities]; } - (nullable NSArray<SDLVRCapabilities> *)vrCapabilities { - return [parameters sdl_objectForName:SDLNameVRCapabilities]; + return [parameters sdl_enumsForName:SDLRPCParameterNameVRCapabilities error:nil]; } - (void)setAudioPassThruCapabilities:(nullable NSArray<SDLAudioPassThruCapabilities *> *)audioPassThruCapabilities { - [parameters sdl_setObject:audioPassThruCapabilities forName:SDLNameAudioPassThruCapabilities]; + [parameters sdl_setObject:audioPassThruCapabilities forName:SDLRPCParameterNameAudioPassThruCapabilities]; } - (nullable NSArray<SDLAudioPassThruCapabilities *> *)audioPassThruCapabilities { - return [parameters sdl_objectsForName:SDLNameAudioPassThruCapabilities ofClass:SDLAudioPassThruCapabilities.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameAudioPassThruCapabilities ofClass:SDLAudioPassThruCapabilities.class error:nil]; } - (void)setPcmStreamCapabilities:(nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { - [parameters sdl_setObject:pcmStreamCapabilities forName:SDLNamePCMStreamCapabilities]; + [parameters sdl_setObject:pcmStreamCapabilities forName:SDLRPCParameterNamePCMStreamCapabilities]; } - (nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { - return [parameters sdl_objectForName:SDLNamePCMStreamCapabilities ofClass:SDLAudioPassThruCapabilities.class]; + return [parameters sdl_objectForName:SDLRPCParameterNamePCMStreamCapabilities ofClass:SDLAudioPassThruCapabilities.class error:nil]; } - (void)setVehicleType:(nullable SDLVehicleType *)vehicleType { - [parameters sdl_setObject:vehicleType forName:SDLNameVehicleType]; + [parameters sdl_setObject:vehicleType forName:SDLRPCParameterNameVehicleType]; } - (nullable SDLVehicleType *)vehicleType { - return [parameters sdl_objectForName:SDLNameVehicleType ofClass:[SDLVehicleType class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameVehicleType ofClass:SDLVehicleType.class error:nil]; } - (void)setSupportedDiagModes:(nullable NSArray<NSNumber<SDLInt> *> *)supportedDiagModes { - [parameters sdl_setObject:supportedDiagModes forName:SDLNameSupportedDiagnosticModes]; + [parameters sdl_setObject:supportedDiagModes forName:SDLRPCParameterNameSupportedDiagnosticModes]; } - (nullable NSArray<NSNumber<SDLInt> *> *)supportedDiagModes { - return [parameters sdl_objectForName:SDLNameSupportedDiagnosticModes]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSupportedDiagnosticModes ofClass:NSNumber.class error:nil]; } - (void)setHmiCapabilities:(nullable SDLHMICapabilities *)hmiCapabilities { - [parameters sdl_setObject:hmiCapabilities forName:SDLNameHMICapabilities]; + [parameters sdl_setObject:hmiCapabilities forName:SDLRPCParameterNameHMICapabilities]; } - (nullable SDLHMICapabilities *)hmiCapabilities { - return [parameters sdl_objectForName:SDLNameHMICapabilities ofClass:SDLHMICapabilities.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameHMICapabilities ofClass:SDLHMICapabilities.class error:nil]; } - (void)setSdlVersion:(nullable NSString *)sdlVersion { - [parameters sdl_setObject:sdlVersion forName:SDLNameSDLVersion]; + [parameters sdl_setObject:sdlVersion forName:SDLRPCParameterNameSDLVersion]; } - (nullable NSString *)sdlVersion { - return [parameters sdl_objectForName:SDLNameSDLVersion]; + return [parameters sdl_objectForName:SDLRPCParameterNameSDLVersion ofClass:NSString.class error:nil]; } - (void)setSystemSoftwareVersion:(nullable NSString *)systemSoftwareVersion { - [parameters sdl_setObject:systemSoftwareVersion forName:SDLNameSystemSoftwareVersion]; + [parameters sdl_setObject:systemSoftwareVersion forName:SDLRPCParameterNameSystemSoftwareVersion]; } - (nullable NSString *)systemSoftwareVersion { - return [parameters sdl_objectForName:SDLNameSystemSoftwareVersion]; + return [parameters sdl_objectForName:SDLRPCParameterNameSystemSoftwareVersion ofClass:NSString.class error:nil]; } - (void)setIconResumed:(nullable NSNumber<SDLBool> *)iconResumed { - [parameters sdl_setObject:iconResumed forName:SDLNameIconResumed]; + [parameters sdl_setObject:iconResumed forName:SDLRPCParameterNameIconResumed]; } - (nullable NSNumber<SDLBool> *)iconResumed { - return [parameters sdl_objectForName:SDLNameIconResumed]; + return [parameters sdl_objectForName:SDLRPCParameterNameIconResumed ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRemoteControlCapabilities.m b/SmartDeviceLink/SDLRemoteControlCapabilities.m index 2e4ab7492..f1620af10 100644 --- a/SmartDeviceLink/SDLRemoteControlCapabilities.m +++ b/SmartDeviceLink/SDLRemoteControlCapabilities.m @@ -11,7 +11,7 @@ #import "SDLRadioControlCapabilities.h" #import "SDLSeatControlCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -40,59 +40,59 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setClimateControlCapabilities:(nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities { - [store sdl_setObject:climateControlCapabilities forName:SDLNameClimateControlCapabilities]; + [store sdl_setObject:climateControlCapabilities forName:SDLRPCParameterNameClimateControlCapabilities]; } - (nullable NSArray<SDLClimateControlCapabilities *> *)climateControlCapabilities { - return [store sdl_objectsForName:SDLNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class error:nil]; } -(void)setRadioControlCapabilities:(nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities { - [store sdl_setObject:radioControlCapabilities forName:SDLNameRadioControlCapabilities ]; + [store sdl_setObject:radioControlCapabilities forName:SDLRPCParameterNameRadioControlCapabilities ]; } - (nullable NSArray<SDLRadioControlCapabilities *> *)radioControlCapabilities { - return [store sdl_objectsForName:SDLNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class error:nil]; } - (void)setButtonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities { - [store sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities];} + [store sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities];} - (nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities { - return [store sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; } - (void)setSeatControlCapabilities:(nullable NSArray<SDLSeatControlCapabilities *> *)seatControlCapabilities { - [store sdl_setObject:seatControlCapabilities forName:SDLNameSeatControlCapabilities]; + [store sdl_setObject:seatControlCapabilities forName:SDLRPCParameterNameSeatControlCapabilities]; } - (nullable NSArray<SDLSeatControlCapabilities *> *)seatControlCapabilities { - return [store sdl_objectsForName:SDLNameSeatControlCapabilities ofClass:SDLSeatControlCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameSeatControlCapabilities ofClass:SDLSeatControlCapabilities.class error:nil]; } - (void)setAudioControlCapabilities:(nullable NSArray<SDLAudioControlCapabilities *> *)audioControlCapabilities { - [store sdl_setObject:audioControlCapabilities forName:SDLNameAudioControlCapabilities]; + [store sdl_setObject:audioControlCapabilities forName:SDLRPCParameterNameAudioControlCapabilities]; } - (nullable NSArray<SDLAudioControlCapabilities *> *)audioControlCapabilities { - return [store sdl_objectsForName:SDLNameAudioControlCapabilities ofClass:SDLAudioControlCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameAudioControlCapabilities ofClass:SDLAudioControlCapabilities.class error:nil]; } - (void)setHmiSettingsControlCapabilities:(nullable NSArray<SDLHMISettingsControlCapabilities *> *)hmiSettingsControlCapabilities { - [store sdl_setObject:hmiSettingsControlCapabilities forName:SDLNameHmiSettingsControlCapabilities]; + [store sdl_setObject:hmiSettingsControlCapabilities forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; } - (nullable NSArray<SDLHMISettingsControlCapabilities *> *)hmiSettingsControlCapabilities { - return [store sdl_objectsForName:SDLNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class error:nil]; } - (void)setLightControlCapabilities:(nullable NSArray<SDLLightControlCapabilities *> *)lightControlCapabilities { - [store sdl_setObject:lightControlCapabilities forName:SDLNameLightControlCapabilities]; + [store sdl_setObject:lightControlCapabilities forName:SDLRPCParameterNameLightControlCapabilities]; } - (nullable NSArray<SDLLightControlCapabilities *> *)lightControlCapabilities { - return [store sdl_objectsForName:SDLNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class]; + return [store sdl_objectsForName:SDLRPCParameterNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLRequestType.h b/SmartDeviceLink/SDLRequestType.h index 918ce0218..9f56d7bc3 100644 --- a/SmartDeviceLink/SDLRequestType.h +++ b/SmartDeviceLink/SDLRequestType.h @@ -113,3 +113,9 @@ extern SDLRequestType const SDLRequestTypeFOTA; A request that is OEM specific using the `RequestSubType` in SystemRequest */ extern SDLRequestType const SDLRequestTypeOEMSpecific; + +/** + A request for an icon url + */ +extern SDLRequestType const SDLRequestTypeIconURL; + diff --git a/SmartDeviceLink/SDLRequestType.m b/SmartDeviceLink/SDLRequestType.m index d766e04ee..cbc6c7fda 100644 --- a/SmartDeviceLink/SDLRequestType.m +++ b/SmartDeviceLink/SDLRequestType.m @@ -25,3 +25,4 @@ SDLRequestType const SDLRequestTypeEmergency = @"EMERGENCY"; SDLRequestType const SDLRequestTypeMedia = @"MEDIA"; SDLRequestType const SDLRequestTypeFOTA = @"FOTA"; SDLRequestType const SDLRequestTypeOEMSpecific = @"OEM_SPECIFIC"; +SDLRequestType const SDLRequestTypeIconURL = @"ICON_URL"; diff --git a/SmartDeviceLink/SDLResetGlobalProperties.m b/SmartDeviceLink/SDLResetGlobalProperties.m index 21242cbab..331f560bd 100644 --- a/SmartDeviceLink/SDLResetGlobalProperties.m +++ b/SmartDeviceLink/SDLResetGlobalProperties.m @@ -6,14 +6,15 @@ #import "NSMutableDictionary+Store.h" #import "SDLGlobalProperty.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLResetGlobalProperties - (instancetype)init { - if (self = [super initWithName:SDLNameResetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameResetGlobalProperties]) { } return self; } @@ -30,11 +31,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setProperties:(NSArray<SDLGlobalProperty> *)properties { - [parameters sdl_setObject:properties forName:SDLNameProperties]; + [parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; } - (NSArray<SDLGlobalProperty> *)properties { - return [parameters sdl_objectForName:SDLNameProperties]; + NSError *error = nil; + return [parameters sdl_enumsForName:SDLRPCParameterNameProperties error:&error]; } @end diff --git a/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m b/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m index 4db428b7b..65bde4093 100644 --- a/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m +++ b/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m @@ -5,14 +5,15 @@ #import "SDLResetGlobalPropertiesResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLResetGlobalPropertiesResponse - (instancetype)init { - if (self = [super initWithName:SDLNameResetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameResetGlobalProperties]) { } return self; } diff --git a/SmartDeviceLink/SDLSISData.m b/SmartDeviceLink/SDLSISData.m index 27681aab9..f7589afd9 100644 --- a/SmartDeviceLink/SDLSISData.m +++ b/SmartDeviceLink/SDLSISData.m @@ -5,7 +5,7 @@ #import "SDLStationIDNumber.h" #import "SDLGPSData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" @@ -28,43 +28,43 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setStationShortName:(nullable NSString *)stationShortName { - [store sdl_setObject:stationShortName forName:SDLNameStationShortName]; + [store sdl_setObject:stationShortName forName:SDLRPCParameterNameStationShortName]; } - (nullable NSString *)stationShortName { - return [store sdl_objectForName:SDLNameStationShortName]; + return [store sdl_objectForName:SDLRPCParameterNameStationShortName ofClass:NSString.class error:nil]; } - (void)setStationIDNumber:(nullable SDLStationIDNumber *)stationIDNumber { - [store sdl_setObject:stationIDNumber forName:SDLNameStationIDNumber]; + [store sdl_setObject:stationIDNumber forName:SDLRPCParameterNameStationIDNumber]; } - (nullable SDLStationIDNumber *)stationIDNumber { - return [store sdl_objectForName:SDLNameStationIDNumber ofClass:SDLStationIDNumber.class]; + return [store sdl_objectForName:SDLRPCParameterNameStationIDNumber ofClass:SDLStationIDNumber.class error:nil]; } - (void)setStationLongName:(nullable NSString *)stationLongName { - [store sdl_setObject:stationLongName forName:SDLNameStationLongName]; + [store sdl_setObject:stationLongName forName:SDLRPCParameterNameStationLongName]; } - (nullable NSString *)stationLongName { - return [store sdl_objectForName:SDLNameStationLongName]; + return [store sdl_objectForName:SDLRPCParameterNameStationLongName ofClass:NSString.class error:nil];; } - (void)setStationLocation:(nullable SDLGPSData *)stationLocation { - [store sdl_setObject:stationLocation forName:SDLNameStationLocation]; + [store sdl_setObject:stationLocation forName:SDLRPCParameterNameStationLocation]; } - (nullable SDLGPSData *)stationLocation { - return [store sdl_objectForName:SDLNameStationLocation ofClass:SDLGPSData.class]; + return [store sdl_objectForName:SDLRPCParameterNameStationLocation ofClass:SDLGPSData.class error:nil]; } - (void)setStationMessage:(nullable NSString *)stationMessage { - [store sdl_setObject:stationMessage forName:SDLNameStationMessage]; + [store sdl_setObject:stationMessage forName:SDLRPCParameterNameStationMessage]; } - (nullable NSString *)stationMessage { - return [store sdl_objectForName:SDLNameStationMessage]; + return [store sdl_objectForName:SDLRPCParameterNameStationMessage ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLScreenParams.m b/SmartDeviceLink/SDLScreenParams.m index d531dfadd..039f054e8 100644 --- a/SmartDeviceLink/SDLScreenParams.m +++ b/SmartDeviceLink/SDLScreenParams.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTouchEventCapabilities.h" NS_ASSUME_NONNULL_BEGIN @@ -13,19 +13,20 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLScreenParams - (void)setResolution:(SDLImageResolution *)resolution { - [store sdl_setObject:resolution forName:SDLNameResolution]; + [store sdl_setObject:resolution forName:SDLRPCParameterNameResolution]; } - (SDLImageResolution *)resolution { - return [store sdl_objectForName:SDLNameResolution ofClass:SDLImageResolution.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameResolution ofClass:SDLImageResolution.class error:&error]; } - (void)setTouchEventAvailable:(nullable SDLTouchEventCapabilities *)touchEventAvailable { - [store sdl_setObject:touchEventAvailable forName:SDLNameTouchEventAvailable]; + [store sdl_setObject:touchEventAvailable forName:SDLRPCParameterNameTouchEventAvailable]; } - (nullable SDLTouchEventCapabilities *)touchEventAvailable { - return [store sdl_objectForName:SDLNameTouchEventAvailable ofClass:SDLTouchEventCapabilities.class]; + return [store sdl_objectForName:SDLRPCParameterNameTouchEventAvailable ofClass:SDLTouchEventCapabilities.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLScrollableMessage.m b/SmartDeviceLink/SDLScrollableMessage.m index f9c92c796..034190e34 100644 --- a/SmartDeviceLink/SDLScrollableMessage.m +++ b/SmartDeviceLink/SDLScrollableMessage.m @@ -5,7 +5,8 @@ #import "SDLScrollableMessage.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" NS_ASSUME_NONNULL_BEGIN @@ -13,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLScrollableMessage - (instancetype)init { - if (self = [super initWithName:SDLNameScrollableMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameScrollableMessage]) { } return self; } @@ -42,27 +43,28 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setScrollableMessageBody:(NSString *)scrollableMessageBody { - [parameters sdl_setObject:scrollableMessageBody forName:SDLNameScrollableMessageBody]; + [parameters sdl_setObject:scrollableMessageBody forName:SDLRPCParameterNameScrollableMessageBody]; } - (NSString *)scrollableMessageBody { - return [parameters sdl_objectForName:SDLNameScrollableMessageBody]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameScrollableMessageBody ofClass:NSString.class error:&error]; } - (void)setTimeout:(nullable NSNumber<SDLInt> *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber<SDLInt> *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } - (void)setSoftButtons:(nullable NSArray<SDLSoftButton *> *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray<SDLSoftButton *> *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLScrollableMessageResponse.m b/SmartDeviceLink/SDLScrollableMessageResponse.m index 0777c3de2..4065ca985 100644 --- a/SmartDeviceLink/SDLScrollableMessageResponse.m +++ b/SmartDeviceLink/SDLScrollableMessageResponse.m @@ -5,12 +5,13 @@ #import "SDLScrollableMessageResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" @implementation SDLScrollableMessageResponse - (instancetype)init { - if (self = [super initWithName:SDLNameScrollableMessage]) { + if (self = [super initWithName:SDLRPCFunctionNameScrollableMessage]) { } return self; } diff --git a/SmartDeviceLink/SDLSeatControlCapabilities.m b/SmartDeviceLink/SDLSeatControlCapabilities.m index 5f7fd93b0..0c5a95c58 100644 --- a/SmartDeviceLink/SDLSeatControlCapabilities.m +++ b/SmartDeviceLink/SDLSeatControlCapabilities.m @@ -2,7 +2,7 @@ // #import "SDLSeatControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -44,158 +44,159 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleName:(NSString *)moduleName { - [store sdl_setObject:moduleName forName:SDLNameModuleName]; + [store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName]; } - (NSString *)moduleName { - return [store sdl_objectForName:SDLNameModuleName]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameModuleName ofClass:NSString.class error:&error]; } - (void)setHeatingEnabledAvailable:(nullable NSNumber<SDLBool> *)heatingEnabledAvailable { - [store sdl_setObject:heatingEnabledAvailable forName:SDLNameHeatingEnabledAvailable]; + [store sdl_setObject:heatingEnabledAvailable forName:SDLRPCParameterNameHeatingEnabledAvailable]; } - (nullable NSNumber<SDLBool> *)heatingEnabledAvailable { - return [store sdl_objectForName:SDLNameHeatingEnabledAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatingEnabledAvailable ofClass:NSNumber.class error:nil]; } - (void)setCoolingEnabledAvailable:(nullable NSNumber<SDLBool> *)coolingEnabledAvailable { - [store sdl_setObject:coolingEnabledAvailable forName:SDLNameCoolingEnabledAvailable]; + [store sdl_setObject:coolingEnabledAvailable forName:SDLRPCParameterNameCoolingEnabledAvailable]; } - (nullable NSNumber<SDLBool> *)coolingEnabledAvailable { - return [store sdl_objectForName:SDLNameCoolingEnabledAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameCoolingEnabledAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeatingLevelAvailable:(nullable NSNumber<SDLBool> *)heatingLevelAvailable { - [store sdl_setObject:heatingLevelAvailable forName:SDLNameHeatingLevelAvailable]; + [store sdl_setObject:heatingLevelAvailable forName:SDLRPCParameterNameHeatingLevelAvailable]; } - (nullable NSNumber<SDLBool> *)heatingLevelAvailable { - return [store sdl_objectForName:SDLNameHeatingLevelAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeatingLevelAvailable ofClass:NSNumber.class error:nil]; } - (void)setCoolingLevelAvailable:(nullable NSNumber<SDLBool> *)coolingLevelAvailable { - [store sdl_setObject:coolingLevelAvailable forName:SDLNameCoolingLevelAvailable]; + [store sdl_setObject:coolingLevelAvailable forName:SDLRPCParameterNameCoolingLevelAvailable]; } - (nullable NSNumber<SDLBool> *)coolingLevelAvailable { - return [store sdl_objectForName:SDLNameCoolingLevelAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameCoolingLevelAvailable ofClass:NSNumber.class error:nil]; } - (void)setHorizontalPositionAvailable:(nullable NSNumber<SDLBool> *)horizontalPositionAvailable { - [store sdl_setObject:horizontalPositionAvailable forName:SDLNameHorizontalPositionAvailable]; + [store sdl_setObject:horizontalPositionAvailable forName:SDLRPCParameterNameHorizontalPositionAvailable]; } - (nullable NSNumber<SDLBool> *)horizontalPositionAvailable { - return [store sdl_objectForName:SDLNameHorizontalPositionAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHorizontalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setVerticalPositionAvailable:(nullable NSNumber<SDLBool> *)verticalPositionAvailable { - [store sdl_setObject:verticalPositionAvailable forName:SDLNameVerticalPositionAvailable]; + [store sdl_setObject:verticalPositionAvailable forName:SDLRPCParameterNameVerticalPositionAvailable]; } - (nullable NSNumber<SDLBool> *)verticalPositionAvailable { - return [store sdl_objectForName:SDLNameVerticalPositionAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setFrontVerticalPositionAvailable:(nullable NSNumber<SDLBool> *)frontVerticalPositionAvailable { - [store sdl_setObject:frontVerticalPositionAvailable forName:SDLNameFrontVerticalPositionAvailable]; + [store sdl_setObject:frontVerticalPositionAvailable forName:SDLRPCParameterNameFrontVerticalPositionAvailable]; } - (nullable NSNumber<SDLBool> *)frontVerticalPositionAvailable { - return [store sdl_objectForName:SDLNameFrontVerticalPositionAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameFrontVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setBackVerticalPositionAvailable:(nullable NSNumber<SDLBool> *)backVerticalPositionAvailable { - [store sdl_setObject:backVerticalPositionAvailable forName:SDLNameBackVerticalPositionAvailable]; + [store sdl_setObject:backVerticalPositionAvailable forName:SDLRPCParameterNameBackVerticalPositionAvailable]; } - (nullable NSNumber<SDLBool> *)backVerticalPositionAvailable { - return [store sdl_objectForName:SDLNameBackVerticalPositionAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameBackVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setBackTiltAngleAvailable:(nullable NSNumber<SDLBool> *)backTiltAngleAvailable { - [store sdl_setObject:backTiltAngleAvailable forName:SDLNameBackTiltAngleAvailable]; + [store sdl_setObject:backTiltAngleAvailable forName:SDLRPCParameterNameBackTiltAngleAvailable]; } - (nullable NSNumber<SDLBool> *)backTiltAngleAvailable { - return [store sdl_objectForName:SDLNameBackTiltAngleAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameBackTiltAngleAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeadSupportHorizontalPositionAvailable:(nullable NSNumber<SDLBool> *)headSupportHorizontalPositionAvailable { - [store sdl_setObject:headSupportHorizontalPositionAvailable forName:SDLNameHeadSupportHorizontalPositionAvailable]; + [store sdl_setObject:headSupportHorizontalPositionAvailable forName:SDLRPCParameterNameHeadSupportHorizontalPositionAvailable]; } - (nullable NSNumber<SDLBool> *)headSupportHorizontalPositionAvailable { - return [store sdl_objectForName:SDLNameHeadSupportHorizontalPositionAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeadSupportHorizontalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setHeadSupportVerticalPositionAvailable:(nullable NSNumber<SDLBool> *)headSupportVerticalPositionAvailable { - [store sdl_setObject:headSupportVerticalPositionAvailable forName:SDLNameHeadSupportVerticalPositionAvailable]; + [store sdl_setObject:headSupportVerticalPositionAvailable forName:SDLRPCParameterNameHeadSupportVerticalPositionAvailable]; } - (nullable NSNumber<SDLBool> *)headSupportVerticalPositionAvailable { - return [store sdl_objectForName:SDLNameHeadSupportVerticalPositionAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameHeadSupportVerticalPositionAvailable ofClass:NSNumber.class error:nil]; } - (void)setMassageEnabledAvailable:(nullable NSNumber<SDLBool> *)massageEnabledAvailable { - [store sdl_setObject:massageEnabledAvailable forName:SDLNameMassageEnabledAvailable]; + [store sdl_setObject:massageEnabledAvailable forName:SDLRPCParameterNameMassageEnabledAvailable]; } - (nullable NSNumber<SDLBool> *)massageEnabledAvailable { - return [store sdl_objectForName:SDLNameMassageEnabledAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameMassageEnabledAvailable ofClass:NSNumber.class error:nil]; } - (void)setMassageModeAvailable:(nullable NSNumber<SDLBool> *)massageModeAvailable { - [store sdl_setObject:massageModeAvailable forName:SDLNameMassageModeAvailable]; + [store sdl_setObject:massageModeAvailable forName:SDLRPCParameterNameMassageModeAvailable]; } - (nullable NSNumber<SDLBool> *)massageModeAvailable { - return [store sdl_objectForName:SDLNameMassageModeAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameMassageModeAvailable ofClass:NSNumber.class error:nil]; } - (void)setMassageCushionFirmnessAvailable:(nullable NSNumber<SDLBool> *)massageCushionFirmnessAvailable { - [store sdl_setObject:massageCushionFirmnessAvailable forName:SDLNameMassageCushionFirmnessAvailable]; + [store sdl_setObject:massageCushionFirmnessAvailable forName:SDLRPCParameterNameMassageCushionFirmnessAvailable]; } - (nullable NSNumber<SDLBool> *)massageCushionFirmnessAvailable { - return [store sdl_objectForName:SDLNameMassageCushionFirmnessAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameMassageCushionFirmnessAvailable ofClass:NSNumber.class error:nil]; } - (void)setMemoryAvailable:(nullable NSNumber<SDLBool> *)memoryAvailable { - [store sdl_setObject:memoryAvailable forName:SDLNameMemoryAvailable]; + [store sdl_setObject:memoryAvailable forName:SDLRPCParameterNameMemoryAvailable]; } - (nullable NSNumber<SDLBool> *)memoryAvailable { - return [store sdl_objectForName:SDLNameMemoryAvailable]; + return [store sdl_objectForName:SDLRPCParameterNameMemoryAvailable ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSeatControlData.m b/SmartDeviceLink/SDLSeatControlData.m index df2b43585..734c412a7 100644 --- a/SmartDeviceLink/SDLSeatControlData.m +++ b/SmartDeviceLink/SDLSeatControlData.m @@ -2,7 +2,7 @@ // #import "SDLSeatControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" #import "SDLMassageModeData.h" @@ -54,132 +54,133 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setId:(SDLSupportedSeat)id { - [store sdl_setObject:id forName:SDLNameId]; + [store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (SDLSupportedSeat)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameId error:&error]; } - (void)setHeatingEnabled:(nullable NSNumber<SDLBool> *)heatingEnabled { - [store sdl_setObject:heatingEnabled forName:SDLNameHeatingEnabled]; + [store sdl_setObject:heatingEnabled forName:SDLRPCParameterNameHeatingEnabled]; } - (nullable NSNumber<SDLBool> *)heatingEnabled { - return [store sdl_objectForName:SDLNameHeatingEnabled]; + return [store sdl_objectForName:SDLRPCParameterNameHeatingEnabled ofClass:NSNumber.class error:nil]; } - (void)setCoolingEnabled:(nullable NSNumber<SDLBool> *)coolingEnabled { - [store sdl_setObject:coolingEnabled forName:SDLNameCoolingEnabled]; + [store sdl_setObject:coolingEnabled forName:SDLRPCParameterNameCoolingEnabled]; } - (nullable NSNumber<SDLBool> *)coolingEnabled { - return [store sdl_objectForName:SDLNameCoolingEnabled]; + return [store sdl_objectForName:SDLRPCParameterNameCoolingEnabled ofClass:NSNumber.class error:nil]; } - (void)setHeatingLevel:(nullable NSNumber<SDLInt> *)heatingLevel { - [store sdl_setObject:heatingLevel forName:SDLNameHeatingLevel]; + [store sdl_setObject:heatingLevel forName:SDLRPCParameterNameHeatingLevel]; } - (nullable NSNumber<SDLInt> *)heatingLevel { - return [store sdl_objectForName:SDLNameHeatingLevel]; + return [store sdl_objectForName:SDLRPCParameterNameHeatingLevel ofClass:NSNumber.class error:nil]; } - (void)setCoolingLevel:(nullable NSNumber<SDLInt> *)coolingLevel { - [store sdl_setObject:coolingLevel forName:SDLNameCoolingLevel]; + [store sdl_setObject:coolingLevel forName:SDLRPCParameterNameCoolingLevel]; } - (nullable NSNumber<SDLInt> *)coolingLevel { - return [store sdl_objectForName:SDLNameCoolingLevel]; + return [store sdl_objectForName:SDLRPCParameterNameCoolingLevel ofClass:NSNumber.class error:nil]; } - (void)setHorizontalPosition:(nullable NSNumber<SDLInt> *)horizontalPosition { - [store sdl_setObject:horizontalPosition forName:SDLNameHorizontalPosition]; + [store sdl_setObject:horizontalPosition forName:SDLRPCParameterNameHorizontalPosition]; } - (nullable NSNumber<SDLInt> *)horizontalPosition { - return [store sdl_objectForName:SDLNameHorizontalPosition]; + return [store sdl_objectForName:SDLRPCParameterNameHorizontalPosition ofClass:NSNumber.class error:nil]; } - (void)setVerticalPosition:(nullable NSNumber<SDLInt> *)verticalPosition { - [store sdl_setObject:verticalPosition forName:SDLNameVerticalPosition]; + [store sdl_setObject:verticalPosition forName:SDLRPCParameterNameVerticalPosition]; } - (nullable NSNumber<SDLInt> *)verticalPosition { - return [store sdl_objectForName:SDLNameVerticalPosition]; + return [store sdl_objectForName:SDLRPCParameterNameVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setFrontVerticalPosition:(nullable NSNumber<SDLInt> *)frontVerticalPosition { - [store sdl_setObject:frontVerticalPosition forName:SDLNameFrontVerticalPosition]; + [store sdl_setObject:frontVerticalPosition forName:SDLRPCParameterNameFrontVerticalPosition]; } - (nullable NSNumber<SDLInt> *)frontVerticalPosition { - return [store sdl_objectForName:SDLNameFrontVerticalPosition]; + return [store sdl_objectForName:SDLRPCParameterNameFrontVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setBackVerticalPosition:(nullable NSNumber<SDLInt> *)backVerticalPosition { - [store sdl_setObject:backVerticalPosition forName:SDLNameBackVerticalPosition]; + [store sdl_setObject:backVerticalPosition forName:SDLRPCParameterNameBackVerticalPosition]; } - (nullable NSNumber<SDLInt> *)backVerticalPosition { - return [store sdl_objectForName:SDLNameBackVerticalPosition]; + return [store sdl_objectForName:SDLRPCParameterNameBackVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setBackTiltAngle:(nullable NSNumber<SDLInt> *)backTiltAngle { - [store sdl_setObject:backTiltAngle forName:SDLNameBackTiltAngle]; + [store sdl_setObject:backTiltAngle forName:SDLRPCParameterNameBackTiltAngle]; } - (nullable NSNumber<SDLInt> *)backTiltAngle { - return [store sdl_objectForName:SDLNameBackTiltAngle]; + return [store sdl_objectForName:SDLRPCParameterNameBackTiltAngle ofClass:NSNumber.class error:nil]; } - (void)setHeadSupportHorizontalPosition:(nullable NSNumber<SDLInt> *)headSupportHorizontalPosition { - [store sdl_setObject:headSupportHorizontalPosition forName:SDLNameHeadSupportHorizontalPosition]; + [store sdl_setObject:headSupportHorizontalPosition forName:SDLRPCParameterNameHeadSupportHorizontalPosition]; } - (nullable NSNumber<SDLInt> *)headSupportHorizontalPosition { - return [store sdl_objectForName:SDLNameHeadSupportHorizontalPosition]; + return [store sdl_objectForName:SDLRPCParameterNameHeadSupportHorizontalPosition ofClass:NSNumber.class error:nil]; } -(void)setHeadSupportVerticalPosition:(nullable NSNumber<SDLInt> *)headSupportVerticalPosition { - [store sdl_setObject:headSupportVerticalPosition forName:SDLNameHeadSupportVerticalPosition]; + [store sdl_setObject:headSupportVerticalPosition forName:SDLRPCParameterNameHeadSupportVerticalPosition]; } - (nullable NSNumber<SDLInt> *)headSupportVerticalPosition { - return [store sdl_objectForName:SDLNameHeadSupportVerticalPosition]; + return [store sdl_objectForName:SDLRPCParameterNameHeadSupportVerticalPosition ofClass:NSNumber.class error:nil]; } - (void)setMassageEnabled:(nullable NSNumber<SDLBool> *)massageEnabled { - [store sdl_setObject:massageEnabled forName:SDLNameMassageEnabled]; + [store sdl_setObject:massageEnabled forName:SDLRPCParameterNameMassageEnabled]; } - (nullable NSNumber<SDLBool> *)massageEnabled { - return [store sdl_objectForName:SDLNameMassageEnabled]; + return [store sdl_objectForName:SDLRPCParameterNameMassageEnabled ofClass:NSNumber.class error:nil]; } - (void)setMassageMode:(nullable NSArray<SDLMassageModeData *> *)massageMode { - [store sdl_setObject:massageMode forName:SDLNameMassageMode]; + [store sdl_setObject:massageMode forName:SDLRPCParameterNameMassageMode]; } - (nullable NSArray<SDLMassageModeData *> *)massageMode { - return [store sdl_objectForName:SDLNameMassageMode ]; + return [store sdl_objectsForName:SDLRPCParameterNameMassageMode ofClass:SDLMassageModeData.class error:nil]; } - (void)setMassageCushionFirmness:(nullable NSArray<SDLMassageCushionFirmness *> *)massageCushionFirmness { - [store sdl_setObject:massageCushionFirmness forName:SDLNameMassageCushionFirmness]; + [store sdl_setObject:massageCushionFirmness forName:SDLRPCParameterNameMassageCushionFirmness]; } - (nullable NSArray<SDLMassageCushionFirmness *> *)massageCushionFirmness { - return [store sdl_objectForName:SDLNameMassageCushionFirmness]; + return [store sdl_objectsForName:SDLRPCParameterNameMassageCushionFirmness ofClass:SDLMassageCushionFirmness.class error:nil]; } - (void)setMemory:(nullable SDLSeatMemoryAction *)memory { - [store sdl_setObject:memory forName:SDLNameMemory]; + [store sdl_setObject:memory forName:SDLRPCParameterNameMemory]; } - (nullable SDLSeatMemoryAction *)memory { - return [store sdl_objectForName:SDLNameMemory ofClass:SDLSeatMemoryAction.class]; + return [store sdl_objectForName:SDLRPCParameterNameMemory ofClass:SDLSeatMemoryAction.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSeatMemoryAction.m b/SmartDeviceLink/SDLSeatMemoryAction.m index 76f519238..a4144901a 100644 --- a/SmartDeviceLink/SDLSeatMemoryAction.m +++ b/SmartDeviceLink/SDLSeatMemoryAction.m @@ -2,7 +2,7 @@ // #import "SDLSeatMemoryAction.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -32,27 +32,29 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setId:(NSNumber<SDLInt> *)id { - [store sdl_setObject:id forName:SDLNameId]; + [store sdl_setObject:id forName:SDLRPCParameterNameId]; } - (NSNumber<SDLInt> *)id { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; } - (void)setLabel:(nullable NSString *)label { - [store sdl_setObject:label forName:SDLNameLabel]; + [store sdl_setObject:label forName:SDLRPCParameterNameLabel]; } - (nullable NSString *)label { - return [store sdl_objectForName:SDLNameLabel]; + return [store sdl_objectForName:SDLRPCParameterNameLabel ofClass:NSString.class error:nil]; } - (void)setAction:(SDLSeatMemoryActionType)action { - [store sdl_setObject:action forName:SDLNameAction]; + [store sdl_setObject:action forName:SDLRPCParameterNameAction]; } - (SDLSeatMemoryActionType)action { - return [store sdl_objectForName:SDLNameAction]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameAction error:&error]; } @end diff --git a/SmartDeviceLink/SDLSendHapticData.m b/SmartDeviceLink/SDLSendHapticData.m index e428e6f51..3302fbe49 100644 --- a/SmartDeviceLink/SDLSendHapticData.m +++ b/SmartDeviceLink/SDLSendHapticData.m @@ -7,7 +7,8 @@ // #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSendHapticData.h" #import "SDLHapticRect.h" @@ -16,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSendHapticData - (instancetype)init { - if (self = [super initWithName:SDLNameSendHapticData]) { + if (self = [super initWithName:SDLRPCFunctionNameSendHapticData]) { } return self; } @@ -33,11 +34,11 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setHapticRectData:(nullable NSArray<SDLHapticRect *> *)hapticRectData { - [parameters sdl_setObject:hapticRectData forName:SDLNameHapticRectData]; + [parameters sdl_setObject:hapticRectData forName:SDLRPCParameterNameHapticRectData]; } - (nullable NSArray<SDLHapticRect *> *)hapticRectData { - return [parameters sdl_objectsForName:SDLNameHapticRectData ofClass:SDLHapticRect.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameHapticRectData ofClass:SDLHapticRect.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSendHapticDataResponse.m b/SmartDeviceLink/SDLSendHapticDataResponse.m index b1fa03607..4c14b47d7 100644 --- a/SmartDeviceLink/SDLSendHapticDataResponse.m +++ b/SmartDeviceLink/SDLSendHapticDataResponse.m @@ -7,7 +7,8 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSendHapticDataResponse.h" NS_ASSUME_NONNULL_BEGIN @@ -15,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSendHapticDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSendHapticDataResponse]) { + if (self = [super initWithName:SDLRPCFunctionNameSendHapticData]) { } return self; } diff --git a/SmartDeviceLink/SDLSendLocation.h b/SmartDeviceLink/SDLSendLocation.h index c2d007604..0824ef7f2 100644 --- a/SmartDeviceLink/SDLSendLocation.h +++ b/SmartDeviceLink/SDLSendLocation.h @@ -15,21 +15,63 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSendLocation : SDLRPCRequest +/** + Create a `SendLocation` request with an address object, without Lat/Long coordinates. + + @param address The address information to be passed to the nav system for determining the route + @param addressLines The user-facing address + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @param deliveryMode How the location should be sent to the nav system + @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here + @return A `SendLocation` object + */ +- (instancetype)initWithAddress:(SDLOasisAddress *)address addressLines:(nullable NSArray<NSString *> *)addressLines locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp; + +/** + Create a `SendLocation` request with Lat/Long coordinate, not an address object + + @param longitude The longitudinal coordinate of the location + @param latitude The latitudinal coordinate of the location + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param address The user-facing address + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @return A `SendLocation` object + */ - (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; +/** + Create a `SendLocation` request with Lat/Long coordinate and an address object and let the nav system decide how to parse it + + @param longitude The longitudinal coordinate of the location + @param latitude The latitudinal coordinate of the location + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param displayAddressLines The user-facing address + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @param deliveryMode How the location should be sent to the nav system + @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here + @param address The address information to be passed to the nav system for determining the route + @return A `SendLocation` object + */ - (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. + * The longitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. * - * Float, Required, -180.0 - 180.0 + * Float, Optional, -180.0 - 180.0 */ @property (nullable, copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees; /** - * The latitudinal coordinate of the location. + * The latitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. * - * Float, Required, -90.0 - 90.0 + * Float, Optional, -90.0 - 90.0 */ @property (nullable, copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees; @@ -48,7 +90,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, copy, nonatomic) NSString *locationDescription; /** - * Location address for display purposes only + * Location address for display purposes only. * * Contains String, Optional, Max Array Length = 4, Max String Length = 500 */ @@ -83,7 +125,7 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, strong, nonatomic) SDLDateTime *timeStamp; /** - * Address to be used for setting destination + * Address to be used for setting destination. Either the latitude / longitude OR the `address` must be provided. * * Optional */ diff --git a/SmartDeviceLink/SDLSendLocation.m b/SmartDeviceLink/SDLSendLocation.m index 115c30a34..5874a86f3 100644 --- a/SmartDeviceLink/SDLSendLocation.m +++ b/SmartDeviceLink/SDLSendLocation.m @@ -5,14 +5,15 @@ #import "SDLSendLocation.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSendLocation - (instancetype)init { - self = [super initWithName:SDLNameSendLocation]; + self = [super initWithName:SDLRPCFunctionNameSendLocation]; if (!self) { return nil; } @@ -20,6 +21,22 @@ NS_ASSUME_NONNULL_BEGIN return self; } +- (instancetype)initWithAddress:(SDLOasisAddress *)address addressLines:(nullable NSArray<NSString *> *)addressLines locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp { + self = [self init]; + if (!self) { return nil; } + + self.address = address; + self.addressLines = addressLines; + self.locationName = locationName; + self.locationDescription = locationDescription; + self.phoneNumber = phoneNumber; + self.locationImage = image; + self.deliveryMode = deliveryMode; + self.timeStamp = timeStamp; + + return self; +} + - (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 { return [self initWithLongitude:longitude latitude:latitude locationName:locationName locationDescription:locationDescription displayAddressLines:address phoneNumber:phoneNumber image:image deliveryMode:nil timeStamp:nil address:nil]; } @@ -45,83 +62,83 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setLongitudeDegrees:(nullable NSNumber<SDLFloat> *)longitudeDegrees { - [parameters sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; + [parameters sdl_setObject:longitudeDegrees forName:SDLRPCParameterNameLongitudeDegrees]; } - (nullable NSNumber<SDLFloat> *)longitudeDegrees { - return [parameters sdl_objectForName:SDLNameLongitudeDegrees]; + return [parameters sdl_objectForName:SDLRPCParameterNameLongitudeDegrees ofClass:NSNumber.class error:nil]; } - (void)setLatitudeDegrees:(nullable NSNumber<SDLFloat> *)latitudeDegrees { - [parameters sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; + [parameters sdl_setObject:latitudeDegrees forName:SDLRPCParameterNameLatitudeDegrees]; } - (nullable NSNumber<SDLFloat> *)latitudeDegrees { - return [parameters sdl_objectForName:SDLNameLatitudeDegrees]; + return [parameters sdl_objectForName:SDLRPCParameterNameLatitudeDegrees ofClass:NSNumber.class error:nil]; } - (void)setLocationName:(nullable NSString *)locationName { - [parameters sdl_setObject:locationName forName:SDLNameLocationName]; + [parameters sdl_setObject:locationName forName:SDLRPCParameterNameLocationName]; } - (nullable NSString *)locationName { - return [parameters sdl_objectForName:SDLNameLocationName]; + return [parameters sdl_objectForName:SDLRPCParameterNameLocationName ofClass:NSString.class error:nil]; } - (void)setAddressLines:(nullable NSArray<NSString *> *)addressLines { - [parameters sdl_setObject:addressLines forName:SDLNameAddressLines]; + [parameters sdl_setObject:addressLines forName:SDLRPCParameterNameAddressLines]; } - (nullable NSString *)locationDescription { - return [parameters sdl_objectForName:SDLNameLocationDescription]; + return [parameters sdl_objectForName:SDLRPCParameterNameLocationDescription ofClass:NSString.class error:nil]; } - (void)setLocationDescription:(nullable NSString *)locationDescription { - [parameters sdl_setObject:locationDescription forName:SDLNameLocationDescription]; + [parameters sdl_setObject:locationDescription forName:SDLRPCParameterNameLocationDescription]; } - (nullable NSArray<NSString *> *)addressLines { - return [parameters sdl_objectForName:SDLNameAddressLines]; + return [parameters sdl_objectsForName:SDLRPCParameterNameAddressLines ofClass:NSString.class error:nil]; } - (void)setPhoneNumber:(nullable NSString *)phoneNumber { - [parameters sdl_setObject:phoneNumber forName:SDLNamePhoneNumber]; + [parameters sdl_setObject:phoneNumber forName:SDLRPCParameterNamePhoneNumber]; } - (nullable NSString *)phoneNumber { - return [parameters sdl_objectForName:SDLNamePhoneNumber]; + return [parameters sdl_objectForName:SDLRPCParameterNamePhoneNumber ofClass:NSString.class error:nil]; } - (void)setLocationImage:(nullable SDLImage *)locationImage { - [parameters sdl_setObject:locationImage forName:SDLNameLocationImage]; + [parameters sdl_setObject:locationImage forName:SDLRPCParameterNameLocationImage]; } - (nullable SDLImage *)locationImage { - return [parameters sdl_objectForName:SDLNameLocationImage ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameLocationImage ofClass:SDLImage.class error:nil]; } - (void)setDeliveryMode:(nullable SDLDeliveryMode)deliveryMode { - [parameters sdl_setObject:deliveryMode forName:SDLNameDeliveryMode]; + [parameters sdl_setObject:deliveryMode forName:SDLRPCParameterNameDeliveryMode]; } - (nullable SDLDeliveryMode)deliveryMode { - return [parameters sdl_objectForName:SDLNameDeliveryMode]; + return [parameters sdl_enumForName:SDLRPCParameterNameDeliveryMode error:nil]; } - (void)setTimeStamp:(nullable SDLDateTime *)timeStamp { - [parameters sdl_setObject:timeStamp forName:SDLNameLocationTimeStamp]; + [parameters sdl_setObject:timeStamp forName:SDLRPCParameterNameTimeStamp]; } - (nullable SDLDateTime *)timeStamp { - return [parameters sdl_objectForName:SDLNameLocationTimeStamp ofClass:SDLDateTime.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeStamp ofClass:SDLDateTime.class error:nil]; } - (void)setAddress:(nullable SDLOasisAddress *)address { - [parameters sdl_setObject:address forName:SDLNameAddress]; + [parameters sdl_setObject:address forName:SDLRPCParameterNameAddress]; } - (nullable SDLOasisAddress *)address { - return [parameters sdl_objectForName:SDLNameAddress ofClass:SDLOasisAddress.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAddress ofClass:SDLOasisAddress.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSendLocationResponse.m b/SmartDeviceLink/SDLSendLocationResponse.m index 3b03a5a67..c458097f1 100644 --- a/SmartDeviceLink/SDLSendLocationResponse.m +++ b/SmartDeviceLink/SDLSendLocationResponse.m @@ -5,14 +5,15 @@ #import "SDLSendLocationResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSendLocationResponse - (instancetype)init { - self = [super initWithName:SDLNameSendLocation]; + self = [super initWithName:SDLRPCFunctionNameSendLocation]; if (!self) { return nil; } diff --git a/SmartDeviceLink/SDLSequentialRPCRequestOperation.h b/SmartDeviceLink/SDLSequentialRPCRequestOperation.h index ee2a499a2..1d13dfbb4 100644 --- a/SmartDeviceLink/SDLSequentialRPCRequestOperation.h +++ b/SmartDeviceLink/SDLSequentialRPCRequestOperation.h @@ -15,8 +15,20 @@ NS_ASSUME_NONNULL_BEGIN +/** + * Sends an array RPCs of type `Request` with the first RPC to be sent at index 0. Sending is sequential, meaning that once an RPC is sent to Core, the operation waits until a response is received from Core before the next request is sent. Requests must get a response from Core before the operation is considered finished. + */ @interface SDLSequentialRPCRequestOperation : SDLAsynchronousOperation +/** + * Convenience init for sending an array of requests sequentially. + * + * @param connectionManager The connection manager used to send the RPCs + * @param requests The requests to be sent to Core + * @param progressHandler Called as each request gets a response from Core + * @param completionHandler Called when all requests have a response from Core + * @return A SDLSequentialRPCRequestOperation object + */ - (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager requests:(NSArray<SDLRPCRequest *> *)requests progressHandler:(nullable SDLMultipleSequentialRequestProgressHandler)progressHandler completionHandler:(nullable SDLMultipleRequestCompletionHandler)completionHandler; @end diff --git a/SmartDeviceLink/SDLSequentialRPCRequestOperation.m b/SmartDeviceLink/SDLSequentialRPCRequestOperation.m index 142812d40..43b025947 100644 --- a/SmartDeviceLink/SDLSequentialRPCRequestOperation.m +++ b/SmartDeviceLink/SDLSequentialRPCRequestOperation.m @@ -81,7 +81,7 @@ NS_ASSUME_NONNULL_BEGIN // Send the next request SDLRPCRequest *request = self.requests[self.currentRequestIndex]; - [self.connectionManager sendConnectionRequest:request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + [self.connectionManager sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { self.requestsComplete++; // If this request failed and no request has yet failed, set our internal request failed to YES diff --git a/SmartDeviceLink/SDLServiceUpdateReason.h b/SmartDeviceLink/SDLServiceUpdateReason.h new file mode 100644 index 000000000..09a4c9865 --- /dev/null +++ b/SmartDeviceLink/SDLServiceUpdateReason.h @@ -0,0 +1,39 @@ +// +// SDLServiceUpdateReason.h +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible service update reasons. + */ +typedef SDLEnum SDLServiceUpdateReason SDL_SWIFT_ENUM; + +/** + * The service has just been published with the module and once activated to the primary service of its type, it will be ready for possible consumption. + */ +extern SDLServiceUpdateReason const SDLServiceUpdatePublished; + +/** + * The service has just been unpublished with the module and is no longer accessible. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateRemoved; + +/** + * The service is activated as the primary service of this type. All requests dealing with this service type will be handled by this service. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateActivated; + +/** + * The service has been deactivated as the primary service of its type. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateDeactivated; + +/** + * The service has updated its manifest. This could imply updated capabilities. + */ +extern SDLServiceUpdateReason const SDLServiceUpdateManifestUpdate; diff --git a/SmartDeviceLink/SDLServiceUpdateReason.m b/SmartDeviceLink/SDLServiceUpdateReason.m new file mode 100644 index 000000000..2a2fe9c82 --- /dev/null +++ b/SmartDeviceLink/SDLServiceUpdateReason.m @@ -0,0 +1,15 @@ +// +// SDLServiceUpdateReason.m +// SmartDeviceLink +// +// Created by Nicole on 1/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLServiceUpdateReason.h" + +SDLServiceUpdateReason const SDLServiceUpdatePublished = @"PUBLISHED"; +SDLServiceUpdateReason const SDLServiceUpdateRemoved = @"REMOVED"; +SDLServiceUpdateReason const SDLServiceUpdateActivated = @"ACTIVATED"; +SDLServiceUpdateReason const SDLServiceUpdateDeactivated = @"DEACTIVATED"; +SDLServiceUpdateReason const SDLServiceUpdateManifestUpdate = @"MANIFEST_UPDATE"; diff --git a/SmartDeviceLink/SDLSetAppIcon.m b/SmartDeviceLink/SDLSetAppIcon.m index 8287d18e8..a76abaa58 100644 --- a/SmartDeviceLink/SDLSetAppIcon.m +++ b/SmartDeviceLink/SDLSetAppIcon.m @@ -5,12 +5,13 @@ #import "SDLSetAppIcon.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" @implementation SDLSetAppIcon - (instancetype)init { - if (self = [super initWithName:SDLNameSetAppIcon]) { + if (self = [super initWithName:SDLRPCFunctionNameSetAppIcon]) { } return self; } @@ -27,11 +28,12 @@ } - (void)setSyncFileName:(NSString *)syncFileName { - [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; + [parameters sdl_setObject:syncFileName forName:SDLRPCParameterNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters sdl_objectForName:SDLNameSyncFileName]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSyncFileName ofClass:NSString.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLSetAppIconResponse.m b/SmartDeviceLink/SDLSetAppIconResponse.m index 2a0b72793..2540415fd 100644 --- a/SmartDeviceLink/SDLSetAppIconResponse.m +++ b/SmartDeviceLink/SDLSetAppIconResponse.m @@ -5,14 +5,15 @@ #import "SDLSetAppIconResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetAppIconResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSetAppIcon]) { + if (self = [super initWithName:SDLRPCFunctionNameSetAppIcon]) { } return self; } diff --git a/SmartDeviceLink/SDLSetCloudAppProperties.h b/SmartDeviceLink/SDLSetCloudAppProperties.h new file mode 100644 index 000000000..eadcded16 --- /dev/null +++ b/SmartDeviceLink/SDLSetCloudAppProperties.h @@ -0,0 +1,38 @@ +// +// SDLSetCloudAppProperties.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLCloudAppProperties; + + +NS_ASSUME_NONNULL_BEGIN + +/** + * RPC used to enable/disable a cloud application and set authentication data + */ +@interface SDLSetCloudAppProperties : SDLRPCRequest + +/** + * Convenience init. + * + * @param properties The new cloud application properties + * @return A SDLSetCloudAppProperties object + */ +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties; + +/** + * The new cloud application properties. + * + * SDLCloudAppProperties, Required + */ +@property (strong, nonatomic) SDLCloudAppProperties *properties; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetCloudAppProperties.m b/SmartDeviceLink/SDLSetCloudAppProperties.m new file mode 100644 index 000000000..bab40d749 --- /dev/null +++ b/SmartDeviceLink/SDLSetCloudAppProperties.m @@ -0,0 +1,49 @@ +// +// SDLSetCloudAppProperties.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSetCloudAppProperties.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLCloudAppProperties.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSetCloudAppProperties + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameSetCloudAppProperties]) { + } + return self; +} + +- (instancetype)initWithProperties:(SDLCloudAppProperties *)properties { + self = [self init]; + if (!self) { + return nil; + } + + self.properties = properties; + + return self; +} + +- (void)setProperties:(SDLCloudAppProperties *)properties { + [parameters sdl_setObject:properties forName:SDLRPCParameterNameProperties]; +} + +- (SDLCloudAppProperties *)properties { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameProperties ofClass:SDLCloudAppProperties.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h b/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h new file mode 100644 index 000000000..8e4d39753 --- /dev/null +++ b/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.h @@ -0,0 +1,20 @@ +// +// SDLSetCloudAppPropertiesResponse.h +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * The response to SetCloudAppProperties + */ +@interface SDLSetCloudAppPropertiesResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m b/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m new file mode 100644 index 000000000..94476a335 --- /dev/null +++ b/SmartDeviceLink/SDLSetCloudAppPropertiesResponse.m @@ -0,0 +1,25 @@ +// +// SDLSetCloudAppPropertiesResponse.m +// SmartDeviceLink +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLSetCloudAppPropertiesResponse.h" + +#import "SDLRPCFunctionNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSetCloudAppPropertiesResponse + +- (instancetype)init { + if (self = [super initWithName:SDLRPCFunctionNameSetCloudAppProperties]) { + } + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetDisplayLayout.m b/SmartDeviceLink/SDLSetDisplayLayout.m index ac3736b5b..90c253717 100644 --- a/SmartDeviceLink/SDLSetDisplayLayout.m +++ b/SmartDeviceLink/SDLSetDisplayLayout.m @@ -5,7 +5,8 @@ #import "SDLSetDisplayLayout.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTemplateColorScheme.h" NS_ASSUME_NONNULL_BEGIN @@ -13,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSetDisplayLayout - (instancetype)init { - if (self = [super initWithName:SDLNameSetDisplayLayout]) { + if (self = [super initWithName:SDLRPCFunctionNameSetDisplayLayout]) { } return self; } @@ -44,27 +45,28 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setDisplayLayout:(NSString *)displayLayout { - [parameters sdl_setObject:displayLayout forName:SDLNameDisplayLayout]; + [parameters sdl_setObject:displayLayout forName:SDLRPCParameterNameDisplayLayout]; } - (NSString *)displayLayout { - return [parameters sdl_objectForName:SDLNameDisplayLayout]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameDisplayLayout ofClass:NSString.class error:&error]; } - (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme { - [parameters sdl_setObject:dayColorScheme forName:SDLNameDayColorScheme]; + [parameters sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme]; } - (nullable SDLTemplateColorScheme *)dayColorScheme { - return [parameters sdl_objectForName:SDLNameDayColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } - (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme { - [parameters sdl_setObject:nightColorScheme forName:SDLNameNightColorScheme]; + [parameters sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme]; } - (nullable SDLTemplateColorScheme *)nightColorScheme { - return [parameters sdl_objectForName:SDLNameNightColorScheme ofClass:[SDLTemplateColorScheme class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSetDisplayLayoutResponse.m b/SmartDeviceLink/SDLSetDisplayLayoutResponse.m index c37086684..21d25661e 100644 --- a/SmartDeviceLink/SDLSetDisplayLayoutResponse.m +++ b/SmartDeviceLink/SDLSetDisplayLayoutResponse.m @@ -7,7 +7,8 @@ #import "NSMutableDictionary+Store.h" #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPresetBankCapabilities.h" #import "SDLSoftButtonCapabilities.h" @@ -16,41 +17,41 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSetDisplayLayoutResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSetDisplayLayout]) { + if (self = [super initWithName:SDLRPCFunctionNameSetDisplayLayout]) { } return self; } - (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { - [parameters sdl_setObject:displayCapabilities forName:SDLNameDisplayCapabilities]; + [parameters sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities]; } - (nullable SDLDisplayCapabilities *)displayCapabilities { - return [parameters sdl_objectForName:SDLNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class error:nil]; } - (void)setButtonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities { - [parameters sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities]; + [parameters sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities]; } - (nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities { - return [parameters sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil]; } - (void)setSoftButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities { - [parameters sdl_setObject:softButtonCapabilities forName:SDLNameSoftButtonCapabilities]; + [parameters sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities]; } - (nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities { - return [parameters sdl_objectsForName:SDLNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil]; } - (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { - [parameters sdl_setObject:presetBankCapabilities forName:SDLNamePresetBankCapabilities]; + [parameters sdl_setObject:presetBankCapabilities forName:SDLRPCParameterNamePresetBankCapabilities]; } - (nullable SDLPresetBankCapabilities *)presetBankCapabilities { - return [parameters sdl_objectForName:SDLNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class]; + return [parameters sdl_objectForName:SDLRPCParameterNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSetGlobalProperties.m b/SmartDeviceLink/SDLSetGlobalProperties.m index d7ae65c2e..970c21e5a 100644 --- a/SmartDeviceLink/SDLSetGlobalProperties.m +++ b/SmartDeviceLink/SDLSetGlobalProperties.m @@ -7,7 +7,8 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLKeyboardProperties.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" #import "SDLVrHelpItem.h" @@ -16,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSetGlobalProperties - (instancetype)init { - if (self = [super initWithName:SDLNameSetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameSetGlobalProperties]) { } return self; } @@ -47,59 +48,59 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setHelpPrompt:(nullable NSArray<SDLTTSChunk *> *)helpPrompt { - [parameters sdl_setObject:helpPrompt forName:SDLNameHelpPrompt]; + [parameters sdl_setObject:helpPrompt forName:SDLRPCParameterNameHelpPrompt]; } - (nullable NSArray<SDLTTSChunk *> *)helpPrompt { - return [parameters sdl_objectsForName:SDLNameHelpPrompt ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameHelpPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setTimeoutPrompt:(nullable NSArray<SDLTTSChunk *> *)timeoutPrompt { - [parameters sdl_setObject:timeoutPrompt forName:SDLNameTimeoutPrompt]; + [parameters sdl_setObject:timeoutPrompt forName:SDLRPCParameterNameTimeoutPrompt]; } - (nullable NSArray<SDLTTSChunk *> *)timeoutPrompt { - return [parameters sdl_objectsForName:SDLNameTimeoutPrompt ofClass:SDLTTSChunk.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTimeoutPrompt ofClass:SDLTTSChunk.class error:nil]; } - (void)setVrHelpTitle:(nullable NSString *)vrHelpTitle { - [parameters sdl_setObject:vrHelpTitle forName:SDLNameVRHelpTitle]; + [parameters sdl_setObject:vrHelpTitle forName:SDLRPCParameterNameVRHelpTitle]; } - (nullable NSString *)vrHelpTitle { - return [parameters sdl_objectForName:SDLNameVRHelpTitle]; + return [parameters sdl_objectForName:SDLRPCParameterNameVRHelpTitle ofClass:NSString.class error:nil]; } - (void)setVrHelp:(nullable NSArray<SDLVRHelpItem *> *)vrHelp { - [parameters sdl_setObject:vrHelp forName:SDLNameVRHelp]; + [parameters sdl_setObject:vrHelp forName:SDLRPCParameterNameVRHelp]; } - (nullable NSArray<SDLVRHelpItem *> *)vrHelp { - return [parameters sdl_objectsForName:SDLNameVRHelp ofClass:SDLVRHelpItem.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameVRHelp ofClass:SDLVRHelpItem.class error:nil]; } - (void)setMenuTitle:(nullable NSString *)menuTitle { - [parameters sdl_setObject:menuTitle forName:SDLNameMenuTitle]; + [parameters sdl_setObject:menuTitle forName:SDLRPCParameterNameMenuTitle]; } - (nullable NSString *)menuTitle { - return [parameters sdl_objectForName:SDLNameMenuTitle]; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuTitle ofClass:NSString.class error:nil]; } - (void)setMenuIcon:(nullable SDLImage *)menuIcon { - [parameters sdl_setObject:menuIcon forName:SDLNameMenuIcon]; + [parameters sdl_setObject:menuIcon forName:SDLRPCParameterNameMenuIcon]; } - (nullable SDLImage *)menuIcon { - return [parameters sdl_objectForName:SDLNameMenuIcon ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMenuIcon ofClass:SDLImage.class error:nil]; } - (void)setKeyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { - [parameters sdl_setObject:keyboardProperties forName:SDLNameKeyboardProperties]; + [parameters sdl_setObject:keyboardProperties forName:SDLRPCParameterNameKeyboardProperties]; } - (nullable SDLKeyboardProperties *)keyboardProperties { - return [parameters sdl_objectForName:SDLNameKeyboardProperties ofClass:SDLKeyboardProperties.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameKeyboardProperties ofClass:SDLKeyboardProperties.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m b/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m index 9da9719cc..208c336f1 100644 --- a/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m +++ b/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m @@ -5,14 +5,15 @@ #import "SDLSetGlobalPropertiesResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetGlobalPropertiesResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSetGlobalProperties]) { + if (self = [super initWithName:SDLRPCFunctionNameSetGlobalProperties]) { } return self; } diff --git a/SmartDeviceLink/SDLSetInteriorVehicleData.m b/SmartDeviceLink/SDLSetInteriorVehicleData.m index cb0836ec8..f49091768 100644 --- a/SmartDeviceLink/SDLSetInteriorVehicleData.m +++ b/SmartDeviceLink/SDLSetInteriorVehicleData.m @@ -3,7 +3,8 @@ // #import "SDLSetInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "NSMutableDictionary+Store.h" #import "SDLModuleData.h" @@ -12,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSetInteriorVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameSetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSetInteriorVehicleData]) { } return self; } @@ -29,11 +30,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; + [parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } -- (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +- (SDLModuleData *)moduleData { + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m index ccb59ff55..93a628366 100644 --- a/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m +++ b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m @@ -3,7 +3,8 @@ // #import "SDLSetInteriorVehicleDataResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLModuleData.h" #import "NSMutableDictionary+Store.h" @@ -12,17 +13,18 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSetInteriorVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSetInteriorVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSetInteriorVehicleData]) { } return self; } - (void)setModuleData:(SDLModuleData *)moduleData { - [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; + [parameters sdl_setObject:moduleData forName:SDLRPCParameterNameModuleData]; } - (SDLModuleData *)moduleData { - return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameModuleData ofClass:SDLModuleData.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLSetMediaClockTimer.h b/SmartDeviceLink/SDLSetMediaClockTimer.h index db415916f..2ec5fe8e0 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimer.h +++ b/SmartDeviceLink/SDLSetMediaClockTimer.h @@ -23,11 +23,114 @@ NS_ASSUME_NONNULL_BEGIN @interface SDLSetMediaClockTimer : SDLRPCRequest -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator; +/** + Create a media clock timer that counts up, e.g from 0:00 to 4:18. + + This will fail if startTime is greater than endTime + + @param startTime The start time interval, e.g. (0) 0:00 + @param endTime The end time interval, e.g. (258) 4:18 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)); + +/** + Create a media clock timer that counts up, e.g from 0:00 to 4:18. -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; + This will fail if startTime is greater than endTime -- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode; + @param startTime The start time interval, e.g. 0:00 + @param endTime The end time interval, e.g. 4:18 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countUp(from:to:playPauseIndicator:)); + +/** + Create a media clock timer that counts down, e.g. from 4:18 to 0:00 + + This will fail if endTime is greater than startTime + + @param startTime The start time interval, e.g. (258) 4:18 + @param endTime The end time interval, e.g. (0) 0:00 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)); + +/** + Create a media clock timer that counts down, e.g. from 4:18 to 0:00 + + This will fail if endTime is greater than startTime + + @param startTime The start time interval, e.g. 4:18 + @param endTime The end time interval, e.g. 0:00 + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(countDown(from:to:playPauseIndicator:)); + +/** + Pause an existing (counting up / down) media clock timer + + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(playPauseIndicator:)); + +/** + Update a pause time (or pause and update the time) on a media clock timer + + @param startTime The new start time interval + @param endTime The new end time interval + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(newStart:newEnd:playPauseIndicator:)); + +/** + Update a pause time (or pause and update the time) on a media clock timer + + @param startTime The new start time + @param endTime The new end time + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(pause(newStart:newEnd:playPauseIndicator:)); + +/** + Resume a paused media clock timer. It resumes at the same time at which it was paused. + + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(resume(playPauseIndicator:)); + +/** + Remove a media clock timer from the screen + + @param playPauseIndicator An optional audio indicator to change the play/pause button + @return An object of SetMediaClockTimer + */ ++ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(clear(playPauseIndicator:)); + +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator __deprecated_msg("Use a specific initializer"); + +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds __deprecated_msg("Use a specific initializer"); + +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode __deprecated_msg("Use a specific initializer"); + +/** + Create a SetMediaClockTimer RPC with all available parameters. It's recommended to use the specific initializers above. + + @param updateMode The type of SetMediaClockTimer RPC + @param startTime The start time. Only valid in some updateModes. + @param endTime The end time. Only valid in some updateModes. + @param playPauseIndicator The display of the play/pause button + @return An object of SetMediaClockTimer + */ +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator NS_SWIFT_NAME(init(updateMode:startTime:endTime:playPauseIndicator:)); /** * A Start Time with specifying hour, minute, second values @@ -72,7 +175,6 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLAudioStreamingIndicator audioStreamingIndicator; - @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetMediaClockTimer.m b/SmartDeviceLink/SDLSetMediaClockTimer.m index ac14c215e..5b1dbfaed 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimer.m +++ b/SmartDeviceLink/SDLSetMediaClockTimer.m @@ -5,7 +5,8 @@ #import "SDLSetMediaClockTimer.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLStartTime.h" NS_ASSUME_NONNULL_BEGIN @@ -13,11 +14,68 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSetMediaClockTimer - (instancetype)init { - if (self = [super initWithName:SDLNameSetMediaClockTimer]) { + if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) { } return self; } +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode startTime:(nullable SDLStartTime *)startTime endTime:(nullable SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + self = [self init]; + if (!self) { return nil; } + + self.updateMode = updateMode; + self.startTime = startTime; + self.endTime = endTime; + self.audioStreamingIndicator = playPauseIndicator; + + return self; +} + ++ (instancetype)countUpFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; + SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; + + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)countUpFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountUp startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)countDownFromStartTimeInterval:(NSTimeInterval)startTime toEndTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; + SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; + + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)countDownFromStartTime:(SDLStartTime *)startTime toEndTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeCountDown startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)pauseWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)updatePauseWithNewStartTimeInterval:(NSTimeInterval)startTime endTimeInterval:(NSTimeInterval)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + SDLStartTime *startTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:startTime]; + SDLStartTime *endTimeRPC = [[SDLStartTime alloc] initWithTimeInterval:endTime]; + + return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTimeRPC endTime:endTimeRPC playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)updatePauseWithNewStartTime:(SDLStartTime *)startTime endTime:(SDLStartTime *)endTime playPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModePause startTime:startTime endTime:endTime playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)resumeWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeResume startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; +} + ++ (instancetype)clearWithPlayPauseIndicator:(nullable SDLAudioStreamingIndicator)playPauseIndicator { + return [[self alloc] initWithUpdateMode:SDLUpdateModeClear startTime:nil endTime:nil playPauseIndicator:playPauseIndicator]; +} + - (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds audioStreamingIndicator:(SDLAudioStreamingIndicator)audioStreamingIndicator { self = [self initWithUpdateMode:updateMode hours:hours minutes:minutes seconds:seconds]; if (!self) { @@ -52,35 +110,36 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setStartTime:(nullable SDLStartTime *)startTime { - [parameters sdl_setObject:startTime forName:SDLNameStartTime]; + [parameters sdl_setObject:startTime forName:SDLRPCParameterNameStartTime]; } - (nullable SDLStartTime *)startTime { - return [parameters sdl_objectForName:SDLNameStartTime ofClass:SDLStartTime.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameStartTime ofClass:SDLStartTime.class error:nil]; } - (void)setEndTime:(nullable SDLStartTime *)endTime { - [parameters sdl_setObject:endTime forName:SDLNameEndTime]; + [parameters sdl_setObject:endTime forName:SDLRPCParameterNameEndTime]; } - (nullable SDLStartTime *)endTime { - return [parameters sdl_objectForName:SDLNameEndTime ofClass:SDLStartTime.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEndTime ofClass:SDLStartTime.class error:nil]; } - (void)setUpdateMode:(SDLUpdateMode)updateMode { - [parameters sdl_setObject:updateMode forName:SDLNameUpdateMode]; + [parameters sdl_setObject:updateMode forName:SDLRPCParameterNameUpdateMode]; } - (SDLUpdateMode)updateMode { - return [parameters sdl_objectForName:SDLNameUpdateMode]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameUpdateMode error:&error]; } - (void)setAudioStreamingIndicator:(nullable SDLAudioStreamingIndicator)audioStreamingIndicator { - [parameters sdl_setObject:audioStreamingIndicator forName:SDLNameAudioStreamingIndicator]; + [parameters sdl_setObject:audioStreamingIndicator forName:SDLRPCParameterNameAudioStreamingIndicator]; } - (nullable SDLAudioStreamingIndicator)audioStreamingIndicator { - return [parameters sdl_objectForName:SDLNameAudioStreamingIndicator]; + return [parameters sdl_enumForName:SDLRPCParameterNameAudioStreamingIndicator error:nil]; } @end diff --git a/SmartDeviceLink/SDLSetMediaClockTimerResponse.m b/SmartDeviceLink/SDLSetMediaClockTimerResponse.m index f293e7d79..856a1a49d 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimerResponse.m +++ b/SmartDeviceLink/SDLSetMediaClockTimerResponse.m @@ -5,14 +5,15 @@ #import "SDLSetMediaClockTimerResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSetMediaClockTimerResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSetMediaClockTimer]) { + if (self = [super initWithName:SDLRPCFunctionNameSetMediaClockTimer]) { } return self; } diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m index 743e4940a..b4e0b0abd 100644 --- a/SmartDeviceLink/SDLShow.m +++ b/SmartDeviceLink/SDLShow.m @@ -8,7 +8,8 @@ #import "SDLImage.h" #import "SDLMetadataTags.h" #import "SDLMetadataType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" NS_ASSUME_NONNULL_BEGIN @@ -16,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLShow - (instancetype)init { - if (self = [super initWithName:SDLNameShow]) { + if (self = [super initWithName:SDLRPCFunctionNameShow]) { } return self; } @@ -97,107 +98,107 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setMainField1:(nullable NSString *)mainField1 { - [parameters sdl_setObject:mainField1 forName:SDLNameMainField1]; + [parameters sdl_setObject:mainField1 forName:SDLRPCParameterNameMainField1]; } - (nullable NSString *)mainField1 { - return [parameters sdl_objectForName:SDLNameMainField1]; + return [parameters sdl_objectForName:SDLRPCParameterNameMainField1 ofClass:NSString.class error:nil]; } - (void)setMainField2:(nullable NSString *)mainField2 { - [parameters sdl_setObject:mainField2 forName:SDLNameMainField2]; + [parameters sdl_setObject:mainField2 forName:SDLRPCParameterNameMainField2]; } - (nullable NSString *)mainField2 { - return [parameters sdl_objectForName:SDLNameMainField2]; + return [parameters sdl_objectForName:SDLRPCParameterNameMainField2 ofClass:NSString.class error:nil]; } - (void)setMainField3:(nullable NSString *)mainField3 { - [parameters sdl_setObject:mainField3 forName:SDLNameMainField3]; + [parameters sdl_setObject:mainField3 forName:SDLRPCParameterNameMainField3]; } - (nullable NSString *)mainField3 { - return [parameters sdl_objectForName:SDLNameMainField3]; + return [parameters sdl_objectForName:SDLRPCParameterNameMainField3 ofClass:NSString.class error:nil]; } - (void)setMainField4:(nullable NSString *)mainField4 { - [parameters sdl_setObject:mainField4 forName:SDLNameMainField4]; + [parameters sdl_setObject:mainField4 forName:SDLRPCParameterNameMainField4]; } - (nullable NSString *)mainField4 { - return [parameters sdl_objectForName:SDLNameMainField4]; + return [parameters sdl_objectForName:SDLRPCParameterNameMainField4 ofClass:NSString.class error:nil]; } - (void)setAlignment:(nullable SDLTextAlignment)alignment { - [parameters sdl_setObject:alignment forName:SDLNameAlignment]; + [parameters sdl_setObject:alignment forName:SDLRPCParameterNameAlignment]; } - (nullable SDLTextAlignment)alignment { - return [parameters sdl_objectForName:SDLNameAlignment]; + return [parameters sdl_enumForName:SDLRPCParameterNameAlignment error:nil]; } - (void)setStatusBar:(nullable NSString *)statusBar { - [parameters sdl_setObject:statusBar forName:SDLNameStatusBar]; + [parameters sdl_setObject:statusBar forName:SDLRPCParameterNameStatusBar]; } - (nullable NSString *)statusBar { - return [parameters sdl_objectForName:SDLNameStatusBar]; + return [parameters sdl_objectForName:SDLRPCParameterNameStatusBar ofClass:NSString.class error:nil]; } - (void)setMediaClock:(nullable NSString *)mediaClock { - [parameters sdl_setObject:mediaClock forName:SDLNameMediaClock]; + [parameters sdl_setObject:mediaClock forName:SDLRPCParameterNameMediaClock]; } - (nullable NSString *)mediaClock { - return [parameters sdl_objectForName:SDLNameMediaClock]; + return [parameters sdl_objectForName:SDLRPCParameterNameMediaClock ofClass:NSString.class error:nil]; } - (void)setMediaTrack:(nullable NSString *)mediaTrack { - [parameters sdl_setObject:mediaTrack forName:SDLNameMediaTrack]; + [parameters sdl_setObject:mediaTrack forName:SDLRPCParameterNameMediaTrack]; } - (nullable NSString *)mediaTrack { - return [parameters sdl_objectForName:SDLNameMediaTrack]; + return [parameters sdl_objectForName:SDLRPCParameterNameMediaTrack ofClass:NSString.class error:nil]; } - (void)setGraphic:(nullable SDLImage *)graphic { - [parameters sdl_setObject:graphic forName:SDLNameGraphic]; + [parameters sdl_setObject:graphic forName:SDLRPCParameterNameGraphic]; } - (nullable SDLImage *)graphic { - return [parameters sdl_objectForName:SDLNameGraphic ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameGraphic ofClass:SDLImage.class error:nil]; } - (void)setSecondaryGraphic:(nullable SDLImage *)secondaryGraphic { - [parameters sdl_setObject:secondaryGraphic forName:SDLNameSecondaryGraphic]; + [parameters sdl_setObject:secondaryGraphic forName:SDLRPCParameterNameSecondaryGraphic]; } - (nullable SDLImage *)secondaryGraphic { - return [parameters sdl_objectForName:SDLNameSecondaryGraphic ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSecondaryGraphic ofClass:SDLImage.class error:nil]; } - (void)setSoftButtons:(nullable NSArray<SDLSoftButton *> *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray<SDLSoftButton *> *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } - (void)setCustomPresets:(nullable NSArray<NSString *> *)customPresets { - [parameters sdl_setObject:customPresets forName:SDLNameCustomPresets]; + [parameters sdl_setObject:customPresets forName:SDLRPCParameterNameCustomPresets]; } - (nullable NSArray<NSString *> *)customPresets { - return [parameters sdl_objectForName:SDLNameCustomPresets]; + return [parameters sdl_objectsForName:SDLRPCParameterNameCustomPresets ofClass:NSString.class error:nil]; } - (void)setMetadataTags:(nullable SDLMetadataTags *)metadataTags { - [parameters sdl_setObject:metadataTags forName:SDLNameMetadataTags]; + [parameters sdl_setObject:metadataTags forName:SDLRPCParameterNameMetadataTags]; } - (nullable SDLMetadataTags *)metadataTags { - return [parameters sdl_objectForName:SDLNameMetadataTags ofClass:SDLMetadataTags.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMetadataTags ofClass:SDLMetadataTags.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLShowConstantTBT.m b/SmartDeviceLink/SDLShowConstantTBT.m index f4565d923..d1068d963 100644 --- a/SmartDeviceLink/SDLShowConstantTBT.m +++ b/SmartDeviceLink/SDLShowConstantTBT.m @@ -6,7 +6,8 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" NS_ASSUME_NONNULL_BEGIN @@ -14,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLShowConstantTBT - (instancetype)init { - if (self = [super initWithName:SDLNameShowConstantTBT]) { + if (self = [super initWithName:SDLRPCFunctionNameShowConstantTBT]) { } return self; } @@ -41,91 +42,91 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setNavigationText1:(nullable NSString *)navigationText1 { - [parameters sdl_setObject:navigationText1 forName:SDLNameNavigationText1]; + [parameters sdl_setObject:navigationText1 forName:SDLRPCParameterNameNavigationText1]; } - (nullable NSString *)navigationText1 { - return [parameters sdl_objectForName:SDLNameNavigationText1]; + return [parameters sdl_objectForName:SDLRPCParameterNameNavigationText1 ofClass:NSString.class error:nil]; } - (void)setNavigationText2:(nullable NSString *)navigationText2 { - [parameters sdl_setObject:navigationText2 forName:SDLNameNavigationText2]; + [parameters sdl_setObject:navigationText2 forName:SDLRPCParameterNameNavigationText2]; } - (nullable NSString *)navigationText2 { - return [parameters sdl_objectForName:SDLNameNavigationText2]; + return [parameters sdl_objectForName:SDLRPCParameterNameNavigationText2 ofClass:NSString.class error:nil]; } - (void)setEta:(nullable NSString *)eta { - [parameters sdl_setObject:eta forName:SDLNameETA]; + [parameters sdl_setObject:eta forName:SDLRPCParameterNameETA]; } - (nullable NSString *)eta { - return [parameters sdl_objectForName:SDLNameETA]; + return [parameters sdl_objectForName:SDLRPCParameterNameETA ofClass:NSString.class error:nil]; } - (void)setTimeToDestination:(nullable NSString *)timeToDestination { - [parameters sdl_setObject:timeToDestination forName:SDLNameTimeToDestination]; + [parameters sdl_setObject:timeToDestination forName:SDLRPCParameterNameTimeToDestination]; } - (nullable NSString *)timeToDestination { - return [parameters sdl_objectForName:SDLNameTimeToDestination]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeToDestination ofClass:NSString.class error:nil]; } - (void)setTotalDistance:(nullable NSString *)totalDistance { - [parameters sdl_setObject:totalDistance forName:SDLNameTotalDistance]; + [parameters sdl_setObject:totalDistance forName:SDLRPCParameterNameTotalDistance]; } - (nullable NSString *)totalDistance { - return [parameters sdl_objectForName:SDLNameTotalDistance]; + return [parameters sdl_objectForName:SDLRPCParameterNameTotalDistance ofClass:NSString.class error:nil]; } - (void)setTurnIcon:(nullable SDLImage *)turnIcon { - [parameters sdl_setObject:turnIcon forName:SDLNameTurnIcon]; + [parameters sdl_setObject:turnIcon forName:SDLRPCParameterNameTurnIcon]; } - (nullable SDLImage *)turnIcon { - return [parameters sdl_objectForName:SDLNameTurnIcon ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTurnIcon ofClass:SDLImage.class error:nil]; } - (void)setNextTurnIcon:(nullable SDLImage *)nextTurnIcon { - [parameters sdl_setObject:nextTurnIcon forName:SDLNameNextTurnIcon]; + [parameters sdl_setObject:nextTurnIcon forName:SDLRPCParameterNameNextTurnIcon]; } - (nullable SDLImage *)nextTurnIcon { - return [parameters sdl_objectForName:SDLNameNextTurnIcon ofClass:SDLImage.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameNextTurnIcon ofClass:SDLImage.class error:nil]; } - (void)setDistanceToManeuver:(nullable NSNumber<SDLFloat> *)distanceToManeuver { - [parameters sdl_setObject:distanceToManeuver forName:SDLNameDistanceToManeuver]; + [parameters sdl_setObject:distanceToManeuver forName:SDLRPCParameterNameDistanceToManeuver]; } - (nullable NSNumber<SDLFloat> *)distanceToManeuver { - return [parameters sdl_objectForName:SDLNameDistanceToManeuver]; + return [parameters sdl_objectForName:SDLRPCParameterNameDistanceToManeuver ofClass:NSNumber.class error:nil]; } - (void)setDistanceToManeuverScale:(nullable NSNumber<SDLFloat> *)distanceToManeuverScale { - [parameters sdl_setObject:distanceToManeuverScale forName:SDLNameDistanceToManeuverScale]; + [parameters sdl_setObject:distanceToManeuverScale forName:SDLRPCParameterNameDistanceToManeuverScale]; } - (nullable NSNumber<SDLFloat> *)distanceToManeuverScale { - return [parameters sdl_objectForName:SDLNameDistanceToManeuverScale]; + return [parameters sdl_objectForName:SDLRPCParameterNameDistanceToManeuverScale ofClass:NSNumber.class error:nil]; } - (void)setManeuverComplete:(nullable NSNumber<SDLBool> *)maneuverComplete { - [parameters sdl_setObject:maneuverComplete forName:SDLNameManeuverComplete]; + [parameters sdl_setObject:maneuverComplete forName:SDLRPCParameterNameManeuverComplete]; } - (nullable NSNumber<SDLBool> *)maneuverComplete { - return [parameters sdl_objectForName:SDLNameManeuverComplete]; + return [parameters sdl_objectForName:SDLRPCParameterNameManeuverComplete ofClass:NSNumber.class error:nil]; } - (void)setSoftButtons:(nullable NSArray<SDLSoftButton *> *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray<SDLSoftButton *> *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLShowConstantTBTResponse.m b/SmartDeviceLink/SDLShowConstantTBTResponse.m index 40a9c9bd9..be8bc9363 100644 --- a/SmartDeviceLink/SDLShowConstantTBTResponse.m +++ b/SmartDeviceLink/SDLShowConstantTBTResponse.m @@ -5,14 +5,15 @@ #import "SDLShowConstantTBTResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLShowConstantTBTResponse - (instancetype)init { - if (self = [super initWithName:SDLNameShowConstantTBT]) { + if (self = [super initWithName:SDLRPCFunctionNameShowConstantTBT]) { } return self; } diff --git a/SmartDeviceLink/SDLShowResponse.m b/SmartDeviceLink/SDLShowResponse.m index cca46c426..3f8882729 100644 --- a/SmartDeviceLink/SDLShowResponse.m +++ b/SmartDeviceLink/SDLShowResponse.m @@ -5,14 +5,15 @@ #import "SDLShowResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLShowResponse - (instancetype)init { - if (self = [super initWithName:SDLNameShow]) { + if (self = [super initWithName:SDLRPCFunctionNameShow]) { } return self; } diff --git a/SmartDeviceLink/SDLSingleTireStatus.m b/SmartDeviceLink/SDLSingleTireStatus.m index 6f88953af..283e32f51 100644 --- a/SmartDeviceLink/SDLSingleTireStatus.m +++ b/SmartDeviceLink/SDLSingleTireStatus.m @@ -5,34 +5,35 @@ #import "NSMutableDictionary+Store.h" #import "NSNumber+NumberType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSingleTireStatus - (void)setStatus:(SDLComponentVolumeStatus)status { - [store sdl_setObject:status forName:SDLNameStatus]; + [store sdl_setObject:status forName:SDLRPCParameterNameStatus]; } - (SDLComponentVolumeStatus)status { - return [store sdl_objectForName:SDLNameStatus]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameStatus error:&error]; } - (void)setMonitoringSystemStatus:(nullable SDLTPMS)monitoringSystemStatus { - [store sdl_setObject:monitoringSystemStatus forName:SDLNameTPMS]; + [store sdl_setObject:monitoringSystemStatus forName:SDLRPCParameterNameTPMS]; } - (nullable SDLTPMS)monitoringSystemStatus { - return [store sdl_objectForName:SDLNameTPMS]; + return [store sdl_enumForName:SDLRPCParameterNameTPMS error:nil]; } - (void)setPressure:(nullable NSNumber<SDLFloat> *)pressure { - [store sdl_setObject:pressure forName:SDLNamePressure]; + [store sdl_setObject:pressure forName:SDLRPCParameterNamePressure]; } - (nullable NSNumber<SDLFloat> *)pressure { - return [store sdl_objectForName:SDLNamePressure]; + return [store sdl_objectForName:SDLRPCParameterNamePressure ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSlider.m b/SmartDeviceLink/SDLSlider.m index 800d65741..25f83ce89 100644 --- a/SmartDeviceLink/SDLSlider.m +++ b/SmartDeviceLink/SDLSlider.m @@ -5,14 +5,15 @@ #import "SDLSlider.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSlider - (instancetype)init { - if (self = [super initWithName:SDLNameSlider]) { + if (self = [super initWithName:SDLRPCFunctionNameSlider]) { } return self; } @@ -52,43 +53,46 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setNumTicks:(NSNumber<SDLInt> *)numTicks { - [parameters sdl_setObject:numTicks forName:SDLNameNumberTicks]; + [parameters sdl_setObject:numTicks forName:SDLRPCParameterNameNumberTicks]; } - (NSNumber<SDLInt> *)numTicks { - return [parameters sdl_objectForName:SDLNameNumberTicks]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameNumberTicks ofClass:NSNumber.class error:&error]; } - (void)setPosition:(NSNumber<SDLInt> *)position { - [parameters sdl_setObject:position forName:SDLNamePosition]; + [parameters sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (NSNumber<SDLInt> *)position { - return [parameters sdl_objectForName:SDLNamePosition]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:&error]; } - (void)setSliderHeader:(NSString *)sliderHeader { - [parameters sdl_setObject:sliderHeader forName:SDLNameSliderHeader]; + [parameters sdl_setObject:sliderHeader forName:SDLRPCParameterNameSliderHeader]; } - (NSString *)sliderHeader { - return [parameters sdl_objectForName:SDLNameSliderHeader]; + NSError *error = nil; + return [parameters sdl_objectForName:SDLRPCParameterNameSliderHeader ofClass:NSString.class error:&error]; } - (void)setSliderFooter:(nullable NSArray<NSString *> *)sliderFooter { - [parameters sdl_setObject:sliderFooter forName:SDLNameSliderFooter]; + [parameters sdl_setObject:sliderFooter forName:SDLRPCParameterNameSliderFooter]; } - (nullable NSArray<NSString *> *)sliderFooter { - return [parameters sdl_objectForName:SDLNameSliderFooter]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSliderFooter ofClass:NSString.class error:nil]; } - (void)setTimeout:(nullable NSNumber<SDLInt> *)timeout { - [parameters sdl_setObject:timeout forName:SDLNameTimeout]; + [parameters sdl_setObject:timeout forName:SDLRPCParameterNameTimeout]; } - (nullable NSNumber<SDLInt> *)timeout { - return [parameters sdl_objectForName:SDLNameTimeout]; + return [parameters sdl_objectForName:SDLRPCParameterNameTimeout ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSliderResponse.m b/SmartDeviceLink/SDLSliderResponse.m index a21661b91..fc8e1cbb6 100644 --- a/SmartDeviceLink/SDLSliderResponse.m +++ b/SmartDeviceLink/SDLSliderResponse.m @@ -5,24 +5,25 @@ #import "SDLSliderResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSliderResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSlider]) { + if (self = [super initWithName:SDLRPCFunctionNameSlider]) { } return self; } - (void)setSliderPosition:(nullable NSNumber<SDLInt> *)sliderPosition { - [parameters sdl_setObject:sliderPosition forName:SDLNameSliderPosition]; + [parameters sdl_setObject:sliderPosition forName:SDLRPCParameterNameSliderPosition]; } - (nullable NSNumber<SDLInt> *)sliderPosition { - return [parameters sdl_objectForName:SDLNameSliderPosition]; + return [parameters sdl_objectForName:SDLRPCParameterNameSliderPosition ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSoftButton.m b/SmartDeviceLink/SDLSoftButton.m index a50bb4bcd..a2b526c23 100644 --- a/SmartDeviceLink/SDLSoftButton.m +++ b/SmartDeviceLink/SDLSoftButton.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -40,51 +40,53 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setType:(SDLSoftButtonType)type { - [store sdl_setObject:type forName:SDLNameType]; + [store sdl_setObject:type forName:SDLRPCParameterNameType]; } - (SDLSoftButtonType)type { - return [store sdl_objectForName:SDLNameType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameType error:&error]; } - (void)setText:(nullable NSString *)text { - [store sdl_setObject:text forName:SDLNameText]; + [store sdl_setObject:text forName:SDLRPCParameterNameText]; } - (nullable NSString *)text { - return [store sdl_objectForName:SDLNameText]; + return [store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:nil]; } - (void)setImage:(nullable SDLImage *)image { - [store sdl_setObject:image forName:SDLNameImage]; + [store sdl_setObject:image forName:SDLRPCParameterNameImage]; } - (nullable SDLImage *)image { - return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; + return [store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; } - (void)setIsHighlighted:(nullable NSNumber<SDLBool> *)isHighlighted { - [store sdl_setObject:isHighlighted forName:SDLNameIsHighlighted]; + [store sdl_setObject:isHighlighted forName:SDLRPCParameterNameIsHighlighted]; } - (nullable NSNumber<SDLBool> *)isHighlighted { - return [store sdl_objectForName:SDLNameIsHighlighted]; + return [store sdl_objectForName:SDLRPCParameterNameIsHighlighted ofClass:NSNumber.class error:nil]; } - (void)setSoftButtonID:(NSNumber<SDLInt> *)softButtonID { - [store sdl_setObject:softButtonID forName:SDLNameSoftButtonId]; + [store sdl_setObject:softButtonID forName:SDLRPCParameterNameSoftButtonId]; } - (NSNumber<SDLInt> *)softButtonID { - return [store sdl_objectForName:SDLNameSoftButtonId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameSoftButtonId ofClass:NSNumber.class error:&error]; } - (void)setSystemAction:(nullable SDLSystemAction)systemAction { - [store sdl_setObject:systemAction forName:SDLNameSystemAction]; + [store sdl_setObject:systemAction forName:SDLRPCParameterNameSystemAction]; } - (nullable SDLSystemAction)systemAction { - return [store sdl_objectForName:SDLNameSystemAction]; + return [store sdl_enumForName:SDLRPCParameterNameSystemAction error:nil]; } -(id)copyWithZone:(nullable NSZone *)zone { diff --git a/SmartDeviceLink/SDLSoftButtonCapabilities.m b/SmartDeviceLink/SDLSoftButtonCapabilities.m index 6bf391496..d85c9bd69 100644 --- a/SmartDeviceLink/SDLSoftButtonCapabilities.m +++ b/SmartDeviceLink/SDLSoftButtonCapabilities.m @@ -5,42 +5,46 @@ #import "SDLSoftButtonCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSoftButtonCapabilities - (void)setShortPressAvailable:(NSNumber<SDLBool> *)shortPressAvailable { - [store sdl_setObject:shortPressAvailable forName:SDLNameShortPressAvailable]; + [store sdl_setObject:shortPressAvailable forName:SDLRPCParameterNameShortPressAvailable]; } - (NSNumber<SDLBool> *)shortPressAvailable { - return [store sdl_objectForName:SDLNameShortPressAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameShortPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setLongPressAvailable:(NSNumber<SDLBool> *)longPressAvailable { - [store sdl_setObject:longPressAvailable forName:SDLNameLongPressAvailable]; + [store sdl_setObject:longPressAvailable forName:SDLRPCParameterNameLongPressAvailable]; } - (NSNumber<SDLBool> *)longPressAvailable { - return [store sdl_objectForName:SDLNameLongPressAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLongPressAvailable ofClass:NSNumber.class error:&error]; } - (void)setUpDownAvailable:(NSNumber<SDLBool> *)upDownAvailable { - [store sdl_setObject:upDownAvailable forName:SDLNameUpDownAvailable]; + [store sdl_setObject:upDownAvailable forName:SDLRPCParameterNameUpDownAvailable]; } - (NSNumber<SDLBool> *)upDownAvailable { - return [store sdl_objectForName:SDLNameUpDownAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error]; } - (void)setImageSupported:(NSNumber<SDLBool> *)imageSupported { - [store sdl_setObject:imageSupported forName:SDLNameImageSupported]; + [store sdl_setObject:imageSupported forName:SDLRPCParameterNameImageSupported]; } - (NSNumber<SDLBool> *)imageSupported { - return [store sdl_objectForName:SDLNameImageSupported]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameImageSupported ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLSoftButtonManager.m b/SmartDeviceLink/SDLSoftButtonManager.m index 10e61fa1d..3f19ff1e1 100644 --- a/SmartDeviceLink/SDLSoftButtonManager.m +++ b/SmartDeviceLink/SDLSoftButtonManager.m @@ -249,7 +249,7 @@ NS_ASSUME_NONNULL_BEGIN - (BOOL)sdl_allCurrentStateImagesAreUploaded { for (SDLSoftButtonObject *button in self.softButtonObjects) { SDLArtwork *artwork = button.currentState.artwork; - if (artwork != nil && ![self.fileManager hasUploadedFile:artwork]) { + if (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon) { return NO; } } @@ -268,7 +268,7 @@ NS_ASSUME_NONNULL_BEGIN NSMutableArray<SDLArtwork *> *initialStatesToBeUploaded = [NSMutableArray array]; // Upload all soft button images, the initial state images first, then the other states. We need to send updates when the initial state is ready. for (SDLSoftButtonObject *object in self.softButtonObjects) { - if (object.currentState.artwork != nil && ![self.fileManager hasUploadedFile:object.currentState.artwork]) { + if ([self sdl_artworkNeedsUpload:object.currentState.artwork]) { [initialStatesToBeUploaded addObject:object.currentState.artwork]; } } @@ -293,7 +293,7 @@ NS_ASSUME_NONNULL_BEGIN for (SDLSoftButtonObject *object in self.softButtonObjects) { for (SDLSoftButtonState *state in object.states) { if ([state.name isEqualToString:object.currentState.name]) { continue; } - if (state.artwork != nil && ![self.fileManager hasUploadedFile:state.artwork]) { + if ([self sdl_artworkNeedsUpload:state.artwork]) { [otherStatesToBeUploaded addObject:state.artwork]; } } @@ -313,6 +313,10 @@ NS_ASSUME_NONNULL_BEGIN } } +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); +} + #pragma mark - Creating Soft Buttons /** diff --git a/SmartDeviceLink/SDLSoftButtonState.m b/SmartDeviceLink/SDLSoftButtonState.m index a150a223a..e3fb26495 100644 --- a/SmartDeviceLink/SDLSoftButtonState.m +++ b/SmartDeviceLink/SDLSoftButtonState.m @@ -32,6 +32,8 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSoftButtonState - (instancetype)initWithStateName:(NSString *)stateName text:(nullable NSString *)text image:(nullable UIImage *)image { + NSParameterAssert((text != nil) || (image != nil)); + SDLArtwork *artwork = [[SDLArtwork alloc] initWithImage:image persistent:YES asImageFormat:SDLArtworkImageFormatPNG]; return [self initWithStateName:stateName text:text artwork:artwork]; } @@ -40,10 +42,7 @@ NS_ASSUME_NONNULL_BEGIN self = [super init]; if (!self) { return nil; } - if (artwork == nil && text == nil) { - SDLLogE(@"Attempted to create an invalid soft button state: text and artwork are both nil"); - return nil; - } + NSParameterAssert((text != nil) || (artwork != nil)); _name = stateName; _text = text; @@ -71,7 +70,7 @@ NS_ASSUME_NONNULL_BEGIN - (nullable SDLImage *)image { if (self.artwork == nil) { return nil; } - return [[SDLImage alloc] initWithName:self.artwork.name ofType:SDLImageTypeDynamic isTemplate:self.artwork.isTemplate]; + return self.artwork.imageRPC; } - (NSString *)description { diff --git a/SmartDeviceLink/SDLSpeak.m b/SmartDeviceLink/SDLSpeak.m index 35516ff43..a0ce720e6 100644 --- a/SmartDeviceLink/SDLSpeak.m +++ b/SmartDeviceLink/SDLSpeak.m @@ -5,7 +5,8 @@ #import "SDLSpeak.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" NS_ASSUME_NONNULL_BEGIN @@ -13,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSpeak - (instancetype)init { - if (self = [super initWithName:SDLNameSpeak]) { + if (self = [super initWithName:SDLRPCFunctionNameSpeak]) { } return self; } @@ -35,11 +36,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setTtsChunks:(NSArray<SDLTTSChunk *> *)ttsChunks { - [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; + [parameters sdl_setObject:ttsChunks forName:SDLRPCParameterNameTTSChunks]; } - (NSArray<SDLTTSChunk *> *)ttsChunks { - return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; + NSError *error = nil; + return [parameters sdl_objectsForName:SDLRPCParameterNameTTSChunks ofClass:SDLTTSChunk.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLSpeakResponse.m b/SmartDeviceLink/SDLSpeakResponse.m index f8e8a248c..95b157682 100644 --- a/SmartDeviceLink/SDLSpeakResponse.m +++ b/SmartDeviceLink/SDLSpeakResponse.m @@ -5,14 +5,15 @@ #import "SDLSpeakResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSpeakResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSpeak]) { + if (self = [super initWithName:SDLRPCFunctionNameSpeak]) { } return self; } diff --git a/SmartDeviceLink/SDLStartTime.h b/SmartDeviceLink/SDLStartTime.h index 1c1ebde25..05645830e 100644 --- a/SmartDeviceLink/SDLStartTime.h +++ b/SmartDeviceLink/SDLStartTime.h @@ -13,6 +13,22 @@ NS_ASSUME_NONNULL_BEGIN */ @interface SDLStartTime : SDLRPCStruct +/** + Create a time struct with a time interval (time in seconds). Fractions of the second will be eliminated and rounded down. + + @param timeInterval The time interval to transform into hours, minutes, seconds + @return The object + */ +- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval; + +/** + Create a time struct with hours, minutes, and seconds + + @param hours The number of hours + @param minutes The number of minutes + @param seconds The number of seconds + @return The object + */ - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; /** diff --git a/SmartDeviceLink/SDLStartTime.m b/SmartDeviceLink/SDLStartTime.m index df8490f7a..5420246ae 100644 --- a/SmartDeviceLink/SDLStartTime.m +++ b/SmartDeviceLink/SDLStartTime.m @@ -5,12 +5,25 @@ #import "SDLStartTime.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLStartTime +- (instancetype)initWithTimeInterval:(NSTimeInterval)timeInterval { + self = [self init]; + if (!self) { return nil; } + + // https://stackoverflow.com/a/15304826/1221798 + long seconds = lround(timeInterval); + self.hours = @(seconds / 3600); + self.minutes = @((seconds % 3600) / 60); + self.seconds = @(seconds % 60); + + return self; +} + - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds { self = [self init]; if (!self) { @@ -25,27 +38,30 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setHours:(NSNumber<SDLInt> *)hours { - [store sdl_setObject:hours forName:SDLNameHours]; + [store sdl_setObject:hours forName:SDLRPCParameterNameHours]; } - (NSNumber<SDLInt> *)hours { - return [store sdl_objectForName:SDLNameHours]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameHours ofClass:NSNumber.class error:&error]; } - (void)setMinutes:(NSNumber<SDLInt> *)minutes { - [store sdl_setObject:minutes forName:SDLNameMinutes]; + [store sdl_setObject:minutes forName:SDLRPCParameterNameMinutes]; } - (NSNumber<SDLInt> *)minutes { - return [store sdl_objectForName:SDLNameMinutes]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMinutes ofClass:NSNumber.class error:&error]; } - (void)setSeconds:(NSNumber<SDLInt> *)seconds { - [store sdl_setObject:seconds forName:SDLNameSeconds]; + [store sdl_setObject:seconds forName:SDLRPCParameterNameSeconds]; } - (NSNumber<SDLInt> *)seconds { - return [store sdl_objectForName:SDLNameSeconds]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameSeconds ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLStateMachine.m b/SmartDeviceLink/SDLStateMachine.m index ffc269503..1819584ed 100644 --- a/SmartDeviceLink/SDLStateMachine.m +++ b/SmartDeviceLink/SDLStateMachine.m @@ -124,6 +124,8 @@ SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidEnter = self.currentState = oldState; } + self.currentState = state; + if (shouldCall) { SEL didEnter = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatDidEnter, state]); #pragma clang diagnostic push @@ -133,8 +135,6 @@ SDLStateMachineTransitionFormat const SDLStateMachineTransitionFormatDidEnter = #pragma clang diagnostic pop } } - - self.currentState = state; } /** diff --git a/SmartDeviceLink/SDLStationIDNumber.m b/SmartDeviceLink/SDLStationIDNumber.m index db1e6f095..623cb0b09 100644 --- a/SmartDeviceLink/SDLStationIDNumber.m +++ b/SmartDeviceLink/SDLStationIDNumber.m @@ -2,7 +2,7 @@ // #import "SDLStationIDNumber.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @@ -22,20 +22,20 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setCountryCode:(nullable NSNumber<SDLInt> *)countryCode { - [store sdl_setObject:countryCode forName:SDLNameCountryCode]; + [store sdl_setObject:countryCode forName:SDLRPCParameterNameCountryCode]; } - (nullable NSNumber<SDLInt> *)countryCode { - return [store sdl_objectForName:SDLNameCountryCode]; + return [store sdl_objectForName:SDLRPCParameterNameCountryCode ofClass:NSNumber.class error:nil]; } - (void)setFccFacilityId:(nullable NSNumber<SDLInt> *)fccFacilityId { - [store sdl_setObject:fccFacilityId forName:SDLNameFCCFacilityId]; + [store sdl_setObject:fccFacilityId forName:SDLRPCParameterNameFCCFacilityId]; } - (nullable NSNumber<SDLInt> *)fccFacilityId { - return [store sdl_objectForName:SDLNameFCCFacilityId]; + return [store sdl_objectForName:SDLRPCParameterNameFCCFacilityId ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m b/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m index 215962283..3a2404ca9 100644 --- a/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m +++ b/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m @@ -295,7 +295,6 @@ NS_ASSUME_NONNULL_BEGIN } SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; - SDLLogD(@"HMI level changed from level %@ to level %@", self.hmiLevel, hmiStatus.hmiLevel); self.hmiLevel = hmiStatus.hmiLevel; // if startWithProtocol has not been called yet, abort here diff --git a/SmartDeviceLink/SDLStreamingMediaManager.h b/SmartDeviceLink/SDLStreamingMediaManager.h index 6be499bec..c306f8550 100644 --- a/SmartDeviceLink/SDLStreamingMediaManager.h +++ b/SmartDeviceLink/SDLStreamingMediaManager.h @@ -13,8 +13,8 @@ #import "SDLStreamingMediaManagerConstants.h" @class SDLAudioStreamManager; +@class SDLConfiguration; @class SDLProtocol; -@class SDLStreamingMediaConfiguration; @class SDLTouchManager; @class SDLVideoStreamingFormat; @@ -115,10 +115,10 @@ NS_ASSUME_NONNULL_BEGIN 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 + @param configuration This session's configuration @return A new streaming manager */ -- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLConfiguration *)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`. diff --git a/SmartDeviceLink/SDLStreamingMediaManager.m b/SmartDeviceLink/SDLStreamingMediaManager.m index 36a26c8ac..d666a6254 100644 --- a/SmartDeviceLink/SDLStreamingMediaManager.m +++ b/SmartDeviceLink/SDLStreamingMediaManager.m @@ -9,9 +9,8 @@ #import "SDLStreamingMediaManager.h" #import "SDLAudioStreamManager.h" +#import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" -#import "SDLStreamingMediaConfiguration.h" -#import "SDLStreamingMediaManagerDataSource.h" #import "SDLStreamingAudioLifecycleManager.h" #import "SDLStreamingVideoLifecycleManager.h" #import "SDLTouchManager.h" @@ -34,18 +33,23 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Public #pragma mark Lifecycle -- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { +- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLConfiguration *)configuration { self = [super init]; if (!self) { return nil; } - - _audioLifecycleManager = [[SDLStreamingAudioLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration]; + + _audioLifecycleManager = [[SDLStreamingAudioLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration.streamingMediaConfig]; _videoLifecycleManager = [[SDLStreamingVideoLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration]; return self; } +- (void)dealloc { + [_audioLifecycleManager stop]; + [_videoLifecycleManager stop]; +} + - (void)startWithProtocol:(SDLProtocol *)protocol { [self startAudioWithProtocol:protocol]; [self startVideoWithProtocol:protocol]; diff --git a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h index 808d86c4b..1d1350469 100644 --- a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h +++ b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h @@ -16,6 +16,7 @@ #import "SDLVideoStreamingState.h" @class SDLCarWindow; +@class SDLConfiguration; @class SDLImageResolution; @class SDLProtocol; @class SDLStateMachine; @@ -135,10 +136,10 @@ NS_ASSUME_NONNULL_BEGIN 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 + @param configuration This session's configuration @return A new streaming manager */ -- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLConfiguration *)configuration; /** * 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`. diff --git a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m index 5302e287d..f483866ec 100644 --- a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m +++ b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m @@ -10,6 +10,7 @@ #import "CVPixelBufferRef+SDLUtil.h" #import "SDLCarWindow.h" +#import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" #import "SDLControlFramePayloadConstants.h" #import "SDLControlFramePayloadNak.h" @@ -25,6 +26,7 @@ #import "SDLHMICapabilities.h" #import "SDLHMILevel.h" #import "SDLImageResolution.h" +#import "SDLLifecycleConfiguration.h" #import "SDLLogMacros.h" #import "SDLOnHMIStatus.h" #import "SDLProtocol.h" @@ -66,18 +68,30 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N @property (copy, nonatomic) NSArray<NSString *> *secureMakes; @property (copy, nonatomic) NSString *connectedVehicleMake; +@property (copy, nonatomic, readonly) NSString *appName; @property (assign, nonatomic) CV_NULLABLE CVPixelBufferRef backgroundingPixelBuffer; @property (strong, nonatomic, nullable) CADisplayLink *displayLink; @property (assign, nonatomic) BOOL useDisplayLink; +/** + * SSRC of RTP header field. + * + * SSRC field identifies the source of a stream and it should be + * chosen randomly (see section 3 and 5.1 in RFC 3550). + * + * @note A random value is generated and used as default. + */ +@property (assign, nonatomic) UInt32 ssrc; @property (assign, nonatomic) CMTime lastPresentationTimestamp; +@property (copy, nonatomic, readonly) NSString *videoStreamBackgroundString; + @end @implementation SDLStreamingVideoLifecycleManager -- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { +- (instancetype)initWithConnectionManager:(id<SDLConnectionManagerType>)connectionManager configuration:(SDLConfiguration *)configuration { self = [super init]; if (!self) { return nil; @@ -85,26 +99,27 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N SDLLogV(@"Creating StreamingLifecycleManager"); + _appName = configuration.lifecycleConfig.appName; _connectionManager = connectionManager; - _videoEncoderSettings = configuration.customVideoEncoderSettings ?: SDLH264VideoEncoder.defaultVideoEncoderSettings; + _videoEncoderSettings = configuration.streamingMediaConfig.customVideoEncoderSettings ?: SDLH264VideoEncoder.defaultVideoEncoderSettings; - if (configuration.rootViewController != nil) { - NSAssert(configuration.enableForcedFramerateSync, @"When using CarWindow (rootViewController != nil), forceFrameRateSync must be YES"); + if (configuration.streamingMediaConfig.rootViewController != nil) { + NSAssert(configuration.streamingMediaConfig.enableForcedFramerateSync, @"When using CarWindow (rootViewController != nil), forceFrameRateSync must be YES"); if (@available(iOS 9.0, *)) { SDLLogD(@"Initializing focusable item locator"); - _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithViewController:configuration.rootViewController connectionManager:_connectionManager]; + _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithViewController:configuration.streamingMediaConfig.rootViewController connectionManager:_connectionManager]; } SDLLogD(@"Initializing CarWindow"); - _carWindow = [[SDLCarWindow alloc] initWithStreamManager:self configuration:configuration]; - _carWindow.rootViewController = configuration.rootViewController; + _carWindow = [[SDLCarWindow alloc] initWithStreamManager:self configuration:configuration.streamingMediaConfig]; + _carWindow.rootViewController = configuration.streamingMediaConfig.rootViewController; } _touchManager = [[SDLTouchManager alloc] initWithHitTester:(id)_focusableItemManager]; - _requestedEncryptionType = configuration.maximumDesiredEncryption; - _dataSource = configuration.dataSource; - _useDisplayLink = configuration.enableForcedFramerateSync; + _requestedEncryptionType = configuration.streamingMediaConfig.maximumDesiredEncryption; + _dataSource = configuration.streamingMediaConfig.dataSource; + _useDisplayLink = configuration.streamingMediaConfig.enableForcedFramerateSync; _screenSize = SDLDefaultScreenSize; _backgroundingPixelBuffer = NULL; _preferredFormatIndex = 0; @@ -114,7 +129,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N _videoStreamingState = SDLVideoStreamingStateNotStreamable; NSMutableArray<NSString *> *tempMakeArray = [NSMutableArray array]; - for (Class securityManagerClass in configuration.securityManagers) { + for (Class securityManagerClass in configuration.streamingMediaConfig.securityManagers) { [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; } _secureMakes = [tempMakeArray copy]; @@ -140,6 +155,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationDidBecomeActiveNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationWillResignActiveNotification object:nil]; + _ssrc = arc4random_uniform(UINT32_MAX); _lastPresentationTimestamp = kCMTimeInvalid; return self; @@ -290,6 +306,13 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N }; } +- (void)disposeDisplayLink { + if (self.displayLink != nil) { + [self.displayLink invalidate]; + self.displayLink = nil; + } +} + - (void)didEnterStateVideoStreamStopped { SDLLogD(@"Video stream stopped"); _videoEncrypted = NO; @@ -300,8 +323,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N _videoEncoder = nil; } - self.displayLink.paused = YES; - [self.displayLink invalidate]; + [self disposeDisplayLink]; [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStopNotification object:nil]; } @@ -360,13 +382,15 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N [self.videoEncoder stop]; self.videoEncoder = nil; } + + [self disposeDisplayLink]; if (self.videoEncoder == nil) { NSError* error = nil; NSAssert(self.videoFormat != nil, @"No video format is known, but it must be if we got a protocol start service response"); SDLLogD(@"Attempting to create video encoder"); - self.videoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:self.videoFormat.protocol dimensions:self.screenSize properties:self.videoEncoderSettings delegate:self error:&error]; + self.videoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:self.videoFormat.protocol dimensions:self.screenSize ssrc:self.ssrc properties:self.videoEncoderSettings delegate:self error:&error]; if (error || self.videoEncoder == nil) { SDLLogE(@"Could not create a video encoder: %@", error); @@ -376,7 +400,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N if (!self.backgroundingPixelBuffer) { CVPixelBufferRef backgroundingPixelBuffer = [self.videoEncoder newPixelBuffer]; - if (CVPixelBufferAddText(backgroundingPixelBuffer, @"") == NO) { + if (CVPixelBufferAddText(backgroundingPixelBuffer, self.videoStreamBackgroundString) == NO) { SDLLogE(@"Could not create a backgrounding frame"); [self.videoStreamStateMachine transitionToState:SDLVideoStreamManagerStateStopped]; return; @@ -410,6 +434,8 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N - (void)didEnterStateVideoStreamSuspended { SDLLogD(@"Video stream suspended"); + [self disposeDisplayLink]; + [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamSuspendedNotification object:nil]; } @@ -549,11 +575,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N } SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; - - if (![self.hmiLevel isEqualToEnum:hmiStatus.hmiLevel]) { - SDLLogD(@"HMI level changed from level %@ to level %@", self.hmiLevel, hmiStatus.hmiLevel); - self.hmiLevel = hmiStatus.hmiLevel; - } + self.hmiLevel = hmiStatus.hmiLevel; SDLVideoStreamingState newState = hmiStatus.videoStreamingState ?: SDLVideoStreamingStateStreamable; if (![self.videoStreamingState isEqualToEnum:newState]) { @@ -768,6 +790,10 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N return @[h264raw, h264rtp]; } +- (NSString *)videoStreamBackgroundString { + return [NSString stringWithFormat:@"When it is safe to do so, open %@ on your phone", self.appName]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeButton.m b/SmartDeviceLink/SDLSubscribeButton.m index 1a94caa37..f3fc0a8ab 100644 --- a/SmartDeviceLink/SDLSubscribeButton.m +++ b/SmartDeviceLink/SDLSubscribeButton.m @@ -5,14 +5,15 @@ #import "SDLSubscribeButton.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeButton - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeButton]) { } return self; } @@ -41,11 +42,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - return [parameters sdl_objectForName:SDLNameButtonName]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } -(id)copyWithZone:(nullable NSZone *)zone { diff --git a/SmartDeviceLink/SDLSubscribeButtonResponse.m b/SmartDeviceLink/SDLSubscribeButtonResponse.m index bf2b860f6..f8d0a4310 100644 --- a/SmartDeviceLink/SDLSubscribeButtonResponse.m +++ b/SmartDeviceLink/SDLSubscribeButtonResponse.m @@ -5,14 +5,15 @@ #import "SDLSubscribeButtonResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeButtonResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeButton]) { } return self; } diff --git a/SmartDeviceLink/SDLSubscribeVehicleData.h b/SmartDeviceLink/SDLSubscribeVehicleData.h index 8549e58e3..31d1dce6f 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleData.h +++ b/SmartDeviceLink/SDLSubscribeVehicleData.h @@ -83,7 +83,43 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Subscribe to wiperStatus * @return A SDLSubscribeVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); + +/** + * Convenience init for subscribing to all possible vehicle data items. + * + * @param accelerationPedalPosition Subscribe to accelerationPedalPosition + * @param airbagStatus Subscribe to airbagStatus + * @param beltStatus Subscribe to beltStatus + * @param bodyInformation Subscribe to bodyInformation + * @param cloudAppVehicleID Subscribe to cloudAppVehicleID + * @param clusterModeStatus Subscribe to clusterModeStatus + * @param deviceStatus Subscribe to deviceStatus + * @param driverBraking Subscribe to driverBraking + * @param eCallInfo Subscribe to eCallInfo + * @param electronicParkBrakeStatus Subscribe to electronicParkBrakeStatus + * @param emergencyEvent Subscribe to emergencyEvent + * @param engineOilLife Subscribe to engineOilLife + * @param engineTorque Subscribe to engineTorque + * @param externalTemperature Subscribe to externalTemperature + * @param fuelLevel Subscribe to fuelLevel + * @param fuelLevelState Subscribe to fuelLevelState + * @param fuelRange Subscribe to fuelRange + * @param gps Subscribe to gps + * @param headLampStatus Subscribe to headLampStatus + * @param instantFuelConsumption Subscribe to instantFuelConsumption + * @param myKey Subscribe to myKey + * @param odometer Subscribe to odometer + * @param prndl Subscribe to prndl + * @param rpm Subscribe to rpm + * @param speed Subscribe to speed + * @param steeringWheelAngle Subscribe to steeringWheelAngle + * @param tirePressure Subscribe to tirePressure + * @param turnSignal Subscribe to turnSignal + * @param wiperStatus Subscribe to wiperStatus + * @return A SDLSubscribeVehicleData object + */ +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; /** * A boolean value. If true, subscribes GPS data. @@ -225,6 +261,10 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) NSNumber<SDLBool> *turnSignal; +/** + * A boolean value. If true, subscribes to the cloud app vehicle ID. + */ +@property (strong, nonatomic, nullable) NSNumber<SDLBool> *cloudAppVehicleID; @end diff --git a/SmartDeviceLink/SDLSubscribeVehicleData.m b/SmartDeviceLink/SDLSubscribeVehicleData.m index 013496525..8774f98f4 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleData.m +++ b/SmartDeviceLink/SDLSubscribeVehicleData.m @@ -5,14 +5,15 @@ #import "SDLSubscribeVehicleData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeVehicleData]) { } return self; } @@ -22,6 +23,10 @@ NS_ASSUME_NONNULL_BEGIN } - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { + return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal wiperStatus:wiperStatus]; +} + +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { self = [self init]; if (!self) { return nil; @@ -31,6 +36,7 @@ NS_ASSUME_NONNULL_BEGIN self.airbagStatus = @(airbagStatus); self.beltStatus = @(beltStatus); self.bodyInformation = @(bodyInformation); + self.cloudAppVehicleID = @(cloudAppVehicleID); self.clusterModeStatus = @(clusterModeStatus); self.deviceStatus = @(deviceStatus); self.driverBraking = @(driverBraking); @@ -60,228 +66,237 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setGps:(nullable NSNumber<SDLBool> *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable NSNumber<SDLBool> *)gps { - return [parameters sdl_objectForName:SDLNameGPS]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber<SDLBool> *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber<SDLBool> *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber<SDLBool> *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber<SDLBool> *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber<SDLBool> *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber<SDLBool> *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable NSNumber<SDLBool> *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable NSNumber<SDLBool> *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; } - (void)setFuelRange:(nullable NSNumber<SDLBool> *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSNumber<SDLBool> *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber<SDLBool> *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber<SDLBool> *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setPrndl:(nullable NSNumber<SDLBool> *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable NSNumber<SDLBool> *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; } - (void)setTirePressure:(nullable NSNumber<SDLBool> *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable NSNumber<SDLBool> *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; } - (void)setOdometer:(nullable NSNumber<SDLBool> *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber<SDLBool> *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable NSNumber<SDLBool> *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable NSNumber<SDLBool> *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; } - (void)setBodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable NSNumber<SDLBool> *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; } - (void)setDeviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable NSNumber<SDLBool> *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; } - (void)setDriverBraking:(nullable NSNumber<SDLBool> *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable NSNumber<SDLBool> *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; } - (void)setWiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable NSNumber<SDLBool> *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; } - (void)setHeadLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable NSNumber<SDLBool> *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber<SDLBool> *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber<SDLBool> *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber<SDLBool> *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber<SDLBool> *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber<SDLBool> *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable NSNumber<SDLBool> *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable NSNumber<SDLBool> *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; } - (void)setAirbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable NSNumber<SDLBool> *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; } - (void)setEmergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable NSNumber<SDLBool> *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; } - (void)setClusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable NSNumber<SDLBool> *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; } - (void)setMyKey:(nullable NSNumber<SDLBool> *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable NSNumber<SDLBool> *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable NSNumber<SDLBool> *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; } - (void)setTurnSignal:(nullable NSNumber<SDLBool> *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable NSNumber<SDLBool> *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; } + +- (nullable NSNumber<SDLBool> *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h index 1cc10c6b3..0fbf17c0b 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h +++ b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h @@ -212,6 +212,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLVehicleDataResult *turnSignal; +/** + The result of requesting to subscribe to the cloud app vehicle ID + + Optional + */ +@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m index b39328d7e..f7b47b02a 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m +++ b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m @@ -5,7 +5,8 @@ #import "SDLSubscribeVehicleDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLVehicleDataResult.h" NS_ASSUME_NONNULL_BEGIN @@ -13,233 +14,241 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeVehicleData]) { } return self; } - (void)setGps:(nullable SDLVehicleDataResult *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLVehicleDataResult *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSpeed:(nullable SDLVehicleDataResult *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable SDLVehicleDataResult *)speed { - return [parameters sdl_objectForName:SDLNameSpeed ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setRpm:(nullable SDLVehicleDataResult *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable SDLVehicleDataResult *)rpm { - return [parameters sdl_objectForName:SDLNameRPM ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable SDLVehicleDataResult *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLVehicleDataResult *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelRange:(nullable SDLVehicleDataResult *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable SDLVehicleDataResult *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable SDLVehicleDataResult *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable SDLVehicleDataResult *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLVehicleDataResult *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLVehicleDataResult *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable SDLVehicleDataResult *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLVehicleDataResult *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLVehicleDataResult *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLVehicleDataResult *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataResult *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLVehicleDataResult *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLVehicleDataResult *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLVehicleDataResult.class error:nil]; } -- (void)setEngineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; +- (void)setEngineOilLife:(nullable SDLVehicleDataResult *)engineOilLife { + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } -- (nullable NSNumber<SDLBool> *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; +- (nullable SDLVehicleDataResult *)engineOilLife { + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable SDLVehicleDataResult *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable SDLVehicleDataResult *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable SDLVehicleDataResult *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLVehicleDataResult *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLVehicleDataResult *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLVehicleDataResult *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { - [parameters sdl_setObject:clusterModes forName:SDLNameClusterModes]; + [parameters sdl_setObject:clusterModes forName:SDLRPCParameterNameClusterModes]; } - (nullable SDLVehicleDataResult *)clusterModes { - return [parameters sdl_objectForName:SDLNameClusterModes ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModes ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLVehicleDataResult *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus ofClass:[SDLVehicleDataResult class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTurnSignal:(nullable SDLVehicleDataResult *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLVehicleDataResult *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal ofClass:[SDLVehicleDataResult class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:SDLVehicleDataResult.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable SDLVehicleDataResult *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSubscribeWayPoints.m b/SmartDeviceLink/SDLSubscribeWayPoints.m index cec91c636..206af8d8c 100644 --- a/SmartDeviceLink/SDLSubscribeWayPoints.m +++ b/SmartDeviceLink/SDLSubscribeWayPoints.m @@ -4,14 +4,15 @@ #import "SDLSubscribeWayPoints.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeWayPoints - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeWayPoints]) { } return self; } diff --git a/SmartDeviceLink/SDLSubscribeWayPointsResponse.m b/SmartDeviceLink/SDLSubscribeWayPointsResponse.m index 11aa5a04b..7de1b3403 100644 --- a/SmartDeviceLink/SDLSubscribeWayPointsResponse.m +++ b/SmartDeviceLink/SDLSubscribeWayPointsResponse.m @@ -5,14 +5,15 @@ #import "SDLSubscribeWayPointsResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeWayPointsResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameSubscribeWayPoints]) { } return self; } diff --git a/SmartDeviceLink/SDLSyncMsgVersion.m b/SmartDeviceLink/SDLSyncMsgVersion.m index 7d256ce14..82cfb6d4f 100644 --- a/SmartDeviceLink/SDLSyncMsgVersion.m +++ b/SmartDeviceLink/SDLSyncMsgVersion.m @@ -5,7 +5,7 @@ #import "SDLSyncMsgVersion.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -25,27 +25,29 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setMajorVersion:(NSNumber<SDLInt> *)majorVersion { - [store sdl_setObject:majorVersion forName:SDLNameMajorVersion]; + [store sdl_setObject:majorVersion forName:SDLRPCParameterNameMajorVersion]; } - (NSNumber<SDLInt> *)majorVersion { - return [store sdl_objectForName:SDLNameMajorVersion]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMajorVersion ofClass:NSNumber.class error:&error]; } - (void)setMinorVersion:(NSNumber<SDLInt> *)minorVersion { - [store sdl_setObject:minorVersion forName:SDLNameMinorVersion]; + [store sdl_setObject:minorVersion forName:SDLRPCParameterNameMinorVersion]; } - (NSNumber<SDLInt> *)minorVersion { - return [store sdl_objectForName:SDLNameMinorVersion]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMinorVersion ofClass:NSNumber.class error:&error]; } - (void)setPatchVersion:(nullable NSNumber<SDLInt> *)patchVersion { - [store sdl_setObject:patchVersion forName:SDLNamePatchVersion]; + [store sdl_setObject:patchVersion forName:SDLRPCParameterNamePatchVersion]; } - (nullable NSNumber<SDLInt> *)patchVersion { - return [store sdl_objectForName:SDLNamePatchVersion]; + return [store sdl_objectForName:SDLRPCParameterNamePatchVersion ofClass:NSNumber.class error:nil]; } - (NSString *)description { diff --git a/SmartDeviceLink/SDLSyncPData.m b/SmartDeviceLink/SDLSyncPData.m index 0dceaf65d..1163bc126 100644 --- a/SmartDeviceLink/SDLSyncPData.m +++ b/SmartDeviceLink/SDLSyncPData.m @@ -5,14 +5,15 @@ #import "SDLSyncPData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSyncPData - (instancetype)init { - if (self = [super initWithName:SDLNameSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameSyncPData]) { } return self; } diff --git a/SmartDeviceLink/SDLSyncPDataResponse.m b/SmartDeviceLink/SDLSyncPDataResponse.m index 2cb1c1164..082b1a1a4 100644 --- a/SmartDeviceLink/SDLSyncPDataResponse.m +++ b/SmartDeviceLink/SDLSyncPDataResponse.m @@ -5,14 +5,15 @@ #import "SDLSyncPDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSyncPDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSyncPData]) { + if (self = [super initWithName:SDLRPCFunctionNameSyncPData]) { } return self; } diff --git a/SmartDeviceLink/SDLSystemCapability.h b/SmartDeviceLink/SDLSystemCapability.h index 87ffe9529..503f50f3e 100755 --- a/SmartDeviceLink/SDLSystemCapability.h +++ b/SmartDeviceLink/SDLSystemCapability.h @@ -6,11 +6,10 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // -#import <Foundation/Foundation.h> - #import "SDLRPCStruct.h" #import "SDLSystemCapabilityType.h" +@class SDLAppServicesCapabilities; @class SDLPhoneCapability; @class SDLNavigationCapability; @class SDLVideoStreamingCapability; @@ -19,42 +18,89 @@ NS_ASSUME_NONNULL_BEGIN /** - 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 + * 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 */ @interface SDLSystemCapability : SDLRPCStruct +/** + * Convenience init for an App Service Capability + * + * @param capability Describes the capabilities of app services including what service types are supported and the current state of services + * @return A SDLSystemCapability object + */ +- (instancetype)initWithAppServicesCapabilities:(SDLAppServicesCapabilities *)capability; + +/** + * Convenience init for a Navigation Capability + * + * @param capability Describes the extended capabilities of the onboard navigation system + * @return A SDLSystemCapability object + */ - (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability; +/** + * Convenience init for a Phone Capability + * + * @param capability Describes the extended capabilities of the module's phone feature + * @return A SDLSystemCapability object + */ - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability; +/** + * Convenience init for a Video Streaming Capability + * + * @param capability Describes the capabilities of the module's video streaming feature + * @return A SDLSystemCapability object + */ - (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability; +/** + * Convenience init for a Remote Control Capability + * + * @param capability Describes the extended capabilities of the module's remote control feature + * @return A SDLSystemCapability object + */ - (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability; /** - Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included. + * Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included. */ @property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; /** - Describes extended capabilities for onboard navigation system + * Describes the capabilities of app services including what service types are supported and the current state of services. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLAppServicesCapabilities *appServicesCapabilities; + +/** + * Describes the extended capabilities of the onboard navigation system + * + * Optional */ @property (nullable, strong, nonatomic) SDLNavigationCapability *navigationCapability; /** - Describes extended capabilities of the module's phone feature + * Describes the extended capabilities of the module's phone feature + * + * Optional */ @property (nullable, strong, nonatomic) SDLPhoneCapability *phoneCapability; /** - Describes extended capabilities of the module's phone feature + * Describes the capabilities of the module's video streaming feature + * + * Optional */ @property (nullable, strong, nonatomic) SDLVideoStreamingCapability *videoStreamingCapability; /** - Describes extended capabilities of the module's phone feature + * Describes the extended capabilities of the module's remote control feature + * + * Optional */ @property (nullable, strong, nonatomic) SDLRemoteControlCapabilities *remoteControlCapability; diff --git a/SmartDeviceLink/SDLSystemCapability.m b/SmartDeviceLink/SDLSystemCapability.m index 5a469683d..23c826a34 100755 --- a/SmartDeviceLink/SDLSystemCapability.m +++ b/SmartDeviceLink/SDLSystemCapability.m @@ -9,7 +9,8 @@ #import "SDLSystemCapability.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLAppServicesCapabilities.h" +#import "SDLRPCParameterNames.h" #import "SDLNavigationCapability.h" #import "SDLPhoneCapability.h" #import "SDLSystemCapabilityType.h" @@ -20,6 +21,18 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemCapability +- (instancetype)initWithAppServicesCapabilities:(SDLAppServicesCapabilities *)capability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = SDLSystemCapabilityTypeAppServices; + self.appServicesCapabilities = capability; + + return self; +} + - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability { self = [self init]; if (!self) { @@ -69,45 +82,52 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { - [store sdl_setObject:type forName:SDLNameSystemCapabilityType]; + [store sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType]; } - (SDLSystemCapabilityType)systemCapabilityType { - return [store sdl_objectForName:SDLNameSystemCapabilityType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameSystemCapabilityType error:&error]; } -// TODO: Nav / Phone Capability +- (void)setAppServicesCapabilities:(nullable SDLAppServicesCapabilities *)appServicesCapabilities { + [store sdl_setObject:appServicesCapabilities forName:SDLRPCParameterNameAppServicesCapabilities]; +} + +- (nullable SDLAppServicesCapabilities *)appServicesCapabilities { + return [store sdl_objectForName:SDLRPCParameterNameAppServicesCapabilities ofClass:SDLAppServicesCapabilities.class error:nil]; +} - (void)setNavigationCapability:(nullable SDLNavigationCapability *)navigationCapability { - [store sdl_setObject:navigationCapability forName:SDLNameNavigationCapability]; + [store sdl_setObject:navigationCapability forName:SDLRPCParameterNameNavigationCapability]; } - (nullable SDLNavigationCapability *)navigationCapability { - return [store sdl_objectForName:SDLNameNavigationCapability ofClass:SDLNavigationCapability.class]; + return [store sdl_objectForName:SDLRPCParameterNameNavigationCapability ofClass:SDLNavigationCapability.class error:nil]; } - (void)setPhoneCapability:(nullable SDLPhoneCapability *)phoneCapability { - [store sdl_setObject:phoneCapability forName:SDLNamePhoneCapability]; + [store sdl_setObject:phoneCapability forName:SDLRPCParameterNamePhoneCapability]; } - (nullable SDLPhoneCapability *)phoneCapability { - return [store sdl_objectForName:SDLNamePhoneCapability ofClass:SDLPhoneCapability.class]; + return [store sdl_objectForName:SDLRPCParameterNamePhoneCapability ofClass:SDLPhoneCapability.class error:nil]; } - (void)setVideoStreamingCapability:(nullable SDLVideoStreamingCapability *)videoStreamingCapability { - [store sdl_setObject:videoStreamingCapability forName:SDLNameVideoStreamingCapability]; + [store sdl_setObject:videoStreamingCapability forName:SDLRPCParameterNameVideoStreamingCapability]; } - (nullable SDLVideoStreamingCapability *)videoStreamingCapability { - return [store sdl_objectForName:SDLNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class]; + return [store sdl_objectForName:SDLRPCParameterNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class error:nil]; } - (void)setRemoteControlCapability:(nullable SDLRemoteControlCapabilities *)remoteControlCapability { - [store sdl_setObject:remoteControlCapability forName:SDLNameRemoteControlCapability]; + [store sdl_setObject:remoteControlCapability forName:SDLRPCParameterNameRemoteControlCapability]; } - (nullable SDLRemoteControlCapabilities *)remoteControlCapability { - return [store sdl_objectForName:SDLNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class]; + return [store sdl_objectForName:SDLRPCParameterNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.h b/SmartDeviceLink/SDLSystemCapabilityManager.h index 36f58a735..11e31a1c2 100644 --- a/SmartDeviceLink/SDLSystemCapabilityManager.h +++ b/SmartDeviceLink/SDLSystemCapabilityManager.h @@ -14,6 +14,7 @@ #import "SDLSystemCapabilityType.h" #import "SDLVrCapabilities.h" +@class SDLAppServicesCapabilities; @class SDLAudioPassThruCapabilities; @class SDLButtonCapabilities; @class SDLDisplayCapabilities; @@ -124,6 +125,15 @@ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemC @property (nullable, strong, nonatomic, readonly) SDLAudioPassThruCapabilities *pcmStreamCapability; /** + * If returned, the platform supports app services + * + * @see SDLAppServicesCapabilities + * + * Optional + */ +@property (nullable, strong, nonatomic, readonly) SDLAppServicesCapabilities *appServicesCapabilities; + +/** * If returned, the platform supports navigation * * @see SDLNavigationCapability @@ -181,7 +191,7 @@ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemC - (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. + * Retrieves a capability type from the remote system. This function must be called in order to retrieve the values for `navigationCapability`, `phoneCapability`, `videoStreamingCapability`, `remoteControlCapability`, and `appServicesCapabilities`. 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 diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.m b/SmartDeviceLink/SDLSystemCapabilityManager.m index cd9db463a..0a48ce71f 100644 --- a/SmartDeviceLink/SDLSystemCapabilityManager.m +++ b/SmartDeviceLink/SDLSystemCapabilityManager.m @@ -8,24 +8,34 @@ #import "SDLSystemCapabilityManager.h" +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceRecord.h" +#import "SDLAppServicesCapabilities.h" #import "SDLConnectionManagerType.h" #import "SDLGenericResponse.h" #import "SDLGetSystemCapability.h" #import "SDLGetSystemCapabilityResponse.h" +#import "SDLGlobals.h" #import "SDLLogMacros.h" #import "SDLNotificationConstants.h" +#import "SDLOnHMIStatus.h" +#import "SDLOnSystemCapabilityUpdated.h" #import "SDLRegisterAppInterfaceResponse.h" +#import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSystemCapability.h" +#import "SDLVersion.h" #import "SDLVideoStreamingCapability.h" + NS_ASSUME_NONNULL_BEGIN @interface SDLSystemCapabilityManager () +typedef NSString * SDLServiceID; + @property (weak, nonatomic) id<SDLConnectionManagerType> connectionManager; -@property (copy, nonatomic, nullable) SDLUpdateCapabilityHandler systemCapabilityHandler; @property (nullable, strong, nonatomic, readwrite) SDLDisplayCapabilities *displayCapabilities; @property (nullable, strong, nonatomic, readwrite) SDLHMICapabilities *hmiCapabilities; @@ -43,6 +53,10 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, strong, nonatomic, readwrite) SDLVideoStreamingCapability *videoStreamingCapability; @property (nullable, strong, nonatomic, readwrite) SDLRemoteControlCapabilities *remoteControlCapability; +@property (nullable, strong, nonatomic) NSMutableDictionary<SDLServiceID, SDLAppServiceCapability *> *appServicesCapabilitiesDictionary; + +@property (assign, nonatomic) BOOL isFirstHMILevelFull; + @end @implementation SDLSystemCapabilityManager @@ -56,11 +70,17 @@ NS_ASSUME_NONNULL_BEGIN } _connectionManager = manager; + _isFirstHMILevelFull = NO; + _appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; + [self sdl_registerForNotifications]; return self; } +/** + * Resets the capabilities when a transport session is closed. + */ - (void)stop { SDLLogD(@"System Capability manager stopped"); _displayCapabilities = nil; @@ -78,17 +98,36 @@ NS_ASSUME_NONNULL_BEGIN _phoneCapability = nil; _videoStreamingCapability = nil; _remoteControlCapability = nil; + _appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary]; + + _isFirstHMILevelFull = NO; } +#pragma mark - Getters + +- (nullable SDLAppServicesCapabilities *)appServicesCapabilities { + if (self.appServicesCapabilitiesDictionary.count == 0) { return nil; } + + return [[SDLAppServicesCapabilities alloc] initWithAppServices:self.appServicesCapabilitiesDictionary.allValues]; +} #pragma mark - Notifications +/** + * Registers for notifications and responses from Core + */ -(void)sdl_registerForNotifications { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_registerResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_displayLayoutResponse:) name:SDLDidReceiveSetDisplayLayoutResponse object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_systemCapabilityResponse:) name:SDLDidReceiveGetSystemCapabilitiesResponse object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_systemCapabilityUpdatedNotification:) name:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiStatusNotification:) name:SDLDidChangeHMIStatusNotification object:nil]; } +/** + * Called when a `RegisterAppInterfaceResponse` response is received from Core. The head unit capabilities are saved. + * + * @param notification The `RegisterAppInterfaceResponse` response received from Core + */ - (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification { SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response; if (!response.success.boolValue) { return; } @@ -106,6 +145,11 @@ NS_ASSUME_NONNULL_BEGIN self.pcmStreamCapability = response.pcmStreamCapabilities; } +/** + * Called when a `SetDisplayLayoutResponse` response is received from Core. If the template was set successfully, the the new capabilities for the template are saved. + * + * @param notification The `SetDisplayLayoutResponse` response received from Core + */ - (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification { SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response; if (!response.success.boolValue) { return; } @@ -116,39 +160,132 @@ NS_ASSUME_NONNULL_BEGIN self.presetBankCapabilities = response.presetBankCapabilities; } -- (void)sdl_systemCapabilityResponse:(SDLRPCResponseNotification *)notification { - SDLGetSystemCapabilityResponse *response = (SDLGetSystemCapabilityResponse *)notification.response; - if (!response.success.boolValue) { return; } +/** + * Called when an `OnSystemCapabilityUpdated` notification is received from Core. The updated system capabilty is saved. + * + * @param notification The `OnSystemCapabilityUpdated` notification received from Core + */ +- (void)sdl_systemCapabilityUpdatedNotification:(SDLRPCNotificationNotification *)notification { + SDLOnSystemCapabilityUpdated *systemCapabilityUpdatedNotification = (SDLOnSystemCapabilityUpdated *)notification.notification; + [self sdl_saveSystemCapability:systemCapabilityUpdatedNotification.systemCapability completionHandler:nil]; +} + +/** + * Called when an `OnHMIStatus` notification is received from Core. The first time the `hmiLevel` is `FULL` attempt to subscribe to system capabilty updates. + * + * @param notification The `OnHMIStatus` notification received from Core + */ +- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification { + SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification; + if (self.isFirstHMILevelFull || ![hmiStatus.hmiLevel isEqualToEnum:SDLHMILevelFull]) { + return; + } + + self.isFirstHMILevelFull = YES; + [self sdl_subscribeToSystemCapabilityUpdates]; +} + +#pragma mark - System Capabilities + +- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler { + SDLVersion *onSystemCapabilityNotificationRPCVersion = [SDLVersion versionWithString:@"5.1.0"]; + SDLVersion *headUnitRPCVersion = SDLGlobals.sharedGlobals.rpcVersion; + if ([headUnitRPCVersion isGreaterThanOrEqualToVersion:onSystemCapabilityNotificationRPCVersion]) { + // Just return the cached data because we get `onSystemCapability` callbacks + handler(nil, self); + } else { + // Go and get the actual data + SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; + [self sdl_sendGetSystemCapability:getSystemCapability completionHandler:handler]; + } +} + +/** + * A list of all possible system capability types. + * + * @return An array of all possible system capability types + */ ++ (NSArray<SDLSystemCapabilityType> *)sdl_systemCapabilityTypes { + return @[SDLSystemCapabilityTypeAppServices, SDLSystemCapabilityTypeNavigation, SDLSystemCapabilityTypePhoneCall, SDLSystemCapabilityTypeVideoStreaming, SDLSystemCapabilityTypeRemoteControl]; +} + +/** + * Sends a subscribe request for all possible system capabilites. If connecting to Core versions 4.5+, the requested capability will be returned in the response. If connecting to Core versions 5.1+, the manager will received `OnSystemCapabilityUpdated` notifications when the capability updates if the subscription was successful. + */ +- (void)sdl_subscribeToSystemCapabilityUpdates { + for (SDLSystemCapabilityType type in [self.class sdl_systemCapabilityTypes]) { + SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; + SDLVersion *onSystemCapabilityNotificationRPCVersion = [SDLVersion versionWithString:@"5.1.0"]; + SDLVersion *headUnitRPCVersion = SDLGlobals.sharedGlobals.rpcVersion; + if ([headUnitRPCVersion isGreaterThanOrEqualToVersion:onSystemCapabilityNotificationRPCVersion]) { + getSystemCapability.subscribe = @YES; + } - SDLSystemCapability *systemCapabilityResponse = ((SDLGetSystemCapabilityResponse *)response).systemCapability; - SDLSystemCapabilityType systemCapabilityType = systemCapabilityResponse.systemCapabilityType; + [self sdl_sendGetSystemCapability:getSystemCapability completionHandler:nil]; + } +} + +/** + * Sends a `GetSystemCapability` to Core and handles the response by saving the returned data and notifying the subscriber. + * + * @param getSystemCapability The `GetSystemCapability` request to send + */ +- (void)sdl_sendGetSystemCapability:(SDLGetSystemCapability *)getSystemCapability completionHandler:(nullable SDLUpdateCapabilityHandler)handler { + [self.connectionManager sendConnectionRequest:getSystemCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (error != nil) { + // An error is returned if the request was unsuccessful or if a Generic Response was returned + if (handler == nil) { return; } + handler(error, self); + return; + } + + SDLGetSystemCapabilityResponse *getSystemCapabilityResponse = (SDLGetSystemCapabilityResponse *)response; + if (!getSystemCapabilityResponse.success.boolValue) { return; } + [self sdl_saveSystemCapability:getSystemCapabilityResponse.systemCapability completionHandler:handler]; + }]; +} + +/** + * Saves a system capability. All system capabilities will update with the full object except for app services. For app services only the updated app service capabilities will be included in the `SystemCapability` sent from Core. The cached `appServicesCapabilities` will be updated with the new `appService` data. + * + * @param systemCapability The system capability + */ +- (void)sdl_saveSystemCapability:(SDLSystemCapability *)systemCapability completionHandler:(nullable SDLUpdateCapabilityHandler)handler { + SDLSystemCapabilityType systemCapabilityType = systemCapability.systemCapabilityType; if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypePhoneCall]) { - self.phoneCapability = systemCapabilityResponse.phoneCapability; + self.phoneCapability = systemCapability.phoneCapability; } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeNavigation]) { - self.navigationCapability = systemCapabilityResponse.navigationCapability; + self.navigationCapability = systemCapability.navigationCapability; } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) { - self.remoteControlCapability = systemCapabilityResponse.remoteControlCapability; + self.remoteControlCapability = systemCapability.remoteControlCapability; } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) { - self.videoStreamingCapability = systemCapabilityResponse.videoStreamingCapability; + self.videoStreamingCapability = systemCapability.videoStreamingCapability; + } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeAppServices]) { + [self sdl_saveAppServicesCapabilitiesUpdate:systemCapability.appServicesCapabilities]; } else { SDLLogW(@"Received response for unknown System Capability Type: %@", systemCapabilityType); + return; } - if (self.systemCapabilityHandler == nil) { return; } - self.systemCapabilityHandler(nil, self); -} + SDLLogD(@"Updated system capability manager with new data: %@", systemCapability); -#pragma mark - Capability Request + if (handler == nil) { return; } + handler(nil, self); +} -- (void)updateCapabilityType:(SDLSystemCapabilityType)type completionHandler:(SDLUpdateCapabilityHandler)handler { - self.systemCapabilityHandler = handler; - SDLGetSystemCapability *getSystemCapability = [[SDLGetSystemCapability alloc] initWithType:type]; - [self.connectionManager sendConnectionRequest:getSystemCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - if (error == nil) { return; } - // An error is returned if the request was unsuccessful or a Generic Response is returned - handler(error, self); - }]; +- (void)sdl_saveAppServicesCapabilitiesUpdate:(SDLAppServicesCapabilities *)newCapabilities { + for (SDLAppServiceCapability *capability in newCapabilities.appServices) { + if (capability.updateReason == nil) { + // First update, new capability + self.appServicesCapabilitiesDictionary[capability.updatedAppServiceRecord.serviceID] = capability; + } else if ([capability.updateReason isEqualToEnum:SDLServiceUpdateRemoved]) { + self.appServicesCapabilitiesDictionary[capability.updatedAppServiceRecord.serviceID] = nil; + } else { + // Everything else involves adding or updating the existing service record + self.appServicesCapabilitiesDictionary[capability.updatedAppServiceRecord.serviceID] = capability; + } + } } @end diff --git a/SmartDeviceLink/SDLSystemCapabilityType.h b/SmartDeviceLink/SDLSystemCapabilityType.h index f42d1b2bc..2625217dc 100755 --- a/SmartDeviceLink/SDLSystemCapabilityType.h +++ b/SmartDeviceLink/SDLSystemCapabilityType.h @@ -14,6 +14,11 @@ typedef SDLEnum SDLSystemCapabilityType SDL_SWIFT_ENUM; /** + The app services capability + */ +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeAppServices; + +/** The navigation capability */ extern SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation; diff --git a/SmartDeviceLink/SDLSystemCapabilityType.m b/SmartDeviceLink/SDLSystemCapabilityType.m index c8a25e755..933a74418 100755 --- a/SmartDeviceLink/SDLSystemCapabilityType.m +++ b/SmartDeviceLink/SDLSystemCapabilityType.m @@ -8,7 +8,7 @@ #import "SDLSystemCapabilityType.h" - +SDLSystemCapabilityType const SDLSystemCapabilityTypeAppServices = @"APP_SERVICES"; SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION"; SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL"; SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING"; diff --git a/SmartDeviceLink/SDLSystemRequest.m b/SmartDeviceLink/SDLSystemRequest.m index d481779cf..db8eead44 100644 --- a/SmartDeviceLink/SDLSystemRequest.m +++ b/SmartDeviceLink/SDLSystemRequest.m @@ -5,14 +5,15 @@ #import "SDLSystemRequest.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemRequest - (instancetype)init { - if (self = [super initWithName:SDLNameSystemRequest]) { + if (self = [super initWithName:SDLRPCFunctionNameSystemRequest]) { } return self; } @@ -41,27 +42,28 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setRequestType:(SDLRequestType)requestType { - [parameters sdl_setObject:requestType forName:SDLNameRequestType]; + [parameters sdl_setObject:requestType forName:SDLRPCParameterNameRequestType]; } - (SDLRequestType)requestType { - return [parameters sdl_objectForName:SDLNameRequestType]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameRequestType error:&error]; } - (void)setRequestSubType:(nullable NSString *)requestSubType { - [parameters sdl_setObject:requestSubType forName:SDLNameRequestSubType]; + [parameters sdl_setObject:requestSubType forName:SDLRPCParameterNameRequestSubType]; } - (nullable NSString *)requestSubType { - return [parameters sdl_objectForName:SDLNameRequestSubType]; + return [parameters sdl_objectForName:SDLRPCParameterNameRequestSubType ofClass:NSString.class error:nil]; } - (void)setFileName:(nullable NSString *)fileName { - [parameters sdl_setObject:fileName forName:SDLNameFilename]; + [parameters sdl_setObject:fileName forName:SDLRPCParameterNameFilename]; } - (nullable NSString *)fileName { - return [parameters sdl_objectForName:SDLNameFilename]; + return [parameters sdl_objectForName:SDLRPCParameterNameFilename ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLSystemRequestResponse.m b/SmartDeviceLink/SDLSystemRequestResponse.m index f202c544d..8f5150302 100644 --- a/SmartDeviceLink/SDLSystemRequestResponse.m +++ b/SmartDeviceLink/SDLSystemRequestResponse.m @@ -5,14 +5,15 @@ #import "SDLSystemRequestResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemRequestResponse - (instancetype)init { - if (self = [super initWithName:SDLNameSystemRequest]) { + if (self = [super initWithName:SDLRPCFunctionNameSystemRequest]) { } return self; } diff --git a/SmartDeviceLink/SDLTTSChunk.m b/SmartDeviceLink/SDLTTSChunk.m index a8874129b..3d66387d0 100644 --- a/SmartDeviceLink/SDLTTSChunk.m +++ b/SmartDeviceLink/SDLTTSChunk.m @@ -4,7 +4,7 @@ #import "SDLTTSChunk.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -55,19 +55,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setText:(NSString *)text { - [store sdl_setObject:text forName:SDLNameText]; + [store sdl_setObject:text forName:SDLRPCParameterNameText]; } - (NSString *)text { - return [store sdl_objectForName:SDLNameText]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:&error]; } - (void)setType:(SDLSpeechCapabilities)type { - [store sdl_setObject:type forName:SDLNameType]; + [store sdl_setObject:type forName:SDLRPCParameterNameType]; } - (SDLSpeechCapabilities)type { - return [store sdl_objectForName:SDLNameType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameType error:&error]; } @end diff --git a/SmartDeviceLink/SDLTemperature.h b/SmartDeviceLink/SDLTemperature.h index 5a22ba962..e93fae6d1 100644 --- a/SmartDeviceLink/SDLTemperature.h +++ b/SmartDeviceLink/SDLTemperature.h @@ -8,23 +8,46 @@ NS_ASSUME_NONNULL_BEGIN /** - Struct using in Remote Control representing a temperature. + * Struct representing a temperature. */ @interface SDLTemperature : SDLRPCStruct -- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value; +/** + * Convenience init for a fahrenheit temperature value. + * + * @param value Temperature value in fahrenheit + * @return A SDLTemperature object + */ +- (instancetype)initWithFahrenheitValue:(float)value; + +/** + * Convenience init for a celsius temperature value. + * + * @param value Temperature value in celsius + * @return A SDLTemperature object + */ +- (instancetype)initWithCelsiusValue:(float)value; /** - Temperature Unit + * Convenience init for all parameters. + * + * @param unit Temperature unit + * @param value Temperature value in specified unit + * @return A SDLTemperature object + */ +- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value NS_DESIGNATED_INITIALIZER; - Required, float +/** + * Temperature unit + * + * Required, float */ @property (strong, nonatomic) SDLTemperatureUnit unit; /** - Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL. - - Required, float + * Temperature value in specified unit. Range depends on OEM and is not checked by SDL. + * + * Required, float */ @property (strong, nonatomic) NSNumber<SDLFloat> *value; diff --git a/SmartDeviceLink/SDLTemperature.m b/SmartDeviceLink/SDLTemperature.m index 8d5c5a70f..66759f4fd 100644 --- a/SmartDeviceLink/SDLTemperature.m +++ b/SmartDeviceLink/SDLTemperature.m @@ -3,15 +3,23 @@ // #import "SDLTemperature.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "NSMutableDictionary+Store.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLTemperature +- (instancetype)initWithFahrenheitValue:(float)value { + return [self initWithUnit:SDLTemperatureUnitFahrenheit value:value]; +} + +- (instancetype)initWithCelsiusValue:(float)value { + return [self initWithUnit:SDLTemperatureUnitCelsius value:value]; +} + - (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value { - self = [self init]; + self = [super init]; if (!self) { return nil; } @@ -23,19 +31,21 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setUnit:(SDLTemperatureUnit)unit { - [store sdl_setObject:unit forName:SDLNameUnit]; + [store sdl_setObject:unit forName:SDLRPCParameterNameUnit]; } - (SDLTemperatureUnit)unit { - return [store sdl_objectForName:SDLNameUnit]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameUnit error:&error]; } - (void)setValue:(NSNumber<SDLFloat> *)value { - [store sdl_setObject:value forName:SDLNameValue]; + [store sdl_setObject:value forName:SDLRPCParameterNameValue]; } - (NSNumber<SDLFloat> *)value { - return [store sdl_objectForName:SDLNameValue]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameValue ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLTemplateColorScheme.m b/SmartDeviceLink/SDLTemplateColorScheme.m index 42f18a702..da1e833e3 100644 --- a/SmartDeviceLink/SDLTemplateColorScheme.m +++ b/SmartDeviceLink/SDLTemplateColorScheme.m @@ -9,7 +9,7 @@ #import "SDLTemplateColorScheme.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRGBColor.h" NS_ASSUME_NONNULL_BEGIN @@ -39,27 +39,27 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setPrimaryColor:(nullable SDLRGBColor *)primaryColor { - [store sdl_setObject:primaryColor forName:SDLNamePrimaryColor]; + [store sdl_setObject:primaryColor forName:SDLRPCParameterNamePrimaryColor]; } - (nullable SDLRGBColor *)primaryColor { - return [store sdl_objectForName:SDLNamePrimaryColor ofClass:[SDLRGBColor class]]; + return [store sdl_objectForName:SDLRPCParameterNamePrimaryColor ofClass:SDLRGBColor.class error:nil]; } - (void)setSecondaryColor:(nullable SDLRGBColor *)secondaryColor { - [store sdl_setObject:secondaryColor forName:SDLNameSecondaryColor]; + [store sdl_setObject:secondaryColor forName:SDLRPCParameterNameSecondaryColor]; } - (nullable SDLRGBColor *)secondaryColor { - return [store sdl_objectForName:SDLNameSecondaryColor ofClass:[SDLRGBColor class]]; + return [store sdl_objectForName:SDLRPCParameterNameSecondaryColor ofClass:SDLRGBColor.class error:nil]; } - (void)setBackgroundColor:(nullable SDLRGBColor *)backgroundColor { - [store sdl_setObject:backgroundColor forName:SDLNameBackgroundColor]; + [store sdl_setObject:backgroundColor forName:SDLRPCParameterNameBackgroundColor]; } - (nullable SDLRGBColor *)backgroundColor { - return [store sdl_objectForName:SDLNameBackgroundColor ofClass:[SDLRGBColor class]]; + return [store sdl_objectForName:SDLRPCParameterNameBackgroundColor ofClass:SDLRGBColor.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLTextAndGraphicManager.m b/SmartDeviceLink/SDLTextAndGraphicManager.m index aaeba7187..3c3395f14 100644 --- a/SmartDeviceLink/SDLTextAndGraphicManager.m +++ b/SmartDeviceLink/SDLTextAndGraphicManager.m @@ -162,7 +162,7 @@ NS_ASSUME_NONNULL_BEGIN SDLLogV(@"No images to send, sending text"); // If there are no images to update, just send the text self.inProgressUpdate = [self sdl_extractTextFromShow:fullShow]; - } else if ([self sdl_isArtworkUploadedOrNonExistent:self.primaryGraphic] && [self sdl_isArtworkUploadedOrNonExistent:self.secondaryGraphic]) { + } else if (![self sdl_artworkNeedsUpload:self.primaryGraphic] && ![self sdl_artworkNeedsUpload:self.secondaryGraphic]) { SDLLogV(@"Images already uploaded, sending full update"); // The files to be updated are already uploaded, send the full show immediately self.inProgressUpdate = fullShow; @@ -175,7 +175,7 @@ NS_ASSUME_NONNULL_BEGIN // Start uploading the images __block SDLShow *thisUpdate = fullShow; - [self sdl_uploadImagesWithCompletionHandler:^(NSError * _Nonnull error) { + [self sdl_uploadImagesWithCompletionHandler:^(NSError *_Nullable error) { __strong typeof(weakSelf) strongSelf = weakSelf; if (error != nil) { @@ -229,15 +229,21 @@ NS_ASSUME_NONNULL_BEGIN }]; } -- (void)sdl_uploadImagesWithCompletionHandler:(void (^)(NSError *error))handler { +- (void)sdl_uploadImagesWithCompletionHandler:(void (^)(NSError *_Nullable error))handler { NSMutableArray<SDLArtwork *> *artworksToUpload = [NSMutableArray array]; - if ([self sdl_shouldUpdatePrimaryImage]) { + if ([self sdl_shouldUpdatePrimaryImage] && !self.primaryGraphic.isStaticIcon) { [artworksToUpload addObject:self.primaryGraphic]; } - if ([self sdl_shouldUpdateSecondaryImage]) { + if ([self sdl_shouldUpdateSecondaryImage] && !self.secondaryGraphic.isStaticIcon) { [artworksToUpload addObject:self.secondaryGraphic]; } + if (artworksToUpload.count == 0 + && (self.primaryGraphic.isStaticIcon || self.secondaryGraphic.isStaticIcon)) { + SDLLogD(@"Upload attempted on static icons, sending them without upload instead"); + handler(nil); + } + [self.fileManager uploadArtworks:artworksToUpload completionHandler:^(NSArray<NSString *> * _Nonnull artworkNames, NSError * _Nullable error) { if (error != nil) { SDLLogW(@"Text and graphic manager artwork failed to upload with error: %@", error.localizedDescription); @@ -257,10 +263,10 @@ NS_ASSUME_NONNULL_BEGIN } if ([self sdl_shouldUpdatePrimaryImage]) { - show.graphic = [[SDLImage alloc] initWithName:self.primaryGraphic.name ofType:SDLImageTypeDynamic isTemplate:self.primaryGraphic.isTemplate]; + show.graphic = self.primaryGraphic.imageRPC; } if ([self sdl_shouldUpdateSecondaryImage]) { - show.secondaryGraphic = [[SDLImage alloc] initWithName:self.secondaryGraphic.name ofType:SDLImageTypeDynamic isTemplate:self.secondaryGraphic.isTemplate]; + show.secondaryGraphic = self.secondaryGraphic.imageRPC; } return show; @@ -457,8 +463,8 @@ NS_ASSUME_NONNULL_BEGIN - (nullable SDLShow *)sdl_createImageOnlyShowWithPrimaryArtwork:(nullable SDLArtwork *)primaryArtwork secondaryArtwork:(nullable SDLArtwork *)secondaryArtwork { SDLShow *newShow = [[SDLShow alloc] init]; - newShow.graphic = [self sdl_isArtworkUploadedOrNonExistent:primaryArtwork] ? [[SDLImage alloc] initWithName:primaryArtwork.name ofType:SDLImageTypeDynamic isTemplate:primaryArtwork.isTemplate] : nil; - newShow.secondaryGraphic = [self sdl_isArtworkUploadedOrNonExistent:secondaryArtwork] ? [[SDLImage alloc] initWithName:secondaryArtwork.name ofType:SDLImageTypeDynamic isTemplate:secondaryArtwork.isTemplate] : nil; + newShow.graphic = ![self sdl_artworkNeedsUpload:primaryArtwork] ? primaryArtwork.imageRPC : nil; + newShow.secondaryGraphic = ![self sdl_artworkNeedsUpload:secondaryArtwork] ? secondaryArtwork.imageRPC : nil; if (newShow.graphic == nil && newShow.secondaryGraphic == nil) { SDLLogV(@"No graphics to upload"); @@ -483,29 +489,23 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Helpers -/** - * Checks if an artwork needs to be uploaded to Core. - * - * @param artwork The artwork to be uploaded to Core - * @return True if the artwork does not need to be uploaded to Core; false if artwork stills needs to be sent to Core. - */ -- (BOOL)sdl_isArtworkUploadedOrNonExistent:(SDLArtwork *)artwork { - return (!artwork || [self.fileManager hasUploadedFile:artwork]); +- (BOOL)sdl_artworkNeedsUpload:(SDLArtwork *)artwork { + return (artwork != nil && ![self.fileManager hasUploadedFile:artwork] && !artwork.isStaticIcon); } - (BOOL)sdl_shouldUpdatePrimaryImage { - BOOL hasGraphic = self.displayCapabilities ? [self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameGraphic] : YES; + BOOL templateSupportsPrimaryArtwork = self.displayCapabilities ? [self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameGraphic] : YES; - return (hasGraphic + return (templateSupportsPrimaryArtwork && ![self.currentScreenData.graphic.value isEqualToString:self.primaryGraphic.name] && self.primaryGraphic != nil); } - (BOOL)sdl_shouldUpdateSecondaryImage { - BOOL hasGraphic = self.displayCapabilities ? [self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameGraphic] : YES; + BOOL templateSupportsSecondaryArtwork = self.displayCapabilities ? ([self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameGraphic] || [self.displayCapabilities hasImageFieldOfName:SDLImageFieldNameSecondaryGraphic]) : YES; // Cannot detect if there is a secondary image, so we'll just try to detect if there's a primary image and allow it if there is. - return (hasGraphic + return (templateSupportsSecondaryArtwork && ![self.currentScreenData.secondaryGraphic.value isEqualToString:self.secondaryGraphic.name] && self.secondaryGraphic != nil); } diff --git a/SmartDeviceLink/SDLTextField.m b/SmartDeviceLink/SDLTextField.m index 7e6293f58..6ac0fb052 100644 --- a/SmartDeviceLink/SDLTextField.m +++ b/SmartDeviceLink/SDLTextField.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLCharacterSet.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTextFieldName.h" NS_ASSUME_NONNULL_BEGIN @@ -13,35 +13,39 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLTextField - (void)setName:(SDLTextFieldName)name { - [store sdl_setObject:name forName:SDLNameName]; + [store sdl_setObject:name forName:SDLRPCParameterNameName]; } - (SDLTextFieldName)name { - return [store sdl_objectForName:SDLNameName]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameName error:&error]; } - (void)setCharacterSet:(SDLCharacterSet)characterSet { - [store sdl_setObject:characterSet forName:SDLNameCharacterSet]; + [store sdl_setObject:characterSet forName:SDLRPCParameterNameCharacterSet]; } - (SDLCharacterSet)characterSet { - return [store sdl_objectForName:SDLNameCharacterSet]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameCharacterSet error:&error]; } - (void)setWidth:(NSNumber<SDLInt> *)width { - [store sdl_setObject:width forName:SDLNameWidth]; + [store sdl_setObject:width forName:SDLRPCParameterNameWidth]; } - (NSNumber<SDLInt> *)width { - return [store sdl_objectForName:SDLNameWidth]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameWidth ofClass:NSNumber.class error:&error]; } - (void)setRows:(NSNumber<SDLInt> *)rows { - [store sdl_setObject:rows forName:SDLNameRows]; + [store sdl_setObject:rows forName:SDLRPCParameterNameRows]; } - (NSNumber<SDLInt> *)rows { - return [store sdl_objectForName:SDLNameRows]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameRows ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLTireStatus.m b/SmartDeviceLink/SDLTireStatus.m index aad17cdde..9dd0a9036 100644 --- a/SmartDeviceLink/SDLTireStatus.m +++ b/SmartDeviceLink/SDLTireStatus.m @@ -4,7 +4,7 @@ #import "SDLTireStatus.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSingleTireStatus.h" NS_ASSUME_NONNULL_BEGIN @@ -12,59 +12,66 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLTireStatus - (void)setPressureTelltale:(SDLWarningLightStatus)pressureTelltale { - [store sdl_setObject:pressureTelltale forName:SDLNamePressureTelltale]; + [store sdl_setObject:pressureTelltale forName:SDLRPCParameterNamePressureTelltale]; } - (SDLWarningLightStatus)pressureTelltale { - return [store sdl_objectForName:SDLNamePressureTelltale]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNamePressureTelltale error:&error]; } - (void)setLeftFront:(SDLSingleTireStatus *)leftFront { - [store sdl_setObject:leftFront forName:SDLNameLeftFront]; + [store sdl_setObject:leftFront forName:SDLRPCParameterNameLeftFront]; } - (SDLSingleTireStatus *)leftFront { - return [store sdl_objectForName:SDLNameLeftFront ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLeftFront ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setRightFront:(SDLSingleTireStatus *)rightFront { - [store sdl_setObject:rightFront forName:SDLNameRightFront]; + [store sdl_setObject:rightFront forName:SDLRPCParameterNameRightFront]; } - (SDLSingleTireStatus *)rightFront { - return [store sdl_objectForName:SDLNameRightFront ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameRightFront ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setLeftRear:(SDLSingleTireStatus *)leftRear { - [store sdl_setObject:leftRear forName:SDLNameLeftRear]; + [store sdl_setObject:leftRear forName:SDLRPCParameterNameLeftRear]; } - (SDLSingleTireStatus *)leftRear { - return [store sdl_objectForName:SDLNameLeftRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLeftRear ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setRightRear:(SDLSingleTireStatus *)rightRear { - [store sdl_setObject:rightRear forName:SDLNameRightRear]; + [store sdl_setObject:rightRear forName:SDLRPCParameterNameRightRear]; } - (SDLSingleTireStatus *)rightRear { - return [store sdl_objectForName:SDLNameRightRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameRightRear ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setInnerLeftRear:(SDLSingleTireStatus *)innerLeftRear { - [store sdl_setObject:innerLeftRear forName:SDLNameInnerLeftRear]; + [store sdl_setObject:innerLeftRear forName:SDLRPCParameterNameInnerLeftRear]; } - (SDLSingleTireStatus *)innerLeftRear { - return [store sdl_objectForName:SDLNameInnerLeftRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameInnerLeftRear ofClass:SDLSingleTireStatus.class error:&error]; } - (void)setInnerRightRear:(SDLSingleTireStatus *)innerRightRear { - [store sdl_setObject:innerRightRear forName:SDLNameInnerRightRear]; + [store sdl_setObject:innerRightRear forName:SDLRPCParameterNameInnerRightRear]; } - (SDLSingleTireStatus *)innerRightRear { - return [store sdl_objectForName:SDLNameInnerRightRear ofClass:SDLSingleTireStatus.class]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameInnerRightRear ofClass:SDLSingleTireStatus.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLTouchCoord.m b/SmartDeviceLink/SDLTouchCoord.m index bba5b593c..5c5500cdf 100644 --- a/SmartDeviceLink/SDLTouchCoord.m +++ b/SmartDeviceLink/SDLTouchCoord.m @@ -5,26 +5,28 @@ #import "SDLTouchCoord.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLTouchCoord - (void)setX:(NSNumber<SDLFloat> *)x { - [store sdl_setObject:x forName:SDLNameX]; + [store sdl_setObject:x forName:SDLRPCParameterNameX]; } - (NSNumber<SDLFloat> *)x { - return [store sdl_objectForName:SDLNameX]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameX ofClass:NSNumber.class error:&error]; } - (void)setY:(NSNumber<SDLFloat> *)y { - [store sdl_setObject:y forName:SDLNameY]; + [store sdl_setObject:y forName:SDLRPCParameterNameY]; } - (NSNumber<SDLFloat> *)y { - return [store sdl_objectForName:SDLNameY]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameY ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLTouchEvent.m b/SmartDeviceLink/SDLTouchEvent.m index 7ff82b3c7..89b2648ee 100644 --- a/SmartDeviceLink/SDLTouchEvent.m +++ b/SmartDeviceLink/SDLTouchEvent.m @@ -5,7 +5,7 @@ #import "SDLTouchEvent.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTouchCoord.h" NS_ASSUME_NONNULL_BEGIN @@ -13,27 +13,30 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLTouchEvent - (void)setTouchEventId:(NSNumber<SDLInt> *)touchEventId { - [store sdl_setObject:touchEventId forName:SDLNameId]; + [store sdl_setObject:touchEventId forName:SDLRPCParameterNameId]; } - (NSNumber<SDLInt> *)touchEventId { - return [store sdl_objectForName:SDLNameId]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameId ofClass:NSNumber.class error:&error]; } - (void)setTimeStamp:(NSArray<NSNumber<SDLInt> *> *)timeStamp { - [store sdl_setObject:timeStamp forName:SDLNameTimestamp]; + [store sdl_setObject:timeStamp forName:SDLRPCParameterNameTS]; } - (NSArray<NSNumber<SDLInt> *> *)timeStamp { - return [store sdl_objectForName:SDLNameTimestamp]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameTS ofClass:NSNumber.class error:&error]; } - (void)setCoord:(NSArray<SDLTouchCoord *> *)coord { - [store sdl_setObject:coord forName:SDLNameCoordinate]; + [store sdl_setObject:coord forName:SDLRPCParameterNameCoordinate]; } - (NSArray<SDLTouchCoord *> *)coord { - return [store sdl_objectsForName:SDLNameCoordinate ofClass:SDLTouchCoord.class]; + NSError *error = nil; + return [store sdl_objectsForName:SDLRPCParameterNameCoordinate ofClass:SDLTouchCoord.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLTouchEventCapabilities.m b/SmartDeviceLink/SDLTouchEventCapabilities.m index cf019dc22..9ff250e27 100644 --- a/SmartDeviceLink/SDLTouchEventCapabilities.m +++ b/SmartDeviceLink/SDLTouchEventCapabilities.m @@ -5,34 +5,37 @@ #import "SDLTouchEventCapabilities.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLTouchEventCapabilities - (void)setPressAvailable:(NSNumber<SDLBool> *)pressAvailable { - [store sdl_setObject:pressAvailable forName:SDLNamePressAvailable]; + [store sdl_setObject:pressAvailable forName:SDLRPCParameterNamePressAvailable]; } - (NSNumber<SDLBool> *)pressAvailable { - return [store sdl_objectForName:SDLNamePressAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNamePressAvailable ofClass:NSNumber.class error:&error]; } - (void)setMultiTouchAvailable:(NSNumber<SDLBool> *)multiTouchAvailable { - [store sdl_setObject:multiTouchAvailable forName:SDLNameMultiTouchAvailable]; + [store sdl_setObject:multiTouchAvailable forName:SDLRPCParameterNameMultiTouchAvailable]; } - (NSNumber<SDLBool> *)multiTouchAvailable { - return [store sdl_objectForName:SDLNameMultiTouchAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameMultiTouchAvailable ofClass:NSNumber.class error:&error]; } - (void)setDoublePressAvailable:(NSNumber<SDLBool> *)doublePressAvailable { - [store sdl_setObject:doublePressAvailable forName:SDLNameDoublePressAvailable]; + [store sdl_setObject:doublePressAvailable forName:SDLRPCParameterNameDoublePressAvailable]; } - (NSNumber<SDLBool> *)doublePressAvailable { - return [store sdl_objectForName:SDLNameDoublePressAvailable]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameDoublePressAvailable ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLTouchManager.m b/SmartDeviceLink/SDLTouchManager.m index 518877e96..9a66d81e4 100644 --- a/SmartDeviceLink/SDLTouchManager.m +++ b/SmartDeviceLink/SDLTouchManager.m @@ -227,8 +227,8 @@ static NSUInteger const MaximumNumberOfTouches = 2; self.currentPinchGesture = [[SDLPinchGesture alloc] initWithFirstTouch:self.previousTouch secondTouch:touch]; self.previousPinchDistance = self.currentPinchGesture.distance; if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidStartInView:atCenterPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; - [self.touchEventDelegate touchManager:self pinchDidStartInView:hitView atCenterPoint:self.currentPinchGesture.center]; + UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; + [self.touchEventDelegate touchManager:self pinchDidStartInView:hitView atCenterPoint:self.currentPinchGesture.center]; } } break; } @@ -247,7 +247,7 @@ static NSUInteger const MaximumNumberOfTouches = 2; return; // no-op } #pragma clang diagnostic pop - + CGFloat xDelta = fabs(touch.location.x - self.firstTouch.location.x); CGFloat yDelta = fabs(touch.location.y - self.firstTouch.location.y); if (xDelta <= self.panDistanceThreshold && yDelta <= self.panDistanceThreshold) { @@ -275,8 +275,8 @@ static NSUInteger const MaximumNumberOfTouches = 2; _performingTouchType = SDLPerformingTouchTypePanningTouch; if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidStartInView:atPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; - [self.touchEventDelegate touchManager:self panningDidStartInView:hitView atPoint:touch.location]; + UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; + [self.touchEventDelegate touchManager:self panningDidStartInView:hitView atPoint:touch.location]; } } break; case SDLPerformingTouchTypePanningTouch: { @@ -302,9 +302,9 @@ static NSUInteger const MaximumNumberOfTouches = 2; [self sdl_setMultiTouchFingerTouchForTouch:touch]; if (self.currentPinchGesture.isValid) { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidEndInView:atCenterPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; - [self.touchEventDelegate touchManager:self pinchDidEndInView:hitView atCenterPoint:self.currentPinchGesture.center]; - self.currentPinchGesture = nil; + UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:self.currentPinchGesture.center] : nil; + [self.touchEventDelegate touchManager:self pinchDidEndInView:hitView atCenterPoint:self.currentPinchGesture.center]; + self.currentPinchGesture = nil; } else { self.currentPinchGesture = nil; } @@ -312,8 +312,8 @@ static NSUInteger const MaximumNumberOfTouches = 2; } break; case SDLPerformingTouchTypePanningTouch: { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidEndInView:atPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; - [self.touchEventDelegate touchManager:self panningDidEndInView:hitView atPoint:touch.location]; + UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:touch.location] : nil; + [self.touchEventDelegate touchManager:self panningDidEndInView:hitView atPoint:touch.location]; } } break; case SDLPerformingTouchTypeSingleTouch: { @@ -333,8 +333,8 @@ static NSUInteger const MaximumNumberOfTouches = 2; CGPoint centerPoint = CGPointCenterOfPoints(touch.location, self.singleTapTouch.location); if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveDoubleTapForView:atPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:centerPoint] : nil; - [self.touchEventDelegate touchManager:self didReceiveDoubleTapForView:hitView atPoint:centerPoint]; + UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:centerPoint] : nil; + [self.touchEventDelegate touchManager:self didReceiveDoubleTapForView:hitView atPoint:centerPoint]; } } @@ -420,13 +420,37 @@ static NSUInteger const MaximumNumberOfTouches = 2; strongSelf.singleTapTouch = nil; [strongSelf sdl_cancelSingleTapTimer]; if ([strongSelf.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveSingleTapForView:atPoint:)]) { - UIView *hitView = (self.hitTester != nil) ? [self.hitTester viewForPoint:point] : nil; - [strongSelf.touchEventDelegate touchManager:strongSelf didReceiveSingleTapForView:hitView atPoint:point]; + [self sdl_getSingleTapHitView:point hitViewHandler:^(UIView * _Nullable selectedView) { + [strongSelf.touchEventDelegate touchManager:strongSelf didReceiveSingleTapForView:selectedView atPoint:point]; + }]; } }); } /** + * HAX to preserve the thread on which the delegate is notified for single taps; returning on the main thread would be a breaking change. All other touch gestures currently notify the delegate on the main thread. The single tap timer runs on a background thread so when a single tap is detected the hit test needs to be done on the main thread and then the result is returned on a background thread. + * + * Checks if a single tap is inside a view. As the single tap timer is run on a background thread, the check is done on a main thread and then the result is returned on a background thread. + * + * @param point Screen coordinates of the tap gesture + * @param hitViewHandler A handler that returns the view the point is inside of; nil if the point does not lie inside of a view + */ +- (void)sdl_getSingleTapHitView:(CGPoint)point hitViewHandler:(nullable void (^)(UIView * __nullable hitView))hitViewHandler { + if (!self.hitTester) { + if (!hitViewHandler) { return; } + return hitViewHandler(nil); + } + + dispatch_async(dispatch_get_main_queue(), ^{ + UIView *hitView = [self.hitTester viewForPoint:point]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + if (!hitViewHandler) { return; } + return hitViewHandler(hitView); + }); + }); +} + +/** * Cancels a tap gesture timer */ - (void)sdl_cancelSingleTapTimer { diff --git a/SmartDeviceLink/SDLTurn.m b/SmartDeviceLink/SDLTurn.m index 335142782..c788c77c5 100644 --- a/SmartDeviceLink/SDLTurn.m +++ b/SmartDeviceLink/SDLTurn.m @@ -5,7 +5,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -24,19 +24,19 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setNavigationText:(nullable NSString *)navigationText { - [store sdl_setObject:navigationText forName:SDLNameNavigationText]; + [store sdl_setObject:navigationText forName:SDLRPCParameterNameNavigationText]; } - (nullable NSString *)navigationText { - return [store sdl_objectForName:SDLNameNavigationText]; + return [store sdl_objectForName:SDLRPCParameterNameNavigationText ofClass:NSString.class error:nil]; } - (void)setTurnIcon:(nullable SDLImage *)turnIcon { - [store sdl_setObject:turnIcon forName:SDLNameTurnIcon]; + [store sdl_setObject:turnIcon forName:SDLRPCParameterNameTurnIcon]; } - (nullable SDLImage *)turnIcon { - return [store sdl_objectForName:SDLNameTurnIcon ofClass:SDLImage.class]; + return [store sdl_objectForName:SDLRPCParameterNameTurnIcon ofClass:SDLImage.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLUnregisterAppInterface.m b/SmartDeviceLink/SDLUnregisterAppInterface.m index 95520fca0..22bfdc590 100644 --- a/SmartDeviceLink/SDLUnregisterAppInterface.m +++ b/SmartDeviceLink/SDLUnregisterAppInterface.m @@ -5,14 +5,15 @@ #import "SDLUnregisterAppInterface.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnregisterAppInterface - (instancetype)init { - if (self = [super initWithName:SDLNameUnregisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameUnregisterAppInterface]) { } return self; } diff --git a/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m b/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m index 77e93858b..c9978d630 100644 --- a/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m +++ b/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m @@ -5,14 +5,15 @@ #import "SDLUnregisterAppInterfaceResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnregisterAppInterfaceResponse - (instancetype)init { - if (self = [super initWithName:SDLNameUnregisterAppInterface]) { + if (self = [super initWithName:SDLRPCFunctionNameUnregisterAppInterface]) { } return self; } diff --git a/SmartDeviceLink/SDLUnsubscribeButton.m b/SmartDeviceLink/SDLUnsubscribeButton.m index 1b1c18616..7d6d0157a 100644 --- a/SmartDeviceLink/SDLUnsubscribeButton.m +++ b/SmartDeviceLink/SDLUnsubscribeButton.m @@ -6,14 +6,15 @@ #import "NSMutableDictionary+Store.h" #import "SDLButtonName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeButton - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeButton]) { } return self; } @@ -30,11 +31,12 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setButtonName:(SDLButtonName)buttonName { - [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; + [parameters sdl_setObject:buttonName forName:SDLRPCParameterNameButtonName]; } - (SDLButtonName)buttonName { - return [parameters sdl_objectForName:SDLNameButtonName]; + NSError *error = nil; + return [parameters sdl_enumForName:SDLRPCParameterNameButtonName error:&error]; } @end diff --git a/SmartDeviceLink/SDLUnsubscribeButtonResponse.m b/SmartDeviceLink/SDLUnsubscribeButtonResponse.m index e92565e58..27f5f0266 100644 --- a/SmartDeviceLink/SDLUnsubscribeButtonResponse.m +++ b/SmartDeviceLink/SDLUnsubscribeButtonResponse.m @@ -5,14 +5,15 @@ #import "SDLUnsubscribeButtonResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeButtonResponse - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeButton]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeButton]) { } return self; } diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleData.h b/SmartDeviceLink/SDLUnsubscribeVehicleData.h index ace3cf584..322b12347 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleData.h +++ b/SmartDeviceLink/SDLUnsubscribeVehicleData.h @@ -85,7 +85,43 @@ NS_ASSUME_NONNULL_BEGIN * @param wiperStatus Unsubscribe to wiperStatus * @return A SDLUnsubscribeVehicleData object */ -- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus __deprecated_msg("Use initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: instead"); + +/** + * Convenience init for unsubscribing to all possible vehicle data items. + * + * @param accelerationPedalPosition Unsubscribe to accelerationPedalPosition + * @param airbagStatus Unsubscribe to airbagStatus + * @param beltStatus Unsubscribe to beltStatus + * @param bodyInformation Unsubscribe to bodyInformation + * @param cloudAppVehicleID Unsubscribe to cloudAppVehicleID + * @param clusterModeStatus Unsubscribe to clusterModeStatus + * @param deviceStatus Unsubscribe to deviceStatus + * @param driverBraking Unsubscribe to driverBraking + * @param eCallInfo Unsubscribe to eCallInfo + * @param electronicParkBrakeStatus Unsubscribe to electronicParkBrakeStatus + * @param emergencyEvent Unsubscribe to emergencyEvent + * @param engineOilLife Unsubscribe to engineOilLife + * @param engineTorque Unsubscribe to engineTorque + * @param externalTemperature Unsubscribe to externalTemperature + * @param fuelLevel Unsubscribe to fuelLevel + * @param fuelLevelState Unsubscribe to fuelLevelState + * @param fuelRange Unsubscribe to fuelRange + * @param gps Unsubscribe to gps + * @param headLampStatus Unsubscribe to headLampStatus + * @param instantFuelConsumption Unsubscribe to instantFuelConsumption + * @param myKey Unsubscribe to myKey + * @param odometer Unsubscribe to odometer + * @param prndl Unsubscribe to prndl + * @param rpm Unsubscribe to rpm + * @param speed Unsubscribe to speed + * @param steeringWheelAngle Unsubscribe to steeringWheelAngle + * @param tirePressure Unsubscribe to tirePressure + * @param turnSignal Unsubscribe to turnSignal + * @param wiperStatus Unsubscribe to wiperStatus + * @return A SDLUnsubscribeVehicleData object + */ +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus; /** * If true, unsubscribes from GPS @@ -227,6 +263,12 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) NSNumber<SDLBool> *turnSignal; +/** + A boolean value. If true, unsubscribes to the Cloud App Vehicle ID + */ +@property (strong, nonatomic, nullable) NSNumber<SDLBool> *cloudAppVehicleID; + + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleData.m b/SmartDeviceLink/SDLUnsubscribeVehicleData.m index 3ecf16bfc..996aa9883 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleData.m +++ b/SmartDeviceLink/SDLUnsubscribeVehicleData.m @@ -5,14 +5,15 @@ #import "SDLUnsubscribeVehicleData.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeVehicleData - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeVehicleData]) { } return self; } @@ -22,6 +23,10 @@ NS_ASSUME_NONNULL_BEGIN } - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { + return [self initWithAccelerationPedalPosition:accelerationPedalPosition airbagStatus:airbagStatus beltStatus:beltStatus bodyInformation:bodyInformation cloudAppVehicleID:NO clusterModeStatus:clusterModeStatus deviceStatus:deviceStatus driverBraking:driverBraking eCallInfo:eCallInfo electronicParkBrakeStatus:electronicParkBrakeStatus emergencyEvent:emergencyEvent engineOilLife:engineOilLife engineTorque:engineTorque externalTemperature:externalTemperature fuelLevel:fuelLevel fuelLevelState:fuelLevelState fuelRange:fuelRange gps:gps headLampStatus:headLampStatus instantFuelConsumption:instantFuelConsumption myKey:myKey odometer:odometer prndl:prndl rpm:rpm speed:speed steeringWheelAngle:steeringWheelAngle tirePressure:tirePressure turnSignal:turnSignal wiperStatus:wiperStatus]; +} + +- (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPosition airbagStatus:(BOOL)airbagStatus beltStatus:(BOOL)beltStatus bodyInformation:(BOOL)bodyInformation cloudAppVehicleID:(BOOL)cloudAppVehicleID clusterModeStatus:(BOOL)clusterModeStatus deviceStatus:(BOOL)deviceStatus driverBraking:(BOOL)driverBraking eCallInfo:(BOOL)eCallInfo electronicParkBrakeStatus:(BOOL)electronicParkBrakeStatus emergencyEvent:(BOOL)emergencyEvent engineOilLife:(BOOL)engineOilLife engineTorque:(BOOL)engineTorque externalTemperature:(BOOL)externalTemperature fuelLevel:(BOOL)fuelLevel fuelLevelState:(BOOL)fuelLevelState fuelRange:(BOOL)fuelRange gps:(BOOL)gps headLampStatus:(BOOL)headLampStatus instantFuelConsumption:(BOOL)instantFuelConsumption myKey:(BOOL)myKey odometer:(BOOL)odometer prndl:(BOOL)prndl rpm:(BOOL)rpm speed:(BOOL)speed steeringWheelAngle:(BOOL)steeringWheelAngle tirePressure:(BOOL)tirePressure turnSignal:(BOOL)turnSignal wiperStatus:(BOOL)wiperStatus { self = [self init]; if (!self) { return nil; @@ -31,6 +36,7 @@ NS_ASSUME_NONNULL_BEGIN self.airbagStatus = @(airbagStatus); self.beltStatus = @(beltStatus); self.bodyInformation = @(bodyInformation); + self.cloudAppVehicleID = @(cloudAppVehicleID); self.clusterModeStatus = @(clusterModeStatus); self.deviceStatus = @(deviceStatus); self.driverBraking = @(driverBraking); @@ -60,227 +66,235 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setGps:(nullable NSNumber<SDLBool> *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable NSNumber<SDLBool> *)gps { - return [parameters sdl_objectForName:SDLNameGPS]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:NSNumber.class error:nil]; } - (void)setSpeed:(nullable NSNumber<SDLBool> *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable NSNumber<SDLBool> *)speed { - return [parameters sdl_objectForName:SDLNameSpeed]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:NSNumber.class error:nil]; } - (void)setRpm:(nullable NSNumber<SDLBool> *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable NSNumber<SDLBool> *)rpm { - return [parameters sdl_objectForName:SDLNameRPM]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel:(nullable NSNumber<SDLBool> *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable NSNumber<SDLBool> *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:NSNumber.class error:nil]; } - (void)setFuelLevel_State:(nullable NSNumber<SDLBool> *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable NSNumber<SDLBool> *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:NSNumber.class error:nil]; } - (void)setFuelRange:(nullable NSNumber<SDLBool> *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable NSNumber<SDLBool> *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:NSNumber.class error:nil]; } - (void)setInstantFuelConsumption:(nullable NSNumber<SDLBool> *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable NSNumber<SDLBool> *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:NSNumber.class error:nil]; } - (void)setExternalTemperature:(nullable NSNumber<SDLBool> *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable NSNumber<SDLBool> *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:NSNumber.class error:nil]; } - (void)setPrndl:(nullable NSNumber<SDLBool> *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable NSNumber<SDLBool> *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL]; + return [parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:NSNumber.class error:nil]; } - (void)setTirePressure:(nullable NSNumber<SDLBool> *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable NSNumber<SDLBool> *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:NSNumber.class error:nil]; } - (void)setOdometer:(nullable NSNumber<SDLBool> *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable NSNumber<SDLBool> *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:NSNumber.class error:nil]; } - (void)setBeltStatus:(nullable NSNumber<SDLBool> *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable NSNumber<SDLBool> *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:NSNumber.class error:nil]; } - (void)setBodyInformation:(nullable NSNumber<SDLBool> *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable NSNumber<SDLBool> *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:NSNumber.class error:nil]; } - (void)setDeviceStatus:(nullable NSNumber<SDLBool> *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable NSNumber<SDLBool> *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:NSNumber.class error:nil]; } - (void)setDriverBraking:(nullable NSNumber<SDLBool> *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable NSNumber<SDLBool> *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking]; + return [parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:NSNumber.class error:nil]; } - (void)setWiperStatus:(nullable NSNumber<SDLBool> *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable NSNumber<SDLBool> *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:NSNumber.class error:nil]; } - (void)setHeadLampStatus:(nullable NSNumber<SDLBool> *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable NSNumber<SDLBool> *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:NSNumber.class error:nil]; } - (void)setEngineOilLife:(nullable NSNumber<SDLBool> *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable NSNumber<SDLBool> *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:NSNumber.class error:nil]; } - (void)setEngineTorque:(nullable NSNumber<SDLBool> *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable NSNumber<SDLBool> *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:NSNumber.class error:nil]; } - (void)setAccPedalPosition:(nullable NSNumber<SDLBool> *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable NSNumber<SDLBool> *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:NSNumber.class error:nil]; } - (void)setSteeringWheelAngle:(nullable NSNumber<SDLBool> *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable NSNumber<SDLBool> *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:NSNumber.class error:nil]; } - (void)setECallInfo:(nullable NSNumber<SDLBool> *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable NSNumber<SDLBool> *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:NSNumber.class error:nil]; } - (void)setAirbagStatus:(nullable NSNumber<SDLBool> *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable NSNumber<SDLBool> *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:NSNumber.class error:nil]; } - (void)setEmergencyEvent:(nullable NSNumber<SDLBool> *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable NSNumber<SDLBool> *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:NSNumber.class error:nil]; } - (void)setClusterModeStatus:(nullable NSNumber<SDLBool> *)clusterModeStatus { - [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; + [parameters sdl_setObject:clusterModeStatus forName:SDLRPCParameterNameClusterModeStatus]; } - (nullable NSNumber<SDLBool> *)clusterModeStatus { - return [parameters sdl_objectForName:SDLNameClusterModeStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModeStatus ofClass:NSNumber.class error:nil]; } - (void)setMyKey:(nullable NSNumber<SDLBool> *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable NSNumber<SDLBool> *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:NSNumber.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable NSNumber<SDLBool> *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable NSNumber<SDLBool> *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus]; + return [parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:NSNumber.class error:nil]; } - (void)setTurnSignal:(nullable NSNumber<SDLBool> *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable NSNumber<SDLBool> *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal]; + return [parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable NSNumber<SDLBool> *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable NSNumber<SDLBool> *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h index 0500a1921..32f51cf76 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h +++ b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h @@ -211,6 +211,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (strong, nonatomic, nullable) SDLVehicleDataResult *turnSignal; +/** + The result of requesting to unsubscribe to the cloud app vehicle id + + Optional + */ +@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m index 6ad213dee..c72ebbf5e 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m +++ b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m @@ -5,7 +5,8 @@ #import "SDLUnsubscribeVehicleDataResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLVehicleDataResult.h" NS_ASSUME_NONNULL_BEGIN @@ -13,233 +14,241 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeVehicleData]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeVehicleData]) { } return self; } - (void)setGps:(nullable SDLVehicleDataResult *)gps { - [parameters sdl_setObject:gps forName:SDLNameGPS]; + [parameters sdl_setObject:gps forName:SDLRPCParameterNameGPS]; } - (nullable SDLVehicleDataResult *)gps { - return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameGPS ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSpeed:(nullable SDLVehicleDataResult *)speed { - [parameters sdl_setObject:speed forName:SDLNameSpeed]; + [parameters sdl_setObject:speed forName:SDLRPCParameterNameSpeed]; } - (nullable SDLVehicleDataResult *)speed { - return [parameters sdl_objectForName:SDLNameSpeed ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSpeed ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setRpm:(nullable SDLVehicleDataResult *)rpm { - [parameters sdl_setObject:rpm forName:SDLNameRPM]; + [parameters sdl_setObject:rpm forName:SDLRPCParameterNameRPM]; } - (nullable SDLVehicleDataResult *)rpm { - return [parameters sdl_objectForName:SDLNameRPM ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameRPM ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { - [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; + [parameters sdl_setObject:fuelLevel forName:SDLRPCParameterNameFuelLevel]; } - (nullable SDLVehicleDataResult *)fuelLevel { - return [parameters sdl_objectForName:SDLNameFuelLevel ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevel ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { - [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; + [parameters sdl_setObject:fuelLevel_State forName:SDLRPCParameterNameFuelLevelState]; } - (nullable SDLVehicleDataResult *)fuelLevel_State { - return [parameters sdl_objectForName:SDLNameFuelLevelState ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelLevelState ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setFuelRange:(nullable SDLVehicleDataResult *)fuelRange { - [parameters sdl_setObject:fuelRange forName:SDLNameFuelRange]; + [parameters sdl_setObject:fuelRange forName:SDLRPCParameterNameFuelRange]; } - (nullable SDLVehicleDataResult *)fuelRange { - return [parameters sdl_objectForName:SDLNameFuelRange ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameFuelRange ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { - [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; + [parameters sdl_setObject:instantFuelConsumption forName:SDLRPCParameterNameInstantFuelConsumption]; } - (nullable SDLVehicleDataResult *)instantFuelConsumption { - return [parameters sdl_objectForName:SDLNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { - [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; + [parameters sdl_setObject:externalTemperature forName:SDLRPCParameterNameExternalTemperature]; } - (nullable SDLVehicleDataResult *)externalTemperature { - return [parameters sdl_objectForName:SDLNameExternalTemperature ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameExternalTemperature ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { - [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; + [parameters sdl_setObject:prndl forName:SDLRPCParameterNamePRNDL]; } - (nullable SDLVehicleDataResult *)prndl { - return [parameters sdl_objectForName:SDLNamePRNDL ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNamePRNDL ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { - [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; + [parameters sdl_setObject:tirePressure forName:SDLRPCParameterNameTirePressure]; } - (nullable SDLVehicleDataResult *)tirePressure { - return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTirePressure ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { - [parameters sdl_setObject:odometer forName:SDLNameOdometer]; + [parameters sdl_setObject:odometer forName:SDLRPCParameterNameOdometer]; } - (nullable SDLVehicleDataResult *)odometer { - return [parameters sdl_objectForName:SDLNameOdometer ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameOdometer ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { - [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; + [parameters sdl_setObject:beltStatus forName:SDLRPCParameterNameBeltStatus]; } - (nullable SDLVehicleDataResult *)beltStatus { - return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBeltStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { - [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; + [parameters sdl_setObject:bodyInformation forName:SDLRPCParameterNameBodyInformation]; } - (nullable SDLVehicleDataResult *)bodyInformation { - return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameBodyInformation ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { - [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; + [parameters sdl_setObject:deviceStatus forName:SDLRPCParameterNameDeviceStatus]; } - (nullable SDLVehicleDataResult *)deviceStatus { - return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDeviceStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { - [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; + [parameters sdl_setObject:driverBraking forName:SDLRPCParameterNameDriverBraking]; } - (nullable SDLVehicleDataResult *)driverBraking { - return [parameters sdl_objectForName:SDLNameDriverBraking ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameDriverBraking ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { - [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; + [parameters sdl_setObject:wiperStatus forName:SDLRPCParameterNameWiperStatus]; } - (nullable SDLVehicleDataResult *)wiperStatus { - return [parameters sdl_objectForName:SDLNameWiperStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameWiperStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { - [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; + [parameters sdl_setObject:headLampStatus forName:SDLRPCParameterNameHeadLampStatus]; } - (nullable SDLVehicleDataResult *)headLampStatus { - return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameHeadLampStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEngineOilLife:(nullable SDLVehicleDataResult *)engineOilLife { - [parameters sdl_setObject:engineOilLife forName:SDLNameEngineOilLife]; + [parameters sdl_setObject:engineOilLife forName:SDLRPCParameterNameEngineOilLife]; } - (nullable SDLVehicleDataResult *)engineOilLife { - return [parameters sdl_objectForName:SDLNameEngineOilLife]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineOilLife ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { - [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; + [parameters sdl_setObject:engineTorque forName:SDLRPCParameterNameEngineTorque]; } - (nullable SDLVehicleDataResult *)engineTorque { - return [parameters sdl_objectForName:SDLNameEngineTorque ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEngineTorque ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { - [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; + [parameters sdl_setObject:accPedalPosition forName:SDLRPCParameterNameAccelerationPedalPosition]; } - (nullable SDLVehicleDataResult *)accPedalPosition { - return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { - [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; + [parameters sdl_setObject:steeringWheelAngle forName:SDLRPCParameterNameSteeringWheelAngle]; } - (nullable SDLVehicleDataResult *)steeringWheelAngle { - return [parameters sdl_objectForName:SDLNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { - [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; + [parameters sdl_setObject:eCallInfo forName:SDLRPCParameterNameECallInfo]; } - (nullable SDLVehicleDataResult *)eCallInfo { - return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameECallInfo ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { - [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; + [parameters sdl_setObject:airbagStatus forName:SDLRPCParameterNameAirbagStatus]; } - (nullable SDLVehicleDataResult *)airbagStatus { - return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameAirbagStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { - [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; + [parameters sdl_setObject:emergencyEvent forName:SDLRPCParameterNameEmergencyEvent]; } - (nullable SDLVehicleDataResult *)emergencyEvent { - return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameEmergencyEvent ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { - [parameters sdl_setObject:clusterModes forName:SDLNameClusterModes]; + [parameters sdl_setObject:clusterModes forName:SDLRPCParameterNameClusterModes]; } - (nullable SDLVehicleDataResult *)clusterModes { - return [parameters sdl_objectForName:SDLNameClusterModes ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameClusterModes ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { - [parameters sdl_setObject:myKey forName:SDLNameMyKey]; + [parameters sdl_setObject:myKey forName:SDLRPCParameterNameMyKey]; } - (nullable SDLVehicleDataResult *)myKey { - return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameMyKey ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setElectronicParkBrakeStatus:(nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLNameElectronicParkBrakeStatus]; + [parameters sdl_setObject:electronicParkBrakeStatus forName:SDLRPCParameterNameElectronicParkBrakeStatus]; } - (nullable SDLVehicleDataResult *)electronicParkBrakeStatus { - return [parameters sdl_objectForName:SDLNameElectronicParkBrakeStatus ofClass:[SDLVehicleDataResult class]]; + return [parameters sdl_objectForName:SDLRPCParameterNameElectronicParkBrakeStatus ofClass:SDLVehicleDataResult.class error:nil]; } - (void)setTurnSignal:(nullable SDLVehicleDataResult *)turnSignal { - [parameters sdl_setObject:turnSignal forName:SDLNameTurnSignal]; + [parameters sdl_setObject:turnSignal forName:SDLRPCParameterNameTurnSignal]; } - (nullable SDLVehicleDataResult *)turnSignal { - return [parameters sdl_objectForName:SDLNameTurnSignal ofClass:SDLVehicleDataResult.class]; + return [parameters sdl_objectForName:SDLRPCParameterNameTurnSignal ofClass:SDLVehicleDataResult.class error:nil]; +} + +- (void)setCloudAppVehicleID:(nullable SDLVehicleDataResult *)cloudAppVehicleID { + [parameters sdl_setObject:cloudAppVehicleID forName:SDLRPCParameterNameCloudAppVehicleID]; +} + +- (nullable SDLVehicleDataResult *)cloudAppVehicleID { + return [parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLUnsubscribeWayPoints.m b/SmartDeviceLink/SDLUnsubscribeWayPoints.m index 4504eba66..a086688e5 100644 --- a/SmartDeviceLink/SDLUnsubscribeWayPoints.m +++ b/SmartDeviceLink/SDLUnsubscribeWayPoints.m @@ -4,14 +4,15 @@ #import "SDLUnsubscribeWayPoints.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeWayPoints - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeWayPoints]) { } return self; } diff --git a/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m b/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m index 2db5d017f..4d48fb340 100644 --- a/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m +++ b/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m @@ -4,14 +4,15 @@ #import "SDLUnsubscribeWayPointsResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeWayPointsResponse - (instancetype)init { - if (self = [super initWithName:SDLNameUnsubscribeWayPoints]) { + if (self = [super initWithName:SDLRPCFunctionNameUnsubscribeWayPoints]) { } return self; } diff --git a/SmartDeviceLink/SDLUpdateTurnList.m b/SmartDeviceLink/SDLUpdateTurnList.m index b6361f666..3b6e77603 100644 --- a/SmartDeviceLink/SDLUpdateTurnList.m +++ b/SmartDeviceLink/SDLUpdateTurnList.m @@ -5,7 +5,8 @@ #import "SDLUpdateTurnList.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSoftButton.h" #import "SDLTurn.h" @@ -14,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLUpdateTurnList - (instancetype)init { - if (self = [super initWithName:SDLNameUpdateTurnList]) { + if (self = [super initWithName:SDLRPCFunctionNameUpdateTurnList]) { } return self; } @@ -32,19 +33,19 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setTurnList:(nullable NSArray<SDLTurn *> *)turnList { - [parameters sdl_setObject:turnList forName:SDLNameTurnList]; + [parameters sdl_setObject:turnList forName:SDLRPCParameterNameTurnList]; } - (nullable NSArray<SDLTurn *> *)turnList { - return [parameters sdl_objectsForName:SDLNameTurnList ofClass:SDLTurn.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameTurnList ofClass:SDLTurn.class error:nil]; } - (void)setSoftButtons:(nullable NSArray<SDLSoftButton *> *)softButtons { - [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; + [parameters sdl_setObject:softButtons forName:SDLRPCParameterNameSoftButtons]; } - (nullable NSArray<SDLSoftButton *> *)softButtons { - return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; + return [parameters sdl_objectsForName:SDLRPCParameterNameSoftButtons ofClass:SDLSoftButton.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLUpdateTurnListResponse.m b/SmartDeviceLink/SDLUpdateTurnListResponse.m index d77ded773..2759e6e26 100644 --- a/SmartDeviceLink/SDLUpdateTurnListResponse.m +++ b/SmartDeviceLink/SDLUpdateTurnListResponse.m @@ -5,14 +5,15 @@ #import "SDLUpdateTurnListResponse.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLUpdateTurnListResponse - (instancetype)init { - if (self = [super initWithName:SDLNameUpdateTurnList]) { + if (self = [super initWithName:SDLRPCFunctionNameUpdateTurnList]) { } return self; } diff --git a/SmartDeviceLink/SDLV2ProtocolMessage.m b/SmartDeviceLink/SDLV2ProtocolMessage.m index 65694651e..4e50b6df1 100644 --- a/SmartDeviceLink/SDLV2ProtocolMessage.m +++ b/SmartDeviceLink/SDLV2ProtocolMessage.m @@ -6,6 +6,7 @@ #import "SDLLogMacros.h" #import "SDLProtocolHeader.h" #import "SDLRPCPayload.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -36,8 +37,8 @@ NS_ASSUME_NONNULL_BEGIN // Create the inner dictionary with the RPC properties NSMutableDictionary <NSString *, id> *innerDictionary = [[NSMutableDictionary alloc] init]; NSString *functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; - innerDictionary[SDLNameOperationName] = functionName; - innerDictionary[SDLNameCorrelationId] = @(rpcPayload.correlationID); + innerDictionary[SDLRPCParameterNameOperationName] = functionName; + innerDictionary[SDLRPCParameterNameCorrelationId] = @(rpcPayload.correlationID); // Get the json data from the struct if (rpcPayload.jsonData) { @@ -46,18 +47,18 @@ NS_ASSUME_NONNULL_BEGIN if (error != nil) { SDLLogE(@"Error decoding JSON data: %@", error); } else if (jsonDictionary) { - [innerDictionary setObject:jsonDictionary forKey:SDLNameParameters]; + [innerDictionary setObject:jsonDictionary forKey:SDLRPCParameterNameParameters]; } } // Store it in the containing dictionary UInt8 rpcType = rpcPayload.rpcType; - NSArray<NSString *> *rpcTypeNames = @[SDLNameRequest, SDLNameResponse, SDLNameNotification]; + NSArray<NSString *> *rpcTypeNames = @[SDLRPCParameterNameRequest, SDLRPCParameterNameResponse, SDLRPCParameterNameNotification]; [rpcMessageAsDictionary setObject:innerDictionary forKey:rpcTypeNames[rpcType]]; // The bulk data also goes in the dictionary if (rpcPayload.binaryData) { - [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:SDLNameBulkData]; + [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:SDLRPCParameterNameBulkData]; } return rpcMessageAsDictionary; diff --git a/SmartDeviceLink/SDLVehicleDataResult.m b/SmartDeviceLink/SDLVehicleDataResult.m index 3f4585076..e4621a926 100644 --- a/SmartDeviceLink/SDLVehicleDataResult.m +++ b/SmartDeviceLink/SDLVehicleDataResult.m @@ -4,26 +4,28 @@ #import "SDLVehicleDataResult.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLVehicleDataResult - (void)setDataType:(SDLVehicleDataType)dataType { - [store sdl_setObject:dataType forName:SDLNameDataType]; + [store sdl_setObject:dataType forName:SDLRPCParameterNameDataType]; } - (SDLVehicleDataType)dataType { - return [store sdl_objectForName:SDLNameDataType]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameDataType error:&error]; } - (void)setResultCode:(SDLVehicleDataResultCode)resultCode { - [store sdl_setObject:resultCode forName:SDLNameResultCode]; + [store sdl_setObject:resultCode forName:SDLRPCParameterNameResultCode]; } - (SDLVehicleDataResultCode)resultCode { - return [store sdl_objectForName:SDLNameResultCode]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameResultCode error:&error]; } @end diff --git a/SmartDeviceLink/SDLVehicleDataType.h b/SmartDeviceLink/SDLVehicleDataType.h index 4afe818f8..1da4ad500 100644 --- a/SmartDeviceLink/SDLVehicleDataType.h +++ b/SmartDeviceLink/SDLVehicleDataType.h @@ -158,3 +158,8 @@ extern SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus; Vehicle turn signal data */ extern SDLVehicleDataType const SDLVehicleDataTypeTurnSignal; + +/** + The cloud application vehicle id. Used by cloud apps to identify a head unit + */ +extern SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID; diff --git a/SmartDeviceLink/SDLVehicleDataType.m b/SmartDeviceLink/SDLVehicleDataType.m index 4b37a2456..a64497b2a 100644 --- a/SmartDeviceLink/SDLVehicleDataType.m +++ b/SmartDeviceLink/SDLVehicleDataType.m @@ -34,4 +34,5 @@ SDLVehicleDataType const SDLVehicleDataTypeAccelerationPedal = @"VEHICLEDATA_ACC SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel = @"VEHICLEDATA_STEERINGWHEEL"; SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus = @"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS"; SDLVehicleDataType const SDLVehicleDataTypeTurnSignal = @"VEHICLEDATA_TURNSIGNAL"; +SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID = @"VEHICLEDATA_CLOUDAPPVEHICLEID"; diff --git a/SmartDeviceLink/SDLVehicleType.m b/SmartDeviceLink/SDLVehicleType.m index 73e98aa20..50d3023a5 100644 --- a/SmartDeviceLink/SDLVehicleType.m +++ b/SmartDeviceLink/SDLVehicleType.m @@ -5,42 +5,42 @@ #import "SDLVehicleType.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLVehicleType - (void)setMake:(nullable NSString *)make { - [store sdl_setObject:make forName:SDLNameMake]; + [store sdl_setObject:make forName:SDLRPCParameterNameMake]; } - (nullable NSString *)make { - return [store sdl_objectForName:SDLNameMake]; + return [store sdl_objectForName:SDLRPCParameterNameMake ofClass:NSString.class error:nil]; } - (void)setModel:(nullable NSString *)model { - [store sdl_setObject:model forName:SDLNameModel]; + [store sdl_setObject:model forName:SDLRPCParameterNameModel]; } - (nullable NSString *)model { - return [store sdl_objectForName:SDLNameModel]; + return [store sdl_objectForName:SDLRPCParameterNameModel ofClass:NSString.class error:nil]; } - (void)setModelYear:(nullable NSString *)modelYear { - [store sdl_setObject:modelYear forName:SDLNameModelYear]; + [store sdl_setObject:modelYear forName:SDLRPCParameterNameModelYear]; } - (nullable NSString *)modelYear { - return [store sdl_objectForName:SDLNameModelYear]; + return [store sdl_objectForName:SDLRPCParameterNameModelYear ofClass:NSString.class error:nil]; } - (void)setTrim:(nullable NSString *)trim { - [store sdl_setObject:trim forName:SDLNameTrim]; + [store sdl_setObject:trim forName:SDLRPCParameterNameTrim]; } - (nullable NSString *)trim { - return [store sdl_objectForName:SDLNameTrim]; + return [store sdl_objectForName:SDLRPCParameterNameTrim ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLVersion.h b/SmartDeviceLink/SDLVersion.h new file mode 100644 index 000000000..02a4feb68 --- /dev/null +++ b/SmartDeviceLink/SDLVersion.h @@ -0,0 +1,39 @@ +// +// SDLVersion.h +// SmartDeviceLink +// +// Created by Joel Fischer on 2/19/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +@class SDLSyncMsgVersion; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLVersion : NSObject <NSCopying> + +@property (nonatomic, assign) NSUInteger major; +@property (nonatomic, assign) NSUInteger minor; +@property (nonatomic, assign) NSUInteger patch; + +@property (nonatomic, copy, readonly) NSString *stringVersion; + +- (instancetype)initWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch; ++ (instancetype)versionWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch; +- (nullable instancetype)initWithString:(NSString *)versionString; ++ (nullable instancetype)versionWithString:(NSString *)versionString; +- (instancetype)initWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion; ++ (instancetype)versionWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion; + +- (NSComparisonResult)compare:(SDLVersion *)otherVersion; +- (BOOL)isLessThanVersion:(SDLVersion *)otherVersion; +- (BOOL)isEqualToVersion:(SDLVersion *)otherVersion; +- (BOOL)isGreaterThanVersion:(SDLVersion *)otherVersion; +- (BOOL)isGreaterThanOrEqualToVersion:(SDLVersion *)otherVersion; +- (BOOL)isLessThanOrEqualToVersion:(SDLVersion *)otherVersion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVersion.m b/SmartDeviceLink/SDLVersion.m new file mode 100644 index 000000000..0dd4173cb --- /dev/null +++ b/SmartDeviceLink/SDLVersion.m @@ -0,0 +1,143 @@ +// +// SDLVersion.m +// SmartDeviceLink +// +// Created by Joel Fischer on 2/19/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLVersion.h" + +#import "SDLSyncMsgVersion.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLVersion + +#pragma mark - Initializers + +- (instancetype)initWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch { + self = [super init]; + if (!self) { return nil; } + + _major = major; + _minor = minor; + _patch = patch; + + return self; +} + ++ (instancetype)versionWithMajor:(NSUInteger)major minor:(NSUInteger)minor patch:(NSUInteger)patch { + return [[self alloc] initWithMajor:major minor:minor patch:patch]; +} + +- (nullable instancetype)initWithString:(NSString *)versionString { + self = [super init]; + if (!self) { return nil; } + + NSArray<NSString *> *splitVersions = [versionString componentsSeparatedByString:@"."]; + if (splitVersions.count != 3) { + NSAssert(splitVersions.count == 3, @"Splitting a version string must result in major, minor, and patch. The format must be 'X.X.X'"); + return nil; + } + + NSInteger majorInt = splitVersions[0].integerValue; + NSInteger minorInt = splitVersions[1].integerValue; + NSInteger patchInt = splitVersions[2].integerValue; + + if (majorInt < 0 || minorInt < 0 || patchInt < 0) { + NSAssert(NO, @"Attempted to parse invalid SDLVersion: %@", splitVersions); + return nil; + } + + _major = (NSUInteger)majorInt; + _minor = (NSUInteger)minorInt; + _patch = (NSUInteger)patchInt; + + return self; +} + ++ (nullable instancetype)versionWithString:(NSString *)versionString { + return [[self alloc] initWithString:versionString]; +} + +- (instancetype)initWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { + self = [super init]; + if (!self) { return nil; } + + _major = syncMsgVersion.majorVersion.unsignedIntegerValue; + _minor = syncMsgVersion.minorVersion.unsignedIntegerValue; + _patch = syncMsgVersion.patchVersion.unsignedIntegerValue; + + return self; +} + ++ (instancetype)versionWithSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { + return [[self alloc] initWithSyncMsgVersion:syncMsgVersion]; +} + +#pragma mark - Setters / Getters + +- (NSString *)stringVersion { + return [NSString stringWithFormat:@"%lu.%lu.%lu", (unsigned long)_major, (unsigned long)_minor, (unsigned long)_patch]; +} + +#pragma mark - Helper functions + +- (NSComparisonResult)compare:(SDLVersion *)otherVersion { + if (self.major > otherVersion.major) { + return NSOrderedDescending; + } else if ((self.major == otherVersion.major) && (self.minor > otherVersion.minor)) { + return NSOrderedDescending; + } else if ((self.major == otherVersion.major) && (self.minor == otherVersion.minor) && (self.patch > otherVersion.patch)) { + return NSOrderedDescending; + } else if ((self.major == otherVersion.major) && (self.minor == otherVersion.minor) && (self.patch == otherVersion.patch)) { + return NSOrderedSame; + } + + return NSOrderedAscending; +} + +- (BOOL)isLessThanVersion:(SDLVersion *)otherVersion { + return ([self compare:otherVersion] == NSOrderedAscending); +} + +- (BOOL)isEqualToVersion:(SDLVersion *)otherVersion { + return ([self compare:otherVersion] == NSOrderedSame); +} + +- (BOOL)isGreaterThanVersion:(SDLVersion *)otherVersion { + return ([self compare:otherVersion] == NSOrderedDescending); +} + +- (BOOL)isGreaterThanOrEqualToVersion:(SDLVersion *)otherVersion { + return ([self isGreaterThanVersion:otherVersion] || [self isEqualToVersion:otherVersion]); +} + +- (BOOL)isLessThanOrEqualToVersion:(SDLVersion *)otherVersion { + return ([self isLessThanVersion:otherVersion] || [self isEqualToVersion:otherVersion]); +} + +#pragma mark - NSObject overrides + +- (BOOL)isEqual:(id)object { + if (object == nil) { return NO; } + if (![object isMemberOfClass:self.class]) { return NO; } + + SDLVersion *otherVersion = (SDLVersion *)object; + + return [self isEqualToVersion:otherVersion]; +} + +- (NSString *)description { + return self.stringVersion; +} + +- (id)copyWithZone:(nullable NSZone *)zone { + SDLVersion *new = [[SDLVersion allocWithZone:zone] initWithMajor:_major minor:_minor patch:_patch]; + return new; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVideoStreamingCapability.m b/SmartDeviceLink/SDLVideoStreamingCapability.m index c5f5ae26c..f9cee09c5 100644 --- a/SmartDeviceLink/SDLVideoStreamingCapability.m +++ b/SmartDeviceLink/SDLVideoStreamingCapability.m @@ -11,7 +11,7 @@ #import "SDLVideoStreamingFormat.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -32,35 +32,35 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setPreferredResolution:(nullable SDLImageResolution *)preferredResolution { - [store sdl_setObject:preferredResolution forName:SDLNamePreferredResolution]; + [store sdl_setObject:preferredResolution forName:SDLRPCParameterNamePreferredResolution]; } - (nullable SDLImageResolution *)preferredResolution { - return [store sdl_objectForName:SDLNamePreferredResolution ofClass:SDLImageResolution.class]; + return [store sdl_objectForName:SDLRPCParameterNamePreferredResolution ofClass:SDLImageResolution.class error:nil]; } - (void)setMaxBitrate:(nullable NSNumber<SDLInt> *)maxBitrate { - [store sdl_setObject:maxBitrate forName:SDLNameMaxBitrate]; + [store sdl_setObject:maxBitrate forName:SDLRPCParameterNameMaxBitrate]; } - (nullable NSNumber<SDLInt> *)maxBitrate { - return [store sdl_objectForName:SDLNameMaxBitrate]; + return [store sdl_objectForName:SDLRPCParameterNameMaxBitrate ofClass:NSNumber.class error:nil]; } - (void)setSupportedFormats:(nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats { - [store sdl_setObject:supportedFormats forName:SDLNameSupportedFormats]; + [store sdl_setObject:supportedFormats forName:SDLRPCParameterNameSupportedFormats]; } - (nullable NSArray<SDLVideoStreamingFormat *> *)supportedFormats { - return [store sdl_objectsForName:SDLNameSupportedFormats ofClass:SDLVideoStreamingFormat.class]; + return [store sdl_objectsForName:SDLRPCParameterNameSupportedFormats ofClass:SDLVideoStreamingFormat.class error:nil]; } - (void)setHapticSpatialDataSupported:(nullable NSNumber<SDLBool> *)hapticSpatialDataSupported { - [store sdl_setObject:hapticSpatialDataSupported forName:SDLNameHapticSpatialDataSupported]; + [store sdl_setObject:hapticSpatialDataSupported forName:SDLRPCParameterNameHapticSpatialDataSupported]; } - (nullable NSNumber<SDLBool> *)hapticSpatialDataSupported { - return [store sdl_objectForName:SDLNameHapticSpatialDataSupported]; + return [store sdl_objectForName:SDLRPCParameterNameHapticSpatialDataSupported ofClass:NSNumber.class error:nil]; } @end diff --git a/SmartDeviceLink/SDLVideoStreamingFormat.m b/SmartDeviceLink/SDLVideoStreamingFormat.m index 35c639537..eb031a9c4 100644 --- a/SmartDeviceLink/SDLVideoStreamingFormat.m +++ b/SmartDeviceLink/SDLVideoStreamingFormat.m @@ -8,7 +8,7 @@ #import "SDLVideoStreamingFormat.h" #import "NSMutableDictionary+Store.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -25,19 +25,21 @@ NS_ASSUME_NONNULL_BEGIN } - (SDLVideoStreamingProtocol)protocol { - return [store sdl_objectForName:SDLNameVideoProtocol]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameVideoProtocol error:&error]; } - (void)setProtocol:(SDLVideoStreamingProtocol)protocol { - [store sdl_setObject:protocol forName:SDLNameVideoProtocol]; + [store sdl_setObject:protocol forName:SDLRPCParameterNameVideoProtocol]; } - (SDLVideoStreamingCodec)codec { - return [store sdl_objectForName:SDLNameVideoCodec]; + NSError *error = nil; + return [store sdl_enumForName:SDLRPCParameterNameVideoCodec error:&error]; } - (void)setCodec:(SDLVideoStreamingCodec)codec { - [store sdl_setObject:codec forName:SDLNameVideoCodec]; + [store sdl_setObject:codec forName:SDLRPCParameterNameVideoCodec]; } @end diff --git a/SmartDeviceLink/SDLVrHelpItem.m b/SmartDeviceLink/SDLVrHelpItem.m index 4136578fe..5584818d9 100644 --- a/SmartDeviceLink/SDLVrHelpItem.m +++ b/SmartDeviceLink/SDLVrHelpItem.m @@ -6,7 +6,7 @@ #import "NSMutableDictionary+Store.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @@ -36,27 +36,29 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setText:(NSString *)text { - [store sdl_setObject:text forName:SDLNameText]; + [store sdl_setObject:text forName:SDLRPCParameterNameText]; } - (NSString *)text { - return [store sdl_objectForName:SDLNameText]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameText ofClass:NSString.class error:&error]; } - (void)setImage:(nullable SDLImage *)image { - [store sdl_setObject:image forName:SDLNameImage]; + [store sdl_setObject:image forName:SDLRPCParameterNameImage]; } - (nullable SDLImage *)image { - return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; + return [store sdl_objectForName:SDLRPCParameterNameImage ofClass:SDLImage.class error:nil]; } - (void)setPosition:(NSNumber<SDLInt> *)position { - [store sdl_setObject:position forName:SDLNamePosition]; + [store sdl_setObject:position forName:SDLRPCParameterNamePosition]; } - (NSNumber<SDLInt> *)position { - return [store sdl_objectForName:SDLNamePosition]; + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNamePosition ofClass:NSNumber.class error:&error]; } @end diff --git a/SmartDeviceLink/SDLWeatherAlert.h b/SmartDeviceLink/SDLWeatherAlert.h new file mode 100644 index 000000000..29a7824e7 --- /dev/null +++ b/SmartDeviceLink/SDLWeatherAlert.h @@ -0,0 +1,73 @@ +// +// SDLWeatherAlert.h +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" +#import "SDLDateTime.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLWeatherAlert : SDLRPCStruct + +/** + * Convenience init for all parameters + * + * @param title The title of the alert + * @param summary A summary for the alert + * @param expires The date the alert expires + * @param regions Regions affected + * @param severity Severity + * @param timeIssued The date the alert was issued + * @return A SDLWeatherAlert alert + */ +- (instancetype)initWithTitle:(nullable NSString *)title summary:(nullable NSString *)summary expires:(nullable SDLDateTime *)expires regions:(nullable NSArray<NSString *> *)regions severity:(nullable NSString *)severity timeIssued:(nullable SDLDateTime *)timeIssued; + +/** + * The title of the alert. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *title; + +/** + * A summary for the alert. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *summary; + +/** + * The date the alert expires. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *expires; + +/** + * Regions affected. + * + * Array of Strings, Optional, minsize="1" maxsize="99" + */ +@property (nullable, strong, nonatomic) NSArray<NSString *> *regions; + +/** + * Severity of the weather alert. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *severity; + +/** + * The date the alert was issued. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *timeIssued; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherAlert.m b/SmartDeviceLink/SDLWeatherAlert.m new file mode 100644 index 000000000..d1dccaa53 --- /dev/null +++ b/SmartDeviceLink/SDLWeatherAlert.m @@ -0,0 +1,84 @@ +// +// SDLWeatherAlert.m +// SmartDeviceLink +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherAlert.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherAlert + +- (instancetype)initWithTitle:(nullable NSString *)title summary:(nullable NSString *)summary expires:(nullable SDLDateTime *)expires regions:(nullable NSArray<NSString *> *)regions severity:(nullable NSString *)severity timeIssued:(nullable SDLDateTime *)timeIssued { + self = [self init]; + if (!self) { + return nil; + } + + self.title = title; + self.summary = summary; + self.expires = expires; + self.regions = regions; + self.severity = severity; + self.timeIssued = timeIssued; + + return self; +} + +- (void)setTitle:(nullable NSString *)title { + [store sdl_setObject:title forName:SDLRPCParameterNameTitle]; +} + +- (nullable NSString *)title { + return [store sdl_objectForName:SDLRPCParameterNameTitle ofClass:NSString.class error:nil]; +} + +- (void)setSummary:(nullable NSString *)summary { + [store sdl_setObject:summary forName:SDLRPCParameterNameSummary]; +} + +- (nullable NSString *)summary { + return [store sdl_objectForName:SDLRPCParameterNameSummary ofClass:NSString.class error:nil]; +} + +- (void)setExpires:(nullable SDLDateTime *)expires { + [store sdl_setObject:expires forName:SDLRPCParameterNameExpires]; +} + +- (nullable SDLDateTime *)expires { + return [store sdl_objectForName:SDLRPCParameterNameExpires ofClass:SDLDateTime.class error:nil]; +} + +- (void)setRegions:(nullable NSArray<NSString *> *)regions { + [store sdl_setObject:regions forName:SDLRPCParameterNameRegions]; +} + +- (nullable NSArray<NSString *> *)regions { + return [store sdl_objectsForName:SDLRPCParameterNameRegions ofClass:NSString.class error:nil]; +} + +- (void)setSeverity:(nullable NSString *)severity { + [store sdl_setObject:severity forName:SDLRPCParameterNameSeverity]; +} + +- (nullable NSString *)severity { + return [store sdl_objectForName:SDLRPCParameterNameSeverity ofClass:NSString.class error:nil]; +} + +- (void)setTimeIssued:(nullable SDLDateTime *)timeIssued { + [store sdl_setObject:timeIssued forName:SDLRPCParameterNameTimeIssued]; +} + +- (nullable SDLDateTime *)timeIssued { + return [store sdl_objectForName:SDLRPCParameterNameTimeIssued ofClass:SDLDateTime.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherData.h b/SmartDeviceLink/SDLWeatherData.h new file mode 100644 index 000000000..56405ea6d --- /dev/null +++ b/SmartDeviceLink/SDLWeatherData.h @@ -0,0 +1,205 @@ +// +// SDLWeatherData.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +@class SDLDateTime; +@class SDLImage; +@class SDLTemperature; + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLWeatherData : SDLRPCStruct + +/** + * Convenience init for all parameters + * + * @param currentTemperature The current temperature + * @param temperatureHigh The predicted high temperature for the day + * @param temperatureLow The predicted low temperature for the day + * @param apparentTemperature The apparent temperature + * @param apparentTemperatureHigh The predicted high apparent temperature for the day + * @param apparentTemperatureLow The predicted low apparent temperature for the day + * @param weatherSummary A summary of the weather + * @param time The time this data refers to + * @param humidity From 0 to 1, percentage humidity + * @param cloudCover From 0 to 1, percentage cloud cover + * @param moonPhase From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon + * @param windBearing In degrees, true north at 0 degrees + * @param windGust In km/hr + * @param windSpeed In km/hr + * @param nearestStormBearing In degrees, true north at 0 degrees + * @param nearestStormDistance In km + * @param precipAccumulation In cm + * @param precipIntensity In cm of water per hour + * @param precipProbability From 0 to 1, percentage chance + * @param precipType A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") + * @param visibility In km + * @param weatherIcon The weather icon image + * @return A SDLWeatherData object + */ +- (instancetype)initWithCurrentTemperature:(nullable SDLTemperature *)currentTemperature temperatureHigh:(nullable SDLTemperature *)temperatureHigh temperatureLow:(nullable SDLTemperature *)temperatureLow apparentTemperature:(nullable SDLTemperature *)apparentTemperature apparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh apparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow weatherSummary:(nullable NSString *)weatherSummary time:(nullable SDLDateTime *)time humidity:(nullable NSNumber<SDLFloat> *)humidity cloudCover:(nullable NSNumber<SDLFloat> *)cloudCover moonPhase:(nullable NSNumber<SDLFloat> *)moonPhase windBearing:(nullable NSNumber<SDLInt> *)windBearing windGust:(nullable NSNumber<SDLFloat> *)windGust windSpeed:(nullable NSNumber<SDLFloat> *)windSpeed nearestStormBearing:(nullable NSNumber<SDLInt> *)nearestStormBearing nearestStormDistance:(nullable NSNumber<SDLInt> *)nearestStormDistance precipAccumulation:(nullable NSNumber<SDLFloat> *)precipAccumulation precipIntensity:(nullable NSNumber<SDLFloat> *)precipIntensity precipProbability:(nullable NSNumber<SDLFloat> *)precipProbability precipType:(nullable NSString *)precipType visibility:(nullable NSNumber<SDLFloat> *)visibility weatherIcon:(nullable SDLImage *)weatherIcon; + +/** + * The current temperature. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *currentTemperature; + +/** + * The predicted high temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *temperatureHigh; + +/** + * The predicted low temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *temperatureLow; + +/** + * The apparent temperature. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperature; + +/** + * The predicted high apparent temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperatureHigh; + +/** + * The predicted low apparent temperature for the day. + * + * SDLTemperature, Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *apparentTemperatureLow; + +/** + * A summary of the weather. + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *weatherSummary; + +/** + * The time this data refers to. + * + * SDLDateTime, Optional + */ +@property (nullable, strong, nonatomic) SDLDateTime *time; + +/** + * From 0 to 1, percentage humidity. + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *humidity; + +/** + * From 0 to 1, percentage cloud cover. + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *cloudCover; + +/** + * From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *moonPhase; + +/** + * In degrees, true north at 0 degrees. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *windBearing; + +/** + * In km/hr + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *windGust; + +/** + * In km/hr + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *windSpeed; + +/** + * In degrees, true north at 0 degrees. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *nearestStormBearing; + +/** + * In km + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *nearestStormDistance; + +/** + * In cm + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *precipAccumulation; + +/** + * In cm of water per hour. + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *precipIntensity; + +/** + * From 0 to 1, percentage chance. + * + * Float, Optional, minvalue="0" maxvalue="1" + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *precipProbability; + +/** + * A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") + * + * String, Optional + */ +@property (nullable, strong, nonatomic) NSString *precipType; + +/** + * In km + * + * Float, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLFloat> *visibility; + +/** + * The weather icon image. + * + * SDLImage, Optional + */ +@property (nullable, strong, nonatomic) SDLImage *weatherIcon; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherData.m b/SmartDeviceLink/SDLWeatherData.m new file mode 100644 index 000000000..e10663fab --- /dev/null +++ b/SmartDeviceLink/SDLWeatherData.m @@ -0,0 +1,231 @@ +// +// SDLWeatherData.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLDateTime.h" +#import "SDLImage.h" +#import "SDLRPCParameterNames.h" +#import "SDLTemperature.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherData + +- (instancetype)initWithCurrentTemperature:(nullable SDLTemperature *)currentTemperature temperatureHigh:(nullable SDLTemperature *)temperatureHigh temperatureLow:(nullable SDLTemperature *)temperatureLow apparentTemperature:(nullable SDLTemperature *)apparentTemperature apparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh apparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow weatherSummary:(nullable NSString *)weatherSummary time:(nullable SDLDateTime *)time humidity:(nullable NSNumber<SDLFloat> *)humidity cloudCover:(nullable NSNumber<SDLFloat> *)cloudCover moonPhase:(nullable NSNumber<SDLFloat> *)moonPhase windBearing:(nullable NSNumber<SDLInt> *)windBearing windGust:(nullable NSNumber<SDLFloat> *)windGust windSpeed:(nullable NSNumber<SDLFloat> *)windSpeed nearestStormBearing:(nullable NSNumber<SDLInt> *)nearestStormBearing nearestStormDistance:(nullable NSNumber<SDLInt> *)nearestStormDistance precipAccumulation:(nullable NSNumber<SDLFloat> *)precipAccumulation precipIntensity:(nullable NSNumber<SDLFloat> *)precipIntensity precipProbability:(nullable NSNumber<SDLFloat> *)precipProbability precipType:(nullable NSString *)precipType visibility:(nullable NSNumber<SDLFloat> *)visibility weatherIcon:(nullable SDLImage *)weatherIcon { + self = [self init]; + if (!self) { + return nil; + } + + self.currentTemperature = currentTemperature; + self.temperatureHigh = temperatureHigh; + self.temperatureLow = temperatureLow; + self.apparentTemperature = apparentTemperature; + self.apparentTemperatureHigh = apparentTemperatureHigh; + self.apparentTemperatureLow = apparentTemperatureLow; + self.weatherSummary = weatherSummary; + self.time = time; + self.humidity = humidity; + self.cloudCover = cloudCover; + self.moonPhase = moonPhase; + self.windBearing = windBearing; + self.windGust = windGust; + self.windSpeed = windSpeed; + self.nearestStormBearing = nearestStormBearing; + self.nearestStormDistance = nearestStormDistance; + self.precipAccumulation = precipAccumulation; + self.precipIntensity = precipIntensity; + self.precipProbability = precipProbability; + self.precipType = precipType; + self.visibility = visibility; + self.weatherIcon = weatherIcon; + + return self; +} + +- (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { + [store sdl_setObject:currentTemperature forName:SDLRPCParameterNameCurrentTemperature]; +} + +- (nullable SDLTemperature *)currentTemperature { + return [store sdl_objectForName:SDLRPCParameterNameCurrentTemperature ofClass:SDLTemperature.class error:nil]; +} + +- (void)setTemperatureHigh:(nullable SDLTemperature *)temperatureHigh { + [store sdl_setObject:temperatureHigh forName:SDLRPCParameterNameTemperatureHigh]; +} + +- (nullable SDLTemperature *)temperatureHigh { + return [store sdl_objectForName:SDLRPCParameterNameTemperatureHigh ofClass:SDLTemperature.class error:nil]; +} + +- (void)setTemperatureLow:(nullable SDLTemperature *)temperatureLow { + [store sdl_setObject:temperatureLow forName:SDLRPCParameterNameTemperatureLow]; +} + +- (nullable SDLTemperature *)temperatureLow { + return [store sdl_objectForName:SDLRPCParameterNameTemperatureLow ofClass:SDLTemperature.class error:nil]; +} + +- (void)setApparentTemperature:(nullable SDLTemperature *)apparentTemperature { + [store sdl_setObject:apparentTemperature forName:SDLRPCParameterNameApparentTemperature]; +} + +- (nullable SDLTemperature *)apparentTemperature { + return [store sdl_objectForName:SDLRPCParameterNameApparentTemperature ofClass:SDLTemperature.class error:nil]; +} + +- (void)setApparentTemperatureHigh:(nullable SDLTemperature *)apparentTemperatureHigh { + [store sdl_setObject:apparentTemperatureHigh forName:SDLRPCParameterNameApparentTemperatureHigh]; +} + +- (nullable SDLTemperature *)apparentTemperatureHigh { + return [store sdl_objectForName:SDLRPCParameterNameApparentTemperatureHigh ofClass:SDLTemperature.class error:nil]; +} + +- (void)setApparentTemperatureLow:(nullable SDLTemperature *)apparentTemperatureLow { + [store sdl_setObject:apparentTemperatureLow forName:SDLRPCParameterNameApparentTemperatureLow]; +} + +- (nullable SDLTemperature *)apparentTemperatureLow { + return [store sdl_objectForName:SDLRPCParameterNameApparentTemperatureLow ofClass:SDLTemperature.class error:nil]; +} + +- (void)setWeatherSummary:(nullable NSString *)weatherSummary { + [store sdl_setObject:weatherSummary forName:SDLRPCParameterNameWeatherSummary]; +} + +- (nullable NSString *)weatherSummary { + return [store sdl_objectForName:SDLRPCParameterNameWeatherSummary ofClass:NSString.class error:nil]; +} + +- (void)setTime:(nullable SDLDateTime *)time { + [store sdl_setObject:time forName:SDLRPCParameterNameTime]; +} + +- (nullable SDLDateTime *)time { + return [store sdl_objectForName:SDLRPCParameterNameTime ofClass:SDLDateTime.class error:nil]; +} + +- (void)setHumidity:(nullable NSNumber<SDLFloat> *)humidity { + [store sdl_setObject:humidity forName:SDLRPCParameterNameHumidity]; +} + +- (nullable NSNumber<SDLFloat> *)humidity { + return [store sdl_objectForName:SDLRPCParameterNameHumidity ofClass:NSNumber.class error:nil]; +} + +- (void)setCloudCover:(nullable NSNumber<SDLFloat> *)cloudCover { + [store sdl_setObject:cloudCover forName:SDLRPCParameterNameCloudCover]; +} + +- (nullable NSNumber<SDLFloat> *)cloudCover { + return [store sdl_objectForName:SDLRPCParameterNameCloudCover ofClass:NSNumber.class error:nil]; +} + +- (void)setMoonPhase:(nullable NSNumber<SDLFloat> *)moonPhase { + [store sdl_setObject:moonPhase forName:SDLRPCParameterNameMoonPhase]; +} + +- (nullable NSNumber<SDLFloat> *)moonPhase { + return [store sdl_objectForName:SDLRPCParameterNameMoonPhase ofClass:NSNumber.class error:nil]; +} + +- (void)setWindBearing:(nullable NSNumber<SDLInt> *)windBearing { + [store sdl_setObject:windBearing forName:SDLRPCParameterNameWindBearing]; +} + +- (nullable NSNumber<SDLInt> *)windBearing { + return [store sdl_objectForName:SDLRPCParameterNameWindBearing ofClass:NSNumber.class error:nil]; +} + +- (void)setWindGust:(nullable NSNumber<SDLFloat> *)windGust { + [store sdl_setObject:windGust forName:SDLRPCParameterNameWindGust]; +} + +- (nullable NSNumber<SDLFloat> *)windGust { + return [store sdl_objectForName:SDLRPCParameterNameWindGust ofClass:NSNumber.class error:nil]; +} + +- (void)setWindSpeed:(nullable NSNumber<SDLFloat> *)windSpeed { + [store sdl_setObject:windSpeed forName:SDLRPCParameterNameWindSpeed]; +} + +- (nullable NSNumber<SDLFloat> *)windSpeed { + return [store sdl_objectForName:SDLRPCParameterNameWindSpeed ofClass:NSNumber.class error:nil]; +} + +- (void)setNearestStormBearing:(nullable NSNumber<SDLInt> *)nearestStormBearing { + [store sdl_setObject:nearestStormBearing forName:SDLRPCParameterNameNearestStormBearing]; +} + +- (nullable NSNumber<SDLInt> *)nearestStormBearing { + return [store sdl_objectForName:SDLRPCParameterNameNearestStormBearing ofClass:NSNumber.class error:nil]; +} + +- (void)setNearestStormDistance:(nullable NSNumber<SDLInt> *)nearestStormDistance { + [store sdl_setObject:nearestStormDistance forName:SDLRPCParameterNameNearestStormDistance]; +} + +- (nullable NSNumber<SDLInt> *)nearestStormDistance { + return [store sdl_objectForName:SDLRPCParameterNameNearestStormDistance ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipAccumulation:(nullable NSNumber<SDLFloat> *)precipAccumulation { + [store sdl_setObject:precipAccumulation forName:SDLRPCParameterNamePrecipAccumulation]; +} + +- (nullable NSNumber<SDLFloat> *)precipAccumulation { + return [store sdl_objectForName:SDLRPCParameterNamePrecipAccumulation ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipIntensity:(nullable NSNumber<SDLFloat> *)precipIntensity { + [store sdl_setObject:precipIntensity forName:SDLRPCParameterNamePrecipIntensity]; +} + +- (nullable NSNumber<SDLFloat> *)precipIntensity { + return [store sdl_objectForName:SDLRPCParameterNamePrecipIntensity ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipProbability:(nullable NSNumber<SDLFloat> *)precipProbability { + [store sdl_setObject:precipProbability forName:SDLRPCParameterNamePrecipProbability]; +} + +- (nullable NSNumber<SDLFloat> *)precipProbability { + return [store sdl_objectForName:SDLRPCParameterNamePrecipProbability ofClass:NSNumber.class error:nil]; +} + +- (void)setPrecipType:(nullable NSString *)precipType { + [store sdl_setObject:precipType forName:SDLRPCParameterNamePrecipType]; +} + +- (nullable NSString *)precipType { + return [store sdl_objectForName:SDLRPCParameterNamePrecipType ofClass:NSString.class error:nil]; +} + +- (void)setVisibility:(nullable NSNumber<SDLFloat> *)visibility { + [store sdl_setObject:visibility forName:SDLRPCParameterNameVisibility]; +} + +- (nullable NSNumber<SDLFloat> *)visibility { + return [store sdl_objectForName:SDLRPCParameterNameVisibility ofClass:NSNumber.class error:nil]; +} + +- (void)setWeatherIcon:(nullable SDLImage *)weatherIcon { + [store sdl_setObject:weatherIcon forName:SDLRPCParameterNameWeatherIcon]; +} + +- (nullable SDLImage *)weatherIcon { + return [store sdl_objectForName:SDLRPCParameterNameWeatherIcon ofClass:SDLImage.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherServiceData.h b/SmartDeviceLink/SDLWeatherServiceData.h new file mode 100644 index 000000000..488e30fb3 --- /dev/null +++ b/SmartDeviceLink/SDLWeatherServiceData.h @@ -0,0 +1,87 @@ +// +// SDLWeatherServiceData.h +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +#import "SDLLocationDetails.h" +#import "SDLWeatherData.h" +#import "SDLWeatherAlert.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * This data is related to what a weather service would provide. + */ +@interface SDLWeatherServiceData : SDLRPCStruct + +/** + * Convenience init for required parameters. + * + * @param location The location + * @return A SDLWeatherServiceData object + */ +- (instancetype)initWithLocation:(SDLLocationDetails *)location NS_DESIGNATED_INITIALIZER; + +/** + * Convenience init for all parameters. + * + * @param location The location + * @param currentForecast The current forecast + * @param minuteForecast A minute-by-minute array of forecasts + * @param hourlyForecast An hour-by-hour array of forecasts + * @param multidayForecast A day-by-day array of forecasts + * @param alerts An array of weather alerts + * @return A SDLWeatherServiceData object + */ +- (instancetype)initWithLocation:(SDLLocationDetails *)location currentForecast:(nullable SDLWeatherData *)currentForecast minuteForecast:(nullable NSArray<SDLWeatherData *> *)minuteForecast hourlyForecast:(nullable NSArray<SDLWeatherData *> *)hourlyForecast multidayForecast:(nullable NSArray<SDLWeatherData *> *)multidayForecast alerts:(nullable NSArray<SDLWeatherAlert *> *)alerts; + +/** + * The location. + * + * SDLLocationDetails, Required + */ +@property (strong, nonatomic) SDLLocationDetails *location; + +/** + * The current forecast. + * + * SDLWeatherData, Optional + */ +@property (nullable, strong, nonatomic) SDLWeatherData *currentForecast; + +/** + * A minute-by-minute array of forecasts. + * + * Array of SDLWeatherData, Optional, minsize="15" maxsize="60" + */ +@property (nullable, strong, nonatomic) NSArray<SDLWeatherData *> *minuteForecast; + +/** + * An hour-by-hour array of forecasts. + * + * Array of SDLWeatherData, Optional, minsize="1" maxsize="96" + */ +@property (nullable, strong, nonatomic) NSArray<SDLWeatherData *> *hourlyForecast; + +/** + * A day-by-day array of forecasts. + * + * Array of SDLWeatherData, Optional, minsize="1" maxsize="30" + */ +@property (nullable, strong, nonatomic) NSArray<SDLWeatherData *> *multidayForecast; + +/** + * An array of weather alerts. This array should be ordered with the first object being the current day. + * + * Array of SDLWeatherData, Optional, minsize="1" maxsize="10" + */ +@property (nullable, strong, nonatomic) NSArray<SDLWeatherAlert *> *alerts; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherServiceData.m b/SmartDeviceLink/SDLWeatherServiceData.m new file mode 100644 index 000000000..59ed81be3 --- /dev/null +++ b/SmartDeviceLink/SDLWeatherServiceData.m @@ -0,0 +1,95 @@ +// +// SDLWeatherServiceData.m +// SmartDeviceLink +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherServiceData.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherServiceData + +- (instancetype)initWithLocation:(SDLLocationDetails *)location { + self = [super init]; + if (!self) { + return nil; + } + + self.location = location; + + return self; +} + +- (instancetype)initWithLocation:(SDLLocationDetails *)location currentForecast:(nullable SDLWeatherData *)currentForecast minuteForecast:(nullable NSArray<SDLWeatherData *> *)minuteForecast hourlyForecast:(nullable NSArray<SDLWeatherData *> *)hourlyForecast multidayForecast:(nullable NSArray<SDLWeatherData *> *)multidayForecast alerts:(nullable NSArray<SDLWeatherAlert *> *)alerts { + self = [self initWithLocation:location]; + if (!self) { + return nil; + } + + self.currentForecast = currentForecast; + self.minuteForecast = minuteForecast; + self.hourlyForecast = hourlyForecast; + self.multidayForecast = multidayForecast; + self.alerts = alerts; + + return self; +} + +- (void)setLocation:(SDLLocationDetails *)location { + [store sdl_setObject:location forName:SDLRPCParameterNameLocation]; +} + +- (SDLLocationDetails *)location { + NSError *error = nil; + return [store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLLocationDetails.class error:&error]; +} + +- (void)setCurrentForecast:(nullable SDLWeatherData *)currentForecast { + [store sdl_setObject:currentForecast forName:SDLRPCParameterNameCurrentForecast]; +} + +- (nullable SDLWeatherData *)currentForecast { + return [store sdl_objectForName:SDLRPCParameterNameCurrentForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setMinuteForecast:(nullable NSArray<SDLWeatherData *> *)minuteForecast { + [store sdl_setObject:minuteForecast forName:SDLRPCParameterNameMinuteForecast]; +} + +- (nullable NSArray<SDLWeatherData *> *)minuteForecast { + return [store sdl_objectsForName:SDLRPCParameterNameMinuteForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setHourlyForecast:(nullable NSArray<SDLWeatherData *> *)hourlyForecast { + [store sdl_setObject:hourlyForecast forName:SDLRPCParameterNameHourlyForecast]; +} + +- (nullable NSArray<SDLWeatherData *> *)hourlyForecast { + return [store sdl_objectsForName:SDLRPCParameterNameHourlyForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setMultidayForecast:(nullable NSArray<SDLWeatherData *> *)multidayForecast { + [store sdl_setObject:multidayForecast forName:SDLRPCParameterNameMultidayForecast]; +} + +- (nullable NSArray<SDLWeatherData *> *)multidayForecast { + return [store sdl_objectsForName:SDLRPCParameterNameMultidayForecast ofClass:SDLWeatherData.class error:nil]; +} + +- (void)setAlerts:(nullable NSArray<SDLWeatherAlert *> *)alerts { + [store sdl_setObject:alerts forName:SDLRPCParameterNameAlerts]; +} + +- (nullable NSArray<SDLWeatherAlert *> *)alerts { + return [store sdl_objectsForName:SDLRPCParameterNameAlerts ofClass:SDLWeatherAlert.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherServiceManifest.h b/SmartDeviceLink/SDLWeatherServiceManifest.h new file mode 100644 index 000000000..761474b44 --- /dev/null +++ b/SmartDeviceLink/SDLWeatherServiceManifest.h @@ -0,0 +1,67 @@ +// +// SDLWeatherServiceManifest.h +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * A weather service manifest. + */ +@interface SDLWeatherServiceManifest : SDLRPCStruct + +/** + * Convenience init for all parameters. + * + * @param currentForecastSupported Whether or not the current forcast is supported. + * @param maxMultidayForecastAmount The maximum number of day-by-day forecasts. + * @param maxHourlyForecastAmount The maximum number of hour-by-hour forecasts. + * @param maxMinutelyForecastAmount The maximum number of minute-by-minute forecasts. + * @param weatherForLocationSupported Whether or not the weather for location is supported. + * @return A SDLWeatherServiceManifest object + */ +- (instancetype)initWithCurrentForecastSupported:(BOOL)currentForecastSupported maxMultidayForecastAmount:(UInt32)maxMultidayForecastAmount maxHourlyForecastAmount:(UInt32)maxHourlyForecastAmount maxMinutelyForecastAmount:(UInt32)maxMinutelyForecastAmount weatherForLocationSupported:(BOOL)weatherForLocationSupported; + +/** + * Whether or not the current forcast is supported. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *currentForecastSupported; + +/** + * The maximum number of day-by-day forecasts. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *maxMultidayForecastAmount; + +/** + * The maximum number of hour-by-hour forecasts. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *maxHourlyForecastAmount; + +/** + * The maximum number of minute-by-minute forecasts. + * + * Integer, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLInt> *maxMinutelyForecastAmount; + +/** + * Whether or not the weather for location is supported. + * + * Boolean, Optional + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *weatherForLocationSupported; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWeatherServiceManifest.m b/SmartDeviceLink/SDLWeatherServiceManifest.m new file mode 100644 index 000000000..25da6461b --- /dev/null +++ b/SmartDeviceLink/SDLWeatherServiceManifest.m @@ -0,0 +1,75 @@ +// +// SDLWeatherServiceManifest.m +// SmartDeviceLink +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import "SDLWeatherServiceManifest.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLWeatherServiceManifest + +- (instancetype)initWithCurrentForecastSupported:(BOOL)currentForecastSupported maxMultidayForecastAmount:(UInt32)maxMultidayForecastAmount maxHourlyForecastAmount:(UInt32)maxHourlyForecastAmount maxMinutelyForecastAmount:(UInt32)maxMinutelyForecastAmount weatherForLocationSupported:(BOOL)weatherForLocationSupported { + self = [self init]; + if (!self) { + return nil; + } + + self.currentForecastSupported = @(currentForecastSupported); + self.maxMultidayForecastAmount = @(maxMultidayForecastAmount); + self.maxHourlyForecastAmount = @(maxHourlyForecastAmount); + self.maxMinutelyForecastAmount = @(maxMinutelyForecastAmount); + self.weatherForLocationSupported = @(weatherForLocationSupported); + + return self; +} + +- (void)setCurrentForecastSupported:(nullable NSNumber<SDLBool> *)currentForecastSupported { + [store sdl_setObject:currentForecastSupported forName:SDLRPCParameterNameCurrentForecastSupported]; +} + +- (nullable NSNumber<SDLBool> *)currentForecastSupported { + return [store sdl_objectForName:SDLRPCParameterNameCurrentForecastSupported ofClass:NSNumber.class error:nil]; +} + +- (void)setMaxMultidayForecastAmount:(nullable NSNumber<SDLInt> *)maxMultidayForecastAmount { + [store sdl_setObject:maxMultidayForecastAmount forName:SDLRPCParameterNameMaxMultidayForecastAmount]; +} + +- (nullable NSNumber<SDLInt> *)maxMultidayForecastAmount { + return [store sdl_objectForName:SDLRPCParameterNameMaxMultidayForecastAmount ofClass:NSNumber.class error:nil]; +} + +- (void)setMaxHourlyForecastAmount:(nullable NSNumber<SDLInt> *)maxHourlyForecastAmount { + [store sdl_setObject:maxHourlyForecastAmount forName:SDLRPCParameterNameMaxHourlyForecastAmount]; +} + +- (nullable NSNumber<SDLInt> *)maxHourlyForecastAmount { + return [store sdl_objectForName:SDLRPCParameterNameMaxHourlyForecastAmount ofClass:NSNumber.class error:nil]; +} + +- (void)setMaxMinutelyForecastAmount:(nullable NSNumber<SDLInt> *)maxMinutelyForecastAmount { + [store sdl_setObject:maxMinutelyForecastAmount forName:SDLRPCParameterNameMaxMinutelyForecastAmount]; +} + +- (nullable NSNumber<SDLInt> *)maxMinutelyForecastAmount { + return [store sdl_objectForName:SDLRPCParameterNameMaxMinutelyForecastAmount ofClass:NSNumber.class error:nil]; +} + +- (void)setWeatherForLocationSupported:(nullable NSNumber<SDLBool> *)weatherForLocationSupported { + [store sdl_setObject:weatherForLocationSupported forName:SDLRPCParameterNameWeatherForLocationSupported]; +} + +- (nullable NSNumber<SDLBool> *)weatherForLocationSupported { + return [store sdl_objectForName:SDLRPCParameterNameWeatherForLocationSupported ofClass:NSNumber.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h index 3dfd5e2df..4ae1a7d37 100644 --- a/SmartDeviceLink/SmartDeviceLink.h +++ b/SmartDeviceLink/SmartDeviceLink.h @@ -34,14 +34,19 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLDialNumber.h" #import "SDLEncodedSyncPData.h" #import "SDLEndAudioPassThru.h" +#import "SDLGetCloudAppProperties.h" +#import "SDLGetAppServiceData.h" #import "SDLGetDTCs.h" +#import "SDLGetFile.h" #import "SDLGetInteriorVehicleData.h" #import "SDLGetSystemCapability.h" #import "SDLGetVehicleData.h" #import "SDLGetWayPoints.h" #import "SDLListFiles.h" +#import "SDLPerformAppServiceInteraction.h" #import "SDLPerformAudioPassThru.h" #import "SDLPerformInteraction.h" +#import "SDLPublishAppService.h" #import "SDLPutFile.h" #import "SDLReadDID.h" #import "SDLRegisterAppInterface.h" @@ -50,6 +55,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSendHapticData.h" #import "SDLSendLocation.h" #import "SDLSetAppIcon.h" +#import "SDLSetCloudAppProperties.h" #import "SDLSetDisplayLayout.h" #import "SDLSetGlobalProperties.h" #import "SDLSetInteriorVehicleData.h" @@ -62,6 +68,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSubscribeVehicleData.h" #import "SDLSubscribeWayPoints.h" #import "SDLSyncPData.h" +#import "SDLSystemRequest.h" #import "SDLUnregisterAppInterface.h" #import "SDLUnsubscribeButton.h" #import "SDLUnsubscribeVehicleData.h" @@ -85,14 +92,19 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLEncodedSyncPDataResponse.h" #import "SDLEndAudioPassThruResponse.h" #import "SDLGenericResponse.h" +#import "SDLGetCloudAppPropertiesResponse.h" +#import "SDLGetAppServiceDataResponse.h" #import "SDLGetDTCsResponse.h" +#import "SDLGetFileResponse.h" #import "SDLGetInteriorVehicleDataResponse.h" #import "SDLGetSystemCapabilityResponse.h" #import "SDLGetVehicleDataResponse.h" #import "SDLGetWayPointsResponse.h" #import "SDLListFilesResponse.h" +#import "SDLPerformAppServiceInteractionResponse.h" #import "SDLPerformAudioPassThruResponse.h" #import "SDLPerformInteractionResponse.h" +#import "SDLPublishAppServiceResponse.h" #import "SDLPutFileResponse.h" #import "SDLReadDIDResponse.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -101,6 +113,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSendHapticDataResponse.h" #import "SDLSendLocationResponse.h" #import "SDLSetAppIconResponse.h" +#import "SDLSetCloudAppPropertiesResponse.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSetGlobalPropertiesResponse.h" #import "SDLSetInteriorVehicleDataResponse.h" @@ -121,6 +134,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Notifications #import "SDLOnAppInterfaceUnregistered.h" +#import "SDLOnAppServiceData.h" #import "SDLOnAudioPassThru.h" #import "SDLOnButtonEvent.h" #import "SDLOnButtonPress.h" @@ -136,6 +150,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLOnPermissionsChange.h" #import "SDLOnRCStatus.h" #import "SDLOnSyncPData.h" +#import "SDLOnSystemCapabilityUpdated.h" #import "SDLOnSystemRequest.h" #import "SDLOnTBTClientState.h" #import "SDLOnTouchEvent.h" @@ -145,6 +160,11 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Structs #import "SDLAirbagStatus.h" #import "SDLAppInfo.h" +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceData.h" +#import "SDLAppServiceManifest.h" +#import "SDLAppServiceRecord.h" +#import "SDLAppServicesCapabilities.h" #import "SDLAudioControlData.h" #import "SDLAudioControlCapabilities.h" #import "SDLAudioPassThruCapabilities.h" @@ -155,6 +175,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLClusterModeStatus.h" #import "SDLClimateControlCapabilities.h" #import "SDLClimateControlData.h" +#import "SDLCloudAppProperties.h" #import "SDLDIDResult.h" #import "SDLDateTime.h" #import "SDLDeviceInfo.h" @@ -183,11 +204,16 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLLocationDetails.h" #import "SDLMassageCushionFirmness.h" #import "SDLMassageModeData.h" +#import "SDLMediaServiceData.h" +#import "SDLMediaServiceManifest.h" #import "SDLMenuParams.h" #import "SDLMetadataTags.h" #import "SDLModuleData.h" #import "SDLMyKey.h" #import "SDLNavigationCapability.h" +#import "SDLNavigationInstruction.h" +#import "SDLNavigationServiceData.h" +#import "SDLNavigationServiceManifest.h" #import "SDLOasisAddress.h" #import "SDLParameterPermissions.h" #import "SDLPermissionItem.h" @@ -225,11 +251,16 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLVideoStreamingCapability.h" #import "SDLVideoStreamingFormat.h" #import "SDLVrHelpItem.h" +#import "SDLWeatherAlert.h" +#import "SDLWeatherData.h" +#import "SDLWeatherServiceData.h" +#import "SDLWeatherServiceManifest.h" // Enums #import "SDLAmbientLightStatus.h" #import "SDLAppHMIType.h" #import "SDLAppInterfaceUnregisteredReason.h" +#import "SDLAppServiceType.h" #import "SDLAudioStreamingState.h" #import "SDLAudioStreamingIndicator.h" #import "SDLAudioType.h" @@ -245,6 +276,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLDeliveryMode.h" #import "SDLDeviceLevelStatus.h" #import "SDLDimension.h" +#import "SDLDirection.h" #import "SDLDisplayMode.h" #import "SDLDisplayType.h" #import "SDLDistanceUnit.h" @@ -258,6 +290,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLGlobalProperty.h" #import "SDLHMILevel.h" #import "SDLHMIZoneCapabilities.h" +#import "SDLHybridAppPreference.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" #import "SDLImageFieldName.h" @@ -276,8 +309,11 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLMassageMode.h" #import "SDLMassageZone.h" #import "SDLMediaClockFormat.h" +#import "SDLMediaType.h" #import "SDLMetadataType.h" #import "SDLModuleType.h" +#import "SDLNavigationAction.h" +#import "SDLNavigationJunction.h" #import "SDLPRNDL.h" #import "SDLPermissionStatus.h" #import "SDLPowerModeQualificationStatus.h" @@ -292,6 +328,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLResult.h" #import "SDLSamplingRate.h" #import "SDLSeatMemoryActionType.h" +#import "SDLServiceUpdateReason.h" #import "SDLSupportedSeat.h" #import "SDLSoftButtonType.h" #import "SDLSpeechCapabilities.h" @@ -384,12 +421,16 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; // Utilities #import "NSNumber+NumberType.h" #import "SDLErrorConstants.h" +#import "SDLFunctionID.h" +#import "SDLRPCFunctionNames.h" #import "SDLNotificationConstants.h" #import "SDLStreamingMediaManagerConstants.h" +#import "SDLVersion.h" // Notifications #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" +#import "SDLRPCRequestNotification.h" // Logger #import "SDLLogConstants.h" diff --git a/SmartDeviceLinkSwift/Info.plist b/SmartDeviceLinkSwift/Info.plist index 40599ae88..180bcb2e2 100644 --- a/SmartDeviceLinkSwift/Info.plist +++ b/SmartDeviceLinkSwift/Info.plist @@ -15,7 +15,7 @@ <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleShortVersionString</key> - <string>6.1.2</string> + <string>6.2.0</string> <key>CFBundleVersion</key> <string>$(CURRENT_PROJECT_VERSION)</string> <key>NSPrincipalClass</key> diff --git a/SmartDeviceLinkTests/DevAPISpecs/NSMutableDictionary+StoreSpec.m b/SmartDeviceLinkTests/DevAPISpecs/NSMutableDictionary+StoreSpec.m new file mode 100644 index 000000000..459e14ac6 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/NSMutableDictionary+StoreSpec.m @@ -0,0 +1,170 @@ +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "NSMutableDictionary+Store.h" + +@interface TestObject : NSObject +@property (nonatomic, strong, nullable) NSDictionary *json; +- (instancetype)initWithDictionary:(NSDictionary *)json; +@end + +@implementation TestObject +- (instancetype)initWithDictionary:(NSDictionary *)json { + self = [super init]; + if (self) { + self.json = json; + } + return self; +} +- (BOOL)isEqual:(id)object { + if (![object isKindOfClass:[TestObject class]]) { + return false; + } + TestObject *anotherObject = (TestObject *)object; + return [self.json isEqual:anotherObject.json]; +} +@end + +QuickSpecBegin(NSMutableDictionary_StoreSpec) + +describe(@"A mutable dictionary with the storing category imported", ^{ + __block NSMutableDictionary *testDictionary = nil; + __block NSString *testKey = @"Key"; + + beforeEach(^{ + testDictionary = [[NSMutableDictionary alloc] init]; + }); + + describe(@"retrieving a string", ^{ + __block NSString *testObject = @"Object"; + + beforeEach(^{ + [testDictionary sdl_setObject:testObject forName:testKey]; + }); + + it(@"should return string when called correctly", ^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[NSString class]]).to(equal(testObject)); + }); + it(@"should raise an exception when called with wrong class type", ^{ + expectAction(^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[NSNumber class]]).to(beNil()); + }).to(raiseException()); + }); + }); + + describe(@"retrieving a single object", ^{ + __block NSString *testObject = @"Object"; + + beforeEach(^{ + [testDictionary sdl_setObject:testObject forName:testKey]; + }); + + it(@"should return nil and raise an exception when retrieved as an array", ^{ + expectAction(^{ + expect([testDictionary sdl_objectsForName:testKey ofClass:[NSString class] error:nil]).to(beNil()); + }).to(raiseException()); + }); + }); + + describe(@"Retrieving a custom JSON object", ^{ + __block TestObject *testObject = nil; + beforeEach(^{ + NSDictionary *testJson = @{}; + testObject = [[TestObject alloc] initWithDictionary:testJson]; + [testDictionary sdl_setObject:testJson forName:testKey]; + }); + + it(@"should return the object correctly when retrieved correctly", ^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[TestObject class]]).to(equal(testObject)); + }); + it(@"should raise an exception when retrieved as an NSNumber", ^{ + expectAction(^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[NSNumber class]]).to(beNil()); + }).to(raiseException()); + }); + }); + + describe(@"Retrieving an array of one string", ^{ + __block NSString *testObject = @"Object"; + __block NSArray<NSString *> *testObjectArray = @[testObject]; + + beforeEach(^{ + [testDictionary sdl_setObject:testObjectArray forName:testKey]; + }); + + it(@"should raise an exception when retrieved as an NSString", ^{ + expectAction(^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[NSString class]]).to(equal(testObject)); + }).to(raiseException()); + }); + + it(@"should return correctly when retrieved correctly", ^{ + expect([testDictionary sdl_objectsForName:testKey ofClass:[NSString class] error:nil]).to(equal(testObjectArray)); + }); + it(@"should raise an exception when retrieved as an NSNumber", ^{ + expectAction(^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[NSNumber class] error:nil]).to(beNil()); + expect([testDictionary sdl_objectsForName:testKey ofClass:[NSNumber class] error:nil]).to(beNil()); + }).to(raiseException()); + }); + }); + + describe(@"retrieving an array of custom objects", ^{ + __block NSArray<TestObject *> *testObjectArray = nil; + + beforeEach(^{ + NSDictionary *testJson = @{}; + TestObject *testObject = [[TestObject alloc] initWithDictionary:testJson]; + NSArray<NSDictionary *> *testJsonArray = @[testJson]; + testObjectArray = @[testObject]; + [testDictionary sdl_setObject:testJsonArray forName:testKey]; + }); + + it(@"should return correctly when retrieved correctly", ^{ + expect([testDictionary sdl_objectsForName:testKey ofClass:[TestObject class] error:nil]).to(equal(testObjectArray)); + }); + it(@"should raise an exception when retrieved as an NSNumber", ^{ + expectAction(^{ + expect([testDictionary sdl_objectsForName:testKey ofClass:[NSNumber class] error:nil]).to(beNil()); + }).to(raiseException()); + }); + }); + + describe(@"Retrieving an SDLEnum", ^{ + __block SDLEnum testObject = @"Object"; + + beforeEach(^{ + [testDictionary sdl_setObject:testObject forName:testKey]; + }); + + it(@"should return correctly when retrieved correctly", ^{ + expect([testDictionary sdl_enumForName:testKey error:nil]).to(equal(testObject)); + }); + it(@"should raise an exception when retrieved as an array", ^{ + expectAction(^{ + expect([testDictionary sdl_enumsForName:testKey error:nil]).to(beNil()); + }).to(raiseException()); + }); + }); + + describe(@"retrieving an array of SDLEnums", ^{ + __block NSArray<SDLEnum> *testObjectArray = nil; + + beforeEach(^{ + __block SDLEnum testObject = @"Object"; + testObjectArray = @[testObject]; + [testDictionary sdl_setObject:testObjectArray forName:testKey]; + }); + + it(@"should return an array of SDLEnum when retrieved correctly", ^{ + expect([testDictionary sdl_enumsForName:testKey error:nil]).to(equal(testObjectArray)); + }); + it(@"should raise an exception when retrieved as an NSNumber", ^{ + expectAction(^{ + expect([testDictionary sdl_objectForName:testKey ofClass:[NSNumber class]]).to(beNil()); + }).to(raiseException()); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCNotificationNotificationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCNotificationNotificationSpec.m new file mode 100644 index 000000000..307e45d81 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCNotificationNotificationSpec.m @@ -0,0 +1,41 @@ +// +// SDLRPCNotificationNotificationSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 3/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLNotificationConstants.h" +#import "SDLOnCommand.h" +#import "SDLRPCNotification.h" +#import "SDLRPCNotificationNotification.h" + +QuickSpecBegin(SDLRPCNotificationNotificationSpec) + +describe(@"A request notification notification", ^{ + __block SDLRPCNotification *testNotification = nil; + __block NSString *testName = nil; + + beforeEach(^{ + testNotification = [[SDLOnCommand alloc] initWithName:@"testNotification"]; + testName = SDLDidReceiveCommandNotification; + }); + + it(@"Should initialize correctly with initWithName:object:rpcRequest:", ^{ + SDLRPCNotificationNotification *testRequestNotification = [[SDLRPCNotificationNotification alloc] initWithName:testName object:nil rpcNotification:testNotification]; + + expect(testRequestNotification.name).to(equal(testName)); + expect(testRequestNotification.userInfo).to(equal(@{SDLNotificationUserInfoObject: testNotification})); + expect(testRequestNotification.object).to(beNil()); + expect(testRequestNotification.notification).to(equal(testNotification)); + expect([testRequestNotification isNotificationKindOfClass:SDLRPCNotification.class]).to(beTrue()); + expect([testRequestNotification isNotificationMemberOfClass:SDLOnCommand.class]).to(beTrue()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCRequestNotificationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCRequestNotificationSpec.m new file mode 100644 index 000000000..4751c9361 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCRequestNotificationSpec.m @@ -0,0 +1,41 @@ +// +// SDLRPCRequestNotificationSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/14/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLNotificationConstants.h" +#import "SDLAddCommand.h" +#import "SDLRPCRequestNotification.h" + + +QuickSpecBegin(SDLRPCRequestNotificationSpec) + +describe(@"A request notification", ^{ + __block SDLRPCRequest *testRequest = nil; + __block NSString *testName = nil; + + beforeEach(^{ + testRequest = [[SDLAddCommand alloc] initWithName:@"testRequest"]; + testName = SDLDidReceiveAddCommandResponse; + }); + + it(@"Should initialize correctly with initWithName:object:rpcRequest:", ^{ + SDLRPCRequestNotification *testNotification = [[SDLRPCRequestNotification alloc] initWithName:testName object:nil rpcRequest:testRequest]; + + expect(testNotification.name).to(equal(testName)); + expect(testNotification.userInfo).to(equal(@{SDLNotificationUserInfoObject: testRequest})); + expect(testNotification.object).to(beNil()); + expect(testNotification.request).to(equal(testRequest)); + expect([testNotification isRequestKindOfClass:SDLRPCRequest.class]).to(beTrue()); + expect([testNotification isRequestMemberOfClass:SDLAddCommand.class]).to(beTrue()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCResponseNotificationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCResponseNotificationSpec.m new file mode 100644 index 000000000..a0aaf3b08 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/Notification Tests/SDLRPCResponseNotificationSpec.m @@ -0,0 +1,39 @@ +// +// SDLRPCResponseNotificationSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 3/1/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLNotificationConstants.h" +#import "SDLAddCommandResponse.h" +#import "SDLRPCResponseNotification.h" + +QuickSpecBegin(SDLRPCResponseNotificationSpec) + +describe(@"A response notification", ^{ + __block SDLRPCResponse *testResponse = nil; + __block NSString *testName = nil; + + beforeEach(^{ + testResponse = [[SDLAddCommandResponse alloc] initWithName:@"testResponse"]; + testName = SDLDidReceiveAddCommandRequest; + }); + + it(@"Should initialize correctly with initWithName:object:rpcRequest:", ^{ + SDLRPCResponseNotification *testNotification = [[SDLRPCResponseNotification alloc] initWithName:testName object:nil rpcResponse:testResponse]; + + expect(testNotification.name).to(equal(testName)); + expect(testNotification.userInfo).to(equal(@{SDLNotificationUserInfoObject: testResponse})); + expect(testNotification.object).to(beNil()); + expect(testNotification.response).to(equal(testResponse)); + expect([testNotification isResponseKindOfClass:SDLRPCResponse.class]).to(beTrue()); + expect([testNotification isResponseMemberOfClass:SDLAddCommandResponse.class]).to(beTrue()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m index 219479429..afd6a783b 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m @@ -3,6 +3,8 @@ #import "SDLArtwork.h" #import "SDLFileType.h" +#import "SDLImage.h" +#import "SDLStaticIconName.h" @interface SDLArtwork() + (NSString *)sdl_md5HashFromNSData:(NSData *)data; @@ -10,14 +12,20 @@ QuickSpecBegin(SDLArtworkSpec) -describe(@"SDLArtwork", ^{ +describe(@"SDLArtwork Tests", ^{ __block SDLArtwork *expectedArtwork = nil; + __block SDLImage *expectedImage = nil; + __block NSData *expectedImageData = nil; __block UIImage *testImagePNG = nil; __block UIImage *testImagePNG2 = nil; __block UIImage *testImageJPG = nil; __block UIImage *testImagePNGTemplate = nil; beforeEach(^{ + expectedArtwork = nil; + expectedImage = nil; + expectedImageData = nil; + testImagePNG = [UIImage imageNamed:@"testImagePNG" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; testImagePNG2 = [UIImage imageNamed:@"TestLockScreenAppIcon" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; testImageJPG = [UIImage imageNamed:@"testImageJPG.jpg" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; @@ -25,21 +33,81 @@ describe(@"SDLArtwork", ^{ }); context(@"On creation", ^{ - describe(@"When setting the image", ^{ - __block NSData *expectedImageData = nil; + it(@"should init with artworkWithImage:name:asImageFormat:", ^{ + NSString *artworkName = @"Test"; + expectedArtwork = [SDLArtwork artworkWithImage:testImagePNG name:artworkName asImageFormat:SDLArtworkImageFormatPNG]; + SDLArtwork *expected2 = [[SDLArtwork alloc] initWithImage:testImagePNG name:artworkName persistent:NO asImageFormat:SDLArtworkImageFormatPNG]; + + expect(expectedArtwork).to(equal(expected2)); + }); + + it(@"should init with persistentArtworkWithImage:name:asImageFormat:", ^{ + NSString *artworkName = @"Test"; + expectedArtwork = [SDLArtwork persistentArtworkWithImage:testImagePNG name:artworkName asImageFormat:SDLArtworkImageFormatPNG]; + SDLArtwork *expected2 = [[SDLArtwork alloc] initWithImage:testImagePNG name:artworkName persistent:YES asImageFormat:SDLArtworkImageFormatPNG]; + + expect(expectedArtwork).to(equal(expected2)); + }); + + it(@"should init with artworkWithImage:asImageFormat:", ^{ + expectedArtwork = [SDLArtwork artworkWithImage:testImagePNG asImageFormat:SDLArtworkImageFormatPNG]; + SDLArtwork *expected2 = [[SDLArtwork alloc] initWithImage:testImagePNG persistent:NO asImageFormat:SDLArtworkImageFormatPNG]; + + expect(expectedArtwork).to(equal(expected2)); + }); + + it(@"should init with persistentArtworkWithImage:asImageFormat:", ^{ + expectedArtwork = [SDLArtwork persistentArtworkWithImage:testImagePNG asImageFormat:SDLArtworkImageFormatPNG]; + SDLArtwork *expected2 = [[SDLArtwork alloc] initWithImage:testImagePNG persistent:NO asImageFormat:SDLArtworkImageFormatPNG]; + + expect(expectedArtwork).to(equal(expected2)); + }); + + it(@"should init with artworkWithStaticIcon:", ^{ + SDLStaticIconName icon = SDLStaticIconNameRSS; + expectedArtwork = [SDLArtwork artworkWithStaticIcon:icon]; + SDLArtwork *expected2 = [[SDLArtwork alloc] initWithStaticIcon:icon]; + + expect(expectedArtwork).to(equal(expected2)); + }); + + it(@"should init with initWithStaticIcon:", ^{ + SDLStaticIconName icon = SDLStaticIconNameRSS; + expectedArtwork = [[SDLArtwork alloc] initWithStaticIcon:icon]; + expectedImage = [[SDLImage alloc] initWithStaticIconName:icon]; + + expect(expectedArtwork.name).to(equal(icon)); + expect(expectedArtwork.isStaticIcon).to(beTrue()); + expect(expectedArtwork.imageRPC).to(equal(expectedImage)); + expect(expectedArtwork.isTemplate).to(equal(NO)); + expect(expectedArtwork.persistent).to(beFalse()); + }); + describe(@"When setting the image", ^{ it(@"should set the image data successfully for an image with a name", ^ { + NSString *imageName = @"testImage"; expectedImageData = UIImagePNGRepresentation(testImagePNG); - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG name:@"testImage" persistent:true asImageFormat:SDLArtworkImageFormatPNG]; + expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG name:imageName persistent:true asImageFormat:SDLArtworkImageFormatPNG]; + expectedImage = [[SDLImage alloc] initWithName:imageName isTemplate:NO]; expect(expectedImageData).to(equal(expectedArtwork.data)); + expect(expectedArtwork.name).to(equal(imageName)); + expect(expectedArtwork.imageRPC).to(equal(expectedImage)); + expect(expectedArtwork.fileType).to(equal(SDLFileTypePNG)); + expect(expectedArtwork.persistent).to(beTrue()); }); it(@"should set the image data successfully for an image without a name", ^ { expectedImageData = UIImagePNGRepresentation(testImagePNG); - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG persistent:true asImageFormat:SDLArtworkImageFormatPNG]; + expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG persistent:false asImageFormat:SDLArtworkImageFormatPNG]; + expectedImage = [[SDLImage alloc] initWithName:[SDLArtwork sdl_md5HashFromNSData:expectedImageData] isTemplate:NO]; expect(expectedImageData).to(equal(expectedArtwork.data)); + expect(expectedArtwork.name).to(equal([SDLArtwork sdl_md5HashFromNSData:expectedImageData])); + expect(expectedArtwork.imageRPC).to(equal(expectedImage)); + expect(expectedArtwork.fileType).to(equal(SDLFileTypePNG)); + expect(expectedArtwork.persistent).to(beFalse()); + expect(expectedArtwork.name.length).to(equal(16)); }); it(@"should not set the image data if the image is nil", ^{ @@ -47,7 +115,12 @@ describe(@"SDLArtwork", ^{ expectedImageData = UIImagePNGRepresentation(testImage); expectedArtwork = [[SDLArtwork alloc] initWithImage:testImage persistent:true asImageFormat:SDLArtworkImageFormatPNG]; + expect(expectedArtwork).to(beNil()); expect(expectedArtwork.data).to(beNil()); + expect(expectedArtwork.name).to(beNil()); + expect(expectedArtwork.imageRPC).to(beNil()); + expect(expectedArtwork.fileType).to(beNil()); + expect(expectedArtwork.persistent).to(beFalse()); }); describe(@"Setting the image data should also set whether or not the image is a template", ^{ @@ -66,80 +139,6 @@ describe(@"SDLArtwork", ^{ }); }); }); - - describe(@"When setting the name", ^{ - __block NSString *expectedName = nil; - - it(@"should set the passed name correctly", ^{ - NSString *imageName = @"TestImageName"; - expectedName = imageName; - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG name:imageName persistent:true asImageFormat:SDLArtworkImageFormatPNG]; - }); - - context(@"When no name is provided", ^{ - it(@"should create a unique name based on the hash of the image", ^{ - expectedName = [SDLArtwork sdl_md5HashFromNSData:UIImagePNGRepresentation(testImagePNG)]; - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG persistent:true asImageFormat:SDLArtworkImageFormatPNG]; - }); - - it(@"should create an empty string if the image is nil", ^{ - UIImage *testNilImage = nil; - expectedName = @""; - expectedArtwork = [[SDLArtwork alloc] initWithImage:testNilImage persistent:true asImageFormat:SDLArtworkImageFormatPNG]; - }); - }); - - afterEach(^{ - if (expectedName.length == 0) { - expect(expectedArtwork.name).to(beNil()); - } else { - expect(expectedName).to(equal(expectedArtwork.name)); - } - }); - }); - - describe(@"When setting the image format", ^{ - __block SDLFileType expectedImageFormat = nil; - __block NSData *expectedImageData = nil; - - it(@"should create a PNG image successfully", ^{ - expectedImageFormat = SDLFileTypePNG; - expectedImageData = UIImagePNGRepresentation(testImagePNG); - - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG name:@"testImagePNG" persistent:true asImageFormat:SDLArtworkImageFormatPNG]; - }); - - it(@"should create a JPG image successfully", ^{ - expectedImageFormat = SDLFileTypeJPEG; - expectedImageData = UIImageJPEGRepresentation(testImageJPG, 0.85); - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImageJPG name:@"testImageJPG" persistent:true asImageFormat:SDLArtworkImageFormatJPG]; - }); - - afterEach(^{ - expect(expectedImageFormat).to(equal(expectedArtwork.fileType)); - expect(expectedImageData).to(equal(expectedArtwork.data)); - }); - }); - - describe(@"When setting the image persistence", ^{ - __block Boolean expectedPersistance = false; - - it(@"should set the image persistence to ephemeral successfully", ^{ - Boolean persistance = false; - expectedPersistance = persistance; - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG name:@"testImagePNG" persistent:persistance asImageFormat:SDLArtworkImageFormatPNG]; - }); - - it(@"should set the image persistence to permanent successfully", ^{ - Boolean persistance = true; - expectedPersistance = persistance; - expectedArtwork = [[SDLArtwork alloc] initWithImage:testImagePNG name:@"testImagePNG" persistent:persistance asImageFormat:SDLArtworkImageFormatPNG]; - }); - - afterEach(^{ - expect(expectedPersistance).to(equal(expectedArtwork.persistent)); - }); - }); }); context(@"A name created from hashing the image data should be unique to the image", ^{ @@ -163,19 +162,6 @@ describe(@"SDLArtwork", ^{ expect(expectedName1).toNot(equal(expectedName2)); }); }); - - context(@"If generating a name for the artwork using the md5 hash", ^{ - __block NSString *expectedName = nil; - - beforeEach(^{ - expectedName = nil; - }); - - it(@"should be truncated to 16 characters", ^{ - expectedName = [SDLArtwork sdl_md5HashFromNSData:UIImagePNGRepresentation(testImagePNG)]; - expect(expectedName.length).to(equal(16)); - }); - }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLCheckChoiceVROptionalOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLCheckChoiceVROptionalOperationSpec.m index 2809c3871..265dad6e4 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLCheckChoiceVROptionalOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLCheckChoiceVROptionalOperationSpec.m @@ -6,6 +6,8 @@ #import "SDLChoice.h" #import "SDLCreateInteractionChoiceSet.h" #import "SDLCreateInteractionChoiceSetResponse.h" +#import "SDLDeleteInteractionChoiceSet.h" +#import "SDLDeleteInteractionChoiceSetResponse.h" #import "TestConnectionManager.h" QuickSpecBegin(SDLCheckChoiceVROptionalOperationSpec) @@ -64,15 +66,26 @@ describe(@"check choice VR optional operation", ^{ [testConnectionManager respondToLastRequestWithResponse:testResponse]; }); - it(@"should have called the completion handler with proper data", ^{ - expect(hasCalledOperationCompletionHandler).toEventually(beTrue()); - expect(resultVROptional).to(beTrue()); - expect(resultError).to(beNil()); + it(@"should have sent a DeleteChoiceSet request", ^{ + expect(testConnectionManager.receivedRequests.lastObject).to(beAnInstanceOf([SDLDeleteInteractionChoiceSet class])); }); - it(@"should be set to finished", ^{ - expect(@(testOp.finished)).to(equal(@YES)); - expect(@(testOp.executing)).to(equal(@NO)); + describe(@"after the DeleteChoiceSet response", ^{ + beforeEach(^{ + SDLDeleteInteractionChoiceSetResponse *testDeleteResponse = [[SDLDeleteInteractionChoiceSetResponse alloc] init]; + testDeleteResponse.success = @YES; + testDeleteResponse.resultCode = SDLResultSuccess; + + [testConnectionManager respondToLastRequestWithResponse:testDeleteResponse]; + }); + + it(@"should have called the completion handler with proper data and finish", ^{ + expect(hasCalledOperationCompletionHandler).toEventually(beTrue()); + expect(resultVROptional).to(beTrue()); + expect(resultError).to(beNil()); + expect(@(testOp.finished)).to(equal(@YES)); + expect(@(testOp.executing)).to(equal(@NO)); + }); }); }); @@ -109,15 +122,22 @@ describe(@"check choice VR optional operation", ^{ [testConnectionManager respondToLastRequestWithResponse:testResponse]; }); - it(@"should have called the completion handler with proper data", ^{ - expect(hasCalledOperationCompletionHandler).toEventually(beTrue()); - expect(resultVROptional).toEventually(beFalse()); - expect(resultError).toEventually(beNil()); - }); - - it(@"should be set to finished", ^{ - expect(@(testOp.finished)).to(equal(@YES)); - expect(@(testOp.executing)).to(equal(@NO)); + describe(@"after the DeleteChoiceSet response", ^{ + beforeEach(^{ + SDLDeleteInteractionChoiceSetResponse *testDeleteResponse = [[SDLDeleteInteractionChoiceSetResponse alloc] init]; + testDeleteResponse.success = @YES; + testDeleteResponse.resultCode = SDLResultSuccess; + + [testConnectionManager respondToLastRequestWithResponse:testDeleteResponse]; + }); + + it(@"should have called the completion handler with proper data and finish", ^{ + expect(hasCalledOperationCompletionHandler).toEventually(beTrue()); + expect(resultVROptional).to(beFalse()); + expect(resultError).to(beNil()); + expect(@(testOp.finished)).to(equal(@YES)); + expect(@(testOp.executing)).to(equal(@NO)); + }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m index 100acc9c2..9f49311f7 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m @@ -14,6 +14,7 @@ #import "SDLLifecycleConfigurationUpdate.h" #import "SDLSpeechCapabilities.h" #import "SDLTTSChunk.h" +#import "SDLVersion.h" @interface SDLLifecycleConfiguration() @@ -31,9 +32,11 @@ describe(@"A lifecycle configuration", ^{ __block NSString *testAppId = @"00542596"; __block NSString *testFullAppId = @"-ab--987-adfa651kj-212346h3kjkaju"; __block NSString *expectedGeneratedAppId = @"ab987adfa6"; + __block SDLVersion *baseVersion = nil; beforeEach(^{ testConfig = nil; + baseVersion = [SDLVersion versionWithMajor:1 minor:0 patch:0]; }); context(@"created with a default configuration", ^{ @@ -69,6 +72,8 @@ describe(@"A lifecycle configuration", ^{ expect(testConfig.ttsName).to(beNil()); expect(testConfig.voiceRecognitionCommandNames).to(beNil()); expect(testConfig.resumeHash).to(beNil()); + expect(testConfig.minimumProtocolVersion).to(equal(baseVersion)); + expect(testConfig.minimumRPCVersion).to(equal(baseVersion)); }); }); @@ -98,6 +103,8 @@ describe(@"A lifecycle configuration", ^{ testConfig.ttsName = testTTSName; testConfig.voiceRecognitionCommandNames = testSynonyms; testConfig.resumeHash = testResumeHashString; + testConfig.minimumProtocolVersion = [SDLVersion versionWithString:@"1.0.0"]; + testConfig.minimumRPCVersion = [SDLVersion versionWithString:@"2.0.0"]; }); afterEach(^{ @@ -117,6 +124,8 @@ describe(@"A lifecycle configuration", ^{ expect(testConfig.ttsName).to(haveCount(@1)); expect(testConfig.voiceRecognitionCommandNames).to(haveCount(@(testSynonyms.count))); expect(testConfig.resumeHash).to(match(testResumeHashString)); + expect(testConfig.minimumProtocolVersion.stringVersion).to(equal(@"1.0.0")); + expect(testConfig.minimumRPCVersion.stringVersion).to(equal(@"2.0.0")); }); }); }); @@ -161,6 +170,8 @@ describe(@"A lifecycle configuration", ^{ expect(testConfig.ttsName).to(beNil()); expect(testConfig.voiceRecognitionCommandNames).to(beNil()); expect(testConfig.resumeHash).to(beNil()); + expect(testConfig.minimumProtocolVersion).to(equal(baseVersion)); + expect(testConfig.minimumRPCVersion).to(equal(baseVersion)); }); }); @@ -170,6 +181,7 @@ describe(@"A lifecycle configuration", ^{ __block NSArray<SDLTTSChunk *> *testTTSName = nil; __block NSArray<NSString *> *testSynonyms = nil; __block NSString *testResumeHashString = nil; + __block SDLVersion *testVersion = nil; beforeEach(^{ testConfig = [SDLLifecycleConfiguration debugConfigurationWithAppName:testAppName fullAppId:testFullAppId ipAddress:testIPAddress port:testPort]; @@ -181,6 +193,7 @@ describe(@"A lifecycle configuration", ^{ testTTSName = @[testTTSChunk]; testSynonyms = @[@"Test 1", @"Test 2", @"Test 3", @"Test 4"]; testResumeHashString = @"testing"; + testVersion = [SDLVersion versionWithMajor:1 minor:0 patch:0]; testConfig.appType = SDLAppHMITypeInformation; testConfig.additionalAppTypes = @[SDLAppHMITypeProjection]; @@ -190,6 +203,8 @@ describe(@"A lifecycle configuration", ^{ testConfig.ttsName = testTTSName; testConfig.voiceRecognitionCommandNames = testSynonyms; testConfig.resumeHash = testResumeHashString; + testConfig.minimumRPCVersion = testVersion; + testConfig.minimumProtocolVersion = testVersion; }); afterEach(^{ @@ -209,6 +224,8 @@ describe(@"A lifecycle configuration", ^{ expect(testConfig.ttsName).to(haveCount(@1)); expect(testConfig.voiceRecognitionCommandNames).to(haveCount(@(testSynonyms.count))); expect(testConfig.resumeHash).to(match(testResumeHashString)); + expect(testConfig.minimumRPCVersion).to(equal(testVersion)); + expect(testConfig.minimumProtocolVersion).to(equal(testVersion)); }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m index 49892f366..83805292a 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m @@ -4,6 +4,7 @@ #import "SDLLifecycleManager.h" +#import "SDLAppServiceData.h" #import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" #import "SDLError.h" @@ -16,14 +17,18 @@ #import "SDLLogConfiguration.h" #import "SDLManagerDelegate.h" #import "SDLNotificationDispatcher.h" +#import "SDLOnAppInterfaceUnregistered.h" +#import "SDLOnAppServiceData.h" #import "SDLOnHashChange.h" #import "SDLOnHMIStatus.h" +#import "SDLPerformAppServiceInteractionResponse.h" #import "SDLPermissionManager.h" #import "SDLProxy.h" #import "SDLProtocol.h" #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLResult.h" +#import "SDLRPCNotificationNotification.h" #import "SDLShow.h" #import "SDLStateMachine.h" #import "SDLStreamingMediaConfiguration.h" @@ -33,6 +38,7 @@ #import "SDLTTSChunk.h" #import "SDLUnregisterAppInterface.h" #import "SDLUnregisterAppInterfaceResponse.h" +#import "SDLVersion.h" // Ignore the deprecated proxy methods @@ -42,6 +48,7 @@ @interface SDLLifecycleManager () // this private property is used for testing @property (copy, nonatomic) dispatch_queue_t lifecycleQueue; +@property (assign, nonatomic) int32_t lastCorrelationId; @end QuickConfigurationBegin(SendingRPCsConfiguration) @@ -128,7 +135,10 @@ describe(@"a lifecycle manager", ^{ expect(testManager.responseDispatcher).toNot(beNil()); expect(testManager.streamManager).toNot(beNil()); expect(testManager.systemCapabilityManager).toNot(beNil()); + expect(testManager.rpcOperationQueue).toNot(beNil()); + expect(testManager.rpcOperationQueue.maxConcurrentOperationCount).to(equal(3)); expect(@([testManager conformsToProtocol:@protocol(SDLConnectionManagerType)])).to(equal(@YES)); + expect(testManager.authToken).to(beNil()); }); itBehavesLike(@"unable to send an RPC", ^{ return @{ @"manager": testManager }; }); @@ -254,6 +264,20 @@ describe(@"a lifecycle manager", ^{ }); }); }); + + describe(@"in the connected state when the minimum protocol version is in effect", ^{ + beforeEach(^{ + SDLVersion *oldVersion = [SDLVersion versionWithMajor:0 minor:0 patch:0]; + id globalMock = OCMPartialMock([SDLGlobals sharedGlobals]); + OCMStub([globalMock protocolVersion]).andReturn(oldVersion); + OCMExpect([protocolMock endServiceWithType:SDLServiceTypeRPC]); + [testManager.lifecycleStateMachine setToState:SDLLifecycleStateConnected fromOldState:nil callEnterTransition:YES]; + }); + + it(@"should disconnect", ^{ + OCMVerifyAll(protocolMock); + }); + }); describe(@"in the connected state", ^{ beforeEach(^{ @@ -311,6 +335,20 @@ describe(@"a lifecycle manager", ^{ }); }); }); + + describe(@"transitioning to the registered state when the minimum RPC version is in effect", ^{ + beforeEach(^{ + SDLVersion *oldVersion = [SDLVersion versionWithMajor:0 minor:0 patch:0]; + id globalMock = OCMPartialMock([SDLGlobals sharedGlobals]); + OCMStub([globalMock rpcVersion]).andReturn(oldVersion); + + [testManager.lifecycleStateMachine setToState:SDLLifecycleStateRegistered fromOldState:nil callEnterTransition:YES]; + }); + + it(@"should disconnect", ^{ + expect(testManager.lifecycleState).to(equal(SDLLifecycleStateUnregistering)); + }); + }); describe(@"transitioning to the Setting Up HMI state", ^{ context(@"before register response is a success", ^{ @@ -441,13 +479,69 @@ describe(@"a lifecycle manager", ^{ [testManager.lifecycleStateMachine setToState:SDLLifecycleStateReady fromOldState:nil callEnterTransition:NO]; }); - it(@"can send an RPC", ^{ + it(@"can send an RPC of type Request", ^{ SDLShow *testShow = [[SDLShow alloc] initWithMainField1:@"test" mainField2:nil alignment:nil]; - [testManager sendRequest:testShow]; + [testManager sendRPC:testShow]; + + [NSThread sleepForTimeInterval:0.1]; + + OCMVerify([proxyMock sendRPC:[OCMArg isKindOfClass:SDLShow.class]]); + }); + + it(@"can send an RPC of type Response", ^{ + SDLPerformAppServiceInteractionResponse *testResponse = [[SDLPerformAppServiceInteractionResponse alloc] init]; + [testManager sendRPC:testResponse]; + testResponse.correlationID = @(2); + testResponse.success = @(true); + testResponse.resultCode = SDLResultSuccess; + testResponse.info = @"testResponse info"; + + [NSThread sleepForTimeInterval:0.1]; + + OCMVerify([proxyMock sendRPC:[OCMArg isKindOfClass:SDLPerformAppServiceInteractionResponse.class]]); + }); + + it(@"can send an RPC of type Notification", ^{ + SDLOnAppServiceData *testNotification = [[SDLOnAppServiceData alloc] initWithServiceData:[[SDLAppServiceData alloc] init]]; + [testManager sendRPC:testNotification]; + + [NSThread sleepForTimeInterval:0.1]; + + OCMVerify([proxyMock sendRPC:[OCMArg isKindOfClass:SDLOnAppServiceData.class]]); + }); - OCMVerify([proxyMock sendRPC:[OCMArg isKindOfClass:[SDLShow class]]]); + it(@"should throw an exception if the RPC is not of type `Request`, `Response` or `Notification`", ^{ + SDLRPCMessage *testMessage = [[SDLRPCMessage alloc] init]; + expectAction(^{ + [testManager sendRPC:testMessage]; + }).to(raiseException()); }); + describe(@"stopping the manager on certain SDLAppInterfaceUnregisteredReason", ^{ + it(@"should attempt to stop the manager when a PROTOCOL_VIOLATION notification is recieved", ^{ + + SDLOnAppInterfaceUnregistered *unreg = [[SDLOnAppInterfaceUnregistered alloc] init]; + unreg.reason = SDLAppInterfaceUnregisteredReasonProtocolViolation; + + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveAppUnregisteredNotification object:testManager.notificationDispatcher rpcNotification:unreg]; + + [[NSNotificationCenter defaultCenter] postNotification:notification]; + expect(testManager.lifecycleState).toEventually(equal(SDLLifecycleStateStopped)); + }); + + it(@"should attempt to stop the manager when an APP_UNAUTHORIZED notification is recieved", ^{ + + SDLOnAppInterfaceUnregistered *unreg = [[SDLOnAppInterfaceUnregistered alloc] init]; + unreg.reason = SDLAppInterfaceUnregisteredReasonAppUnauthorized; + + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveAppUnregisteredNotification object:testManager.notificationDispatcher rpcNotification:unreg]; + + [[NSNotificationCenter defaultCenter] postNotification:notification]; + expect(testManager.lifecycleState).toEventually(equal(SDLLifecycleStateStopped)); + }); + }); + + describe(@"stopping the manager", ^{ beforeEach(^{ [testManager stop]; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m deleted file mode 100644 index 47fc3ec74..000000000 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m +++ /dev/null @@ -1,115 +0,0 @@ -#import <Quick/Quick.h> -#import <Nimble/Nimble.h> - -#import "SDLNotificationConstants.h" -#import "SDLNotificationDispatcher.h" - - -QuickSpecBegin(SDLNotificationDispatcherSpec) - -describe(@"a notification dispatcher", ^{ - __block SDLNotificationDispatcher *testDispatcher = nil; - - beforeEach(^{ - testDispatcher = [[SDLNotificationDispatcher alloc] init]; - }); - - it(@"should conform to SDLProxyListener", ^{ - expect(@([testDispatcher conformsToProtocol:@protocol(SDLProxyListener)])).to(beTruthy()); - - expect(@([testDispatcher respondsToSelector:@selector(onOnDriverDistraction:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnHMIStatus:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onProxyClosed)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onProxyOpened)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onAddCommandResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onAddSubMenuResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onAlertManeuverResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onAlertResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onButtonPressResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onChangeRegistrationResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onCreateInteractionChoiceSetResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onDeleteCommandResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onDeleteInteractionChoiceSetResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onDeleteSubMenuResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onDiagnosticMessageResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onDialNumberResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onEncodedSyncPDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onEndAudioPassThruResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onError:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onGenericResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onGetDTCsResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onGetInteriorVehicleDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onGetSystemCapabilityResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onGetVehicleDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onGetWayPointsResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onReceivedLockScreenIcon:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnAppInterfaceUnregistered:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnAudioPassThru:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnButtonEvent:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnButtonPress:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnCommand:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnEncodedSyncPData:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnHashChange:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnLanguageChange:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnLockScreenNotification:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnSyncPData:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnRCStatus:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnSystemRequest:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnTBTClientState:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnTouchEvent:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnVehicleData:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onOnWayPointChange:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onPerformAudioPassThruResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onPerformInteractionResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onPutFileResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onReadDIDResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onRegisterAppInterfaceResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onResetGlobalPropertiesResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onScrollableMessageResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSendHapticDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSendLocationResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSetAppIconResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSetDisplayLayoutResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSetGlobalPropertiesResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSetInteriorVehicleDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSetMediaClockTimerResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onShowConstantTBTResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onShowResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSliderResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSpeakResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSubscribeButtonResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSubscribeVehicleDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSubscribeWayPointsResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onSyncPDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onUpdateTurnListResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onUnregisterAppInterfaceResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeButtonResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeVehicleDataResponse:)])).to(beTruthy()); - expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeWayPointsResponse:)])).to(beTruthy()); - }); - - describe(@"when told to post a notification", ^{ - __block NSString *testNotificationName = nil; - __block NSString *testUserInfo = nil; - - __block NSNotification *returnNotification = nil; - - beforeEach(^{ - testNotificationName = @"com.test.notification"; - testUserInfo = @"testuserinfo"; - - [[NSNotificationCenter defaultCenter] addObserverForName:testNotificationName object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { - returnNotification = note; - }]; - - [testDispatcher postNotificationName:testNotificationName infoObject:testUserInfo]; - }); - - it(@"should post", ^{ - expect(returnNotification.userInfo[SDLNotificationUserInfoObject]).toEventually(match(testUserInfo)); - expect(returnNotification.object).toEventually(equal(testDispatcher)); - }); - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m index efb3cc035..f0e99b902 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m @@ -240,7 +240,7 @@ describe(@"SDLPermissionsManager", ^{ }); describe(@"checking the status of RPCs", ^{ - __block NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *testResultPermissionStatusDict = nil; + __block NSDictionary<SDLPermissionRPCName, NSNumber *> *testResultPermissionStatusDict = nil; context(@"with no permissions data", ^{ beforeEach(^{ @@ -273,14 +273,14 @@ describe(@"SDLPermissionsManager", ^{ context(@"when no data is present", ^{ __block BOOL testObserverCalled = NO; __block SDLPermissionGroupStatus testObserverStatus = SDLPermissionGroupStatusUnknown; - __block NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> *testObserverChangeDict = nil; + __block NSDictionary<SDLPermissionRPCName,NSNumber *> *testObserverChangeDict = nil; beforeEach(^{ testObserverCalled = NO; testObserverStatus = SDLPermissionGroupStatusUnknown; testObserverChangeDict = nil; - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { testObserverChangeDict = change; testObserverStatus = status; testObserverCalled = YES; @@ -297,7 +297,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"when data is already present", ^{ __block NSInteger numberOfTimesObserverCalled = 0; - __block NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> *testObserverBlockChangedDict = nil; + __block NSDictionary<SDLPermissionRPCName,NSNumber *> *testObserverBlockChangedDict = nil; __block SDLPermissionGroupStatus testObserverReturnStatus = SDLPermissionGroupStatusUnknown; context(@"to match an ANY observer", ^{ @@ -311,7 +311,7 @@ describe(@"SDLPermissionsManager", ^{ [[NSNotificationCenter defaultCenter] postNotification:testPermissionsNotification]; // This should be called twice, once for each RPC being observed. It should be called immediately since data should already be present - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName, NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; testObserverBlockChangedDict = changedDict; testObserverReturnStatus = status; @@ -338,7 +338,7 @@ describe(@"SDLPermissionsManager", ^{ [[NSNotificationCenter defaultCenter] postNotification:testPermissionsNotification]; // This should be called twice, once for each RPC being observed. It should be called immediately since data should already be present - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; testObserverBlockChangedDict = change; testObserverReturnStatus = status; @@ -365,7 +365,7 @@ describe(@"SDLPermissionsManager", ^{ [[NSNotificationCenter defaultCenter] postNotification:testPermissionsNotification]; // This should be called twice, once for each RPC being observed. It should be called immediately since data should already be present - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllDisallowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllDisallowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; testObserverReturnStatus = status; }]; @@ -384,7 +384,7 @@ describe(@"SDLPermissionsManager", ^{ __block SDLOnPermissionsChange *testPermissionChangeUpdate = nil; __block SDLPermissionItem *testPermissionUpdated = nil; - __block NSMutableArray<NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> *> *changeDicts = nil; + __block NSMutableArray<NSDictionary<SDLPermissionRPCName,NSNumber*> *> *changeDicts = nil; __block NSMutableArray<NSNumber<SDLUInt> *> *testStatuses = nil; context(@"to match an ANY observer", ^{ @@ -400,7 +400,7 @@ describe(@"SDLPermissionsManager", ^{ [[NSNotificationCenter defaultCenter] postNotification:testPermissionsNotification]; // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:changedDict]; }]; @@ -467,7 +467,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"so that it becomes All Allowed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllDisallowed, testRPCNameFullLimitedBackgroundAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllDisallowed, testRPCNameFullLimitedBackgroundAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:change]; [testStatuses addObject:@(status)]; @@ -510,7 +510,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"so that it goes from All Allowed to mixed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:change]; [testStatuses addObject:@(status)]; @@ -573,7 +573,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"from mixed to disallowed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:change]; [testStatuses addObject:@(status)]; @@ -607,7 +607,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"from disallowed to mixed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull change, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull change, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:change]; [testStatuses addObject:@(status)]; @@ -642,7 +642,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"updating an observer with a new HMI level", ^{ __block NSInteger numberOfTimesObserverCalled = 0; - __block NSMutableArray<NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> *> *changeDicts = nil; + __block NSMutableArray<NSDictionary<SDLPermissionRPCName,NSNumber *> *> *changeDicts = nil; __block NSMutableArray<NSNumber<SDLUInt> *> *testStatuses = nil; context(@"to match an ANY observer", ^{ @@ -658,7 +658,7 @@ describe(@"SDLPermissionsManager", ^{ [[NSNotificationCenter defaultCenter] postNotification:testPermissionsNotification]; // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:changedDict]; [testStatuses addObject:@(status)]; @@ -709,7 +709,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"so that it becomes All Allowed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:changedDict]; [testStatuses addObject:@(status)]; @@ -729,7 +729,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"so that it goes from All Allowed to at least some disallowed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedBackgroundAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedBackgroundAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:changedDict]; [testStatuses addObject:@(status)]; @@ -778,7 +778,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"that goes from disallowed to mixed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:changedDict]; [testStatuses addObject:@(status)]; @@ -797,7 +797,7 @@ describe(@"SDLPermissionsManager", ^{ context(@"that goes from mixed to disallowed", ^{ beforeEach(^{ // Set an observer that should be called immediately for the preexisting data, then called again when new data is sent - [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed, testRPCNameFullLimitedBackgroundAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameFullLimitedAllowed, testRPCNameFullLimitedBackgroundAllowed] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; [changeDicts addObject:changedDict]; [testStatuses addObject:@(status)]; @@ -824,7 +824,7 @@ describe(@"SDLPermissionsManager", ^{ numberOfTimesObserverCalled = 0; // Add two observers - NSUUID *observerId = [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + NSUUID *observerId = [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName, NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; }]; @@ -849,11 +849,11 @@ describe(@"SDLPermissionsManager", ^{ numberOfTimesObserverCalled = 0; // Add two observers - NSUUID *testRemovedObserverId = [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + NSUUID *testRemovedObserverId = [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; }]; - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameFullLimitedAllowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; }]; @@ -878,11 +878,11 @@ describe(@"SDLPermissionsManager", ^{ numberOfTimesObserverCalled = 0; // Add two observers - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; }]; - [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber<SDLBool> *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { + [testPermissionsManager addObserverForRPCs:@[testRPCNameAllAllowed, testRPCNameAllDisallowed] groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary<SDLPermissionRPCName,NSNumber *> * _Nonnull changedDict, SDLPermissionGroupStatus status) { numberOfTimesObserverCalled++; }]; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPreloadChoicesOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPreloadChoicesOperationSpec.m index 0f5b781f7..5bcf2d5de 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPreloadChoicesOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPreloadChoicesOperationSpec.m @@ -46,12 +46,16 @@ describe(@"a preload choices operation", ^{ beforeEach(^{ displayCapabilities = [[SDLDisplayCapabilities alloc] init]; displayCapabilities.graphicSupported = @YES; + SDLTextField *primaryTextField = [[SDLTextField alloc] init]; + primaryTextField.name = SDLTextFieldNameMenuName; + displayCapabilities.textFields = @[primaryTextField]; OCMStub([testFileManager uploadArtworks:[OCMArg any] completionHandler:[OCMArg invokeBlock]]); }); context(@"with artworks", ^{ __block NSSet<SDLChoiceCell *> *cellsWithArtwork = nil; + __block NSSet<SDLChoiceCell *> *cellsWithStaticIcon = nil; __block NSString *art1Name = @"Art1Name"; __block NSString *art2Name = @"Art2Name"; @@ -62,7 +66,26 @@ describe(@"a preload choices operation", ^{ SDLArtwork *cell2Art = [[SDLArtwork alloc] initWithData:cellArtData name:art2Name fileExtension:@"png" persistent:NO]; SDLChoiceCell *cell2WithArtAndSecondary = [[SDLChoiceCell alloc] initWithText:@"Cell2" secondaryText:nil tertiaryText:nil voiceCommands:nil artwork:cell2Art secondaryArtwork:cell2Art]; + SDLArtwork *staticIconArt = [SDLArtwork artworkWithStaticIcon:SDLStaticIconNameDate]; + SDLChoiceCell *cellWithStaticIcon = [[SDLChoiceCell alloc] initWithText:@"Static Icon" secondaryText:nil tertiaryText:nil voiceCommands:nil artwork:staticIconArt secondaryArtwork:nil]; + cellsWithArtwork = [NSSet setWithArray:@[cell1WithArt, cell2WithArtAndSecondary]]; + cellsWithStaticIcon = [NSSet setWithArray:@[cellWithStaticIcon]]; + }); + + context(@"if the menuName is not set", ^{ + it(@"should not send any requests", ^{ + SDLTextField *primaryTextField = [[SDLTextField alloc] init]; + primaryTextField.name = SDLTextFieldNameMenuName; + displayCapabilities.textFields = @[]; + + testOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:testConnectionManager fileManager:testFileManager displayCapabilities:displayCapabilities isVROptional:NO cellsToPreload:cellsWithArtwork]; + [testOp start]; + + NSArray<SDLCreateInteractionChoiceSet *> *receivedRequests = (NSArray<SDLCreateInteractionChoiceSet *> *)testConnectionManager.receivedRequests; + + expect(receivedRequests).to(haveCount(0)); + }); }); context(@"disallowed display capabilities", ^{ @@ -123,6 +146,17 @@ describe(@"a preload choices operation", ^{ }); }); + context(@"when artworks are static icons", ^{ + beforeEach(^{ + testOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:testConnectionManager fileManager:testFileManager displayCapabilities:displayCapabilities isVROptional:NO cellsToPreload:cellsWithStaticIcon]; + [testOp start]; + }); + + it(@"should skip uploading artwork", ^{ + OCMReject([testFileManager uploadArtwork:[OCMArg any] completionHandler:[OCMArg any]]); + }); + }); + context(@"when artwork are not already on the system", ^{ beforeEach(^{ OCMStub([testFileManager hasUploadedFile:[OCMArg isNotNil]]).andReturn(NO); @@ -147,8 +181,7 @@ describe(@"a preload choices operation", ^{ beforeEach(^{ SDLChoiceCell *cellBasic = [[SDLChoiceCell alloc] initWithText:@"Cell1" artwork:nil voiceCommands:nil]; SDLChoiceCell *cellWithVR = [[SDLChoiceCell alloc] initWithText:@"Cell2" secondaryText:nil tertiaryText:nil voiceCommands:@[@"Cell2"] artwork:nil secondaryArtwork:nil]; - SDLChoiceCell *cellWithAllText = [[SDLChoiceCell alloc] initWithText:@"Cell2" secondaryText:@"Cell2" tertiaryText:@"Cell2" voiceCommands:nil artwork:nil secondaryArtwork:nil]; - + SDLChoiceCell *cellWithAllText = [[SDLChoiceCell alloc] initWithText:@"Cell2" secondaryText:@"Cell2" tertiaryText:@"Cell2" voiceCommands:nil artwork:nil secondaryArtwork:nil]; cellsWithoutArtwork = [NSSet setWithArray:@[cellBasic, cellWithVR, cellWithAllText]]; }); @@ -160,11 +193,10 @@ describe(@"a preload choices operation", ^{ it(@"should be correct with no text and VR required", ^{ testOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:testConnectionManager fileManager:testFileManager displayCapabilities:displayCapabilities isVROptional:NO cellsToPreload:cellsWithoutArtwork]; [testOp start]; - NSArray<SDLCreateInteractionChoiceSet *> *receivedRequests = (NSArray<SDLCreateInteractionChoiceSet *> *)testConnectionManager.receivedRequests; expect(receivedRequests).to(haveCount(3)); - expect(receivedRequests.lastObject.choiceSet.firstObject.menuName).to(beNil()); + expect(receivedRequests.lastObject.choiceSet.firstObject.menuName).toNot(beNil()); expect(receivedRequests.lastObject.choiceSet.firstObject.secondaryText).to(beNil()); expect(receivedRequests.lastObject.choiceSet.firstObject.tertiaryText).to(beNil()); expect(receivedRequests.lastObject.choiceSet.firstObject.vrCommands).toNot(beNil()); @@ -228,13 +260,14 @@ describe(@"a preload choices operation", ^{ }); it(@"should be correct with VR optional", ^{ + testOp = [[SDLPreloadChoicesOperation alloc] initWithConnectionManager:testConnectionManager fileManager:testFileManager displayCapabilities:displayCapabilities isVROptional:YES cellsToPreload:cellsWithoutArtwork]; [testOp start]; NSArray<SDLCreateInteractionChoiceSet *> *receivedRequests = (NSArray<SDLCreateInteractionChoiceSet *> *)testConnectionManager.receivedRequests; expect(receivedRequests).to(haveCount(3)); - expect(receivedRequests.lastObject.choiceSet.firstObject.menuName).to(beNil()); + expect(receivedRequests.lastObject.choiceSet.firstObject.menuName).toNot(beNil()); expect(receivedRequests.lastObject.choiceSet.firstObject.secondaryText).to(beNil()); expect(receivedRequests.lastObject.choiceSet.firstObject.tertiaryText).to(beNil()); expect(receivedRequests.lastObject.choiceSet.firstObject.vrCommands).to(beNil()); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m index d9ae6869d..05269c997 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m @@ -310,8 +310,8 @@ describe(@"present choice operation", ^{ }); it(@"should be finished", ^{ - expect(hasCalledOperationCompletionHandler).to(beTrue()); - expect(testOp.isFinished).to(beTrue()); + expect(hasCalledOperationCompletionHandler).toEventually(beTrue()); + expect(testOp.isFinished).toEventually(beTrue()); }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m index a82e2ef65..a7d9a1eec 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m @@ -11,6 +11,14 @@ #import <Nimble/Nimble.h> #import "SDLRTPH264Packetizer.h" +@interface SDLRTPH264Packetizer () + +@property (assign, nonatomic) UInt32 initialTimestamp; +@property (assign, nonatomic) UInt16 sequenceNum; +@property (assign, nonatomic) UInt32 ssrc; + +@end + // read 2-byte in network byte order and convert it to a UInt16 static inline UInt16 sdl_readShortInNetworkByteOrder(const UInt8 *buffer) { return (buffer[0] << 8) | buffer[1]; @@ -226,40 +234,21 @@ describe(@"a RTP H264 packetizer", ^{ }); describe(@"the SSRC field in the header of the RTP packet", ^{ - context(@"when it is not configured", ^{ - it(@"is a random number", ^{ - // No way to test a random number. We only check that it is shared among packets. - NSArray<NSData *> *nalUnits1 = @[iframe]; - NSArray<NSData *> *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; - const UInt8 *header = results[0].bytes; - UInt32 ssrc = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); + it(@"is same as the given number", ^{ + UInt32 expectedSSRC = 0xFEDCBA98; + packetizer.ssrc = expectedSSRC; - NSArray<NSData *> *nalUnits2 = @[pframe]; - results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; - header = results[0].bytes; - UInt32 ssrc2 = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); - - expect(@(ssrc)).to(equal(@(ssrc2))); - }); - }); - - context(@"when it is explicitly configured", ^{ - it(@"is same as the given number", ^{ - UInt32 expectedSSRC = 0xFEDCBA98; - packetizer.ssrc = expectedSSRC; - - NSArray<NSData *> *nalUnits1 = @[iframe]; - NSArray<NSData *> *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; - const UInt8 *header = results[0].bytes; - UInt32 ssrc = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); - expect(@(ssrc)).to(equal(@(expectedSSRC))); + NSArray<NSData *> *nalUnits1 = @[iframe]; + NSArray<NSData *> *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + UInt32 ssrc = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); + expect(@(ssrc)).to(equal(@(expectedSSRC))); - NSArray<NSData *> *nalUnits2 = @[pframe]; - results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; - header = results[0].bytes; - ssrc = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); - expect(@(ssrc)).to(equal(@(expectedSSRC))); - }); + NSArray<NSData *> *nalUnits2 = @[pframe]; + results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; + header = results[0].bytes; + ssrc = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); + expect(@(ssrc)).to(equal(@(expectedSSRC))); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonManagerSpec.m index 17be53b19..094da3fc8 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonManagerSpec.m @@ -71,6 +71,9 @@ describe(@"a soft button manager", ^{ __block SDLSoftButtonState *object2State1 = [[SDLSoftButtonState alloc] initWithStateName:object2State1Name text:object2State1Text artwork:object2State1Art]; __block SDLSoftButtonState *object2State2 = [[SDLSoftButtonState alloc] initWithStateName:object2State2Name text:object2State2Text image:nil]; + __block SDLArtwork *staticIconArt = [SDLArtwork artworkWithStaticIcon:SDLStaticIconNameDate]; + __block SDLSoftButtonState *staticIconState = [[SDLSoftButtonState alloc] initWithStateName:@"Static State" text:nil artwork:staticIconArt]; + beforeEach(^{ testFileManager = OCMClassMock([SDLFileManager class]); testConnectionManager = [[TestConnectionManager alloc] init]; @@ -183,6 +186,17 @@ describe(@"a soft button manager", ^{ testManager.softButtonCapabilities = softButtonImagesSupported; }); + context(@"when button artworks are static icons", ^{ + beforeEach(^{ + testObject1 = [[SDLSoftButtonObject alloc] initWithName:object1Name state:staticIconState handler:nil]; + testManager.softButtonObjects = @[testObject1]; + }); + + it(@"should not have attempted to upload any artworks", ^{ + OCMReject([testFileManager uploadArtwork:[OCMArg any] completionHandler:[OCMArg any]]); + }); + }); + context(@"when button artworks are already on the file system", ^{ beforeEach(^{ OCMStub([testFileManager hasUploadedFile:[OCMArg isNotNil]]).andReturn(YES); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonStateSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonStateSpec.m index ffea7c58e..e62a9256f 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonStateSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLSoftButtonStateSpec.m @@ -60,6 +60,17 @@ describe(@"soft button state", ^{ expect(testSoftButton.image.value).to(equal(testArtworkName)); }); }); + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-value" + context(@"when created invalid", ^{ + it(@"should assert", ^{ + expectAction(^{ + [[SDLSoftButtonState alloc] initWithStateName:testStateName text:nil image:nil]; + }).to(raiseException()); + }); + }); +#pragma clang diagnostic pop }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m index efb5a5f64..a9d72aa53 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m @@ -22,7 +22,6 @@ describe(@"A state machine", ^{ beforeEach(^{ testTarget = [[TestStateMachineTarget alloc] init]; - testStateMachine = [[SDLStateMachine alloc] initWithTarget:testTarget initialState:initialState states:allowableStateTransitions]; }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m index 9d5bec9a5..872f5eb72 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m @@ -3,12 +3,14 @@ #import <OCMock/OCMock.h> #import "SDLCarWindowViewController.h" +#import "SDLConfiguration.h" #import "SDLControlFramePayloadConstants.h" #import "SDLControlFramePayloadNak.h" #import "SDLControlFramePayloadVideoStartService.h" #import "SDLControlFramePayloadVideoStartServiceAck.h" #import "SDLDisplayCapabilities.h" #import "SDLFakeStreamingManagerDataSource.h" +#import "SDLFileManagerConfiguration.h" #import "SDLFocusableItemLocator.h" #import "SDLGetSystemCapability.h" #import "SDLGetSystemCapabilityResponse.h" @@ -16,6 +18,9 @@ #import "SDLGlobals.h" #import "SDLHMILevel.h" #import "SDLImageResolution.h" +#import "SDLLifecycleConfiguration.h" +#import "SDLLockScreenConfiguration.h" +#import "SDLLogConfiguration.h" #import "SDLOnHMIStatus.h" #import "SDLProtocol.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -32,6 +37,11 @@ #import "SDLVideoStreamingState.h" #import "TestConnectionManager.h" +@interface SDLStreamingVideoLifecycleManager () +@property (copy, nonatomic, readonly) NSString *appName; +@property (copy, nonatomic, readonly) NSString *videoStreamBackgroundString; +@end + QuickSpecBegin(SDLStreamingVideoLifecycleManagerSpec) describe(@"the streaming video manager", ^{ @@ -39,8 +49,11 @@ describe(@"the streaming video manager", ^{ __block SDLStreamingMediaConfiguration *testConfiguration = [SDLStreamingMediaConfiguration insecureConfiguration]; __block SDLCarWindowViewController *testViewController = [[SDLCarWindowViewController alloc] init]; __block SDLFakeStreamingManagerDataSource *testDataSource = [[SDLFakeStreamingManagerDataSource alloc] init]; - __block NSString *someBackgroundTitleString = nil; __block TestConnectionManager *testConnectionManager = nil; + __block NSString *testAppName = @"Test App"; + __block SDLLifecycleConfiguration * testLifecycleConfiguration = [SDLLifecycleConfiguration defaultConfigurationWithAppName:testAppName fullAppId:@""]; + + __block SDLConfiguration *testConfig = nil; __block void (^sendNotificationForHMILevel)(SDLHMILevel hmiLevel, SDLVideoStreamingState streamState) = ^(SDLHMILevel hmiLevel, SDLVideoStreamingState streamState) { SDLOnHMIStatus *hmiStatus = [[SDLOnHMIStatus alloc] init]; @@ -58,9 +71,13 @@ describe(@"the streaming video manager", ^{ }; testConfiguration.dataSource = testDataSource; testConfiguration.rootViewController = testViewController; - someBackgroundTitleString = @"Open Test App"; testConnectionManager = [[TestConnectionManager alloc] init]; - streamingLifecycleManager = [[SDLStreamingVideoLifecycleManager alloc] initWithConnectionManager:testConnectionManager configuration:testConfiguration]; + + testLifecycleConfiguration.appType = SDLAppHMITypeNavigation; + + testConfig = [SDLConfiguration configurationWithLifecycle:testLifecycleConfiguration lockScreen:SDLLockScreenConfiguration.enabledConfiguration logging:SDLLogConfiguration.debugConfiguration streamingMedia:testConfiguration fileManager:SDLFileManagerConfiguration.defaultConfiguration]; + + streamingLifecycleManager = [[SDLStreamingVideoLifecycleManager alloc] initWithConnectionManager:testConnectionManager configuration:testConfig]; }); it(@"should initialize properties", ^{ @@ -650,6 +667,14 @@ describe(@"the streaming video manager", ^{ }); }); }); + + describe(@"Creating a background video stream string", ^{ + __block NSString *expectedVideoStreamBackgroundString = [NSString stringWithFormat:@"When it is safe to do so, open %@ on your phone", testAppName]; + + it(@"Should return the correct video stream background string for the screen size", ^{ + expect(streamingLifecycleManager.videoStreamBackgroundString).to(match(expectedVideoStreamBackgroundString)); + }); + }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLTextAndGraphicManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLTextAndGraphicManagerSpec.m index 645eceeab..123f38ca4 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLTextAndGraphicManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLTextAndGraphicManagerSpec.m @@ -47,6 +47,7 @@ describe(@"text and graphic manager", ^{ __block NSString *testString = @"some string"; __block NSString *testArtworkName = @"some artwork name"; __block SDLArtwork *testArtwork = [[SDLArtwork alloc] initWithData:[@"Test data" dataUsingEncoding:NSUTF8StringEncoding] name:testArtworkName fileExtension:@"png" persistent:NO]; + __block SDLArtwork *testStaticIcon = [SDLArtwork artworkWithStaticIcon:SDLStaticIconNameDate]; beforeEach(^{ mockFileManager = OCMClassMock([SDLFileManager class]); @@ -765,6 +766,20 @@ describe(@"text and graphic manager", ^{ }); }); + context(@"when the image is a static icon", ^{ + beforeEach(^{ + testManager.primaryGraphic = testStaticIcon; + testManager.batchUpdates = NO; + [testManager updateWithCompletionHandler:nil]; + }); + + it(@"should immediately update without uploading the images", ^{ + OCMReject([mockFileManager uploadArtwork:[OCMArg any] completionHandler:[OCMArg any]]); + expect(testManager.inProgressUpdate.mainField1).to(equal(testTextFieldText)); + expect(testManager.inProgressUpdate.graphic.value).toNot(beNil()); + }); + }); + context(@"when the image is not on the head unit", ^{ beforeEach(^{ OCMStub([mockFileManager hasUploadedFile:[OCMArg isNotNil]]).andReturn(NO); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m index b2a83fca6..e3fb6732f 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m @@ -8,6 +8,7 @@ #import "SDLPutFile.h" #import "SDLPutFileResponse.h" #import "SDLUploadFileOperation.h" +#import "SDLVersion.h" #import "TestConnectionManager.h" #import <zlib.h> @@ -28,7 +29,7 @@ describe(@"Streaming upload of data", ^{ __block NSError *errorResult = nil; beforeEach(^{ - [SDLGlobals sharedGlobals].maxHeadUnitVersion = @"2.0.0"; + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"2.0.0"]; testFileName = nil; testFileData = nil; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLVersionSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLVersionSpec.m new file mode 100644 index 000000000..349f66f6d --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLVersionSpec.m @@ -0,0 +1,108 @@ +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLSyncMsgVersion.h" +#import "SDLVersion.h" + +QuickSpecBegin(SDLVersionSpec) + +describe(@"a version object", ^{ + __block SDLVersion *testVersion = nil; + __block NSUInteger major = 5; __block NSUInteger minor = 4; __block NSUInteger patch = 0; + + beforeEach(^{ + testVersion = nil; + }); + + describe(@"initializers", ^{ + context(@"created from numbers", ^{ + it(@"should match the parameters", ^{ + testVersion = [[SDLVersion alloc] initWithMajor:major minor:minor patch:patch]; + expect(testVersion.major).to(equal(major)); + expect(testVersion.minor).to(equal(minor)); + expect(testVersion.patch).to(equal(patch)); + }); + }); + + context(@"created from a string", ^{ + NSString *goodVersionString = [NSString stringWithFormat:@"%lu.%lu.%lu", major, minor, patch]; + NSString *badVersionStringShort = @"1."; + NSString *badVersionStringLong = @"3.1.0.0"; + + it(@"should throw with a bad short string", ^{ + expectAction(^{ + testVersion = [[SDLVersion alloc] initWithString:badVersionStringShort]; + }).to(raiseException()); + }); + + it(@"should throw with a bad long string", ^{ + expectAction(^{ + testVersion = [[SDLVersion alloc] initWithString:badVersionStringLong]; + }).to(raiseException()); + }); + + it(@"should match the good string", ^{ + testVersion = [[SDLVersion alloc] initWithString:goodVersionString]; + expect(testVersion.major).to(equal(major)); + expect(testVersion.minor).to(equal(minor)); + expect(testVersion.patch).to(equal(patch)); + }); + + it(@"should fail with negative numbers", ^{ + expectAction(^{ + testVersion = [[SDLVersion alloc] initWithString:@"-1.-2.-3"]; + }).to(raiseException()); + }); + }); + + context(@"created from a SyncMsgVersion object", ^{ + beforeEach(^{ + SDLSyncMsgVersion *msgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:major minorVersion:minor patchVersion:patch]; + testVersion = [[SDLVersion alloc] initWithSyncMsgVersion:msgVersion]; + }); + + it(@"should match the parameters", ^{ + expect(testVersion.major).to(equal(major)); + expect(testVersion.minor).to(equal(minor)); + expect(testVersion.patch).to(equal(patch)); + }); + }); + }); + + describe(@"comparing versions", ^{ + __block SDLVersion *lowerVersion = nil; + __block SDLVersion *equalVersion = nil; + __block SDLVersion *higherVersion = nil; + + beforeEach(^{ + testVersion = [[SDLVersion alloc] initWithMajor:major minor:minor patch:patch]; + + lowerVersion = [[SDLVersion alloc] initWithMajor:4 minor:1 patch:0]; + equalVersion = [[SDLVersion alloc] initWithMajor:major minor:minor patch:patch]; + higherVersion = [[SDLVersion alloc] initWithMajor:7 minor:2 patch:4]; + }); + + it(@"should correctly check comparison methods", ^{ + expect([testVersion isGreaterThanVersion:lowerVersion]).to(equal(YES)); + expect([testVersion isGreaterThanVersion:equalVersion]).to(equal(NO)); + expect([testVersion isGreaterThanVersion:higherVersion]).to(equal(NO)); + expect([testVersion isEqualToVersion:lowerVersion]).to(equal(NO)); + expect([testVersion isEqualToVersion:equalVersion]).to(equal(YES)); + expect([testVersion isEqualToVersion:higherVersion]).to(equal(NO)); + expect([testVersion isLessThanVersion:lowerVersion]).to(equal(NO)); + expect([testVersion isLessThanVersion:equalVersion]).to(equal(NO)); + expect([testVersion isLessThanVersion:higherVersion]).to(equal(YES)); + expect([testVersion isGreaterThanOrEqualToVersion:equalVersion]).to(equal(YES)); + expect([testVersion isGreaterThanOrEqualToVersion:lowerVersion]).to(equal(YES)); + expect([testVersion isLessThanOrEqualToVersion:equalVersion]).to(equal(YES)); + expect([testVersion isLessThanVersion:higherVersion]).to(equal(YES)); + }); + }); + + it(@"should correctly turn into a string", ^{ + testVersion = [[SDLVersion alloc] initWithMajor:major minor:minor patch:patch]; + expect(testVersion.stringVersion).to(equal(@"5.4.0")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m b/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m index 21fd0ffcc..d434f1269 100644 --- a/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m +++ b/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m @@ -20,6 +20,7 @@ describe(@"a log configuration", ^{ expect(@(testConfiguration.formatType)).to(equal(@(SDLLogFormatTypeDefault))); expect(@(testConfiguration.asynchronous)).to(equal(@YES)); expect(@(testConfiguration.errorsAsynchronous)).to(equal(@NO)); + expect(@(testConfiguration.areAssertionsDisabled)).to(equal(@NO)); expect(@(testConfiguration.globalLogLevel)).to(equal(@(SDLLogLevelError))); if ([NSProcessInfo processInfo].operatingSystemVersion.majorVersion >= 10) { @@ -40,6 +41,7 @@ describe(@"a log configuration", ^{ expect(@(testConfiguration.formatType)).to(equal(@(SDLLogFormatTypeDetailed))); expect(@(testConfiguration.asynchronous)).to(equal(@YES)); expect(@(testConfiguration.errorsAsynchronous)).to(equal(@NO)); + expect(@(testConfiguration.areAssertionsDisabled)).to(equal(@NO)); expect(@(testConfiguration.globalLogLevel)).to(equal(@(SDLLogLevelDebug))); if ([NSProcessInfo processInfo].operatingSystemVersion.majorVersion >= 10) { diff --git a/SmartDeviceLinkTests/Notifications/SDLNotificationDispatcherSpec.m b/SmartDeviceLinkTests/Notifications/SDLNotificationDispatcherSpec.m new file mode 100644 index 000000000..5b3f87212 --- /dev/null +++ b/SmartDeviceLinkTests/Notifications/SDLNotificationDispatcherSpec.m @@ -0,0 +1,255 @@ +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAddCommand.h" +#import "SDLAddCommandResponse.h" +#import "SDLNotificationConstants.h" +#import "SDLNotificationDispatcher.h" +#import "SDLOnCommand.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRPCRequestNotification.h" +#import "SDLRPCResponseNotification.h" + +QuickSpecBegin(SDLNotificationDispatcherSpec) + +describe(@"a notification dispatcher", ^{ + __block SDLNotificationDispatcher *testDispatcher = nil; + + beforeEach(^{ + testDispatcher = [[SDLNotificationDispatcher alloc] init]; + }); + + it(@"should conform to SDLProxyListener", ^{ + expect(@([testDispatcher conformsToProtocol:@protocol(SDLProxyListener)])).to(beTruthy()); + + // Responses + expect(@([testDispatcher respondsToSelector:@selector(onOnDriverDistraction:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnHMIStatus:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onProxyClosed)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onProxyOpened)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAddCommandResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAddSubMenuResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAlertManeuverResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAlertResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onButtonPressResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onChangeRegistrationResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onCreateInteractionChoiceSetResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteCommandResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteInteractionChoiceSetResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteSubMenuResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDiagnosticMessageResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDialNumberResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onEncodedSyncPDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onEndAudioPassThruResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onError:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGenericResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetAppServiceDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetDTCsResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetFileResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetInteriorVehicleDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetSystemCapabilityResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetVehicleDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetWayPointsResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onReceivedLockScreenIcon:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPerformAppServiceInteractionResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPerformAudioPassThruResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPerformInteractionResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPublishAppServiceResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPutFileResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onReadDIDResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onRegisterAppInterfaceResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onResetGlobalPropertiesResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onScrollableMessageResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSendHapticDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSendLocationResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetAppIconResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetDisplayLayoutResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetGlobalPropertiesResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetInteriorVehicleDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetMediaClockTimerResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onShowConstantTBTResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onShowResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSliderResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSpeakResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSubscribeButtonResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSubscribeVehicleDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSubscribeWayPointsResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSyncPDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUpdateTurnListResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnregisterAppInterfaceResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeButtonResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeVehicleDataResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeWayPointsResponse:)])).to(beTruthy()); + + // Requests + expect(@([testDispatcher respondsToSelector:@selector(onAddCommand:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAddSubMenu:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAlert:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onAlertManeuver:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onButtonPress:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onChangeRegistration:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onCreateInteractionChoiceSet:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteCommand:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteFile:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteInteractionChoiceSet:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDeleteSubMenu:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDiagnosticMessage:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onDialNumber:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onEncodedSyncPData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onEndAudioPassThru:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetAppServiceData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetDTCs:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetFile:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetInteriorVehicleData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetSystemCapability:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetVehicleData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetWayPoints:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onListFiles:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPerformAppServiceInteraction:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPerformAudioPassThru:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPerformInteraction:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPublishAppService:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onPutFile:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onReadDID:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onRegisterAppInterface:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onResetGlobalProperties:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onScrollableMessage:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSendHapticData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSendLocation:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetAppIcon:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetDisplayLayout:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetGlobalProperties:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetInteriorVehicleData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSetMediaClockTimer:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onShow:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onShowConstantTBT:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSlider:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSpeak:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSubscribeButton:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSubscribeVehicleData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSubscribeWayPoints:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSyncPData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onSystemRequest:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnregisterAppInterface:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeButton:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeVehicleData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUnsubscribeWayPoints:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onUpdateTurnList:)])).to(beTruthy()); + + // Notifications + expect(@([testDispatcher respondsToSelector:@selector(onOnAppInterfaceUnregistered:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnAppServiceData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnAudioPassThru:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnButtonEvent:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnButtonPress:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnCommand:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnEncodedSyncPData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnHashChange:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnLanguageChange:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnLockScreenNotification:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnRCStatus:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnSyncPData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnSystemCapabilityUpdated:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnSystemRequest:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnTBTClientState:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnTouchEvent:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnVehicleData:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onOnWayPointChange:)])).to(beTruthy()); + }); + + describe(@"when told to post a notification", ^{ + __block NSString *testNotificationName = nil; + __block NSString *testUserInfo = nil; + __block NSNotification *returnNotification = nil; + + beforeEach(^{ + testNotificationName = @"com.test.notification"; + testUserInfo = @"testuserinfo"; + + [[NSNotificationCenter defaultCenter] addObserverForName:testNotificationName object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + returnNotification = note; + }]; + + [testDispatcher postNotificationName:testNotificationName infoObject:testUserInfo]; + }); + + it(@"should post", ^{ + expect(returnNotification.userInfo[SDLNotificationUserInfoObject]).toEventually(match(testUserInfo)); + expect(returnNotification.object).toEventually(equal(testDispatcher)); + }); + }); + + describe(@"when told to post a response", ^{ + __block NSString *testNotificationName = nil; + __block SDLAddCommandResponse *testResponse = nil; + __block SDLRPCResponseNotification *testNotification = nil; + + beforeEach(^{ + testNotificationName = SDLDidReceiveAddCommandResponse; + testResponse = [[SDLAddCommandResponse alloc] init]; + + [[NSNotificationCenter defaultCenter] addObserverForName:testNotificationName object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + SDLRPCResponseNotification *requestNotification = (SDLRPCResponseNotification *)note; + testNotification = requestNotification; + }]; + + [testDispatcher postRPCResponseNotification:testNotificationName response:testResponse]; + }); + + it(@"should successfully post a response", ^{ + expect(testNotification.name).toEventually(equal(testNotificationName)); + expect(testNotification.response).toEventually(equal(testResponse)); + expect(testNotification.object).toEventually(equal(testDispatcher)); + }); + }); + + describe(@"when told to post a request", ^{ + __block NSString *testNotificationName = nil; + __block SDLAddCommand *testRequest = nil; + __block SDLRPCRequestNotification *testNotification = nil; + + beforeEach(^{ + testNotificationName = SDLDidReceiveAddCommandRequest; + testRequest = [[SDLAddCommand alloc] init]; + + [[NSNotificationCenter defaultCenter] addObserverForName:testNotificationName object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + SDLRPCRequestNotification *requestNotification = (SDLRPCRequestNotification *)note; + testNotification = requestNotification; + }]; + + [testDispatcher postRPCRequestNotification:testNotificationName request:testRequest]; + }); + + it(@"should successfully post a request", ^{ + expect(testNotification.name).toEventually(equal(testNotificationName)); + expect(testNotification.request).toEventually(equal(testRequest)); + expect(testNotification.object).toEventually(equal(testDispatcher)); + }); + }); + + describe(@"when told to post a notification", ^{ + __block NSString *testNotificationName = nil; + __block SDLOnCommand *testNotificationRequest = nil; + __block SDLRPCNotificationNotification *testNotification = nil; + + beforeEach(^{ + testNotificationName = SDLDidReceiveCommandNotification; + testNotificationRequest = [[SDLOnCommand alloc] init]; + + [[NSNotificationCenter defaultCenter] addObserverForName:testNotificationName object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + SDLRPCNotificationNotification *requestNotification = (SDLRPCNotificationNotification *)note; + testNotification = requestNotification; + }]; + + [testDispatcher postRPCNotificationNotification:testNotificationName notification:testNotificationRequest]; + }); + + it(@"should successfully post a notification", ^{ + expect(testNotification.name).toEventually(equal(testNotificationName)); + expect(testNotification.notification).toEventually(equal(testNotificationRequest)); + expect(testNotification.object).toEventually(equal(testDispatcher)); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m b/SmartDeviceLinkTests/Notifications/SDLResponseDispatcherSpec.m index 410d24386..410d24386 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m +++ b/SmartDeviceLinkTests/Notifications/SDLResponseDispatcherSpec.m diff --git a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m index f2aeb1303..a578ec561 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m @@ -11,7 +11,7 @@ #import "SDLProtocolHeader.h" #import "SDLV1ProtocolHeader.h" #import "SDLV2ProtocolHeader.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLProtocolHeaderSpec) diff --git a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m index 66abf2022..a7c6c1660 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLV1ProtocolHeader.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLV1ProtocolHeaderSpec) diff --git a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m index 74969e062..1ade6e426 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLV2ProtocolHeader.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLV2ProtocolHeaderSpec) diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLControlFramePayloadConstantsSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLControlFramePayloadConstantsSpec.m new file mode 100644 index 000000000..dba3e9a8b --- /dev/null +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLControlFramePayloadConstantsSpec.m @@ -0,0 +1,40 @@ +// +// SDLControlFramePayloadConstantsSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/27/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLControlFramePayloadConstants.h" + +QuickSpecBegin(SDLControlFramePayloadConstantsSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLControlFrameInt32NotFound).to(equal(-1)); + expect(SDLControlFrameInt64NotFound).to(equal(-1)); + expect(SDLControlFrameProtocolVersionKey).to(equal(@"protocolVersion")); + expect(SDLControlFrameHashIdKey).to(equal(@"hashId")); + expect(SDLControlFrameMTUKey).to(equal(@"mtu")); + expect(SDLControlFrameSecondaryTransportsKey).to(equal(@"secondaryTransports")); + expect(SDLControlFrameAudioServiceTransportsKey).to(equal(@"audioServiceTransports")); + expect(SDLControlFrameVideoServiceTransportsKey).to(equal(@"videoServiceTransports")); + expect(SDLControlFrameAuthTokenKey).to(equal(@"authToken")); + expect(SDLControlFrameRejectedParams).to(equal(@"rejectedParams")); + expect(SDLControlFrameReasonKey).to(equal(@"reason")); + expect(SDLControlFrameVideoProtocolKey).to(equal(@"videoProtocol")); + expect(SDLControlFrameVideoCodecKey).to(equal(@"videoCodec")); + expect(SDLControlFrameHeightKey).to(equal(@"height")); + expect(SDLControlFrameWidthKey).to(equal(@"width")); + expect(SDLControlFrameTCPIPAddressKey).to(equal(@"tcpIpAddress")); + expect(SDLControlFrameTCPPortKey).to(equal(@"tcpPort")); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m index 8c6f03f9c..b562d8c2d 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m @@ -15,7 +15,7 @@ #import "SDLV1ProtocolMessage.h" #import "SDLV2ProtocolHeader.h" #import "SDLV2ProtocolMessage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLProtocolMessageSpec) diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m index 6ff840374..a087dc86f 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m @@ -11,35 +11,36 @@ #import "SDLTransportType.h" #import "SDLControlFramePayloadRegisterSecondaryTransportNak.h" +#import "SDLControlFramePayloadRPCStartServiceAck.h" #import "SDLGlobals.h" #import "SDLProtocolHeader.h" #import "SDLProtocol.h" #import "SDLProtocolMessage.h" #import "SDLProtocolReceivedMessageRouter.h" #import "SDLRPCRequest.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLV1ProtocolMessage.h" #import "SDLV2ProtocolMessage.h" #import "SDLV1ProtocolHeader.h" #import "SDLV2ProtocolHeader.h" - +#import "SDLVersion.h" QuickSpecBegin(SDLProtocolSpec) //Test dictionaries -NSDictionary* dictionaryV1 = @{SDLNameRequest: - @{SDLNameOperationName:@"DeleteCommand", - SDLNameCorrelationId:@0x98765, - SDLNameParameters: - @{SDLNameCommandId:@55}}}; -NSDictionary* dictionaryV2 = @{SDLNameCommandId:@55}; +NSDictionary* dictionaryV1 = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameOperationName:@"DeleteCommand", + SDLRPCParameterNameCorrelationId:@0x98765, + SDLRPCParameterNameParameters: + @{SDLRPCParameterNameCommandId:@55}}}; +NSDictionary* dictionaryV2 = @{SDLRPCParameterNameCommandId:@55}; describe(@"Send StartService Tests", ^ { context(@"Unsecure", ^{ it(@"Should send the correct data", ^ { // Reset max protocol version before test. (This test case expects V1 header. If other test ran // prior to this one, SDLGlobals would keep the max protocol version and this test case would fail.) - [[SDLGlobals sharedGlobals] setMaxHeadUnitVersion:@"1.0.0"]; + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"1.0.0"]; SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; @@ -65,7 +66,7 @@ describe(@"Send StartService Tests", ^ { it(@"Should reuse stored header of RPC service when starting other service", ^{ // reset max protocol version before test - [[SDLGlobals sharedGlobals] setMaxHeadUnitVersion:@"2.0.0"]; + [SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"2.0.0"]; SDLServiceType serviceTypeToStart = SDLServiceTypeVideo; @@ -404,23 +405,158 @@ describe(@"HandleBytesFromTransport Tests", ^ { }); }); -xdescribe(@"HandleProtocolSessionStarted Tests", ^ { - it(@"Should pass information along to delegate", ^ { - SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; - - id delegateMock = OCMProtocolMock(@protocol(SDLProtocolListener)); - - SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; - testHeader.frameType = SDLFrameTypeControl; - testHeader.serviceType = SDLServiceTypeRPC; - testHeader.frameData = SDLFrameInfoStartServiceACK; - testHeader.sessionID = 0x93; - testHeader.bytesInPayload = 0; - - [testProtocol.protocolDelegateTable addObject:delegateMock]; - [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; - - OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); +describe(@"HandleProtocolSessionStarted tests", ^ { + __block SDLProtocol *testProtocol = nil; + __block id delegateMock = nil; + + beforeEach(^{ + testProtocol = [[SDLProtocol alloc] init]; + delegateMock = OCMProtocolMock(@protocol(SDLProtocolListener)); + [[SDLGlobals sharedGlobals] init]; // Make sure to reset between tests + }); + + context(@"For protocol versions 5.0.0 and greater", ^{ + __block NSString *testAuthToken = nil; + + beforeEach(^{ + testAuthToken = @"testAuthToken"; + }); + + context(@"If the service type is RPC", ^{ + it(@"Should store the auth token and the protocol version and pass the start service along to the delegate", ^{ + SDLControlFramePayloadRPCStartServiceAck *testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:1545784 mtu:989786483 authToken:testAuthToken protocolVersion:@"5.2.0" secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + NSData *testData = testPayload.data; + + SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartServiceACK; + testHeader.sessionID = 0x93; + testHeader.bytesInPayload = (UInt32)testData.length; + + [testProtocol.protocolDelegateTable addObject:delegateMock]; + [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:testData]]; + + OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); + + expect(testProtocol.authToken).to(equal(testAuthToken)); + expect([SDLGlobals sharedGlobals].protocolVersion.stringVersion).to(equal(@"5.2.0")); + expect([SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion.stringVersion).to(equal(@"5.2.0")); + }); + + it(@"Should store the protocol version, but not get the auth token, and pass the start service along to the delegate if the protocol version is greater than 5.0.0 but less than 5.2.0", ^{ + SDLControlFramePayloadRPCStartServiceAck *testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:1545784 mtu:989786483 authToken:testAuthToken protocolVersion:@"5.1.0" secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + NSData *testData = testPayload.data; + + SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartServiceACK; + testHeader.sessionID = 0x93; + testHeader.bytesInPayload = (UInt32)testData.length; + + [testProtocol.protocolDelegateTable addObject:delegateMock]; + [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:testData]]; + + OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); + + expect(testProtocol.authToken).to(beNil()); + expect([SDLGlobals sharedGlobals].protocolVersion.stringVersion).to(equal(@"5.1.0")); + expect([SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion.stringVersion).to(equal(@"5.1.0")); + }); + + it(@"Should set the max head unit version using the header version if the protocol version is missing from the payload", ^{ + SDLControlFramePayloadRPCStartServiceAck *testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:1545784 mtu:989786483 authToken:nil protocolVersion:nil secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + NSData *testData = testPayload.data; + + SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartServiceACK; + testHeader.sessionID = 0x93; + testHeader.bytesInPayload = (UInt32)testData.length; + + [testProtocol.protocolDelegateTable addObject:delegateMock]; + [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:testData]]; + + OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); + + expect(testProtocol.authToken).to(beNil()); + expect([SDLGlobals sharedGlobals].protocolVersion.stringVersion).to(equal(@"5.0.0")); + expect([SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion.stringVersion).to(equal(@"5.0.0")); + }); + }); + + context(@"If the service type is not RPC", ^{ + it(@"Should just pass the start service along to the delegate", ^{ + SDLControlFramePayloadRPCStartServiceAck *testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:1545784 mtu:989786483 authToken:testAuthToken protocolVersion:@"5.1.0" secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + NSData *testData = testPayload.data; + + SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeControl; + testHeader.frameData = SDLFrameInfoStartServiceACK; + testHeader.sessionID = 0x93; + testHeader.bytesInPayload = (UInt32)testData.length; + + [testProtocol.protocolDelegateTable addObject:delegateMock]; + [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:testData]]; + + OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); + + // Should keep their default values + expect(testProtocol.authToken).to(beNil()); + expect([SDLGlobals sharedGlobals].protocolVersion.stringVersion).to(equal(@"1.0.0")); + expect([SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion.stringVersion).to(equal(@"0.0.0")); + }); + }); + }); + + context(@"For protocol versions below 5.0.0", ^{ + context(@"If the service type is RPC", ^{ + it(@"Should store the protocol version and pass the start service along to the delegate", ^{ + SDLControlFramePayloadRPCStartServiceAck *testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:1545784 mtu:989786483 authToken:nil protocolVersion:@"3.1.0" secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + NSData *testData = testPayload.data; + + SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartServiceACK; + testHeader.sessionID = 0x93; + testHeader.bytesInPayload = (UInt32)testData.length; + + [testProtocol.protocolDelegateTable addObject:delegateMock]; + [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:testData]]; + + OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); + + expect([SDLGlobals sharedGlobals].protocolVersion.stringVersion).to(equal(@"3.1.0")); + expect([SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion.stringVersion).to(equal(@"3.1.0")); + }); + }); + + context(@"If the service type is not RPC", ^{ + it(@"Should just pass the start service along to the delegate", ^{ + SDLControlFramePayloadRPCStartServiceAck *testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:1545784 mtu:989786483 authToken:nil protocolVersion:@"4.1.0" secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + NSData *testData = testPayload.data; + + SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:4]; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeControl; + testHeader.frameData = SDLFrameInfoStartServiceACK; + testHeader.sessionID = 0x93; + testHeader.bytesInPayload = (UInt32)testData.length; + + [testProtocol.protocolDelegateTable addObject:delegateMock]; + [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:testData]]; + + OCMExpect([delegateMock handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]); + + // Should keep their default values + expect([SDLGlobals sharedGlobals].protocolVersion.stringVersion).to(equal(@"1.0.0")); + expect([SDLGlobals sharedGlobals].maxHeadUnitProtocolVersion.stringVersion).to(equal(@"0.0.0")); + }); + }); }); }); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m index a017059dc..e546798ac 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m @@ -24,7 +24,7 @@ describe(@"RPCDictionary Tests", ^ { @"Floor": @"Wax", @"Wax": @"Museum"}; SDLV1ProtocolMessage* testMessage = [[SDLV1ProtocolMessage alloc] initWithHeader:testHeader andPayload:[NSJSONSerialization dataWithJSONObject:testDictionary options:0 error:0]]; - + expect([testMessage rpcDictionary]).to(equal(testDictionary)); }); }); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m index 3b73eb172..fe447388c 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m @@ -12,7 +12,7 @@ #import "SDLV2ProtocolMessage.h" #import "SDLV2ProtocolHeader.h" #import "SDLRPCPayload.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLV2ProtocolMessageSpec) diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLControlFramePayloadRPCStartServiceAckSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLControlFramePayloadRPCStartServiceAckSpec.m index 8a198c63e..682d53678 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLControlFramePayloadRPCStartServiceAckSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLControlFramePayloadRPCStartServiceAckSpec.m @@ -18,13 +18,13 @@ describe(@"Test encoding data", ^{ __block NSArray<NSNumber *> *testAudioServiceTransports = nil; __block NSArray<NSNumber *> *testVideoServiceTransports = nil; - context(@"with paramaters", ^{ + context(@"with parameters", ^{ beforeEach(^{ testHashId = 1457689; testMTU = 5984649; testProtocolVersion = @"1.32.32"; - testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU protocolVersion:testProtocolVersion secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU authToken:nil protocolVersion:testProtocolVersion secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; }); it(@"should create the correct data", ^{ @@ -32,7 +32,7 @@ describe(@"Test encoding data", ^{ }); }); - context(@"with secondary transport paramaters", ^{ + context(@"with secondary transport parameters", ^{ beforeEach(^{ testHashId = 987654; testMTU = 4096; @@ -41,7 +41,7 @@ describe(@"Test encoding data", ^{ testAudioServiceTransports = @[@(2)]; testVideoServiceTransports = @[(@2), @(1)]; - testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; }); it(@"should create the correct data", ^{ @@ -54,7 +54,7 @@ describe(@"Test encoding data", ^{ testHashId = SDLControlFrameInt32NotFound; testMTU = SDLControlFrameInt64NotFound; - testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU protocolVersion:nil secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU authToken:nil protocolVersion:nil secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; }); it(@"should create no data", ^{ @@ -68,18 +68,20 @@ describe(@"Test decoding data", ^{ __block NSData *testData = nil; __block int32_t testHashId = 0; __block int64_t testMTU = 0; + __block NSString *testAuthToken = nil; __block NSString *testProtocolVersion = nil; __block NSArray<NSString *> *testSecondaryTransports = nil; __block NSArray<NSNumber *> *testAudioServiceTransports = nil; __block NSArray<NSNumber *> *testVideoServiceTransports = nil; - context(@"with paramaters", ^{ + context(@"with parameters", ^{ beforeEach(^{ testHashId = 1545784; testMTU = 989786483; + testAuthToken = @"testAuthToken"; testProtocolVersion = @"3.89.5"; - SDLControlFramePayloadRPCStartServiceAck *firstPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU protocolVersion:testProtocolVersion secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; + SDLControlFramePayloadRPCStartServiceAck *firstPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU authToken:testAuthToken protocolVersion:testProtocolVersion secondaryTransports:nil audioServiceTransports:nil videoServiceTransports:nil]; testData = firstPayload.data; testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:testData]; @@ -88,20 +90,25 @@ describe(@"Test decoding data", ^{ it(@"should output the correct params", ^{ expect(testPayload.hashId).to(equal(testHashId)); expect(testPayload.mtu).to(equal(testMTU)); + expect(testPayload.authToken).to(equal(testAuthToken)); expect(testPayload.protocolVersion).to(equal(testProtocolVersion)); + expect(testPayload.secondaryTransports).to(beNil()); + expect(testPayload.audioServiceTransports).to(beNil()); + expect(testPayload.videoServiceTransports).to(beNil()); }); }); - context(@"with secondary transportparamaters", ^{ + context(@"with secondary transport parameters", ^{ beforeEach(^{ testHashId = 17999024; testMTU = 1798250; + testAuthToken = @"testAuthToken"; testProtocolVersion = @"6.01.00"; testSecondaryTransports = @[@"TCP_WIFI"]; testAudioServiceTransports = @[@(2), @(1)]; testVideoServiceTransports = @[@(1)]; - SDLControlFramePayloadRPCStartServiceAck *firstPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + SDLControlFramePayloadRPCStartServiceAck *firstPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMTU authToken:testAuthToken protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testData = firstPayload.data; testPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:testData]; @@ -110,6 +117,7 @@ describe(@"Test decoding data", ^{ it(@"should output the correct params", ^{ expect(testPayload.hashId).to(equal(testHashId)); expect(testPayload.mtu).to(equal(testMTU)); + expect(testPayload.authToken).to(equal(testAuthToken)); expect(testPayload.protocolVersion).to(equal(testProtocolVersion)); expect(testPayload.secondaryTransports).to(equal(testSecondaryTransports)); expect(testPayload.audioServiceTransports).to(equal(testAudioServiceTransports)); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m index 8c87737e0..6ae21e4cb 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLFunctionID.h" -#import "SDLNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLFunctionIDSpec) @@ -17,149 +17,165 @@ SDLFunctionID* functionID = [SDLFunctionID sharedInstance]; describe(@"GetFunctionName Tests", ^ { it(@"Should return the correct function name", ^ { - expect([functionID functionNameForId:1]).to(equal(SDLNameRegisterAppInterface)); - expect([functionID functionNameForId:2]).to(equal(SDLNameUnregisterAppInterface)); - expect([functionID functionNameForId:3]).to(equal(SDLNameSetGlobalProperties)); - expect([functionID functionNameForId:4]).to(equal(SDLNameResetGlobalProperties)); - expect([functionID functionNameForId:5]).to(equal(SDLNameAddCommand)); - expect([functionID functionNameForId:6]).to(equal(SDLNameDeleteCommand)); - expect([functionID functionNameForId:7]).to(equal(SDLNameAddSubMenu)); - expect([functionID functionNameForId:8]).to(equal(SDLNameDeleteSubMenu)); - expect([functionID functionNameForId:9]).to(equal(SDLNameCreateInteractionChoiceSet)); - expect([functionID functionNameForId:10]).to(equal(SDLNamePerformInteraction)); - expect([functionID functionNameForId:11]).to(equal(SDLNameDeleteInteractionChoiceSet)); - expect([functionID functionNameForId:12]).to(equal(SDLNameAlert)); - expect([functionID functionNameForId:13]).to(equal(SDLNameShow)); - expect([functionID functionNameForId:14]).to(equal(SDLNameSpeak)); - expect([functionID functionNameForId:15]).to(equal(SDLNameSetMediaClockTimer)); - expect([functionID functionNameForId:16]).to(equal(SDLNamePerformAudioPassThru)); - expect([functionID functionNameForId:17]).to(equal(SDLNameEndAudioPassThru)); - expect([functionID functionNameForId:18]).to(equal(SDLNameSubscribeButton)); - expect([functionID functionNameForId:19]).to(equal(SDLNameUnsubscribeButton)); - expect([functionID functionNameForId:20]).to(equal(SDLNameSubscribeVehicleData)); - expect([functionID functionNameForId:21]).to(equal(SDLNameUnsubscribeVehicleData)); - expect([functionID functionNameForId:22]).to(equal(SDLNameGetVehicleData)); - expect([functionID functionNameForId:23]).to(equal(SDLNameReadDID)); - expect([functionID functionNameForId:24]).to(equal(SDLNameGetDTCs)); - expect([functionID functionNameForId:25]).to(equal(SDLNameScrollableMessage)); - expect([functionID functionNameForId:26]).to(equal(SDLNameSlider)); - expect([functionID functionNameForId:27]).to(equal(SDLNameShowConstantTBT)); - expect([functionID functionNameForId:28]).to(equal(SDLNameAlertManeuver)); - expect([functionID functionNameForId:29]).to(equal(SDLNameUpdateTurnList)); - expect([functionID functionNameForId:30]).to(equal(SDLNameChangeRegistration)); - expect([functionID functionNameForId:31]).to(equal(SDLNameGenericResponse)); - expect([functionID functionNameForId:32]).to(equal(SDLNamePutFile)); - expect([functionID functionNameForId:33]).to(equal(SDLNameDeleteFile)); - expect([functionID functionNameForId:34]).to(equal(SDLNameListFiles)); - expect([functionID functionNameForId:35]).to(equal(SDLNameSetAppIcon)); - expect([functionID functionNameForId:36]).to(equal(SDLNameSetDisplayLayout)); - expect([functionID functionNameForId:37]).to(equal(SDLNameDiagnosticMessage)); - expect([functionID functionNameForId:38]).to(equal(SDLNameSystemRequest)); - expect([functionID functionNameForId:39]).to(equal(SDLNameSendLocation)); - expect([functionID functionNameForId:40]).to(equal(SDLNameDialNumber)); - expect([functionID functionNameForId:45]).to(equal(SDLNameGetWayPoints)); - expect([functionID functionNameForId:46]).to(equal(SDLNameSubscribeWayPoints)); - expect([functionID functionNameForId:47]).to(equal(SDLNameUnsubscribeWayPoints)); - expect([functionID functionNameForId:48]).to(equal(SDLNameGetSystemCapability)); - expect([functionID functionNameForId:49]).to(equal(SDLNameSendHapticData)); - expect([functionID functionNameForId:32768]).to(equal(SDLNameOnHMIStatus)); - expect([functionID functionNameForId:32769]).to(equal(SDLNameOnAppInterfaceUnregistered)); - expect([functionID functionNameForId:32770]).to(equal(SDLNameOnButtonEvent)); - expect([functionID functionNameForId:32771]).to(equal(SDLNameOnButtonPress)); - expect([functionID functionNameForId:32772]).to(equal(SDLNameOnVehicleData)); - expect([functionID functionNameForId:32773]).to(equal(SDLNameOnCommand)); - expect([functionID functionNameForId:32774]).to(equal(SDLNameOnTBTClientState)); - expect([functionID functionNameForId:32775]).to(equal(SDLNameOnDriverDistraction)); - expect([functionID functionNameForId:32776]).to(equal(SDLNameOnPermissionsChange)); - expect([functionID functionNameForId:32777]).to(equal(SDLNameOnAudioPassThru)); - expect([functionID functionNameForId:32778]).to(equal(SDLNameOnLanguageChange)); - expect([functionID functionNameForId:32779]).to(equal(SDLNameOnKeyboardInput)); - expect([functionID functionNameForId:32780]).to(equal(SDLNameOnTouchEvent)); - expect([functionID functionNameForId:32781]).to(equal(SDLNameOnSystemRequest)); - expect([functionID functionNameForId:32782]).to(equal(SDLNameOnHashChange)); - expect([functionID functionNameForId:32784]).to(equal(SDLNameOnWayPointChange)); - expect([functionID functionNameForId:32785]).to(equal(SDLNameOnRCStatus)); + expect([functionID functionNameForId:1]).to(equal(SDLRPCFunctionNameRegisterAppInterface)); + expect([functionID functionNameForId:2]).to(equal(SDLRPCFunctionNameUnregisterAppInterface)); + expect([functionID functionNameForId:3]).to(equal(SDLRPCFunctionNameSetGlobalProperties)); + expect([functionID functionNameForId:4]).to(equal(SDLRPCFunctionNameResetGlobalProperties)); + expect([functionID functionNameForId:5]).to(equal(SDLRPCFunctionNameAddCommand)); + expect([functionID functionNameForId:6]).to(equal(SDLRPCFunctionNameDeleteCommand)); + expect([functionID functionNameForId:7]).to(equal(SDLRPCFunctionNameAddSubMenu)); + expect([functionID functionNameForId:8]).to(equal(SDLRPCFunctionNameDeleteSubMenu)); + expect([functionID functionNameForId:9]).to(equal(SDLRPCFunctionNameCreateInteractionChoiceSet)); + expect([functionID functionNameForId:10]).to(equal(SDLRPCFunctionNamePerformInteraction)); + expect([functionID functionNameForId:11]).to(equal(SDLRPCFunctionNameDeleteInteractionChoiceSet)); + expect([functionID functionNameForId:12]).to(equal(SDLRPCFunctionNameAlert)); + expect([functionID functionNameForId:13]).to(equal(SDLRPCFunctionNameShow)); + expect([functionID functionNameForId:14]).to(equal(SDLRPCFunctionNameSpeak)); + expect([functionID functionNameForId:15]).to(equal(SDLRPCFunctionNameSetMediaClockTimer)); + expect([functionID functionNameForId:16]).to(equal(SDLRPCFunctionNamePerformAudioPassThru)); + expect([functionID functionNameForId:17]).to(equal(SDLRPCFunctionNameEndAudioPassThru)); + expect([functionID functionNameForId:18]).to(equal(SDLRPCFunctionNameSubscribeButton)); + expect([functionID functionNameForId:19]).to(equal(SDLRPCFunctionNameUnsubscribeButton)); + expect([functionID functionNameForId:20]).to(equal(SDLRPCFunctionNameSubscribeVehicleData)); + expect([functionID functionNameForId:21]).to(equal(SDLRPCFunctionNameUnsubscribeVehicleData)); + expect([functionID functionNameForId:22]).to(equal(SDLRPCFunctionNameGetVehicleData)); + expect([functionID functionNameForId:23]).to(equal(SDLRPCFunctionNameReadDID)); + expect([functionID functionNameForId:24]).to(equal(SDLRPCFunctionNameGetDTCs)); + expect([functionID functionNameForId:25]).to(equal(SDLRPCFunctionNameScrollableMessage)); + expect([functionID functionNameForId:26]).to(equal(SDLRPCFunctionNameSlider)); + expect([functionID functionNameForId:27]).to(equal(SDLRPCFunctionNameShowConstantTBT)); + expect([functionID functionNameForId:28]).to(equal(SDLRPCFunctionNameAlertManeuver)); + expect([functionID functionNameForId:29]).to(equal(SDLRPCFunctionNameUpdateTurnList)); + expect([functionID functionNameForId:30]).to(equal(SDLRPCFunctionNameChangeRegistration)); + expect([functionID functionNameForId:31]).to(equal(SDLRPCFunctionNameGenericResponse)); + expect([functionID functionNameForId:32]).to(equal(SDLRPCFunctionNamePutFile)); + expect([functionID functionNameForId:33]).to(equal(SDLRPCFunctionNameDeleteFile)); + expect([functionID functionNameForId:34]).to(equal(SDLRPCFunctionNameListFiles)); + expect([functionID functionNameForId:35]).to(equal(SDLRPCFunctionNameSetAppIcon)); + expect([functionID functionNameForId:36]).to(equal(SDLRPCFunctionNameSetDisplayLayout)); + expect([functionID functionNameForId:37]).to(equal(SDLRPCFunctionNameDiagnosticMessage)); + expect([functionID functionNameForId:38]).to(equal(SDLRPCFunctionNameSystemRequest)); + expect([functionID functionNameForId:39]).to(equal(SDLRPCFunctionNameSendLocation)); + expect([functionID functionNameForId:40]).to(equal(SDLRPCFunctionNameDialNumber)); + expect([functionID functionNameForId:45]).to(equal(SDLRPCFunctionNameGetWayPoints)); + expect([functionID functionNameForId:46]).to(equal(SDLRPCFunctionNameSubscribeWayPoints)); + expect([functionID functionNameForId:47]).to(equal(SDLRPCFunctionNameUnsubscribeWayPoints)); + expect([functionID functionNameForId:48]).to(equal(SDLRPCFunctionNameGetSystemCapability)); + expect([functionID functionNameForId:49]).to(equal(SDLRPCFunctionNameSendHapticData)); + expect([functionID functionNameForId:50]).to(equal(SDLRPCFunctionNameSetCloudAppProperties)); + expect([functionID functionNameForId:51]).to(equal(SDLRPCFunctionNameGetCloudAppProperties)); + expect([functionID functionNameForId:52]).to(equal(SDLRPCFunctionNamePublishAppService)); + expect([functionID functionNameForId:53]).to(equal(SDLRPCFunctionNameGetAppServiceData)); + expect([functionID functionNameForId:54]).to(equal(SDLRPCFunctionNameGetFile)); + expect([functionID functionNameForId:55]).to(equal(SDLRPCFunctionNamePerformAppServiceInteraction)); + expect([functionID functionNameForId:32768]).to(equal(SDLRPCFunctionNameOnHMIStatus)); + expect([functionID functionNameForId:32769]).to(equal(SDLRPCFunctionNameOnAppInterfaceUnregistered)); + expect([functionID functionNameForId:32770]).to(equal(SDLRPCFunctionNameOnButtonEvent)); + expect([functionID functionNameForId:32771]).to(equal(SDLRPCFunctionNameOnButtonPress)); + expect([functionID functionNameForId:32772]).to(equal(SDLRPCFunctionNameOnVehicleData)); + expect([functionID functionNameForId:32773]).to(equal(SDLRPCFunctionNameOnCommand)); + expect([functionID functionNameForId:32774]).to(equal(SDLRPCFunctionNameOnTBTClientState)); + expect([functionID functionNameForId:32775]).to(equal(SDLRPCFunctionNameOnDriverDistraction)); + expect([functionID functionNameForId:32776]).to(equal(SDLRPCFunctionNameOnPermissionsChange)); + expect([functionID functionNameForId:32777]).to(equal(SDLRPCFunctionNameOnAudioPassThru)); + expect([functionID functionNameForId:32778]).to(equal(SDLRPCFunctionNameOnLanguageChange)); + expect([functionID functionNameForId:32779]).to(equal(SDLRPCFunctionNameOnKeyboardInput)); + expect([functionID functionNameForId:32780]).to(equal(SDLRPCFunctionNameOnTouchEvent)); + expect([functionID functionNameForId:32781]).to(equal(SDLRPCFunctionNameOnSystemRequest)); + expect([functionID functionNameForId:32782]).to(equal(SDLRPCFunctionNameOnHashChange)); + expect([functionID functionNameForId:32784]).to(equal(SDLRPCFunctionNameOnWayPointChange)); + expect([functionID functionNameForId:32785]).to(equal(SDLRPCFunctionNameOnRCStatus)); + expect([functionID functionNameForId:32786]).to(equal(SDLRPCFunctionNameOnAppServiceData)); + expect([functionID functionNameForId:32787]).to(equal(SDLRPCFunctionNameOnSystemCapabilityUpdated)); //Not listed in Spec - expect([functionID functionNameForId:65536]).to(equal(SDLNameEncodedSyncPData)); - expect([functionID functionNameForId:65537]).to(equal(SDLNameSyncPData)); + expect([functionID functionNameForId:65536]).to(equal(SDLRPCFunctionNameEncodedSyncPData)); + expect([functionID functionNameForId:65537]).to(equal(SDLRPCFunctionNameSyncPData)); - expect([functionID functionNameForId:98304]).to(equal(SDLNameOnEncodedSyncPData)); - expect([functionID functionNameForId:98305]).to(equal(SDLNameOnSyncPData)); + expect([functionID functionNameForId:98304]).to(equal(SDLRPCFunctionNameOnEncodedSyncPData)); + expect([functionID functionNameForId:98305]).to(equal(SDLRPCFunctionNameOnSyncPData)); }); }); describe(@"GetFunctionID Tests", ^ { it(@"Should return the correct function ID", ^ { - expect([functionID functionIdForName:SDLNameRegisterAppInterface]).to(equal(@1)); - expect([functionID functionIdForName:SDLNameUnregisterAppInterface]).to(equal(@2)); - expect([functionID functionIdForName:SDLNameSetGlobalProperties]).to(equal(@3)); - expect([functionID functionIdForName:SDLNameResetGlobalProperties]).to(equal(@4)); - expect([functionID functionIdForName:SDLNameAddCommand]).to(equal(@5)); - expect([functionID functionIdForName:SDLNameDeleteCommand]).to(equal(@6)); - expect([functionID functionIdForName:SDLNameAddSubMenu]).to(equal(@7)); - expect([functionID functionIdForName:SDLNameDeleteSubMenu]).to(equal(@8)); - expect([functionID functionIdForName:SDLNameCreateInteractionChoiceSet]).to(equal(@9)); - expect([functionID functionIdForName:SDLNamePerformInteraction]).to(equal(@10)); - expect([functionID functionIdForName:SDLNameDeleteInteractionChoiceSet]).to(equal(@11)); - expect([functionID functionIdForName:SDLNameAlert]).to(equal(@12)); - expect([functionID functionIdForName:SDLNameShow]).to(equal(@13)); - expect([functionID functionIdForName:SDLNameSpeak]).to(equal(@14)); - expect([functionID functionIdForName:SDLNameSetMediaClockTimer]).to(equal(@15)); - expect([functionID functionIdForName:SDLNamePerformAudioPassThru]).to(equal(@16)); - expect([functionID functionIdForName:SDLNameEndAudioPassThru]).to(equal(@17)); - expect([functionID functionIdForName:SDLNameSubscribeButton]).to(equal(@18)); - expect([functionID functionIdForName:SDLNameUnsubscribeButton]).to(equal(@19)); - expect([functionID functionIdForName:SDLNameSubscribeVehicleData]).to(equal(@20)); - expect([functionID functionIdForName:SDLNameUnsubscribeVehicleData]).to(equal(@21)); - expect([functionID functionIdForName:SDLNameGetVehicleData]).to(equal(@22)); - expect([functionID functionIdForName:SDLNameReadDID]).to(equal(@23)); - expect([functionID functionIdForName:SDLNameGetDTCs]).to(equal(@24)); - expect([functionID functionIdForName:SDLNameScrollableMessage]).to(equal(@25)); - expect([functionID functionIdForName:SDLNameSlider]).to(equal(@26)); - expect([functionID functionIdForName:SDLNameShowConstantTBT]).to(equal(@27)); - expect([functionID functionIdForName:SDLNameAlertManeuver]).to(equal(@28)); - expect([functionID functionIdForName:SDLNameUpdateTurnList]).to(equal(@29)); - expect([functionID functionIdForName:SDLNameChangeRegistration]).to(equal(@30)); - expect([functionID functionIdForName:SDLNameGenericResponse]).to(equal(@31)); - expect([functionID functionIdForName:SDLNamePutFile]).to(equal(@32)); - expect([functionID functionIdForName:SDLNameDeleteFile]).to(equal(@33)); - expect([functionID functionIdForName:SDLNameListFiles]).to(equal(@34)); - expect([functionID functionIdForName:SDLNameSetAppIcon]).to(equal(@35)); - expect([functionID functionIdForName:SDLNameSetDisplayLayout]).to(equal(@36)); - expect([functionID functionIdForName:SDLNameDiagnosticMessage]).to(equal(@37)); - expect([functionID functionIdForName:SDLNameSystemRequest]).to(equal(@38)); - expect([functionID functionIdForName:SDLNameSendLocation]).to(equal(@39)); - expect([functionID functionIdForName:SDLNameDialNumber]).to(equal(@40)); - expect([functionID functionIdForName:SDLNameGetWayPoints]).to(equal(@45)); - expect([functionID functionIdForName:SDLNameSubscribeWayPoints]).to(equal(@46)); - expect([functionID functionIdForName:SDLNameUnsubscribeWayPoints]).to(equal(@47)); - expect([functionID functionIdForName:SDLNameGetSystemCapability]).to(equal(@48)); - expect([functionID functionIdForName:SDLNameSendHapticData]).to(equal(@49)); - expect([functionID functionIdForName:SDLNameOnHMIStatus]).to(equal(@32768)); - expect([functionID functionIdForName:SDLNameOnAppInterfaceUnregistered]).to(equal(@32769)); - expect([functionID functionIdForName:SDLNameOnButtonEvent]).to(equal(@32770)); - expect([functionID functionIdForName:SDLNameOnButtonPress]).to(equal(@32771)); - expect([functionID functionIdForName:SDLNameOnVehicleData]).to(equal(@32772)); - expect([functionID functionIdForName:SDLNameOnCommand]).to(equal(@32773)); - expect([functionID functionIdForName:SDLNameOnTBTClientState]).to(equal(@32774)); - expect([functionID functionIdForName:SDLNameOnDriverDistraction]).to(equal(@32775)); - expect([functionID functionIdForName:SDLNameOnPermissionsChange]).to(equal(@32776)); - expect([functionID functionIdForName:SDLNameOnAudioPassThru]).to(equal(@32777)); - expect([functionID functionIdForName:SDLNameOnLanguageChange]).to(equal(@32778)); - expect([functionID functionIdForName:SDLNameOnKeyboardInput]).to(equal(@32779)); - expect([functionID functionIdForName:SDLNameOnTouchEvent]).to(equal(@32780)); - expect([functionID functionIdForName:SDLNameOnSystemRequest]).to(equal(@32781)); - expect([functionID functionIdForName:SDLNameOnHashChange]).to(equal(@32782)); - expect([functionID functionIdForName:SDLNameOnWayPointChange]).to(equal(@32784)); - expect([functionID functionIdForName:SDLNameOnRCStatus]).to(equal(@32785)); - + expect([functionID functionIdForName:SDLRPCFunctionNameRegisterAppInterface]).to(equal(@1)); + expect([functionID functionIdForName:SDLRPCFunctionNameUnregisterAppInterface]).to(equal(@2)); + expect([functionID functionIdForName:SDLRPCFunctionNameSetGlobalProperties]).to(equal(@3)); + expect([functionID functionIdForName:SDLRPCFunctionNameResetGlobalProperties]).to(equal(@4)); + expect([functionID functionIdForName:SDLRPCFunctionNameAddCommand]).to(equal(@5)); + expect([functionID functionIdForName:SDLRPCFunctionNameDeleteCommand]).to(equal(@6)); + expect([functionID functionIdForName:SDLRPCFunctionNameAddSubMenu]).to(equal(@7)); + expect([functionID functionIdForName:SDLRPCFunctionNameDeleteSubMenu]).to(equal(@8)); + expect([functionID functionIdForName:SDLRPCFunctionNameCreateInteractionChoiceSet]).to(equal(@9)); + expect([functionID functionIdForName:SDLRPCFunctionNamePerformInteraction]).to(equal(@10)); + expect([functionID functionIdForName:SDLRPCFunctionNameDeleteInteractionChoiceSet]).to(equal(@11)); + expect([functionID functionIdForName:SDLRPCFunctionNameAlert]).to(equal(@12)); + expect([functionID functionIdForName:SDLRPCFunctionNameShow]).to(equal(@13)); + expect([functionID functionIdForName:SDLRPCFunctionNameSpeak]).to(equal(@14)); + expect([functionID functionIdForName:SDLRPCFunctionNameSetMediaClockTimer]).to(equal(@15)); + expect([functionID functionIdForName:SDLRPCFunctionNamePerformAudioPassThru]).to(equal(@16)); + expect([functionID functionIdForName:SDLRPCFunctionNameEndAudioPassThru]).to(equal(@17)); + expect([functionID functionIdForName:SDLRPCFunctionNameSubscribeButton]).to(equal(@18)); + expect([functionID functionIdForName:SDLRPCFunctionNameUnsubscribeButton]).to(equal(@19)); + expect([functionID functionIdForName:SDLRPCFunctionNameSubscribeVehicleData]).to(equal(@20)); + expect([functionID functionIdForName:SDLRPCFunctionNameUnsubscribeVehicleData]).to(equal(@21)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetVehicleData]).to(equal(@22)); + expect([functionID functionIdForName:SDLRPCFunctionNameReadDID]).to(equal(@23)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetDTCs]).to(equal(@24)); + expect([functionID functionIdForName:SDLRPCFunctionNameScrollableMessage]).to(equal(@25)); + expect([functionID functionIdForName:SDLRPCFunctionNameSlider]).to(equal(@26)); + expect([functionID functionIdForName:SDLRPCFunctionNameShowConstantTBT]).to(equal(@27)); + expect([functionID functionIdForName:SDLRPCFunctionNameAlertManeuver]).to(equal(@28)); + expect([functionID functionIdForName:SDLRPCFunctionNameUpdateTurnList]).to(equal(@29)); + expect([functionID functionIdForName:SDLRPCFunctionNameChangeRegistration]).to(equal(@30)); + expect([functionID functionIdForName:SDLRPCFunctionNameGenericResponse]).to(equal(@31)); + expect([functionID functionIdForName:SDLRPCFunctionNamePutFile]).to(equal(@32)); + expect([functionID functionIdForName:SDLRPCFunctionNameDeleteFile]).to(equal(@33)); + expect([functionID functionIdForName:SDLRPCFunctionNameListFiles]).to(equal(@34)); + expect([functionID functionIdForName:SDLRPCFunctionNameSetAppIcon]).to(equal(@35)); + expect([functionID functionIdForName:SDLRPCFunctionNameSetDisplayLayout]).to(equal(@36)); + expect([functionID functionIdForName:SDLRPCFunctionNameDiagnosticMessage]).to(equal(@37)); + expect([functionID functionIdForName:SDLRPCFunctionNameSystemRequest]).to(equal(@38)); + expect([functionID functionIdForName:SDLRPCFunctionNameSendLocation]).to(equal(@39)); + expect([functionID functionIdForName:SDLRPCFunctionNameDialNumber]).to(equal(@40)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetWayPoints]).to(equal(@45)); + expect([functionID functionIdForName:SDLRPCFunctionNameSubscribeWayPoints]).to(equal(@46)); + expect([functionID functionIdForName:SDLRPCFunctionNameUnsubscribeWayPoints]).to(equal(@47)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetSystemCapability]).to(equal(@48)); + expect([functionID functionIdForName:SDLRPCFunctionNameSendHapticData]).to(equal(@49)); + expect([functionID functionIdForName:SDLRPCFunctionNameSetCloudAppProperties]).to(equal(@50)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetCloudAppProperties]).to(equal(@51)); + expect([functionID functionIdForName:SDLRPCFunctionNamePublishAppService]).to(equal(@52)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetAppServiceData]).to(equal(@53)); + expect([functionID functionIdForName:SDLRPCFunctionNameGetFile]).to(equal(@54)); + expect([functionID functionIdForName:SDLRPCFunctionNamePerformAppServiceInteraction]).to(equal(@55)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnHMIStatus]).to(equal(@32768)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnAppInterfaceUnregistered]).to(equal(@32769)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnButtonEvent]).to(equal(@32770)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnButtonPress]).to(equal(@32771)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnVehicleData]).to(equal(@32772)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnCommand]).to(equal(@32773)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnTBTClientState]).to(equal(@32774)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnDriverDistraction]).to(equal(@32775)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnPermissionsChange]).to(equal(@32776)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnAudioPassThru]).to(equal(@32777)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnLanguageChange]).to(equal(@32778)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnKeyboardInput]).to(equal(@32779)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnTouchEvent]).to(equal(@32780)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnSystemRequest]).to(equal(@32781)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnHashChange]).to(equal(@32782)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnWayPointChange]).to(equal(@32784)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnRCStatus]).to(equal(@32785)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnAppServiceData]).to(equal(@32786)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnSystemCapabilityUpdated]).to(equal(@32787)); + //Not listed in Spec - expect([functionID functionIdForName:SDLNameEncodedSyncPData]).to(equal(@65536)); - expect([functionID functionIdForName:SDLNameSyncPData]).to(equal(@65537)); + expect([functionID functionIdForName:SDLRPCFunctionNameEncodedSyncPData]).to(equal(@65536)); + expect([functionID functionIdForName:SDLRPCFunctionNameSyncPData]).to(equal(@65537)); - expect([functionID functionIdForName:SDLNameOnEncodedSyncPData]).to(equal(@98304)); - expect([functionID functionIdForName:SDLNameOnSyncPData]).to(equal(@98305)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnEncodedSyncPData]).to(equal(@98304)); + expect([functionID functionIdForName:SDLRPCFunctionNameOnSyncPData]).to(equal(@98305)); }); }); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m index 1c7187387..b3826428a 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m @@ -12,7 +12,7 @@ #import "SDLProtocolMessageAssembler.h" #import "SDLV2ProtocolHeader.h" #import "SDLV2ProtocolMessage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLProtocolMessageAssemblerSpec) diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m index 9dfc2c32f..9c211ba05 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m @@ -13,7 +13,8 @@ #import "SDLProtocolMessageDisassembler.h" #import "SDLV2ProtocolHeader.h" #import "SDLV2ProtocolMessage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLVersion.h" QuickSpecBegin(SDLProtocolMessageDisassemblerSpec) @@ -24,7 +25,7 @@ describe(@"Disassemble Tests", ^ { char dummyBytes[dataLength]; SDLGlobals *globals = [[SDLGlobals alloc] init]; - globals.maxHeadUnitVersion = @"2.0.0"; + globals.maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"2.0.0"]; const char testPayloadHeader[12] = {0x20, 0x55, 0x64, 0x73, 0x12, 0x34, 0x43, 0x21, (dataLength >> 24) & 0xFF, (dataLength >> 16) & 0xFF, (dataLength >> 8) & 0xFF, dataLength & 0xFF}; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m index 747a087b1..ab91a5de2 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m @@ -12,7 +12,7 @@ #import "SDLProtocolReceivedMessageRouter.h" #import "SDLV2ProtocolHeader.h" #import "SDLV2ProtocolMessage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLProtocolReceivedMessageRouterSpec) diff --git a/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m b/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m index c7c339ac3..497870b9d 100644 --- a/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m +++ b/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m @@ -32,23 +32,23 @@ QuickSpecBegin(SDLHapticManagerSpec) describe(@"the haptic manager", ^{ __block UIWindow *uiWindow; __block UIViewController *uiViewController; - + __block SDLFocusableItemLocator *hapticManager; __block SDLSendHapticData* sentHapticRequest; - + __block id sdlLifecycleManager = OCMClassMock([SDLLifecycleManager class]); __block CGRect viewRect1; __block CGRect viewRect2; - + beforeEach(^{ hapticManager = nil; sentHapticRequest = nil; - + uiWindow = [[UIWindow alloc] init]; uiViewController = [[UIViewController alloc] init]; uiWindow.rootViewController = uiViewController; - + OCMExpect([[sdlLifecycleManager stub] sendConnectionManagerRequest:[OCMArg checkWithBlock:^BOOL(id value){ BOOL isFirstArg = [value isKindOfClass:[SDLSendHapticData class]]; if(isFirstArg) { @@ -75,216 +75,216 @@ describe(@"the haptic manager", ^{ expect(sentHapticRequest).to(beNil()); }); }); - + context(@"when initialized with no focusable view", ^{ beforeEach(^{ hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; [hapticManager updateInterfaceLayout]; }); - + it(@"should have no focusable view", ^{ OCMVerify(sdlLifecycleManager); expect(sentHapticRequest.hapticRectData.count).to(equal(0)); }); }); - + context(@"when initialized with single view", ^{ beforeEach(^{ viewRect1 = CGRectMake(101, 101, 50, 50); UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; [uiViewController.view addSubview:textField1]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; }); - + it(@"should have one view", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 1; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect = hapticRectData[0]; SDLRectangle *sdlRect = sdlhapticRect.rect; - + compareRectangle(sdlRect, viewRect1); } }); }); - + context(@"when initialized with single button view", ^{ beforeEach(^{ viewRect1 = CGRectMake(101, 101, 50, 50); UIButton *button = [[UIButton alloc] initWithFrame:viewRect1]; [uiViewController.view addSubview:button]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; }); - + it(@"should have one view", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 1; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect = hapticRectData[0]; SDLRectangle *sdlRect = sdlhapticRect.rect; - + compareRectangle(sdlRect, viewRect1); } }); }); - + context(@"when initialized with no views and then updated with two additional views", ^{ beforeEach(^{ hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; - + viewRect1 = CGRectMake(101, 101, 50, 50); UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; [uiViewController.view addSubview:textField1]; - + viewRect2 = CGRectMake(201, 201, 50, 50); UITextField *textField2 = [[UITextField alloc] initWithFrame:viewRect2]; [uiViewController.view addSubview:textField2]; - + [hapticManager updateInterfaceLayout]; }); - + it(@"should have two views", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 2; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect1 = hapticRectData[0]; SDLRectangle *sdlRect1 = sdlhapticRect1.rect; - + SDLHapticRect *sdlhapticRect2 = hapticRectData[1]; SDLRectangle *sdlRect2 = sdlhapticRect2.rect; - + compareRectangle(sdlRect1, viewRect2); compareRectangle(sdlRect2, viewRect1); } }); }); - + context(@"when initialized with nested views", ^{ beforeEach(^{ UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(101, 101, 50, 50)]; [uiViewController.view addSubview:textField]; - + viewRect1 = CGRectMake(110, 110, 10, 10); UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; [textField addSubview:textField1]; - + viewRect2 = CGRectMake(130, 130, 10, 10); UITextField *textField2 = [[UITextField alloc] initWithFrame:viewRect2]; [textField addSubview:textField2]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; }); - + it(@"should have only leaf views added", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 2; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect1 = hapticRectData[0]; SDLRectangle *sdlRect1 = sdlhapticRect1.rect; - + SDLHapticRect *sdlhapticRect2 = hapticRectData[1]; SDLRectangle *sdlRect2 = sdlhapticRect2.rect; - + compareRectangle(sdlRect1, viewRect1); compareRectangle(sdlRect2, viewRect2); } }); }); - + context(@"when initialized with nested button views", ^{ beforeEach(^{ UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(101, 101, 50, 50)]; [uiViewController.view addSubview:button]; - + viewRect1 = CGRectMake(110, 110, 10, 10); UIButton *button1 = [[UIButton alloc] initWithFrame:viewRect1]; [button addSubview:button1]; - + viewRect2 = CGRectMake(130, 130, 10, 10); UITextField *textField2 = [[UITextField alloc] initWithFrame:viewRect2]; [button addSubview:textField2]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; }); - + it(@"should have only leaf views added", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 2; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect1 = hapticRectData[0]; SDLRectangle *sdlRect1 = sdlhapticRect1.rect; - + SDLHapticRect *sdlhapticRect2 = hapticRectData[1]; SDLRectangle *sdlRect2 = sdlhapticRect2.rect; - + compareRectangle(sdlRect1, viewRect1); compareRectangle(sdlRect2, viewRect2); } }); }); - + context(@"when initialized with two views and then updated with one view removed", ^{ beforeEach(^{ viewRect1 = CGRectMake(101, 101, 50, 50); UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; [uiViewController.view addSubview:textField1]; - + viewRect2 = CGRectMake(201, 201, 50, 50); UITextField *textField2 = [[UITextField alloc] initWithFrame:viewRect2]; [uiViewController.view addSubview:textField2]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; - + [textField2 removeFromSuperview]; - + [hapticManager updateInterfaceLayout]; }); - + it(@"should have one view", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 1; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect = hapticRectData[0]; SDLRectangle *sdlRect = sdlhapticRect.rect; - + compareRectangle(sdlRect, viewRect1); } }); @@ -295,51 +295,51 @@ describe(@"the haptic manager", ^{ viewRect1 = CGRectMake(101, 101, 50, 50); UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; [uiViewController.view addSubview:textField1]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; - + viewRect2 = CGRectMake(201, 201, 50, 50); UITextField *textField2 = [[UITextField alloc] initWithFrame:viewRect2]; [uiViewController.view addSubview:textField2]; - + [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidUpdateProjectionView object:nil]; }); - + it(@"should have two views", ^{ OCMVerify(sdlLifecycleManager); - + int expectedCount = 2; expect(sentHapticRequest.hapticRectData.count).to(equal(expectedCount)); - + if(sentHapticRequest.hapticRectData.count == expectedCount) { NSArray<SDLHapticRect *> *hapticRectData = sentHapticRequest.hapticRectData; SDLHapticRect *sdlhapticRect1 = hapticRectData[0]; SDLRectangle *sdlRect1 = sdlhapticRect1.rect; - + SDLHapticRect *sdlhapticRect2 = hapticRectData[1]; SDLRectangle *sdlRect2 = sdlhapticRect2.rect; - + compareRectangle(sdlRect1, viewRect2); compareRectangle(sdlRect2, viewRect1); } }); }); - + context(@"when touched inside a view", ^{ beforeEach(^{ UITextField *textField1 = [[UITextField alloc] initWithFrame:CGRectMake(101, 101, 50, 50)]; [uiViewController.view addSubview:textField1]; - + UITextField *textField2 = [[UITextField alloc] initWithFrame:CGRectMake(201, 201, 50, 50)]; [uiViewController.view addSubview:textField2]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; }); - + it(@"should return a view object", ^{ UIView *view1 = [hapticManager viewForPoint:CGPointMake(125, 120)]; expect(view1).toNot(beNil()); @@ -348,31 +348,31 @@ describe(@"the haptic manager", ^{ expect(view2).toNot(beNil()); }); }); - + context(@"when touched in overlapping views' area", ^{ beforeEach(^{ UITextField *textField1 = [[UITextField alloc] initWithFrame:CGRectMake(101, 101, 50, 50)]; [uiViewController.view addSubview:textField1]; - + UITextField *textField2 = [[UITextField alloc] initWithFrame:CGRectMake(126, 126, 50, 50)]; [uiViewController.view addSubview:textField2]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; }); - + it(@"should return no view object", ^{ UIView* view = [hapticManager viewForPoint:CGPointMake(130, 130)]; expect(view).to(beNil()); }); }); - + context(@"when touched outside view boundary", ^{ beforeEach(^{ UITextField *textField1 = [[UITextField alloc] initWithFrame:CGRectMake(101, 101, 50, 50)]; [uiWindow insertSubview:textField1 aboveSubview:uiWindow]; - + hapticManager = [[SDLFocusableItemLocator alloc] initWithViewController:uiViewController connectionManager:sdlLifecycleManager]; hapticManager.enableHapticDataRequests = YES; [hapticManager updateInterfaceLayout]; @@ -381,7 +381,7 @@ describe(@"the haptic manager", ^{ UIView* view = [hapticManager viewForPoint:CGPointMake(0, 228)]; expect(view).to(beNil()); }); - + }); }); diff --git a/SmartDeviceLinkTests/ProxySpecs/SDLSecondaryTransportManagerSpec.m b/SmartDeviceLinkTests/ProxySpecs/SDLSecondaryTransportManagerSpec.m index 81b4196c7..acc14b3c5 100644 --- a/SmartDeviceLinkTests/ProxySpecs/SDLSecondaryTransportManagerSpec.m +++ b/SmartDeviceLinkTests/ProxySpecs/SDLSecondaryTransportManagerSpec.m @@ -230,7 +230,7 @@ describe(@"the secondary transport manager ", ^{ testAudioServiceTransports = @[@(2), @(1)]; testVideoServiceTransports = @[@(2)]; - testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testStartServiceACKMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testStartServiceACKHeader andPayload:testStartServiceACKPayload.data]; }); @@ -259,7 +259,7 @@ describe(@"the secondary transport manager ", ^{ // Note: this is not allowed for now. It should contain only one element. testSecondaryTransports = @[@"TCP_WIFI", @"IAP_USB_HOST_MODE"]; - testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testStartServiceACKMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testStartServiceACKHeader andPayload:testStartServiceACKPayload.data]; }); @@ -287,7 +287,7 @@ describe(@"the secondary transport manager ", ^{ testAudioServiceTransports = @[@(2)]; testVideoServiceTransports = @[@(2)]; - testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testStartServiceACKMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testStartServiceACKHeader andPayload:testStartServiceACKPayload.data]; }); @@ -313,7 +313,7 @@ describe(@"the secondary transport manager ", ^{ context(@"without secondary transport related parameter", ^{ beforeEach(^{ - testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testStartServiceACKMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testStartServiceACKHeader andPayload:testStartServiceACKPayload.data]; }); @@ -407,7 +407,7 @@ describe(@"the secondary transport manager ", ^{ testTransportEventUpdatePayload = [[SDLControlFramePayloadTransportEventUpdate alloc] initWithTcpIpAddress:testTcpIpAddress tcpPort:testTcpPort]; testTransportEventUpdateMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testTransportEventUpdateHeader andPayload:testTransportEventUpdatePayload.data]; - testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testStartServiceACKMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testStartServiceACKHeader andPayload:testStartServiceACKPayload.data]; }); @@ -444,7 +444,7 @@ describe(@"the secondary transport manager ", ^{ testTransportEventUpdatePayload = [[SDLControlFramePayloadTransportEventUpdate alloc] initWithTcpIpAddress:testTcpIpAddress tcpPort:testTcpPort]; testTransportEventUpdateMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testTransportEventUpdateHeader andPayload:testTransportEventUpdatePayload.data]; - testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; + testStartServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithHashId:testHashId mtu:testMtu authToken:nil protocolVersion:testProtocolVersion secondaryTransports:testSecondaryTransports audioServiceTransports:testAudioServiceTransports videoServiceTransports:testVideoServiceTransports]; testStartServiceACKMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testStartServiceACKHeader andPayload:testStartServiceACKPayload.data]; }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m index f26e01fdd..e92d3d81d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m @@ -27,7 +27,8 @@ describe(@"Individual Enum Value Tests", ^ { expect(SDLAppInterfaceUnregisteredReasonMasterReset).to(equal(@"MASTER_RESET")); expect(SDLAppInterfaceUnregisteredReasonFactoryDefaults).to(equal(@"FACTORY_DEFAULTS")); expect(SDLAppInterfaceUnregisteredReasonAppUnauthorized).to(equal(@"APP_UNAUTHORIZED")); - //expect(SDLAppInterfaceUnregisteredReason PROTOCOL_VIOLATION).to(equal(@"PROTOCOL_VIOLATION")); + expect(SDLAppInterfaceUnregisteredReasonProtocolViolation).to(equal(@"PROTOCOL_VIOLATION")); + expect(SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource).to(equal(@"UNSUPPORTED_HMI_RESOURCE")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppServiceTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppServiceTypeSpec.m new file mode 100644 index 000000000..269c14d31 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppServiceTypeSpec.m @@ -0,0 +1,26 @@ +// +// SDLAppServiceTypeSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceType.h" + + +QuickSpecBegin(SDLAppServiceTypeSpec) + +describe(@"Individual Enum Value Tests", ^{ + it(@"Should match internal values", ^{ + expect(SDLAppServiceTypeMedia).to(equal(@"MEDIA")); + expect(SDLAppServiceTypeWeather).to(equal(@"WEATHER")); + expect(SDLAppServiceTypeNavigation).to(equal(@"NAVIGATION")); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDirectionSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDirectionSpec.m new file mode 100644 index 000000000..86033c90b --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDirectionSpec.m @@ -0,0 +1,23 @@ +// +// SDLDirectionSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDirection.h" + +QuickSpecBegin(SDLDirectionSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLDirectionLeft).to(equal(@"LEFT")); + expect(SDLDirectionRight).to(equal(@"RIGHT")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHybridAppPreferenceSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHybridAppPreferenceSpec.m new file mode 100644 index 000000000..29747b324 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHybridAppPreferenceSpec.m @@ -0,0 +1,24 @@ +// +// SDLHybridAppPreferenceSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLHybridAppPreference.h" + +QuickSpecBegin(SDLHybridAppPreferenceSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLHybridAppPreferenceMobile).to(equal(@"MOBILE")); + expect(SDLHybridAppPreferenceCloud).to(equal(@"CLOUD")); + expect(SDLHybridAppPreferenceBoth).to(equal(@"BOTH")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaTypeSpec.m new file mode 100644 index 000000000..6e355cdd4 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaTypeSpec.m @@ -0,0 +1,25 @@ +// +// SDLMediaTypeSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLMediaType.h" + +QuickSpecBegin(SDLMediaTypeSpec) + +describe(@"Individual Enum Value Tests", ^{ + it(@"Should match internal values", ^{ + expect(SDLMediaTypeMusic).to(equal(@"MUSIC")); + expect(SDLMediaTypePodcast).to(equal(@"PODCAST")); + expect(SDLMediaTypeAudiobook).to(equal(@"AUDIOBOOK")); + expect(SDLMediaTypeOther).to(equal(@"OTHER")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLNavigationActionSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLNavigationActionSpec.m new file mode 100644 index 000000000..d4e4dbaa3 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLNavigationActionSpec.m @@ -0,0 +1,28 @@ +// +// SDLNavigationActionSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLNavigationAction.h" + +QuickSpecBegin(SDLNavigationActionSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLNavigationActionTurn).to(equal(@"TURN")); + expect(SDLNavigationActionExit).to(equal(@"EXIT")); + expect(SDLNavigationActionStay).to(equal(@"STAY")); + expect(SDLNavigationActionMerge).to(equal(@"MERGE")); + expect(SDLNavigationActionFerry).to(equal(@"FERRY")); + expect(SDLNavigationActionCarShuttleTrain).to(equal(@"CAR_SHUTTLE_TRAIN")); + expect(SDLNavigationActionWaypoint).to(equal(@"WAYPOINT")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLNavigationJunctionSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLNavigationJunctionSpec.m new file mode 100644 index 000000000..456d4b5bc --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLNavigationJunctionSpec.m @@ -0,0 +1,31 @@ +// +// SDLNavigationJunctionSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLNavigationJunction.h" + +QuickSpecBegin(SDLNavigationJunctionSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLNavigationJunctionRegular).to(equal(@"REGULAR")); + expect(SDLNavigationJunctionBifurcation).to(equal(@"BIFURCATION")); + expect(SDLNavigationJunctionMultiCarriageway).to(equal(@"MULTI_CARRIAGEWAY")); + expect(SDLNavigationJunctionRoundabout).to(equal(@"ROUNDABOUT")); + expect(SDLNavigationJunctionTraversableRoundabout).to(equal(@"TRAVERSABLE_ROUNDABOUT")); + expect(SDLNavigationJunctionJughandle).to(equal(@"JUGHANDLE")); + expect(SDLNavigationJunctionAllWayYield).to(equal(@"ALL_WAY_YIELD")); + expect(SDLNavigationJunctionTurnAround).to(equal(@"TURN_AROUND")); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m index 3ee2f7a15..c6c9061f1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m @@ -35,6 +35,7 @@ describe(@"Individual Enum Value Tests", ^ { expect(SDLRequestTypeMedia).to(equal(@"MEDIA")); expect(SDLRequestTypeFOTA).to(equal(@"FOTA")); expect(SDLRequestTypeOEMSpecific).to(equal(@"OEM_SPECIFIC")); + expect(SDLRequestTypeIconURL).to(equal(@"ICON_URL")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLServiceUpdateReasonSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLServiceUpdateReasonSpec.m new file mode 100644 index 000000000..a66d2df97 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLServiceUpdateReasonSpec.m @@ -0,0 +1,26 @@ +// +// SDLServiceUpdateReasonSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLServiceUpdateReason.h" + +QuickSpecBegin(SDLServiceUpdateReasonSpec) + +describe(@"Individual Enum Value Tests", ^{ + it(@"Should match internal values", ^{ + expect(SDLServiceUpdatePublished).to(equal(@"PUBLISHED")); + expect(SDLServiceUpdateRemoved).to(equal(@"REMOVED")); + expect(SDLServiceUpdateActivated).to(equal(@"ACTIVATED")); + expect(SDLServiceUpdateDeactivated).to(equal(@"DEACTIVATED")); + expect(SDLServiceUpdateManifestUpdate).to(equal(@"MANIFEST_UPDATE")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m index 0acaa4b6e..58bb889dc 100755 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m @@ -10,6 +10,7 @@ QuickSpecBegin(SDLSystemCapabilityTypeSpec) describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { + expect(SDLSystemCapabilityTypeAppServices).to(equal(@"APP_SERVICES")); expect(SDLSystemCapabilityTypeNavigation).to(equal(@"NAVIGATION")); expect(SDLSystemCapabilityTypePhoneCall).to(equal(@"PHONE_CALL")); expect(SDLSystemCapabilityTypeVideoStreaming).to(equal(@"VIDEO_STREAMING")); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m index 2d9812475..16f87d613 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m @@ -44,6 +44,7 @@ describe(@"Individual Enum Value Tests", ^ { expect(SDLVehicleDataTypeSteeringWheel).to(equal(@"VEHICLEDATA_STEERINGWHEEL")); expect(SDLVehicleDataTypeElectronicParkBrakeStatus).to(equal(@"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS")); expect(SDLVehicleDataTypeTurnSignal).to(equal(@"VEHICLEDATA_TURNSIGNAL")); + expect(SDLVehicleDataTypeCloudAppVehicleID).to(equal(@"VEHICLEDATA_CLOUDAPPVEHICLEID")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m index b35d34d9c..fd5980b58 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m @@ -10,7 +10,8 @@ #import "SDLAppInterfaceUnregisteredReason.h" #import "SDLOnAppInterfaceUnregistered.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnAppInterfaceUnregisteredSpec) @@ -24,10 +25,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameReason:SDLAppInterfaceUnregisteredReasonAppUnauthorized}, - SDLNameOperationName:SDLNameOnAppInterfaceUnregistered}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameReason:SDLAppInterfaceUnregisteredReasonAppUnauthorized}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnAppInterfaceUnregistered}} mutableCopy]; SDLOnAppInterfaceUnregistered* testNotification = [[SDLOnAppInterfaceUnregistered alloc] initWithDictionary:dict]; expect(testNotification.reason).to(equal(SDLAppInterfaceUnregisteredReasonAppUnauthorized)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppServiceDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppServiceDataSpec.m new file mode 100644 index 000000000..b5fe3fff0 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppServiceDataSpec.m @@ -0,0 +1,60 @@ +// +// SDLOnAppServiceDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceData.h" +#import "SDLOnAppServiceData.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLOnAppServiceDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLAppServiceData *testAppServiceData = nil; + + beforeEach(^{ + testAppServiceData = [[SDLAppServiceData alloc] init]; + testAppServiceData.serviceId = @"testServiceId"; + }); + + it(@"Should set and get correctly", ^{ + SDLOnAppServiceData *testNotification = [[SDLOnAppServiceData alloc] init]; + testNotification.serviceData = testAppServiceData; + + expect(testNotification.serviceData).to(equal(testAppServiceData)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameNotification:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameServiceData:testAppServiceData + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnAppServiceData}}; + SDLOnAppServiceData *testNotification = [[SDLOnAppServiceData alloc] initWithDictionary:dict]; + + expect(testNotification.serviceData).to(equal(testAppServiceData)); + }); + + it(@"Should get correctly when initialized with initWithServiceData:", ^{ + SDLOnAppServiceData *testNotification = [[SDLOnAppServiceData alloc] initWithServiceData:testAppServiceData]; + + expect(testNotification.serviceData).to(equal(testAppServiceData)); + }); + + it(@"Should return nil if not set", ^{ + SDLOnAppServiceData *testNotification = [[SDLOnAppServiceData alloc] init]; + + expect(testNotification.serviceData).to(beNil()); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAudioPassThruSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAudioPassThruSpec.m index 213246b1c..8c6e16456 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAudioPassThruSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAudioPassThruSpec.m @@ -9,8 +9,9 @@ #import <Nimble/Nimble.h> #import "SDLOnAudioPassThru.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnAudioPassThruSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m index b303ffd1a..2a298eb5e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m @@ -10,7 +10,8 @@ #import "SDLButtonEventMode.h" #import "SDLButtonName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLOnButtonEvent.h" @@ -30,12 +31,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameButtonName:SDLButtonNameCustomButton, - SDLNameButtonEventMode:SDLButtonEventModeButtonDown, - SDLNameCustomButtonId:@4252}, - SDLNameOperationName:SDLNameOnButtonEvent}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameButtonName:SDLButtonNameCustomButton, + SDLRPCParameterNameButtonEventMode:SDLButtonEventModeButtonDown, + SDLRPCParameterNameCustomButtonId:@4252}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnButtonEvent}} mutableCopy]; SDLOnButtonEvent* testNotification = [[SDLOnButtonEvent alloc] initWithDictionary:dict]; expect(testNotification.buttonName).to(equal(SDLButtonNameCustomButton)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m index 5737c2f81..1b098318b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m @@ -11,7 +11,8 @@ #import "SDLButtonName.h" #import "SDLButtonPressMode.h" #import "SDLOnButtonPress.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnButtonPressSpec) @@ -30,12 +31,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameButtonName:SDLButtonNameCustomButton, - SDLNameButtonPressMode:SDLButtonPressModeLong, - SDLNameCustomButtonId:@5642}, - SDLNameOperationName:SDLNameOnButtonPress}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameButtonName:SDLButtonNameCustomButton, + SDLRPCParameterNameButtonPressMode:SDLButtonPressModeLong, + SDLRPCParameterNameCustomButtonId:@5642}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnButtonPress}} mutableCopy]; SDLOnButtonPress* testNotification = [[SDLOnButtonPress alloc] initWithDictionary:dict]; expect(testNotification.buttonName).to(equal(SDLButtonNameCustomButton)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m index 6257a13cb..aac8b32b1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m @@ -8,7 +8,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLOnCommand.h" #import "SDLTriggerSource.h" @@ -26,11 +27,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameCommandId:@5676544, - SDLNameTriggerSource:SDLTriggerSourceKeyboard}, - SDLNameOperationName:SDLNameOnCommand}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameCommandId:@5676544, + SDLRPCParameterNameTriggerSource:SDLTriggerSourceKeyboard}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnCommand}} mutableCopy]; SDLOnCommand* testNotification = [[SDLOnCommand alloc] initWithDictionary:dict]; expect(testNotification.cmdID).to(equal(@5676544)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m index b46e31ee6..b03394532 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m @@ -10,7 +10,8 @@ #import "SDLDriverDistractionState.h" #import "SDLOnDriverDistraction.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnDriverDistractionSpec) @@ -24,10 +25,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameState:SDLDriverDistractionStateOn}, - SDLNameOperationName:SDLNameOnDriverDistraction}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameState:SDLDriverDistractionStateOn}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnDriverDistraction}} mutableCopy]; SDLOnDriverDistraction* testNotification = [[SDLOnDriverDistraction alloc] initWithDictionary:dict]; expect(testNotification.state).to(equal(SDLDriverDistractionStateOn)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m index b3fd3447e..c2760571d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLOnEncodedSyncPData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnEncodedSyncPDataSpec) @@ -17,25 +18,25 @@ describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLOnEncodedSyncPData* testNotification = [[SDLOnEncodedSyncPData alloc] init]; - testNotification.data = [@[@0] mutableCopy]; + testNotification.data = [@[@"0"] mutableCopy]; testNotification.URL = @"www.zombo.com"; testNotification.Timeout = @564; - expect(testNotification.data).to(equal([@[@0] mutableCopy])); + expect(testNotification.data).to(equal([@[@"0"] mutableCopy])); expect(testNotification.URL).to(equal(@"www.zombo.com")); expect(testNotification.Timeout).to(equal(@564)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameData:[@[@0] mutableCopy], - SDLNameURLUppercase:@"www.zombo.com", - SDLNameTimeoutCapitalized:@564}, - SDLNameOperationName:SDLNameOnEncodedSyncPData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameData:[@[@"0"] mutableCopy], + SDLRPCParameterNameURLUppercase:@"www.zombo.com", + SDLRPCParameterNameTimeoutCapitalized:@564}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnEncodedSyncPData}} mutableCopy]; SDLOnEncodedSyncPData* testNotification = [[SDLOnEncodedSyncPData alloc] initWithDictionary:dict]; - expect(testNotification.data).to(equal([@[@0] mutableCopy])); + expect(testNotification.data).to(equal([@[@"0"] mutableCopy])); expect(testNotification.URL).to(equal(@"www.zombo.com")); expect(testNotification.Timeout).to(equal(@564)); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m index 649e7aa74..c3aca6127 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m @@ -11,7 +11,8 @@ #import "SDLAudioStreamingState.h" #import "SDLHMILevel.h" #import "SDLOnHMIStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSystemContext.h" @@ -33,13 +34,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameHMILevel: SDLHMILevelLimited, - SDLNameAudioStreamingState: SDLAudioStreamingStateAttenuated, - SDLNameSystemContext: SDLSystemContextHMIObscured, - SDLNameVideoStreamingState: SDLVideoStreamingStateStreamable}, - SDLNameOperationName:SDLNameOnHMIStatus}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameHMILevel: SDLHMILevelLimited, + SDLRPCParameterNameAudioStreamingState: SDLAudioStreamingStateAttenuated, + SDLRPCParameterNameSystemContext: SDLSystemContextHMIObscured, + SDLRPCParameterNameVideoStreamingState: SDLVideoStreamingStateStreamable}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnHMIStatus}} mutableCopy]; SDLOnHMIStatus* testNotification = [[SDLOnHMIStatus alloc] initWithDictionary:dict]; expect(testNotification.hmiLevel).to(equal(SDLHMILevelLimited)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m index 14148d4ad..035afda9d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLOnHashChange.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnHashChangeSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameHashId:@"hash"}, - SDLNameOperationName:SDLNameOnHashChange}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameHashId:@"hash"}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnHashChange}} mutableCopy]; SDLOnHashChange* testNotification = [[SDLOnHashChange alloc] initWithDictionary:dict]; expect(testNotification.hashID).to(equal(@"hash")); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m index 0a4badfe2..45ae4c993 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLOnInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLModuleData.h" QuickSpecBegin(SDLOnInteriorVehicleDataSpec) @@ -30,10 +31,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameModuleData:someModuleData}, - SDLNameOperationName:SDLNameOnInteriorVehicleData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameModuleData:someModuleData}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnInteriorVehicleData}} mutableCopy]; SDLOnInteriorVehicleData* testNotification = [[SDLOnInteriorVehicleData alloc] initWithDictionary:dict]; expect(testNotification.moduleData).to(equal(someModuleData)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m index 4f64d8f37..baec5f3c7 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m @@ -10,7 +10,8 @@ #import "SDLKeyboardEvent.h" #import "SDLOnKeyboardInput.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnKeyboardInputSpec) @@ -26,11 +27,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameEvent:SDLKeyboardEventSubmitted, - SDLNameData:@"qwertyg"}, - SDLNameOperationName:SDLNameOnKeyboardInput}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameEvent:SDLKeyboardEventSubmitted, + SDLRPCParameterNameData:@"qwertyg"}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnKeyboardInput}} mutableCopy]; SDLOnKeyboardInput* testNotification = [[SDLOnKeyboardInput alloc] initWithDictionary:dict]; expect(testNotification.event).to(equal(SDLKeyboardEventSubmitted)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m index 6dfa256f6..c8e589a54 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m @@ -10,7 +10,8 @@ #import "SDLLanguage.h" #import "SDLOnLanguageChange.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnLanguageChangeSpec) @@ -27,11 +28,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameLanguage:SDLLanguageEsEs, - SDLNameHMIDisplayLanguage:SDLLanguageDeDe}, - SDLNameOperationName:SDLNameOnLanguageChange}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameLanguage:SDLLanguageEsEs, + SDLRPCParameterNameHMIDisplayLanguage:SDLLanguageDeDe}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnLanguageChange}} mutableCopy]; SDLOnLanguageChange* testNotification = [[SDLOnLanguageChange alloc] initWithDictionary:dict]; expect(testNotification.language).to(equal(SDLLanguageEsEs)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m index c2e64ef3a..3355797d8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m @@ -11,7 +11,8 @@ #import "SDLOnLockScreenStatus.h" #import "SDLHMILevel.h" #import "SDLLockScreenStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnLockScreenStatusSpec) @@ -31,13 +32,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: @{@"driverDistractionStatus":@NO, @"userSelected":@3, @"OnLockScreenStatus":SDLLockScreenStatusRequired, @"hmiLevel":SDLHMILevelNone}, - SDLNameOperationName:@"OnLockScreenStatus"}} mutableCopy]; + SDLRPCParameterNameOperationName:@"OnLockScreenStatus"}} mutableCopy]; SDLOnLockScreenStatus* testNotification = [[SDLOnLockScreenStatus alloc] initWithDictionary:dict]; expect(testNotification.driverDistractionStatus).to(equal(@NO)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m index a66e22654..70e5c103a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m @@ -10,7 +10,8 @@ #import "SDLOnPermissionsChange.h" #import "SDLPermissionItem.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnPermissionsChangeSpec) @@ -26,10 +27,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNamePermissionItem:[@[item] mutableCopy]}, - SDLNameOperationName:SDLNameOnPermissionsChange}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNamePermissionItem:[@[item] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnPermissionsChange}} mutableCopy]; SDLOnPermissionsChange* testNotification = [[SDLOnPermissionsChange alloc] initWithDictionary:dict]; expect(testNotification.permissionItem).to(equal([@[item] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnRCStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnRCStatusSpec.m index 4f733d7a8..584bcd3ec 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnRCStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnRCStatusSpec.m @@ -8,7 +8,8 @@ #import "SDLOnRCStatus.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnRCStatusSpec) SDLModuleData * allocatedModule = [[SDLModuleData alloc] init]; @@ -28,13 +29,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameAllocatedModules:[@[allocatedModule] copy], - SDLNameFreeModules:[@[freeModule] copy], - SDLNameAllowed:@YES + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAllocatedModules:[@[allocatedModule] copy], + SDLRPCParameterNameFreeModules:[@[freeModule] copy], + SDLRPCParameterNameAllowed:@YES }, - SDLNameOperationName:SDLNameOnRCStatus}} mutableCopy]; + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnRCStatus}} mutableCopy]; SDLOnRCStatus* testNotification = [[SDLOnRCStatus alloc] initWithDictionary:dict]; expect(testNotification.allowed).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m index c14fe1d52..89f0d5b7e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLOnSyncPData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnSyncPDataSpec) @@ -25,11 +26,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameURLUppercase:@"https://www.youtube.com/watch?v=ygr5AHufBN4", - SDLNameTimeoutCapitalized:@8357}, - SDLNameOperationName:SDLNameOnSyncPData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameURLUppercase:@"https://www.youtube.com/watch?v=ygr5AHufBN4", + SDLRPCParameterNameTimeoutCapitalized:@8357}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnSyncPData}} mutableCopy]; SDLOnSyncPData* testNotification = [[SDLOnSyncPData alloc] initWithDictionary:dict]; expect(testNotification.URL).to(equal(@"https://www.youtube.com/watch?v=ygr5AHufBN4")); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemCapabilityUpdatedSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemCapabilityUpdatedSpec.m new file mode 100644 index 000000000..b6102042d --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemCapabilityUpdatedSpec.m @@ -0,0 +1,59 @@ +// +// SDLOnSystemCapabilityUpdatedSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLOnSystemCapabilityUpdated.h" +#import "SDLPhoneCapability.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSystemCapability.h" + +QuickSpecBegin(SDLOnSystemCapabilityUpdatedSpec) + +describe(@"Getter/Setter Tests", ^ { + __block SDLSystemCapability *testSystemCapability = nil; + + beforeEach(^{ + SDLPhoneCapability *testPhoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:true]; + testSystemCapability = [[SDLSystemCapability alloc] initWithPhoneCapability:testPhoneCapability]; + }); + + it(@"Should set and get correctly", ^{ + SDLOnSystemCapabilityUpdated *testNotification = [[SDLOnSystemCapabilityUpdated alloc] init]; + testNotification.systemCapability = testSystemCapability; + + expect(testNotification.systemCapability).to(equal(testSystemCapability)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameNotification:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameSystemCapability:testSystemCapability + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnSystemCapabilityUpdated}}; + SDLOnSystemCapabilityUpdated *testNotification = [[SDLOnSystemCapabilityUpdated alloc] initWithDictionary:dict]; + + expect(testNotification.systemCapability).to(equal(testSystemCapability)); + }); + + it(@"Should get correctly when initialized with initWithSystemCapability:", ^{ + SDLOnSystemCapabilityUpdated *testNotification = [[SDLOnSystemCapabilityUpdated alloc] initWithSystemCapability:testSystemCapability]; + + expect(testNotification.systemCapability).to(equal(testSystemCapability)); + }); + + it(@"Should return nil if not set", ^{ + SDLOnSystemCapabilityUpdated *testNotification = [[SDLOnSystemCapabilityUpdated alloc] init]; + + expect(testNotification.systemCapability).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m index 6f7545c68..3acaee1ac 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLFileType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLOnSystemRequest.h" #import "SDLRequestType.h" @@ -22,7 +23,7 @@ describe(@"Getter/Setter Tests", ^ { testNotification.requestType = SDLRequestTypeFileResume; testNotification.requestSubType = @"subtype"; - testNotification.url = [@[@"www.google.com"] mutableCopy]; + testNotification.url = @"www.google.com"; testNotification.timeout = @52345; testNotification.fileType = SDLFileTypePNG; testNotification.offset = @2532678684; @@ -30,7 +31,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testNotification.requestType).to(equal(SDLRequestTypeFileResume)); expect(testNotification.requestSubType).to(equal(@"subtype")); - expect(testNotification.url).to(equal([@[@"www.google.com"] mutableCopy])); + expect(testNotification.url).to(equal(@"www.google.com")); expect(testNotification.timeout).to(equal(@52345)); expect(testNotification.fileType).to(equal(SDLFileTypePNG)); expect(testNotification.offset).to(equal(@2532678684)); @@ -38,21 +39,21 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameRequestType:SDLRequestTypeFileResume, - SDLNameRequestSubType: @"subtype", - SDLNameURL:[@[@"www.google.com"] mutableCopy], - SDLNameTimeout:@52345, - SDLNameFileType:SDLFileTypePNG, - SDLNameOffset:@2532678684, - SDLNameLength:@50000000000}, - SDLNameOperationName:SDLNameOnSystemRequest}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameRequestType:SDLRequestTypeFileResume, + SDLRPCParameterNameRequestSubType: @"subtype", + SDLRPCParameterNameURL:@"www.google.com", + SDLRPCParameterNameTimeout:@52345, + SDLRPCParameterNameFileType:SDLFileTypePNG, + SDLRPCParameterNameOffset:@2532678684, + SDLRPCParameterNameLength:@50000000000}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnSystemRequest}} mutableCopy]; SDLOnSystemRequest* testNotification = [[SDLOnSystemRequest alloc] initWithDictionary:dict]; expect(testNotification.requestType).to(equal(SDLRequestTypeFileResume)); expect(testNotification.requestSubType).to(equal(@"subtype")); - expect(testNotification.url).to(equal([@[@"www.google.com"] mutableCopy])); + expect(testNotification.url).to(equal([@"www.google.com" mutableCopy])); expect(testNotification.timeout).to(equal(@52345)); expect(testNotification.fileType).to(equal(SDLFileTypePNG)); expect(testNotification.offset).to(equal(@2532678684)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m index 70ed4648b..f0a39c387 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLOnTBTClientState.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTBTState.h" @@ -25,10 +26,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameState:SDLTBTStateETARequest}, - SDLNameOperationName:SDLNameOnTBTClientState}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameState:SDLTBTStateETARequest}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnTBTClientState}} mutableCopy]; SDLOnTBTClientState* testNotification = [[SDLOnTBTClientState alloc] initWithDictionary:dict]; expect(testNotification.state).to(equal(SDLTBTStateETARequest)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m index 930ed95f8..6445c2e64 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLOnTouchEvent.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTouchEvent.h" #import "SDLTouchType.h" @@ -30,11 +31,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameType:SDLTouchTypeBegin, - SDLNameEvent:[@[event] mutableCopy]}, - SDLNameOperationName:SDLNameOnTouchEvent}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameType:SDLTouchTypeBegin, + SDLRPCParameterNameEvent:[@[event] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnTouchEvent}} mutableCopy]; SDLOnTouchEvent* testNotification = [[SDLOnTouchEvent alloc] initWithDictionary:dict]; expect(testNotification.type).to(equal(SDLTouchTypeBegin)); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m index aba995df9..d28a9c843 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m @@ -9,25 +9,43 @@ #import <Nimble/Nimble.h> #import "SmartDeviceLink.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLOnVehicleDataSpec) -SDLGPSData* gps = [[SDLGPSData alloc] init]; -SDLTireStatus* tires = [[SDLTireStatus alloc] init]; -SDLBeltStatus* belt = [[SDLBeltStatus alloc] init]; -SDLBodyInformation* body = [[SDLBodyInformation alloc] init]; -SDLDeviceStatus* device = [[SDLDeviceStatus alloc] init]; -SDLHeadLampStatus* headLamp = [[SDLHeadLampStatus alloc] init]; -SDLECallInfo* eCall = [[SDLECallInfo alloc] init]; -SDLAirbagStatus* airbag = [[SDLAirbagStatus alloc] init]; -SDLEmergencyEvent* event = [[SDLEmergencyEvent alloc] init]; -SDLClusterModeStatus* clusterMode = [[SDLClusterModeStatus alloc] init]; -SDLMyKey* myKey = [[SDLMyKey alloc] init]; -SDLFuelRange* fuelRange = [[SDLFuelRange alloc] init]; - describe(@"Getter/Setter Tests", ^ { + __block SDLGPSData* gps = nil; + __block SDLTireStatus* tires = nil; + __block SDLBeltStatus* belt = nil; + __block SDLBodyInformation* body = nil; + __block SDLDeviceStatus* device = nil; + __block SDLHeadLampStatus* headLamp = nil; + __block SDLECallInfo* eCall = nil; + __block SDLAirbagStatus* airbag = nil; + __block SDLEmergencyEvent* event = nil; + __block SDLClusterModeStatus* clusterMode = nil; + __block SDLMyKey* myKey = nil; + __block SDLFuelRange* fuelRange = nil; + __block NSString* cloudAppVehicleID = nil; + + beforeEach(^{ + gps = [[SDLGPSData alloc] init]; + tires = [[SDLTireStatus alloc] init]; + belt = [[SDLBeltStatus alloc] init]; + body = [[SDLBodyInformation alloc] init]; + device = [[SDLDeviceStatus alloc] init]; + headLamp = [[SDLHeadLampStatus alloc] init]; + eCall = [[SDLECallInfo alloc] init]; + airbag = [[SDLAirbagStatus alloc] init]; + event = [[SDLEmergencyEvent alloc] init]; + clusterMode = [[SDLClusterModeStatus alloc] init]; + myKey = [[SDLMyKey alloc] init]; + fuelRange = [[SDLFuelRange alloc] init]; + cloudAppVehicleID = @"testCloudAppVehicleID"; + }); + it(@"Should set and get correctly", ^ { SDLOnVehicleData* testNotification = [[SDLOnVehicleData alloc] init]; @@ -35,6 +53,7 @@ describe(@"Getter/Setter Tests", ^ { testNotification.airbagStatus = airbag; testNotification.beltStatus = belt; testNotification.bodyInformation = body; + testNotification.cloudAppVehicleID = cloudAppVehicleID; testNotification.clusterModeStatus = clusterMode; testNotification.deviceStatus = device; testNotification.driverBraking = SDLVehicleDataEventStatusYes; @@ -65,6 +84,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testNotification.airbagStatus).to(equal(airbag)); expect(testNotification.beltStatus).to(equal(belt)); expect(testNotification.bodyInformation).to(equal(body)); + expect(testNotification.cloudAppVehicleID).to(equal(cloudAppVehicleID)); expect(testNotification.clusterModeStatus).to(equal(clusterMode)); expect(testNotification.deviceStatus).to(equal(device)); expect(testNotification.driverBraking).to(equal(SDLVehicleDataEventStatusYes)); @@ -93,44 +113,46 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary* dict = @{SDLNameNotification: - @{SDLNameParameters: - @{SDLNameAccelerationPedalPosition:@99.99999999, - SDLNameAirbagStatus:airbag, - SDLNameBeltStatus:belt, - SDLNameBodyInformation:body, - SDLNameClusterModeStatus:clusterMode, - SDLNameDeviceStatus:device, - SDLNameDriverBraking:SDLVehicleDataEventStatusYes, - SDLNameECallInfo:eCall, - SDLNameElectronicParkBrakeStatus:SDLElectronicParkBrakeStatusDriveActive, - SDLNameEmergencyEvent:event, - SDLNameEngineOilLife:@45.1, - SDLNameEngineTorque:@-200.124, - SDLNameExternalTemperature:@-10, - SDLNameFuelLevel:@10.3, - SDLNameFuelLevelState:SDLComponentVolumeStatusAlert, - SDLNameFuelRange:@[fuelRange], - SDLNameGPS:gps, - SDLNameHeadLampStatus:headLamp, - SDLNameInstantFuelConsumption:@4000.63, - SDLNameMyKey:myKey, - SDLNameOdometer:@100050, - SDLNamePRNDL:SDLPRNDLDrive, - SDLNameRPM:@4242, - SDLNameSpeed:@70.1, - SDLNameSteeringWheelAngle:@0.000000001, - SDLNameTirePressure:tires, - SDLNameTurnSignal:SDLTurnSignalOff, - SDLNameVIN:@"222222222722", - SDLNameWiperStatus:SDLWiperStatusStalled}, - SDLNameOperationName:SDLNameOnVehicleData}}; + NSDictionary* dict = @{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAccelerationPedalPosition:@99.99999999, + SDLRPCParameterNameAirbagStatus:airbag, + SDLRPCParameterNameBeltStatus:belt, + SDLRPCParameterNameBodyInformation:body, + SDLRPCParameterNameCloudAppVehicleID:cloudAppVehicleID, + SDLRPCParameterNameClusterModeStatus:clusterMode, + SDLRPCParameterNameDeviceStatus:device, + SDLRPCParameterNameDriverBraking:SDLVehicleDataEventStatusYes, + SDLRPCParameterNameECallInfo:eCall, + SDLRPCParameterNameElectronicParkBrakeStatus:SDLElectronicParkBrakeStatusDriveActive, + SDLRPCParameterNameEmergencyEvent:event, + SDLRPCParameterNameEngineOilLife:@45.1, + SDLRPCParameterNameEngineTorque:@-200.124, + SDLRPCParameterNameExternalTemperature:@-10, + SDLRPCParameterNameFuelLevel:@10.3, + SDLRPCParameterNameFuelLevelState:SDLComponentVolumeStatusAlert, + SDLRPCParameterNameFuelRange:@[fuelRange], + SDLRPCParameterNameGPS:gps, + SDLRPCParameterNameHeadLampStatus:headLamp, + SDLRPCParameterNameInstantFuelConsumption:@4000.63, + SDLRPCParameterNameMyKey:myKey, + SDLRPCParameterNameOdometer:@100050, + SDLRPCParameterNamePRNDL:SDLPRNDLDrive, + SDLRPCParameterNameRPM:@4242, + SDLRPCParameterNameSpeed:@70.1, + SDLRPCParameterNameSteeringWheelAngle:@0.000000001, + SDLRPCParameterNameTirePressure:tires, + SDLRPCParameterNameTurnSignal:SDLTurnSignalOff, + SDLRPCParameterNameVIN:@"222222222722", + SDLRPCParameterNameWiperStatus:SDLWiperStatusStalled}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnVehicleData}}; SDLOnVehicleData* testNotification = [[SDLOnVehicleData alloc] initWithDictionary:dict]; expect(testNotification.accPedalPosition).to(equal(@99.99999999)); expect(testNotification.airbagStatus).to(equal(airbag)); expect(testNotification.beltStatus).to(equal(belt)); expect(testNotification.bodyInformation).to(equal(body)); + expect(testNotification.cloudAppVehicleID).to(equal(cloudAppVehicleID)); expect(testNotification.clusterModeStatus).to(equal(clusterMode)); expect(testNotification.deviceStatus).to(equal(device)); expect(testNotification.driverBraking).to(equal(SDLVehicleDataEventStatusYes)); @@ -165,6 +187,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testNotification.airbagStatus).to(beNil()); expect(testNotification.beltStatus).to(beNil()); expect(testNotification.bodyInformation).to(beNil()); + expect(testNotification.cloudAppVehicleID).to(beNil()); expect(testNotification.clusterModeStatus).to(beNil()); expect(testNotification.deviceStatus).to(beNil()); expect(testNotification.driverBraking).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m index bee2e3cda..94e319360 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m @@ -11,7 +11,8 @@ #import "SDLImage.h" #import "SDLLocationCoordinate.h" #import "SDLLocationDetails.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLOasisAddress.h" QuickSpecBegin(SDLOnWayPointChangeSpec) @@ -63,12 +64,12 @@ describe(@"Getter/Setter Tests", ^ { someWaypoints = @[someLocation]; - NSDictionary *initDict = @{SDLNameNotification : @{ - SDLNameParameters: @{ - SDLNameWayPoints: someWaypoints + NSDictionary *initDict = @{SDLRPCParameterNameNotification : @{ + SDLRPCParameterNameParameters: @{ + SDLRPCParameterNameWayPoints: someWaypoints } }, - SDLNameOperationName:SDLNameOnWayPointChange + SDLRPCParameterNameOperationName:SDLRPCFunctionNameOnWayPointChange }; testNotification = [[SDLOnWayPointChange alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; @@ -84,8 +85,8 @@ describe(@"Getter/Setter Tests", ^ { context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - SDLNameNotification: @{ - SDLNameParameters: @{} + SDLRPCParameterNameNotification: @{ + SDLRPCParameterNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m b/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m index cde24a77a..4139677e3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m @@ -8,16 +8,17 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> +#import "SDLRPCParameterNames.h" #import "SDLRPCPayload.h" #import "SDLRPCMessageType.h" -#import "SDLNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLRPCPayloadSpec) __block SDLRPCPayload* testPayload; -__block NSDictionary* dict = @{SDLNameResponse: - @{SDLNameParameters:@{}, - SDLNameOperationName:SDLNameDeleteCommand}}; +__block NSDictionary* dict = @{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters:@{}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteCommand}}; NSData* (^testData)(void) = ^NSData* { NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:0]; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m index 5f7bcf105..7d7d3214c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m @@ -11,7 +11,8 @@ #import "SDLAddCommand.h" #import "SDLImage.h" #import "SDLMenuParams.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLAddCommandSpec) @@ -34,13 +35,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameCommandId:@434577, - SDLNameMenuParams:menu, - SDLNameVRCommands:[@[@"name", @"anotherName"] mutableCopy], - SDLNameCommandIcon:image}, - SDLNameOperationName:SDLNameAddCommand}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameCommandId:@434577, + SDLRPCParameterNameMenuParams:menu, + SDLRPCParameterNameVRCommands:[@[@"name", @"anotherName"] mutableCopy], + SDLRPCParameterNameCommandIcon:image}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameAddCommand}} mutableCopy]; SDLAddCommand* testRequest = [[SDLAddCommand alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m index 18f09da8e..28584c689 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m @@ -10,7 +10,8 @@ #import "SDLAddSubMenu.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLAddSubMenuSpec) @@ -69,16 +70,16 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameMenuId:@4345645, - SDLNamePosition:@27, - SDLNameMenuName:@"Welcome to the menu", - SDLNameMenuIcon: @{ - SDLNameValue: @"Test" + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameMenuId:@4345645, + SDLRPCParameterNamePosition:@27, + SDLRPCParameterNameMenuName:@"Welcome to the menu", + SDLRPCParameterNameMenuIcon: @{ + SDLRPCParameterNameValue: @"Test" } }, - SDLNameOperationName:SDLNameAddSubMenu}} mutableCopy]; + SDLRPCParameterNameOperationName:SDLRPCFunctionNameAddSubMenu}} mutableCopy]; SDLAddSubMenu* testRequest = [[SDLAddSubMenu alloc] initWithDictionary:dict]; expect(testRequest.menuID).to(equal(@(menuId))); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m index 4d42280db..63ee96868 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m @@ -11,7 +11,8 @@ #import "SDLAlertManeuver.h" #import "SDLTTSChunk.h" #import "SDLSoftButton.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLAlertManeuverSpec) @@ -30,11 +31,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameTTSChunks:[@[tts] mutableCopy], - SDLNameSoftButtons:[@[button] mutableCopy]}, - SDLNameOperationName:SDLNameAlertManeuver}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameTTSChunks:[@[tts] mutableCopy], + SDLRPCParameterNameSoftButtons:[@[button] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameAlertManeuver}} mutableCopy]; SDLAlertManeuver* testRequest = [[SDLAlertManeuver alloc] initWithDictionary:dict]; expect(testRequest.ttsChunks).to(equal([@[tts] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m index 521c8b8f3..58d6c6fe5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m @@ -11,7 +11,8 @@ #import "SDLAlert.h" #import "SDLTTSChunk.h" #import "SDLSoftButton.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLAlertSpec) @@ -42,17 +43,17 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameAlertText1:@"alert#1", - SDLNameAlertText2:@"alert#2", - SDLNameAlertText3:@"alert#3", - SDLNameTTSChunks:[@[tts] mutableCopy], - SDLNameDuration:@4357, - SDLNamePlayTone:@YES, - SDLNameProgressIndicator:@NO, - SDLNameSoftButtons:[@[button] mutableCopy]}, - SDLNameOperationName:SDLNameAlert}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAlertText1:@"alert#1", + SDLRPCParameterNameAlertText2:@"alert#2", + SDLRPCParameterNameAlertText3:@"alert#3", + SDLRPCParameterNameTTSChunks:[@[tts] mutableCopy], + SDLRPCParameterNameDuration:@4357, + SDLRPCParameterNamePlayTone:@YES, + SDLRPCParameterNameProgressIndicator:@NO, + SDLRPCParameterNameSoftButtons:[@[button] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameAlert}} mutableCopy]; SDLAlert* testRequest = [[SDLAlert alloc] initWithDictionary:dict]; expect(testRequest.alertText1).to(equal(@"alert#1")); @@ -66,20 +67,21 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should handle NSNull", ^{ - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameAlertText1:@"alert#1", - SDLNameAlertText2:@"alert#2", - SDLNameAlertText3:@"alert#3", - SDLNameTTSChunks:[@[tts] mutableCopy], - SDLNameDuration:@4357, - SDLNamePlayTone:@YES, - SDLNameProgressIndicator:@NO, - SDLNameSoftButtons:[NSNull null]}, - SDLNameOperationName:SDLNameAlert}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAlertText1:@"alert#1", + SDLRPCParameterNameAlertText2:@"alert#2", + SDLRPCParameterNameAlertText3:@"alert#3", + SDLRPCParameterNameTTSChunks:[@[tts] mutableCopy], + SDLRPCParameterNameDuration:@4357, + SDLRPCParameterNamePlayTone:@YES, + SDLRPCParameterNameProgressIndicator:@NO, + SDLRPCParameterNameSoftButtons:[NSNull null]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameAlert}} mutableCopy]; SDLAlert* testRequest = [[SDLAlert alloc] initWithDictionary:dict]; - - expect(testRequest.softButtons).to(beEmpty()); + expectAction(^{ + NSArray<SDLSoftButton *> *softButtons = testRequest.softButtons; + }).to(raiseException()); }); it(@"Should return nil if not set", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m index 011c3782f..fc22e5c54 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m @@ -8,7 +8,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLButtonPress.h" #import "SDLModuleType.h" #import "SDLButtonName.h" @@ -31,12 +32,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameModuleType : SDLModuleTypeClimate, - SDLNameButtonName : SDLButtonNameAC, - SDLNameButtonPressMode : SDLButtonPressModeShort}, - SDLNameOperationName:SDLNameButtonPress}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameModuleType : SDLModuleTypeClimate, + SDLRPCParameterNameButtonName : SDLButtonNameAC, + SDLRPCParameterNameButtonPressMode : SDLButtonPressModeShort}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameButtonPress}} mutableCopy]; SDLButtonPress* testRequest = [[SDLButtonPress alloc] initWithDictionary:dict]; expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m index 98f05983d..40ada9d6f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m @@ -10,7 +10,8 @@ #import "SDLChangeRegistration.h" #import "SDLLanguage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTTSChunk.h" @@ -112,15 +113,15 @@ describe(@"change registration", ^ { someNGNMediaAppName = @"some media app name"; someVRSynonyms = @[@"some1", @"some2"]; - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameLanguage:someLanguage, - SDLNameHMIDisplayLanguage:someOtherLanguage, - SDLNameAppName:someAppName, - SDLNameTTSName:someTTSChunks, - SDLNameNGNMediaScreenAppName:someNGNMediaAppName, - SDLNameVRSynonyms:someVRSynonyms}, - SDLNameOperationName:SDLNameChangeRegistration}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameLanguage:someLanguage, + SDLRPCParameterNameHMIDisplayLanguage:someOtherLanguage, + SDLRPCParameterNameAppName:someAppName, + SDLRPCParameterNameTTSName:someTTSChunks, + SDLRPCParameterNameNGNMediaScreenAppName:someNGNMediaAppName, + SDLRPCParameterNameVRSynonyms:someVRSynonyms}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameChangeRegistration}} mutableCopy]; testRequest = [[SDLChangeRegistration alloc] initWithDictionary:dict]; }); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m index 52c496f8b..973189701 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m @@ -10,7 +10,8 @@ #import "SDLCreateInteractionChoiceSet.h" #import "SDLChoice.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLCreateInteractionChoiceSetSpec) @@ -28,11 +29,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameInteractionChoiceSetId:@141414, - SDLNameChoiceSet:[@[choice] mutableCopy]}, - SDLNameOperationName:SDLNameCreateInteractionChoiceSet}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameInteractionChoiceSetId:@141414, + SDLRPCParameterNameChoiceSet:[@[choice] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameCreateInteractionChoiceSet}} mutableCopy]; SDLCreateInteractionChoiceSet* testRequest = [[SDLCreateInteractionChoiceSet alloc] initWithDictionary:dict]; expect(testRequest.interactionChoiceSetID).to(equal(@141414)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m index b71e48028..fc275fd96 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteCommand.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDeleteCommandSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameCommandId:@11223344}, - SDLNameOperationName:SDLNameDeleteCommand}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameCommandId:@11223344}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteCommand}} mutableCopy]; SDLDeleteCommand* testRequest = [[SDLDeleteCommand alloc] initWithDictionary:dict]; expect(testRequest.cmdID).to(equal(@11223344)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m index 18ce7d1d7..bb07a874d 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteFile.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDeleteFileSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameSyncFileName:@"synchro"}, - SDLNameOperationName:SDLNameDeleteFile}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSyncFileName:@"synchro"}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteFile}} mutableCopy]; SDLDeleteFile* testRequest = [[SDLDeleteFile alloc] initWithDictionary:dict]; expect(testRequest.syncFileName).to(equal(@"synchro")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m index bcc2c3756..81e6f9d2c 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteInteractionChoiceSet.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDeleteInteractionChoiceSetSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameInteractionChoiceSetId:@20314}, - SDLNameOperationName:SDLNameDeleteInteractionChoiceSet}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameInteractionChoiceSetId:@20314}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteInteractionChoiceSet}} mutableCopy]; SDLDeleteInteractionChoiceSet* testRequest = [[SDLDeleteInteractionChoiceSet alloc] initWithDictionary:dict]; expect(testRequest.interactionChoiceSetID).to(equal(@20314)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m index 888d94f59..5f628f745 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteSubMenu.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDeleteSubMenuSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameMenuId:@25614}, - SDLNameOperationName:SDLNameDeleteSubMenu}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameMenuId:@25614}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteSubMenu}} mutableCopy]; SDLDeleteSubMenu* testRequest = [[SDLDeleteSubMenu alloc] initWithDictionary:dict]; expect(testRequest.menuID).to(equal(@25614)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m index c07a8b5fc..bd75d5853 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDiagnosticMessage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDiagnosticMessageSpec) @@ -27,12 +28,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameTargetId:@3562, - SDLNameMessageLength:@55555, - SDLNameMessageData:[@[@1, @4, @16, @64] mutableCopy]}, - SDLNameOperationName:SDLNameDiagnosticMessage}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameTargetId:@3562, + SDLRPCParameterNameMessageLength:@55555, + SDLRPCParameterNameMessageData:[@[@1, @4, @16, @64] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDiagnosticMessage}} mutableCopy]; SDLDiagnosticMessage* testRequest = [[SDLDiagnosticMessage alloc] initWithDictionary:dict]; expect(testRequest.targetID).to(equal(@3562)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m index a150144c1..100b6786e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m @@ -6,7 +6,7 @@ #import <Nimble/Nimble.h> #import "SDLDialNumber.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLDialNumberSpec) @@ -43,9 +43,9 @@ describe(@"Dial Number RPC", ^{ beforeEach(^{ somePhoneNumber = @"1234567890"; NSDictionary *initDict = @{ - SDLNameRequest: @{ - SDLNameParameters: @{ - SDLNameNumber: [somePhoneNumber copy] + SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{ + SDLRPCParameterNameNumber: [somePhoneNumber copy] } } }; @@ -62,8 +62,8 @@ describe(@"Dial Number RPC", ^{ __block SDLDialNumber *testRequest = nil; beforeEach(^{ NSDictionary *initDict = @{ - SDLNameRequest: @{ - SDLNameParameters: @{ + SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{ } } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m index 739db2b66..d838bcebb 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLEncodedSyncPData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLEncodedSyncPDataSpec) @@ -17,19 +18,19 @@ describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLEncodedSyncPData* testRequest = [[SDLEncodedSyncPData alloc] init]; - testRequest.data = [@[@2, @2, @2] mutableCopy]; + testRequest.data = [@[@"2", @"2", @"2"] mutableCopy]; - expect(testRequest.data).to(equal([@[@2, @2, @2] mutableCopy])); + expect(testRequest.data).to(equal([@[@"2", @"2", @"2"] mutableCopy])); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameData:[@[@2, @2, @2] mutableCopy]}, - SDLNameOperationName:SDLNameEncodedSyncPData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameData:[@[@"2", @"2", @"2"] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameEncodedSyncPData}} mutableCopy]; SDLEncodedSyncPData* testRequest = [[SDLEncodedSyncPData alloc] initWithDictionary:dict]; - expect(testRequest.data).to(equal([@[@2, @2, @2] mutableCopy])); + expect(testRequest.data).to(equal([@[@"2", @"2", @"2"] mutableCopy])); }); it(@"Should return nil if not set", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEndAudioPassThruSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEndAudioPassThruSpec.m index 843d917be..0207f1bc8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEndAudioPassThruSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEndAudioPassThruSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLEndAudioPassThru.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLEndAudioPassThruSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetAppServiceDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetAppServiceDataSpec.m new file mode 100644 index 000000000..a217223a8 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetAppServiceDataSpec.m @@ -0,0 +1,83 @@ +// +// SDLGetAppServiceDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceType.h" +#import "SDLGetAppServiceData.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLGetAppServiceDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testServiceType = nil; + __block SDLAppServiceType testAppServiceType = nil; + __block BOOL testSubscribe = nil; + + beforeEach(^{ + testServiceType = SDLAppServiceTypeWeather; + testAppServiceType = SDLAppServiceTypeMedia; + testSubscribe = YES; + }); + + it(@"Should set and get correctly", ^{ + SDLGetAppServiceData *testRequest = [[SDLGetAppServiceData alloc] init]; + testRequest.serviceType = testServiceType; + testRequest.subscribe = @(testSubscribe); + + expect(testRequest.serviceType).to(equal(testServiceType)); + expect(testRequest.subscribe).to(beTrue()); + }); + + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameServiceType:testServiceType, + SDLRPCParameterNameSubscribe:@(testSubscribe) + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetAppServiceData}}; + SDLGetAppServiceData *testRequest = [[SDLGetAppServiceData alloc] initWithDictionary:dict]; + + expect(testRequest.serviceType).to(equal(testServiceType)); + expect(testRequest.subscribe).to(beTrue()); + }); + + it(@"Should initialize correctly with initWithAppServiceType:", ^{ + SDLGetAppServiceData *testRequest = [[SDLGetAppServiceData alloc] initWithAppServiceType:testAppServiceType]; + + expect(testRequest.serviceType).to(equal(testAppServiceType)); + expect(testRequest.subscribe).to(beNil()); + }); + + it(@"Should initialize correctly with initAndSubscribeToAppServiceType:", ^{ + SDLGetAppServiceData *testRequest = [[SDLGetAppServiceData alloc] initAndSubscribeToAppServiceType:testAppServiceType]; + + expect(testRequest.serviceType).to(equal(testAppServiceType)); + expect(testRequest.subscribe).to(beTrue()); + }); + + it(@"Should initialize correctly with initAndUnsubscribeToAppServiceType:", ^{ + SDLGetAppServiceData *testRequest = [[SDLGetAppServiceData alloc] initAndUnsubscribeToAppServiceType:testAppServiceType]; + + expect(testRequest.serviceType).to(equal(testAppServiceType)); + expect(testRequest.subscribe).to(beFalse()); + }); + + it(@"Should return nil if not set", ^{ + SDLGetAppServiceData *testRequest = [[SDLGetAppServiceData alloc] init]; + + expect(testRequest.serviceType).to(beNil()); + expect(testRequest.subscribe).to(beNil()); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetCloudAppPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetCloudAppPropertiesSpec.m new file mode 100644 index 000000000..37c1810a2 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetCloudAppPropertiesSpec.m @@ -0,0 +1,60 @@ +// +// SDLGetCloudAppPropertiesSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLGetDTCs.h" +#import "SDLGetCloudAppProperties.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + + +QuickSpecBegin(SDLGetCloudAppPropertiesSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testAppID = nil; + + beforeEach(^{ + testAppID = @"testAppID"; + }); + + it(@"Should set and get correctly", ^{ + SDLGetCloudAppProperties *testRequest = [[SDLGetCloudAppProperties alloc] init]; + testRequest.appID = testAppID; + + expect(testRequest.appID).to(equal(testAppID)); + }); + + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameAppId:testAppID + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetCloudAppProperties}}; + SDLGetCloudAppProperties *testRequest = [[SDLGetCloudAppProperties alloc] initWithDictionary:dict]; + + expect(testRequest.appID).to(equal(testAppID)); + expect(testRequest.getFunctionName).to(equal(SDLRPCFunctionNameGetCloudAppProperties)); + }); + + it(@"Should initialize correctly with the convenience init", ^{ + SDLGetCloudAppProperties *testRequest = [[SDLGetCloudAppProperties alloc] initWithAppID:testAppID]; + + expect(testRequest.appID).to(equal(testAppID)); + }); + + it(@"Should return nil if not set", ^{ + SDLGetCloudAppProperties *testRequest = [[SDLGetCloudAppProperties alloc] init]; + + expect(testRequest.appID).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m index fcdec90f8..25e489c46 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLGetDTCs.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLGetDTCsSpec) @@ -25,11 +26,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameECUName:@4321, - SDLNameDTCMask:@22}, - SDLNameOperationName:SDLNameEndAudioPassThru}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameECUName:@4321, + SDLRPCParameterNameDTCMask:@22}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameEndAudioPassThru}} mutableCopy]; SDLGetDTCs* testRequest = [[SDLGetDTCs alloc] initWithDictionary:dict]; expect(testRequest.ecuName).to(equal(@4321)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetFileSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetFileSpec.m new file mode 100644 index 000000000..f2f25dfbc --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetFileSpec.m @@ -0,0 +1,109 @@ +// +// SDLGetFileSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLGetFile.h" +#import "SDLFileType.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLGetFileSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testFileName = nil; + __block NSString *testAppServiceId = nil; + __block SDLFileType testFileType = nil; + __block int testOffset = 45; + __block int testLength = 67; + + beforeEach(^{ + testFileName = @"testFileName"; + testAppServiceId = @"testAppServiceId"; + testFileType = SDLFileTypePNG; + }); + + it(@"Should set and get correctly", ^{ + SDLGetFile *testRequest = [[SDLGetFile alloc] init]; + testRequest.fileName = testFileName; + testRequest.appServiceId = testAppServiceId; + testRequest.fileType = testFileType; + testRequest.offset = @(testOffset); + testRequest.length = @(testLength); + + expect(testRequest.fileName).to(equal(testFileName)); + expect(testRequest.appServiceId).to(equal(testAppServiceId)); + expect(testRequest.fileType).to(equal(testFileType)); + expect(testRequest.offset).to(equal(testOffset)); + expect(testRequest.length).to(equal(testLength)); + }); + + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameFilename:testFileName, + SDLRPCParameterNameAppServiceId:testAppServiceId, + SDLRPCParameterNameFileType:testFileType, + SDLRPCParameterNameOffset:@(testOffset), + SDLRPCParameterNameLength:@(testLength) + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetFile}}; + SDLGetFile *testRequest = [[SDLGetFile alloc] initWithDictionary:dict]; + + expect(testRequest.fileName).to(equal(testFileName)); + expect(testRequest.appServiceId).to(equal(testAppServiceId)); + expect(testRequest.fileType).to(equal(testFileType)); + expect(testRequest.offset).to(equal(testOffset)); + expect(testRequest.length).to(equal(testLength)); + }); + + it(@"Should initialize correctly with initWithFileName:", ^{ + SDLGetFile *testRequest = [[SDLGetFile alloc] initWithFileName:testFileName]; + + expect(testRequest.fileName).to(equal(testFileName)); + expect(testRequest.appServiceId).to(beNil()); + expect(testRequest.fileType).to(beNil()); + expect(testRequest.offset).to(beNil()); + expect(testRequest.length).to(beNil()); + }); + + it(@"Should initialize correctly with initWithFileName:appServiceId:fileType:", ^{ + SDLGetFile *testRequest = [[SDLGetFile alloc] initWithFileName:testFileName appServiceId:testAppServiceId fileType:testFileType]; + + expect(testRequest.fileName).to(equal(testFileName)); + expect(testRequest.appServiceId).to(equal(testAppServiceId)); + expect(testRequest.fileType).to(equal(testFileType)); + expect(testRequest.offset).to(beNil()); + expect(testRequest.length).to(beNil()); + }); + + it(@"Should initialize correctly with initWithFileName:appServiceId:fileType:offset:length:", ^{ + SDLGetFile *testRequest = [[SDLGetFile alloc] initWithFileName:testFileName appServiceId:testAppServiceId fileType:testFileType offset:testOffset length:testLength]; + + expect(testRequest.fileName).to(equal(testFileName)); + expect(testRequest.appServiceId).to(equal(testAppServiceId)); + expect(testRequest.fileType).to(equal(testFileType)); + expect(testRequest.offset).to(equal(testOffset)); + expect(testRequest.length).to(equal(testLength)); + }); + + it(@"Should return nil if not set", ^{ + SDLGetFile *testRequest = [[SDLGetFile alloc] init]; + + expect(testRequest.fileName).to(beNil()); + expect(testRequest.appServiceId).to(beNil()); + expect(testRequest.fileType).to(beNil()); + expect(testRequest.offset).to(beNil()); + expect(testRequest.length).to(beNil()); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m index 12dfceec7..600c9826b 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m @@ -10,7 +10,8 @@ #import "SDLGetInteriorVehicleData.h" #import "SDLModuleType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLGetInteriorVehicleDataSpec) @@ -25,11 +26,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameModuleType : SDLModuleTypeRadio, - SDLNameSubscribe : @YES}, - SDLNameOperationName:SDLNameGetInteriorVehicleData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameModuleType : SDLModuleTypeRadio, + SDLRPCParameterNameSubscribe : @YES}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetInteriorVehicleData}} mutableCopy]; SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] initWithDictionary:dict]; expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m index 99feed6f3..a5cbac428 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m @@ -6,7 +6,7 @@ #import "SDLGetSystemCapability.h" #import "SDLSystemCapabilityType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLGetSystemCapabilitiesSpec) @@ -22,9 +22,9 @@ describe(@"Getter/Setter Tests", ^ { describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary *dict = @{SDLNameRequest: @{ - SDLNameParameters: @{ - SDLNameSystemCapabilityType: @"PHONE_CALL" + NSDictionary *dict = @{SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{ + SDLRPCParameterNameSystemCapabilityType: @"PHONE_CALL" } } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitySpec.m new file mode 100644 index 000000000..77d175818 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitySpec.m @@ -0,0 +1,76 @@ +// +// SDLGetSystemCapabilitySpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLGetSystemCapability.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSystemCapabilityType.h" + +QuickSpecBegin(SDLGetSystemCapabilitySpec) + +describe(@"Getter/Setter Tests", ^ { + __block SDLSystemCapabilityType testSystemCapabilityType = nil; + __block BOOL testSubcribe = nil; + + beforeEach(^{ + testSystemCapabilityType = SDLSystemCapabilityTypeAppServices; + testSubcribe = NO; + }); + + it(@"Should set and get correctly", ^{ + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] init]; + testRequest.systemCapabilityType = testSystemCapabilityType; + testRequest.subscribe = @(testSubcribe); + + expect(testRequest.systemCapabilityType).to(equal(testSystemCapabilityType)); + expect(testRequest.subscribe).to(beFalse()); + }); + + it(@"Should return nil if not set", ^{ + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] init]; + + expect(testRequest.systemCapabilityType).to(beNil()); + expect(testRequest.subscribe).to(beNil()); + }); + + describe(@"initializing", ^{ + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameSystemCapabilityType:testSystemCapabilityType, + SDLRPCParameterNameSubscribe:@(testSubcribe) + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetSystemCapability}}; + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithDictionary:dict]; + + expect(testRequest.systemCapabilityType).to(equal(testSystemCapabilityType)); + expect(testRequest.subscribe).to(beFalse()); + }); + + + it(@"Should initialize correctly with initWithType:", ^{ + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithType:testSystemCapabilityType]; + + expect(testRequest.systemCapabilityType).to(equal(testSystemCapabilityType)); + expect(testRequest.subscribe).to(beNil()); + }); + + it(@"Should initialize correctly with initWithType:subscribe:", ^{ + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithType:testSystemCapabilityType subscribe:testSubcribe]; + + expect(testRequest.systemCapabilityType).to(equal(testSystemCapabilityType)); + expect(testRequest.subscribe).to(beFalse()); + }); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m index 360b87bae..4945d87fd 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLGetVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLGetVehicleDataSpec) @@ -21,6 +22,7 @@ describe(@"Getter/Setter Tests", ^ { testRequest.airbagStatus = @NO; testRequest.beltStatus = @NO; testRequest.bodyInformation = @YES; + testRequest.cloudAppVehicleID = @YES; testRequest.clusterModeStatus = @NO; testRequest.deviceStatus = @NO; testRequest.driverBraking = @YES; @@ -50,6 +52,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.airbagStatus).to(equal(@NO)); expect(testRequest.beltStatus).to(equal(@NO)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@NO)); expect(testRequest.deviceStatus).to(equal(@NO)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -77,43 +80,45 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary<NSString *, id> *dict = @{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameAccelerationPedalPosition:@YES, - SDLNameAirbagStatus:@YES, - SDLNameBeltStatus:@YES, - SDLNameBodyInformation:@YES, - SDLNameClusterModeStatus:@YES, - SDLNameDeviceStatus:@YES, - SDLNameDriverBraking:@YES, - SDLNameECallInfo:@YES, - SDLNameElectronicParkBrakeStatus:@YES, - SDLNameEmergencyEvent:@NO, - SDLNameEngineOilLife:@YES, - SDLNameEngineTorque:@YES, - SDLNameExternalTemperature:@NO, - SDLNameFuelLevel:@YES, - SDLNameFuelLevelState:@YES, - SDLNameFuelRange:@YES, - SDLNameGPS:@YES, - SDLNameHeadLampStatus:@YES, - SDLNameInstantFuelConsumption:@YES, - SDLNameMyKey:@YES, - SDLNameOdometer:@YES, - SDLNamePRNDL:@YES, - SDLNameRPM:@YES, - SDLNameSpeed:@YES, - SDLNameSteeringWheelAngle:@NO, - SDLNameTirePressure:@YES, - SDLNameTurnSignal:@NO, - SDLNameWiperStatus:@YES}, - SDLNameOperationName:SDLNameGetVehicleData}}; + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAccelerationPedalPosition:@YES, + SDLRPCParameterNameAirbagStatus:@YES, + SDLRPCParameterNameBeltStatus:@YES, + SDLRPCParameterNameBodyInformation:@YES, + SDLRPCParameterNameCloudAppVehicleID:@YES, + SDLRPCParameterNameClusterModeStatus:@YES, + SDLRPCParameterNameDeviceStatus:@YES, + SDLRPCParameterNameDriverBraking:@YES, + SDLRPCParameterNameECallInfo:@YES, + SDLRPCParameterNameElectronicParkBrakeStatus:@YES, + SDLRPCParameterNameEmergencyEvent:@NO, + SDLRPCParameterNameEngineOilLife:@YES, + SDLRPCParameterNameEngineTorque:@YES, + SDLRPCParameterNameExternalTemperature:@NO, + SDLRPCParameterNameFuelLevel:@YES, + SDLRPCParameterNameFuelLevelState:@YES, + SDLRPCParameterNameFuelRange:@YES, + SDLRPCParameterNameGPS:@YES, + SDLRPCParameterNameHeadLampStatus:@YES, + SDLRPCParameterNameInstantFuelConsumption:@YES, + SDLRPCParameterNameMyKey:@YES, + SDLRPCParameterNameOdometer:@YES, + SDLRPCParameterNamePRNDL:@YES, + SDLRPCParameterNameRPM:@YES, + SDLRPCParameterNameSpeed:@YES, + SDLRPCParameterNameSteeringWheelAngle:@NO, + SDLRPCParameterNameTirePressure:@YES, + SDLRPCParameterNameTurnSignal:@NO, + SDLRPCParameterNameWiperStatus:@YES}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetVehicleData}}; SDLGetVehicleData* testRequest = [[SDLGetVehicleData alloc] initWithDictionary:dict]; expect(testRequest.accPedalPosition).to(equal(@YES)); expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -149,6 +154,7 @@ describe(@"initializers", ^{ expect(testRequest.airbagStatus).to(beNil()); expect(testRequest.beltStatus).to(beNil()); expect(testRequest.bodyInformation).to(beNil()); + expect(testRequest.cloudAppVehicleID).to(beNil()); expect(testRequest.clusterModeStatus).to(beNil()); expect(testRequest.deviceStatus).to(beNil()); expect(testRequest.driverBraking).to(beNil()); @@ -184,6 +190,7 @@ describe(@"initializers", ^{ expect(testRequest.airbagStatus).to(equal(@NO)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@NO)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -212,12 +219,49 @@ describe(@"initializers", ^{ }); context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLGetVehicleData *testRequest = [[SDLGetVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES vin:YES wiperStatus:YES]; expect(testRequest.accPedalPosition).to(equal(@YES)); expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@NO)); + expect(testRequest.clusterModeStatus).to(equal(@YES)); + expect(testRequest.deviceStatus).to(equal(@YES)); + expect(testRequest.driverBraking).to(equal(@YES)); + expect(testRequest.eCallInfo).to(equal(@YES)); + expect(testRequest.electronicParkBrakeStatus).to(equal(@YES)); + expect(testRequest.emergencyEvent).to(equal(@YES)); + expect(testRequest.engineOilLife).to(equal(@YES)); + expect(testRequest.engineTorque).to(equal(@YES)); + expect(testRequest.externalTemperature).to(equal(@YES)); + expect(testRequest.fuelLevel).to(equal(@YES)); + expect(testRequest.fuelLevel_State).to(equal(@YES)); + expect(testRequest.fuelRange).to(equal(@YES)); + expect(testRequest.gps).to(equal(@YES)); + expect(testRequest.headLampStatus).to(equal(@YES)); + expect(testRequest.instantFuelConsumption).to(equal(@YES)); + expect(testRequest.myKey).to(equal(@YES)); + expect(testRequest.odometer).to(equal(@YES)); + expect(testRequest.prndl).to(equal(@YES)); + expect(testRequest.rpm).to(equal(@YES)); + expect(testRequest.speed).to(equal(@YES)); + expect(testRequest.steeringWheelAngle).to(equal(@YES)); + expect(testRequest.tirePressure).to(equal(@YES)); + expect(testRequest.turnSignal).to(equal(@YES)); + expect(testRequest.wiperStatus).to(equal(@YES)); + #pragma clang diagnostic pop + }); + context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{ + SDLGetVehicleData *testRequest = [[SDLGetVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES cloudAppVehicleID:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES vin:YES wiperStatus:YES]; + + expect(testRequest.accPedalPosition).to(equal(@YES)); + expect(testRequest.airbagStatus).to(equal(@YES)); + expect(testRequest.beltStatus).to(equal(@YES)); + expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m index 45946f405..3b0c706c3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m @@ -8,7 +8,8 @@ #import "SDLGetWaypoints.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLWayPointType.h" QuickSpecBegin(SDLGetWaypointsSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameWayPointType:SDLWayPointTypeAll}, - SDLNameOperationName:SDLNameGetWayPoints}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameWayPointType:SDLWayPointTypeAll}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetWayPoints}} mutableCopy]; SDLGetWayPoints* testRequest = [[SDLGetWayPoints alloc] initWithDictionary:dict]; expect(testRequest.waypointType).to(equal(SDLWayPointTypeAll)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLListFilesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLListFilesSpec.m index 0f0084f41..7039ace5a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLListFilesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLListFilesSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLListFiles.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLListFilesSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAppServiceInteractionSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAppServiceInteractionSpec.m new file mode 100644 index 000000000..7d5cde77a --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAppServiceInteractionSpec.m @@ -0,0 +1,90 @@ +// +// SDLPerformAppServiceInteractionSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLPerformAppServiceInteraction.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLPerformAppServiceInteractionSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testServiceUri = nil; + __block NSString *testServiceID = nil; + __block NSString *testOriginApp = nil; + __block BOOL testRequestServiceActive = nil; + + beforeEach(^{ + testServiceUri = @"testServiceUri"; + testServiceID = @"testServiceID"; + testOriginApp = @"testOriginApp"; + testRequestServiceActive = true; + }); + + it(@"Should set and get correctly", ^{ + SDLPerformAppServiceInteraction *testRequest = [[SDLPerformAppServiceInteraction alloc] init]; + testRequest.serviceUri = testServiceUri; + testRequest.serviceID = testServiceID; + testRequest.originApp = testOriginApp; + testRequest.requestServiceActive = @(testRequestServiceActive); + + expect(testRequest.serviceUri).to(equal(testServiceUri)); + expect(testRequest.serviceID).to(equal(testServiceID)); + expect(testRequest.originApp).to(equal(testOriginApp)); + expect(testRequest.requestServiceActive).to(beTrue()); + }); + + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameServiceUri:testServiceUri, + SDLRPCParameterNameServiceID:testServiceID, + SDLRPCParameterNameOriginApp:testOriginApp, + SDLRPCParameterNameRequestServiceActive:@(testRequestServiceActive) + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePerformAppServiceInteraction}}; + SDLPerformAppServiceInteraction *testRequest = [[SDLPerformAppServiceInteraction alloc] initWithDictionary:dict]; + + expect(testRequest.serviceUri).to(equal(testServiceUri)); + expect(testRequest.serviceID).to(equal(testServiceID)); + expect(testRequest.originApp).to(equal(testOriginApp)); + expect(testRequest.requestServiceActive).to(beTrue()); + }); + + it(@"Should initialize correctly with initWithServiceUri:appServiceId:originApp:", ^{ + SDLPerformAppServiceInteraction *testRequest = [[SDLPerformAppServiceInteraction alloc] initWithServiceUri:testServiceUri serviceID:testServiceID originApp:testOriginApp]; + + expect(testRequest.serviceUri).to(equal(testServiceUri)); + expect(testRequest.serviceID).to(equal(testServiceID)); + expect(testRequest.originApp).to(equal(testOriginApp)); + expect(testRequest.requestServiceActive).to(beNil()); + }); + + it(@"Should initialize correctly with initWithServiceUri:appServiceId:originApp:requestServiceActive:", ^{ + SDLPerformAppServiceInteraction *testRequest = [[SDLPerformAppServiceInteraction alloc] initWithServiceUri:testServiceUri serviceID:testServiceID originApp:testOriginApp requestServiceActive:testRequestServiceActive]; + + expect(testRequest.serviceUri).to(equal(testServiceUri)); + expect(testRequest.serviceID).to(equal(testServiceID)); + expect(testRequest.originApp).to(equal(testOriginApp)); + expect(testRequest.requestServiceActive).to(beTrue()); + }); + + it(@"Should return nil if not set", ^{ + SDLPerformAppServiceInteraction *testRequest = [[SDLPerformAppServiceInteraction alloc] init]; + + expect(testRequest.serviceUri).to(beNil()); + expect(testRequest.serviceID).to(beNil()); + expect(testRequest.originApp).to(beNil()); + expect(testRequest.requestServiceActive).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m index e55cf86be..ec8799689 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m @@ -10,7 +10,8 @@ #import "SDLAudioType.h" #import "SDLBitsPerSample.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPerformAudioPassThru.h" #import "SDLSamplingRate.h" @@ -39,16 +40,16 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameAudioPassThruDisplayText1:@"passthru#1", - SDLNameAudioPassThruDisplayText2:@"passthru#2", - SDLNameSamplingRate:SDLSamplingRate22KHZ, - SDLNameMaxDuration:@34563, - SDLNameBitsPerSample:SDLBitsPerSample16Bit, - SDLNameAudioType:SDLAudioTypePCM, - SDLNameMuteAudio:@NO}, - SDLNameOperationName:SDLNamePerformAudioPassThru}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAudioPassThruDisplayText1:@"passthru#1", + SDLRPCParameterNameAudioPassThruDisplayText2:@"passthru#2", + SDLRPCParameterNameSamplingRate:SDLSamplingRate22KHZ, + SDLRPCParameterNameMaxDuration:@34563, + SDLRPCParameterNameBitsPerSample:SDLBitsPerSample16Bit, + SDLRPCParameterNameAudioType:SDLAudioTypePCM, + SDLRPCParameterNameMuteAudio:@NO}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePerformAudioPassThru}} mutableCopy]; SDLPerformAudioPassThru* testRequest = [[SDLPerformAudioPassThru alloc] initWithDictionary:dict]; expect(testRequest.audioPassThruDisplayText1).to(equal(@"passthru#1")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m index 337008aee..6c905afbe 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m @@ -13,7 +13,8 @@ #import "SDLPerformInteraction.h" #import "SDLTTSChunk.h" #import "SDLVrHelpItem.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLPerformInteractionSpec) @@ -48,18 +49,18 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameInitialText:@"a", - SDLNameInitialPrompt:[@[chunk1] mutableCopy], - SDLNameInteractionMode:SDLInteractionModeVoiceRecognitionOnly, - SDLNameInteractionChoiceSetIdList:[@[@1, @2, @3] mutableCopy], - SDLNameHelpPrompt:[@[chunk2] mutableCopy], - SDLNameTimeoutPrompt:[@[chunk3] mutableCopy], - SDLNameTimeout:@42000, - SDLNameVRHelp:[@[helpItem] mutableCopy], - SDLNameInteractionLayout:SDLLayoutModeIconWithSearch}, - SDLNameOperationName:SDLNamePerformInteraction}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameInitialText:@"a", + SDLRPCParameterNameInitialPrompt:[@[chunk1] mutableCopy], + SDLRPCParameterNameInteractionMode:SDLInteractionModeVoiceRecognitionOnly, + SDLRPCParameterNameInteractionChoiceSetIdList:[@[@1, @2, @3] mutableCopy], + SDLRPCParameterNameHelpPrompt:[@[chunk2] mutableCopy], + SDLRPCParameterNameTimeoutPrompt:[@[chunk3] mutableCopy], + SDLRPCParameterNameTimeout:@42000, + SDLRPCParameterNameVRHelp:[@[helpItem] mutableCopy], + SDLRPCParameterNameInteractionLayout:SDLLayoutModeIconWithSearch}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePerformInteraction}} mutableCopy]; SDLPerformInteraction* testRequest = [[SDLPerformInteraction alloc] initWithDictionary:dict]; expect(testRequest.initialText).to(equal(@"a")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPublishAppServiceSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPublishAppServiceSpec.m new file mode 100644 index 000000000..a11ec3fb0 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPublishAppServiceSpec.m @@ -0,0 +1,59 @@ +// +// SDLPublishAppServiceSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceManifest.h" +#import "SDLPublishAppService.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLPublishAppServiceSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLAppServiceManifest *testAppServiceManifest = nil; + + beforeEach(^{ + testAppServiceManifest = [[SDLAppServiceManifest alloc] init]; + }); + + it(@"Should set and get correctly", ^{ + SDLPublishAppService *testRequest = [[SDLPublishAppService alloc] init]; + testRequest.appServiceManifest = testAppServiceManifest; + + expect(testRequest.appServiceManifest).to(equal(testAppServiceManifest)); + }); + + it(@"Should return nil if not set", ^{ + SDLPublishAppService *testRequest = [[SDLPublishAppService alloc] init]; + + expect(testRequest.appServiceManifest).to(beNil()); + }); + + describe(@"initializing", ^{ + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameAppServiceManifest:testAppServiceManifest + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePublishAppService}}; + SDLPublishAppService *testRequest = [[SDLPublishAppService alloc] initWithDictionary:dict]; + + expect(testRequest.appServiceManifest).to(equal(testAppServiceManifest)); + }); + + it(@"Should initialize correctly with initWithAppServiceManifest:", ^{ + SDLPublishAppService *testRequest = [[SDLPublishAppService alloc] initWithAppServiceManifest:testAppServiceManifest]; + + expect(testRequest.appServiceManifest).to(equal(testAppServiceManifest)); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m index 88b7310f5..b8c8f4f6b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLFileType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPutFile.h" #import <zlib.h> @@ -43,16 +44,16 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get and set correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{ SDLNameSyncFileName:@"fileName", - SDLNameFileType:SDLFileTypeJPEG, - SDLNamePersistentFile:@YES, - SDLNameSystemFile:@NO, - SDLNameOffset:@987654321, - SDLNameLength:@123456789, - SDLNameCRC:@0xffffffff}, - SDLNameOperationName:SDLNamePutFile}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{ SDLRPCParameterNameSyncFileName:@"fileName", + SDLRPCParameterNameFileType:SDLFileTypeJPEG, + SDLRPCParameterNamePersistentFile:@YES, + SDLRPCParameterNameSystemFile:@NO, + SDLRPCParameterNameOffset:@987654321, + SDLRPCParameterNameLength:@123456789, + SDLRPCParameterNameCRC:@0xffffffff}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePutFile}} mutableCopy]; SDLPutFile* testRequest = [[SDLPutFile alloc] initWithDictionary:dict]; expect(testRequest.syncFileName).to(equal(@"fileName")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m index f0290c3b6..a5ee105d1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLReadDID.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLReadDIDSpec) @@ -25,11 +26,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameECUName:@33112, - SDLNameDIDLocation:[@[@200, @201, @205] mutableCopy]}, - SDLNameOperationName:SDLNameEndAudioPassThru}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameECUName:@33112, + SDLRPCParameterNameDIDLocation:[@[@200, @201, @205] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameEndAudioPassThru}} mutableCopy]; SDLReadDID* testRequest = [[SDLReadDID alloc] initWithDictionary:dict]; expect(testRequest.ecuName).to(equal(@33112)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m index 786fbf836..d559adaa2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m @@ -14,7 +14,8 @@ #import "SDLDeviceInfo.h" #import "SDLLanguage.h" #import "SDLLifecycleConfiguration.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLRegisterAppInterface.h" #import "SDLSyncMsgVersion.h" #import "SDLTemplateColorScheme.h" @@ -42,7 +43,7 @@ describe(@"RegisterAppInterface Tests", ^{ __block SDLAppInfo *appInfo = nil; __block SDLTemplateColorScheme *colorScheme = nil; - __block SDLSyncMsgVersion *currentSyncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:5 minorVersion:0 patchVersion:0]; + __block SDLSyncMsgVersion *currentSyncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:5 minorVersion:1 patchVersion:0]; beforeEach(^{ testRegisterAppInterface = nil; @@ -92,26 +93,26 @@ describe(@"RegisterAppInterface Tests", ^{ }); it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary* dict = @{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameSyncMessageVersion:version, - SDLNameAppName:appName, - SDLNameTTSName:[@[chunk] mutableCopy], - SDLNameNGNMediaScreenAppName:shortAppName, - SDLNameVRSynonyms:@[vrSynonyms], - SDLNameIsMediaApplication:isMediaApp, - SDLNameLanguageDesired:SDLLanguageNoNo, - SDLNameHMIDisplayLanguageDesired:SDLLanguagePtPt, - SDLNameAppHMIType:appTypes, - SDLNameHashId:resumeHash, - SDLNameDeviceInfo:info, - SDLNameFullAppID:fullAppId, - SDLNameAppId:appId, - SDLNameAppInfo:appInfo, - SDLNameDayColorScheme: colorScheme, - SDLNameNightColorScheme: colorScheme, + NSDictionary* dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSyncMessageVersion:version, + SDLRPCParameterNameAppName:appName, + SDLRPCParameterNameTTSName:[@[chunk] mutableCopy], + SDLRPCParameterNameNGNMediaScreenAppName:shortAppName, + SDLRPCParameterNameVRSynonyms:@[vrSynonyms], + SDLRPCParameterNameIsMediaApplication:isMediaApp, + SDLRPCParameterNameLanguageDesired:SDLLanguageNoNo, + SDLRPCParameterNameHMIDisplayLanguageDesired:SDLLanguagePtPt, + SDLRPCParameterNameAppHMIType:appTypes, + SDLRPCParameterNameHashId:resumeHash, + SDLRPCParameterNameDeviceInfo:info, + SDLRPCParameterNameFullAppID:fullAppId, + SDLRPCParameterNameAppId:appId, + SDLRPCParameterNameAppInfo:appInfo, + SDLRPCParameterNameDayColorScheme: colorScheme, + SDLRPCParameterNameNightColorScheme: colorScheme, }, - SDLNameOperationName:SDLNameRegisterAppInterface}}; + SDLRPCParameterNameOperationName:SDLRPCFunctionNameRegisterAppInterface}}; SDLRegisterAppInterface* testRegisterAppInterface = [[SDLRegisterAppInterface alloc] initWithDictionary:dict]; expect(testRegisterAppInterface.syncMsgVersion).to(equal(version)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m index 1d45f37a4..67ffbbec9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m @@ -10,7 +10,8 @@ #import "SDLResetGlobalProperties.h" #import "SDLGlobalProperty.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLResetGlobalPropertiesSpec) @@ -24,10 +25,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameProperties:[@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy]}, - SDLNameOperationName:SDLNameResetGlobalProperties}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameProperties:[@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameResetGlobalProperties}} mutableCopy]; SDLResetGlobalProperties* testRequest = [[SDLResetGlobalProperties alloc] initWithDictionary:dict]; expect(testRequest.properties).to(equal([@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m index f4b50c3f9..d8074b2eb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m @@ -10,7 +10,8 @@ #import "SDLScrollableMessage.h" #import "SDLSoftButton.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLScrollableMessageSpec) @@ -30,12 +31,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameScrollableMessageBody:@"thatmessagebody", - SDLNameTimeout:@9182, - SDLNameSoftButtons:[@[button] mutableCopy]}, - SDLNameOperationName:SDLNameScrollableMessage}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameScrollableMessageBody:@"thatmessagebody", + SDLRPCParameterNameTimeout:@9182, + SDLRPCParameterNameSoftButtons:[@[button] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameScrollableMessage}} mutableCopy]; SDLScrollableMessage* testRequest = [[SDLScrollableMessage alloc] initWithDictionary:dict]; expect(testRequest.scrollableMessageBody).to(equal(@"thatmessagebody")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m index 24bf7ddb2..d02e8f9bb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m @@ -11,7 +11,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLHapticRect.h" #import "SDLRectangle.h" #import "SDLSendHapticData.h" @@ -36,10 +37,10 @@ describe(@"Initialization Tests", ^ { context(@"Init tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameHapticRectData:@[testStruct]}, - SDLNameOperationName:SDLNameSendHapticData}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameHapticRectData:@[testStruct]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSendHapticData}} mutableCopy]; SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithDictionary:dict]; expect(testRequest.hapticRectData).to(equal(@[testStruct])); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m index c0539943a..244d3fdce 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m @@ -5,7 +5,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSendLocation.h" @@ -26,22 +27,21 @@ describe(@"Send Location RPC", ^{ describe(@"when initialized with init", ^{ beforeEach(^{ + someLongitude = @123.4567; + someLatitude = @65.4321; + someLocation = @"Livio"; + someLocationDescription = @"A great place to work"; + someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"]; + somePhoneNumber = @"248-591-0333"; + someImage = [[SDLImage alloc] init]; + someDeliveryMode = SDLDeliveryModePrompt; + someTime = [[SDLDateTime alloc] init]; + someAddress = [[SDLOasisAddress alloc] init]; testRequest = [[SDLSendLocation alloc] init]; }); context(@"when parameters are set correctly", ^{ beforeEach(^{ - someLongitude = @123.4567; - someLatitude = @65.4321; - someLocation = @"Livio"; - someLocationDescription = @"A great place to work"; - someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"]; - somePhoneNumber = @"248-591-0333"; - someImage = [[SDLImage alloc] init]; - someDeliveryMode = SDLDeliveryModePrompt; - someTime = [[SDLDateTime alloc] init]; - someAddress = [[SDLOasisAddress alloc] init]; - testRequest.longitudeDegrees = someLongitude; testRequest.latitudeDegrees = someLatitude; testRequest.locationName = someLocation; @@ -55,53 +55,16 @@ describe(@"Send Location RPC", ^{ }); // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical - it(@"should get longitude correctly", ^{ - expect(testRequest.longitudeDegrees).to(equal(someLongitude)); + it(@"should get parameters correctly", ^{ expect(testRequest.longitudeDegrees).to(beIdenticalTo(someLongitude)); - }); - - it(@"should get latitude correctly", ^{ - expect(testRequest.latitudeDegrees).to(equal(someLatitude)); expect(testRequest.latitudeDegrees).to(beIdenticalTo(someLatitude)); - }); - - it(@"should get location correctly", ^{ - expect(testRequest.locationName).to(equal(someLocation)); expect(testRequest.locationName).to(beIdenticalTo(someLocation)); - }); - - it(@"should get location description correctly", ^{ - expect(testRequest.locationDescription).to(equal(someLocationDescription)); expect(testRequest.locationDescription).to(beIdenticalTo(someLocationDescription)); - }); - - it(@"should get address lines correctly", ^{ - expect(testRequest.addressLines).to(equal(someAddressLines)); expect(testRequest.addressLines).to(beIdenticalTo(someAddressLines)); - }); - - it(@"should get phone number correctly", ^{ - expect(testRequest.phoneNumber).to(equal(somePhoneNumber)); expect(testRequest.phoneNumber).to(beIdenticalTo(somePhoneNumber)); - }); - - it(@"should get image correctly", ^{ - expect(testRequest.locationImage).to(equal(someImage)); expect(testRequest.locationImage).to(beIdenticalTo(someImage)); - }); - - it(@"should get delivery mode correctly", ^{ - expect(testRequest.deliveryMode).to(equal(someDeliveryMode)); expect(testRequest.deliveryMode).to(beIdenticalTo(someDeliveryMode)); - }); - - it(@"should get timestamp correctly", ^{ - expect(testRequest.timeStamp).to(equal(someTime)); expect(testRequest.timeStamp).to(beIdenticalTo(someTime)); - }); - - it(@"should get address correctly", ^{ - expect(testRequest.address).to(equal(someAddress)); expect(testRequest.address).to(beIdenticalTo(someAddress)); }); }); @@ -109,73 +72,96 @@ describe(@"Send Location RPC", ^{ context(@"when parameters are not set", ^{ it(@"should return nil for longitude", ^{ expect(testRequest.longitudeDegrees).to(beNil()); - }); - - it(@"should return nil for latitude", ^{ expect(testRequest.latitudeDegrees).to(beNil()); - }); - - it(@"should return nil for location", ^{ expect(testRequest.locationName).to(beNil()); - }); - - it(@"should return nil for location description", ^{ expect(testRequest.locationDescription).to(beNil()); - }); - - it(@"should return nil for address lines", ^{ expect(testRequest.addressLines).to(beNil()); - }); - - it(@"should return nil for phone number", ^{ expect(testRequest.phoneNumber).to(beNil()); - }); - - it(@"should return nil for image", ^{ expect(testRequest.locationImage).to(beNil()); - }); - - it(@"should return nil for delivery mode", ^{ expect(testRequest.deliveryMode).to(beNil()); - }); - - it(@"should return nil for timeStamp", ^{ expect(testRequest.timeStamp).to(beNil()); + expect(testRequest.address).to(beNil()); }); - - it(@"should return nil for address", ^{ + }); + }); + + describe(@"when initialized with convenience inits", ^{ + context(@"initWithAddress: addressLines: locationName: locationDescription: phoneNumber: image: deliveryMode: timeStamp:", ^{ + beforeEach(^{ + testRequest = [[SDLSendLocation alloc] initWithAddress:someAddress addressLines:someAddressLines locationName:someLocation locationDescription:someLocationDescription phoneNumber:somePhoneNumber image:someImage deliveryMode:someDeliveryMode timeStamp:someTime]; + }); + + it(@"should set parameters correctly", ^{ + expect(testRequest.longitudeDegrees).to(beNil()); + expect(testRequest.latitudeDegrees).to(beNil()); + expect(testRequest.locationName).to(equal(someLocation)); + expect(testRequest.locationDescription).to(equal(someLocationDescription)); + expect(testRequest.addressLines).to(equal(someAddressLines)); + expect(testRequest.phoneNumber).to(equal(somePhoneNumber)); + expect(testRequest.locationImage).to(equal(someImage)); + expect(testRequest.deliveryMode).to(equal(someDeliveryMode)); + expect(testRequest.timeStamp).to(equal(someTime)); + expect(testRequest.address).to(equal(someAddress)); + }); + }); + + context(@"initWithLongitude: latitude: locationName: locationDescription: address: phoneNumber: image:", ^{ + beforeEach(^{ + testRequest = [[SDLSendLocation alloc] initWithLongitude:someLongitude.doubleValue latitude:someLatitude.doubleValue locationName:someLocation locationDescription:someLocationDescription address:someAddressLines phoneNumber:somePhoneNumber image:someImage]; + }); + + it(@"should set parameters correctly", ^{ + expect(testRequest.longitudeDegrees).to(equal(someLongitude)); + expect(testRequest.latitudeDegrees).to(equal(someLatitude)); + expect(testRequest.locationName).to(equal(someLocation)); + expect(testRequest.locationDescription).to(equal(someLocationDescription)); + expect(testRequest.addressLines).to(equal(someAddressLines)); + expect(testRequest.phoneNumber).to(equal(somePhoneNumber)); + expect(testRequest.locationImage).to(equal(someImage)); + expect(testRequest.deliveryMode).to(beNil()); + expect(testRequest.timeStamp).to(beNil()); expect(testRequest.address).to(beNil()); }); }); + + context(@"initWithLongitude: latitude: locationName: locationDescription: displayAddressLines: phoneNumber: image: deliveryMode: timeStamp: address:", ^{ + beforeEach(^{ + testRequest = [[SDLSendLocation alloc] initWithLongitude:someLongitude.doubleValue latitude:someLatitude.doubleValue locationName:someLocation locationDescription:someLocationDescription displayAddressLines:someAddressLines phoneNumber:somePhoneNumber image:someImage deliveryMode:someDeliveryMode timeStamp:someTime address:someAddress]; + }); + + it(@"should set parameters correctly", ^{ + expect(testRequest.longitudeDegrees).to(equal(someLongitude)); + expect(testRequest.latitudeDegrees).to(equal(someLatitude)); + expect(testRequest.locationName).to(equal(someLocation)); + expect(testRequest.locationDescription).to(equal(someLocationDescription)); + expect(testRequest.addressLines).to(equal(someAddressLines)); + expect(testRequest.phoneNumber).to(equal(somePhoneNumber)); + expect(testRequest.locationImage).to(equal(someImage)); + expect(testRequest.deliveryMode).to(equal(someDeliveryMode)); + expect(testRequest.timeStamp).to(equal(someTime)); + expect(testRequest.address).to(equal(someAddress)); + }); + }); }); describe(@"when initialized with a dictionary", ^{ context(@"when parameters are set correctly", ^{ beforeEach(^{ - someLongitude = @123.4567; - someLatitude = @65.4321; - someLocation = @"Livio"; - someLocationDescription = @"A great place to work"; - someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"]; - somePhoneNumber = @"248-591-0333"; - someImage = [[SDLImage alloc] init]; - someDeliveryMode = SDLDeliveryModePrompt; - someTime = [[SDLDateTime alloc] init]; - someAddress = [[SDLOasisAddress alloc] init]; NSDictionary *initDict = @{ - SDLNameRequest: @{ - SDLNameParameters: @{ - SDLNameLongitudeDegrees: someLongitude, - SDLNameLatitudeDegrees: someLatitude, - SDLNameLocationName: someLocation, - SDLNameLocationDescription: someLocationDescription, - SDLNameAddressLines: someAddressLines, - SDLNamePhoneNumber: somePhoneNumber, - SDLNameLocationImage: someImage, - SDLNameDeliveryMode: someDeliveryMode, - SDLNameLocationTimeStamp: someTime, - SDLNameAddress: someAddress - } + SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{ + SDLRPCParameterNameLongitudeDegrees: someLongitude, + SDLRPCParameterNameLatitudeDegrees: someLatitude, + SDLRPCParameterNameLocationName: someLocation, + SDLRPCParameterNameLocationDescription: someLocationDescription, + SDLRPCParameterNameAddressLines: someAddressLines, + SDLRPCParameterNamePhoneNumber: somePhoneNumber, + SDLRPCParameterNameLocationImage: someImage, + SDLRPCParameterNameDeliveryMode: someDeliveryMode, + SDLRPCParameterNameTimeStamp: someTime, + SDLRPCParameterNameAddress: someAddress + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSendLocation } }; @@ -183,53 +169,16 @@ describe(@"Send Location RPC", ^{ }); // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical - it(@"should get longitude correctly", ^{ - expect(testRequest.longitudeDegrees).to(equal(someLongitude)); + it(@"should get parameters correctly", ^{ expect(testRequest.longitudeDegrees).to(beIdenticalTo(someLongitude)); - }); - - it(@"should get latitude correctly", ^{ - expect(testRequest.latitudeDegrees).to(equal(someLatitude)); expect(testRequest.latitudeDegrees).to(beIdenticalTo(someLatitude)); - }); - - it(@"should get location correctly", ^{ - expect(testRequest.locationName).to(equal(someLocation)); expect(testRequest.locationName).to(beIdenticalTo(someLocation)); - }); - - it(@"should get location description correctly", ^{ - expect(testRequest.locationDescription).to(equal(someLocationDescription)); expect(testRequest.locationDescription).to(beIdenticalTo(someLocationDescription)); - }); - - it(@"should get address lines correctly", ^{ - expect(testRequest.addressLines).to(equal(someAddressLines)); expect(testRequest.addressLines).to(beIdenticalTo(someAddressLines)); - }); - - it(@"should get phone number correctly", ^{ - expect(testRequest.phoneNumber).to(equal(somePhoneNumber)); expect(testRequest.phoneNumber).to(beIdenticalTo(somePhoneNumber)); - }); - - it(@"should get image correctly", ^{ - expect(testRequest.locationImage).to(equal(someImage)); expect(testRequest.locationImage).to(beIdenticalTo(someImage)); - }); - - it(@"should get delivery mode correctly", ^{ - expect(testRequest.deliveryMode).to(equal(someDeliveryMode)); expect(testRequest.deliveryMode).to(beIdenticalTo(someDeliveryMode)); - }); - - it(@"should get timestamp correctly", ^{ - expect(testRequest.timeStamp).to(equal(someTime)); expect(testRequest.timeStamp).to(beIdenticalTo(someTime)); - }); - - it(@"should get address correctly", ^{ - expect(testRequest.address).to(equal(someAddress)); expect(testRequest.address).to(beIdenticalTo(someAddress)); }); }); @@ -237,51 +186,24 @@ describe(@"Send Location RPC", ^{ context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary<NSString *, id> *initDict = @{ - SDLNameRequest: @{ - SDLNameParameters: @{} + SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{} } }; testRequest = [[SDLSendLocation alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; }); - it(@"should return nil for longitude", ^{ + it(@"should return nil for parameters", ^{ expect(testRequest.longitudeDegrees).to(beNil()); - }); - - it(@"should return nil for latitude", ^{ expect(testRequest.latitudeDegrees).to(beNil()); - }); - - it(@"should return nil for location", ^{ expect(testRequest.locationName).to(beNil()); - }); - - it(@"should return nil for location description", ^{ expect(testRequest.locationDescription).to(beNil()); - }); - - it(@"should return nil for address lines", ^{ expect(testRequest.addressLines).to(beNil()); - }); - - it(@"should return nil for phone number", ^{ expect(testRequest.phoneNumber).to(beNil()); - }); - - it(@"should return nil for image", ^{ expect(testRequest.locationImage).to(beNil()); - }); - - it(@"should return nil for delivery mode", ^{ expect(testRequest.deliveryMode).to(beNil()); - }); - - it(@"should return nil for timeStamp", ^{ expect(testRequest.timeStamp).to(beNil()); - }); - - it(@"should return nil for address", ^{ expect(testRequest.address).to(beNil()); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m index 29c0f14f5..983d79eeb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSetAppIcon.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSetAppIconSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameSyncFileName:@"A/File/Name"}, - SDLNameOperationName:SDLNameSetAppIcon}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSyncFileName:@"A/File/Name"}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetAppIcon}} mutableCopy]; SDLSetAppIcon* testRequest = [[SDLSetAppIcon alloc] initWithDictionary:dict]; expect(testRequest.syncFileName).to(equal(@"A/File/Name")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetCloudAppPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetCloudAppPropertiesSpec.m new file mode 100644 index 000000000..974170a3d --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetCloudAppPropertiesSpec.m @@ -0,0 +1,58 @@ +// +// SDLSetCloudAppPropertiesSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLCloudAppProperties.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSetCloudAppProperties.h" + +QuickSpecBegin(SDLSetCloudAppPropertiesSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLCloudAppProperties *testProperties = nil; + + beforeEach(^{ + testProperties = [[SDLCloudAppProperties alloc] initWithAppID:@"testAppID"]; + }); + + it(@"Should set and get correctly", ^{ + SDLSetCloudAppProperties *testRequest = [[SDLSetCloudAppProperties alloc] init]; + testRequest.properties = testProperties; + + expect(testRequest.properties).to(equal(testProperties)); + }); + + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameRequest:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameProperties:testProperties + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetCloudAppProperties}}; + SDLSetCloudAppProperties *testRequest = [[SDLSetCloudAppProperties alloc] initWithDictionary:dict]; + + expect(testRequest.properties).to(equal(testProperties)); + }); + + it(@"Should initialize correctly with the convenience init", ^{ + SDLSetCloudAppProperties *testRequest = [[SDLSetCloudAppProperties alloc] initWithProperties:testProperties]; + + expect(testRequest.properties).to(equal(testProperties)); + }); + + it(@"Should return nil if not set", ^{ + SDLSetCloudAppProperties *testRequest = [[SDLSetCloudAppProperties alloc] init]; + + expect(testRequest.properties).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m index 60880f283..397b2e88b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m @@ -5,7 +5,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSetDisplayLayout.h" #import "SDLTemplateColorScheme.h" @@ -43,10 +44,10 @@ describe(@"SetDisplayLayout Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameDisplayLayout:@"wat"}, - SDLNameOperationName:SDLNameSetDisplayLayout}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameDisplayLayout:@"wat"}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetDisplayLayout}} mutableCopy]; SDLSetDisplayLayout* testRequest = [[SDLSetDisplayLayout alloc] initWithDictionary:dict]; expect(testRequest.displayLayout).to(equal(@"wat")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m index 15062d29b..f983a1da9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m @@ -10,7 +10,8 @@ #import "SDLImage.h" #import "SDLKeyboardProperties.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSetGlobalProperties.h" #import "SDLTTSChunk.h" #import "SDLVrHelpItem.h" @@ -46,16 +47,16 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameHelpPrompt:[@[chunk1] mutableCopy], - SDLNameTimeoutPrompt:[@[chunk2] mutableCopy], - SDLNameVRHelpTitle:@"vr", - SDLNameVRHelp:[@[help] mutableCopy], - SDLNameMenuTitle:@"TheNewMenu", - SDLNameMenuIcon:image, - SDLNameKeyboardProperties:keyboard}, - SDLNameOperationName:SDLNameSetGlobalProperties}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameHelpPrompt:[@[chunk1] mutableCopy], + SDLRPCParameterNameTimeoutPrompt:[@[chunk2] mutableCopy], + SDLRPCParameterNameVRHelpTitle:@"vr", + SDLRPCParameterNameVRHelp:[@[help] mutableCopy], + SDLRPCParameterNameMenuTitle:@"TheNewMenu", + SDLRPCParameterNameMenuIcon:image, + SDLRPCParameterNameKeyboardProperties:keyboard}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetGlobalProperties}} mutableCopy]; SDLSetGlobalProperties* testRequest = [[SDLSetGlobalProperties alloc] initWithDictionary:dict]; expect(testRequest.helpPrompt).to(equal([@[chunk1] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m index 5eb39c8f2..d77ce6a89 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSetInteriorVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLModuleData.h" @@ -26,10 +27,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameModuleData : someModuleData}, - SDLNameOperationName:SDLNameSetInteriorVehicleData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameModuleData : someModuleData}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetInteriorVehicleData}} mutableCopy]; SDLSetInteriorVehicleData* testRequest = [[SDLSetInteriorVehicleData alloc] initWithDictionary:dict]; expect(testRequest.moduleData).to(equal(someModuleData)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m index 351a6e558..bd806af6b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m @@ -8,7 +8,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSetMediaClockTimer.h" #import "SDLStartTime.h" #import "SDLUpdateMode.h" @@ -16,10 +17,132 @@ QuickSpecBegin(SDLSetMediaClockTimerSpec) -SDLStartTime* time1 = [[SDLStartTime alloc] init]; -SDLStartTime* time2 = [[SDLStartTime alloc] init]; +describe(@"SetMediaClocktimer Spec", ^ { + __block NSTimeInterval testTime1Interval = 32887; + __block NSTimeInterval testTime2Interval = 3723; + __block SDLStartTime *time1 = [[SDLStartTime alloc] initWithHours:9 minutes:8 seconds:7]; + __block SDLStartTime *time2 = [[SDLStartTime alloc] initWithHours:1 minutes:2 seconds:3]; + __block SDLUpdateMode testUpdateMode = SDLUpdateModeCountUp; + __block SDLAudioStreamingIndicator testIndicator = SDLAudioStreamingIndicatorPlayPause; + + describe(@"when initialized", ^{ + it(@"should properly initialize with initWithDictionary:", ^{ + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameStartTime:time1, + SDLRPCParameterNameEndTime:time2, + SDLRPCParameterNameUpdateMode:testUpdateMode, + SDLRPCParameterNameAudioStreamingIndicator:testIndicator + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetMediaClockTimer}} mutableCopy]; + SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] initWithDictionary:dict]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(testUpdateMode)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with init", ^{ + SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] init]; + + expect(testRequest.startTime).to(beNil()); + expect(testRequest.endTime).to(beNil()); + expect(testRequest.updateMode).to(beNil()); + expect(testRequest.audioStreamingIndicator).to(beNil()); + }); + + it(@"should properly initialize with countUpWithStartTimeInterval:endTimeInterval:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with countUpWithStartTime:endTime:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countUpFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with countUpWithStartTimeInterval:endTimeInterval:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTimeInterval:testTime1Interval toEndTimeInterval:testTime2Interval playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with countDownWithStartTime:endTime:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer countDownFromStartTime:time1 toEndTime:time2 playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(SDLUpdateModeCountDown)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with pauseWithPlayPauseIndicator", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer pauseWithPlayPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(beNil()); + expect(testRequest.endTime).to(beNil()); + expect(testRequest.updateMode).to(equal(SDLUpdateModePause)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer updatePauseWithNewStartTimeInterval:testTime1Interval endTimeInterval:testTime2Interval playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(SDLUpdateModePause)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with updatePauseWithNewStartTime:endTime:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer updatePauseWithNewStartTime:time1 endTime:time2 playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(SDLUpdateModePause)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with resumeWithPlayPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer resumeWithPlayPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(beNil()); + expect(testRequest.endTime).to(beNil()); + expect(testRequest.updateMode).to(equal(SDLUpdateModeResume)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with clearWithPlayPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [SDLSetMediaClockTimer clearWithPlayPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(beNil()); + expect(testRequest.endTime).to(beNil()); + expect(testRequest.updateMode).to(equal(SDLUpdateModeClear)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + + it(@"should properly initialize with initWithUpdateMode:startTime:endTime:playPauseIndicator:", ^{ + SDLSetMediaClockTimer *testRequest = [[SDLSetMediaClockTimer alloc] initWithUpdateMode:testUpdateMode startTime:time1 endTime:time2 playPauseIndicator:testIndicator]; + + expect(testRequest.startTime).to(equal(time1)); + expect(testRequest.endTime).to(equal(time2)); + expect(testRequest.updateMode).to(equal(testUpdateMode)); + expect(testRequest.audioStreamingIndicator).to(equal(testIndicator)); + }); + }); -describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] init]; @@ -33,32 +156,6 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp)); expect(testRequest.audioStreamingIndicator).to(equal(SDLAudioStreamingIndicatorPlayPause)); }); - - it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameStartTime:time1, - SDLNameEndTime:time2, - SDLNameUpdateMode:SDLUpdateModeCountUp, - SDLNameAudioStreamingIndicator:SDLAudioStreamingIndicatorPlayPause - }, - SDLNameOperationName:SDLNameSetMediaClockTimer}} mutableCopy]; - SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] initWithDictionary:dict]; - - expect(testRequest.startTime).to(equal(time1)); - expect(testRequest.endTime).to(equal(time2)); - expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp)); - expect(testRequest.audioStreamingIndicator).to(equal(SDLAudioStreamingIndicatorPlayPause)); - }); - - it(@"Should return nil if not set", ^ { - SDLSetMediaClockTimer* testRequest = [[SDLSetMediaClockTimer alloc] init]; - - expect(testRequest.startTime).to(beNil()); - expect(testRequest.endTime).to(beNil()); - expect(testRequest.updateMode).to(beNil()); - expect(testRequest.audioStreamingIndicator).to(beNil()); - }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m index 491096b84..451dece6d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLShowConstantTBT.h" #import "SDLSoftButton.h" @@ -50,20 +51,20 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameNavigationText1:@"nav1", - SDLNameNavigationText2:@"nav2", - SDLNameETA:@"4/1/7015", - SDLNameTimeToDestination:@"5000 Years", - SDLNameTotalDistance:@"1 parsec", - SDLNameTurnIcon:image1, - SDLNameNextTurnIcon:image2, - SDLNameDistanceToManeuver:@2, - SDLNameDistanceToManeuverScale:@4, - SDLNameManeuverComplete:@NO, - SDLNameSoftButtons:[@[button] mutableCopy]}, - SDLNameOperationName:SDLNameShowConstantTBT}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameNavigationText1:@"nav1", + SDLRPCParameterNameNavigationText2:@"nav2", + SDLRPCParameterNameETA:@"4/1/7015", + SDLRPCParameterNameTimeToDestination:@"5000 Years", + SDLRPCParameterNameTotalDistance:@"1 parsec", + SDLRPCParameterNameTurnIcon:image1, + SDLRPCParameterNameNextTurnIcon:image2, + SDLRPCParameterNameDistanceToManeuver:@2, + SDLRPCParameterNameDistanceToManeuverScale:@4, + SDLRPCParameterNameManeuverComplete:@NO, + SDLRPCParameterNameSoftButtons:[@[button] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameShowConstantTBT}} mutableCopy]; SDLShowConstantTBT* testRequest = [[SDLShowConstantTBT alloc] initWithDictionary:dict]; expect(testRequest.navigationText1).to(equal(@"nav1")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m index cab6d5867..341500b20 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m @@ -11,7 +11,8 @@ #import "SDLImage.h" #import "SDLMetadataTags.h" #import "SDLMetadataType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLShow.h" #import "SDLSoftButton.h" #import "SDLTextAlignment.h" @@ -312,22 +313,22 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameMainField1:@"field1", - SDLNameMainField2:@"field2", - SDLNameMainField3:@"field3", - SDLNameMainField4:@"field4", - SDLNameAlignment:SDLTextAlignmentLeft, - SDLNameStatusBar:@"status", - SDLNameMediaClock:@"TheTime", - SDLNameMediaTrack:@"In The Clear", - SDLNameGraphic:image1, - SDLNameSecondaryGraphic:image2, - SDLNameSoftButtons:[@[button] mutableCopy], - SDLNameCustomPresets:[@[@"preset1", @"preset2"] mutableCopy], - SDLNameMetadataTags:testMetadata}, - SDLNameOperationName:SDLNameShow}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameMainField1:@"field1", + SDLRPCParameterNameMainField2:@"field2", + SDLRPCParameterNameMainField3:@"field3", + SDLRPCParameterNameMainField4:@"field4", + SDLRPCParameterNameAlignment:SDLTextAlignmentLeft, + SDLRPCParameterNameStatusBar:@"status", + SDLRPCParameterNameMediaClock:@"TheTime", + SDLRPCParameterNameMediaTrack:@"In The Clear", + SDLRPCParameterNameGraphic:image1, + SDLRPCParameterNameSecondaryGraphic:image2, + SDLRPCParameterNameSoftButtons:[@[button] mutableCopy], + SDLRPCParameterNameCustomPresets:[@[@"preset1", @"preset2"] mutableCopy], + SDLRPCParameterNameMetadataTags:testMetadata}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameShow}} mutableCopy]; SDLShow* testRequest = [[SDLShow alloc] initWithDictionary:dict]; expect(testRequest.mainField1).to(equal(@"field1")); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m index e1fb58dc1..e5b3ba339 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSlider.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSliderSpec) @@ -49,14 +50,14 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary<NSString *, id> *dict = @{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameNumberTicks:@(testNumTicks), - SDLNamePosition:@(testPosition), - SDLNameSliderHeader:testHeader, - SDLNameSliderFooter:testFooters, - SDLNameTimeout:@(testTimeout)}, - SDLNameOperationName:SDLNameSlider}}; + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameNumberTicks:@(testNumTicks), + SDLRPCParameterNamePosition:@(testPosition), + SDLRPCParameterNameSliderHeader:testHeader, + SDLRPCParameterNameSliderFooter:testFooters, + SDLRPCParameterNameTimeout:@(testTimeout)}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSlider}}; testRequest = [[SDLSlider alloc] initWithDictionary:dict]; expect(testRequest.numTicks).to(equal(testNumTicks)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m index e336b0067..761c10505 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m @@ -10,7 +10,8 @@ #import "SDLSpeak.h" #import "SDLTTSChunk.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSpeakSpec) @@ -26,10 +27,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameTTSChunks:[@[chunk] mutableCopy]}, - SDLNameOperationName:SDLNameSpeak}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameTTSChunks:[@[chunk] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSpeak}} mutableCopy]; SDLSpeak* testRequest = [[SDLSpeak alloc] initWithDictionary:dict]; expect(testRequest.ttsChunks).to(equal([@[chunk] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m index c541ccc40..d748e24bd 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLButtonName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSubscribeButton.h" @@ -25,10 +26,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameButtonName:SDLButtonNamePreset5}, - SDLNameOperationName:SDLNameSubscribeButton}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameButtonName:SDLButtonNamePreset5}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeButton}} mutableCopy]; SDLSubscribeButton* testRequest = [[SDLSubscribeButton alloc] initWithDictionary:dict]; expect(testRequest.buttonName).to(equal(SDLButtonNamePreset5)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m index 78d4fc072..c90c8a45e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSubscribeVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSubscribeVehicleDataSpec) @@ -21,6 +22,7 @@ describe(@"Getter/Setter Tests", ^ { testRequest.airbagStatus = @NO; testRequest.beltStatus = @NO; testRequest.bodyInformation = @YES; + testRequest.cloudAppVehicleID = @YES; testRequest.clusterModeStatus = @NO; testRequest.deviceStatus = @NO; testRequest.driverBraking = @YES; @@ -50,6 +52,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.airbagStatus).to(equal(@NO)); expect(testRequest.beltStatus).to(equal(@NO)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@NO)); expect(testRequest.deviceStatus).to(equal(@NO)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -76,44 +79,46 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.wiperStatus).to(equal(@NO)); }); - it(@"Should get correctly when initialized", ^ { - NSDictionary<NSString *, id> *dict = @{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameAccelerationPedalPosition:@YES, - SDLNameAirbagStatus:@YES, - SDLNameBeltStatus:@YES, - SDLNameBodyInformation:@YES, - SDLNameClusterModeStatus:@YES, - SDLNameDeviceStatus:@YES, - SDLNameDriverBraking:@YES, - SDLNameECallInfo:@YES, - SDLNameElectronicParkBrakeStatus: @YES, - SDLNameEmergencyEvent:@NO, - SDLNameEngineOilLife:@YES, - SDLNameEngineTorque:@YES, - SDLNameExternalTemperature:@NO, - SDLNameFuelLevel:@YES, - SDLNameFuelLevelState:@YES, - SDLNameFuelRange:@YES, - SDLNameGPS:@YES, - SDLNameHeadLampStatus:@YES, - SDLNameInstantFuelConsumption:@YES, - SDLNameMyKey:@YES, - SDLNameOdometer:@YES, - SDLNamePRNDL:@YES, - SDLNameRPM:@YES, - SDLNameSpeed:@YES, - SDLNameSteeringWheelAngle:@NO, - SDLNameTirePressure:@YES, - SDLNameTurnSignal:@NO, - SDLNameWiperStatus:@NO}, - SDLNameOperationName:SDLNameSubscribeVehicleData}}; + it(@"Should get correctly when initialized with a dictionary", ^ { + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAccelerationPedalPosition:@YES, + SDLRPCParameterNameAirbagStatus:@YES, + SDLRPCParameterNameBeltStatus:@YES, + SDLRPCParameterNameBodyInformation:@YES, + SDLRPCParameterNameCloudAppVehicleID:@YES, + SDLRPCParameterNameClusterModeStatus:@YES, + SDLRPCParameterNameDeviceStatus:@YES, + SDLRPCParameterNameDriverBraking:@YES, + SDLRPCParameterNameECallInfo:@YES, + SDLRPCParameterNameElectronicParkBrakeStatus: @YES, + SDLRPCParameterNameEmergencyEvent:@NO, + SDLRPCParameterNameEngineOilLife:@YES, + SDLRPCParameterNameEngineTorque:@YES, + SDLRPCParameterNameExternalTemperature:@NO, + SDLRPCParameterNameFuelLevel:@YES, + SDLRPCParameterNameFuelLevelState:@YES, + SDLRPCParameterNameFuelRange:@YES, + SDLRPCParameterNameGPS:@YES, + SDLRPCParameterNameHeadLampStatus:@YES, + SDLRPCParameterNameInstantFuelConsumption:@YES, + SDLRPCParameterNameMyKey:@YES, + SDLRPCParameterNameOdometer:@YES, + SDLRPCParameterNamePRNDL:@YES, + SDLRPCParameterNameRPM:@YES, + SDLRPCParameterNameSpeed:@YES, + SDLRPCParameterNameSteeringWheelAngle:@NO, + SDLRPCParameterNameTirePressure:@YES, + SDLRPCParameterNameTurnSignal:@NO, + SDLRPCParameterNameWiperStatus:@NO}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeVehicleData}}; SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithDictionary:dict]; expect(testRequest.accPedalPosition).to(equal(@YES)); expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -149,6 +154,7 @@ describe(@"initializers", ^{ expect(testRequest.airbagStatus).to(beNil()); expect(testRequest.beltStatus).to(beNil()); expect(testRequest.bodyInformation).to(beNil()); + expect(testRequest.cloudAppVehicleID).to(beNil()); expect(testRequest.clusterModeStatus).to(beNil()); expect(testRequest.deviceStatus).to(beNil()); expect(testRequest.driverBraking).to(beNil()); @@ -175,13 +181,49 @@ describe(@"initializers", ^{ expect(testRequest.wiperStatus).to(beNil()); }); + context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{ + SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES cloudAppVehicleID:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES wiperStatus:YES]; + + expect(testRequest.accPedalPosition).to(equal(@YES)); + expect(testRequest.airbagStatus).to(equal(@YES)); + expect(testRequest.beltStatus).to(equal(@YES)); + expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); + expect(testRequest.clusterModeStatus).to(equal(@YES)); + expect(testRequest.deviceStatus).to(equal(@YES)); + expect(testRequest.driverBraking).to(equal(@YES)); + expect(testRequest.eCallInfo).to(equal(@YES)); + expect(testRequest.electronicParkBrakeStatus).to(equal(@YES)); + expect(testRequest.emergencyEvent).to(equal(@YES)); + expect(testRequest.engineOilLife).to(equal(@YES)); + expect(testRequest.engineTorque).to(equal(@YES)); + expect(testRequest.externalTemperature).to(equal(@YES)); + expect(testRequest.fuelLevel).to(equal(@YES)); + expect(testRequest.fuelLevel_State).to(equal(@YES)); + expect(testRequest.fuelRange).to(equal(@YES)); + expect(testRequest.gps).to(equal(@YES)); + expect(testRequest.headLampStatus).to(equal(@YES)); + expect(testRequest.instantFuelConsumption).to(equal(@YES)); + expect(testRequest.myKey).to(equal(@YES)); + expect(testRequest.odometer).to(equal(@YES)); + expect(testRequest.prndl).to(equal(@YES)); + expect(testRequest.rpm).to(equal(@YES)); + expect(testRequest.speed).to(equal(@YES)); + expect(testRequest.steeringWheelAngle).to(equal(@YES)); + expect(testRequest.tirePressure).to(equal(@YES)); + expect(testRequest.turnSignal).to(equal(@YES)); + expect(testRequest.wiperStatus).to(equal(@YES)); + }); context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES wiperStatus:YES]; expect(testRequest.accPedalPosition).to(equal(@YES)); expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@NO)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -206,6 +248,7 @@ describe(@"initializers", ^{ expect(testRequest.tirePressure).to(equal(@YES)); expect(testRequest.turnSignal).to(equal(@YES)); expect(testRequest.wiperStatus).to(equal(@YES)); + #pragma clang diagnostic pop }); context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{ @@ -217,6 +260,7 @@ describe(@"initializers", ^{ expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@NO)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSyncPDataSpec.m index 300583447..5ab7f0171 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSyncPDataSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSyncPData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSyncPDataSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m index 80b1543e8..1b27f45a8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m @@ -10,7 +10,8 @@ #import "SDLSystemRequest.h" #import "SDLRequestType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSystemRequestSpec) @@ -21,12 +22,12 @@ describe(@"Getter/Setter Tests", ^ { describe(@"initializers", ^{ it(@"should get correctly when initialized with dictionary", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameRequestType:SDLRequestTypeAuthenticationRequest, - SDLNameRequestSubType: testSubType, - SDLNameFilename:testFileName}, - SDLNameOperationName:SDLNameSystemRequest}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameRequestType:SDLRequestTypeAuthenticationRequest, + SDLRPCParameterNameRequestSubType: testSubType, + SDLRPCParameterNameFilename:testFileName}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSystemRequest}} mutableCopy]; SDLSystemRequest* testRequest = [[SDLSystemRequest alloc] initWithDictionary:dict]; expect(testRequest.requestType).to(equal(testRequestType)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnregisterAppInterfaceSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnregisterAppInterfaceSpec.m index 746c07d2b..e610e7aa2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnregisterAppInterfaceSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnregisterAppInterfaceSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLUnregisterAppInterface.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLUnregisterAppInterfaceSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m index e4d693685..dd7f72d28 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLButtonName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLUnsubscribeButton.h" @@ -25,10 +26,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameButtonName:SDLButtonNamePreset0}, - SDLNameOperationName:SDLNameUnsubscribeButton}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameButtonName:SDLButtonNamePreset0}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeButton}} mutableCopy]; SDLUnsubscribeButton* testRequest = [[SDLUnsubscribeButton alloc] initWithDictionary:dict]; expect(testRequest.buttonName).to(equal(SDLButtonNamePreset0)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m index bbb96614a..f538f412e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLUnsubscribeVehicleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLUnsubscribeVehicleDataSpec) @@ -21,6 +22,7 @@ describe(@"Getter/Setter Tests", ^ { testRequest.airbagStatus = @YES; testRequest.beltStatus = @YES; testRequest.bodyInformation = @YES; + testRequest.cloudAppVehicleID = @YES; testRequest.clusterModeStatus = @YES; testRequest.deviceStatus = @YES; testRequest.driverBraking = @YES; @@ -50,6 +52,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -76,44 +79,46 @@ describe(@"Getter/Setter Tests", ^ { expect(testRequest.wiperStatus).to(equal(@YES)); }); - it(@"Should get correctly when initialized", ^ { - NSDictionary<NSString *, id> *dict = @{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameAccelerationPedalPosition:@YES, - SDLNameAirbagStatus:@YES, - SDLNameBeltStatus:@YES, - SDLNameBodyInformation:@YES, - SDLNameClusterModeStatus:@YES, - SDLNameDeviceStatus:@YES, - SDLNameDriverBraking:@YES, - SDLNameECallInfo:@YES, - SDLNameElectronicParkBrakeStatus: @YES, - SDLNameEmergencyEvent:@YES, - SDLNameEngineOilLife:@YES, - SDLNameEngineTorque:@YES, - SDLNameExternalTemperature:@YES, - SDLNameFuelLevel:@YES, - SDLNameFuelLevelState:@YES, - SDLNameFuelRange:@YES, - SDLNameGPS:@YES, - SDLNameHeadLampStatus:@YES, - SDLNameInstantFuelConsumption:@YES, - SDLNameMyKey:@YES, - SDLNameOdometer:@YES, - SDLNamePRNDL:@YES, - SDLNameRPM:@YES, - SDLNameSpeed:@YES, - SDLNameSteeringWheelAngle:@YES, - SDLNameTirePressure:@YES, - SDLNameTurnSignal:@YES, - SDLNameWiperStatus:@YES}, - SDLNameOperationName:SDLNameUnsubscribeVehicleData}}; + it(@"Should get correctly when initialized with a dictionary", ^ { + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAccelerationPedalPosition:@YES, + SDLRPCParameterNameAirbagStatus:@YES, + SDLRPCParameterNameBeltStatus:@YES, + SDLRPCParameterNameBodyInformation:@YES, + SDLRPCParameterNameCloudAppVehicleID:@YES, + SDLRPCParameterNameClusterModeStatus:@YES, + SDLRPCParameterNameDeviceStatus:@YES, + SDLRPCParameterNameDriverBraking:@YES, + SDLRPCParameterNameECallInfo:@YES, + SDLRPCParameterNameElectronicParkBrakeStatus: @YES, + SDLRPCParameterNameEmergencyEvent:@YES, + SDLRPCParameterNameEngineOilLife:@YES, + SDLRPCParameterNameEngineTorque:@YES, + SDLRPCParameterNameExternalTemperature:@YES, + SDLRPCParameterNameFuelLevel:@YES, + SDLRPCParameterNameFuelLevelState:@YES, + SDLRPCParameterNameFuelRange:@YES, + SDLRPCParameterNameGPS:@YES, + SDLRPCParameterNameHeadLampStatus:@YES, + SDLRPCParameterNameInstantFuelConsumption:@YES, + SDLRPCParameterNameMyKey:@YES, + SDLRPCParameterNameOdometer:@YES, + SDLRPCParameterNamePRNDL:@YES, + SDLRPCParameterNameRPM:@YES, + SDLRPCParameterNameSpeed:@YES, + SDLRPCParameterNameSteeringWheelAngle:@YES, + SDLRPCParameterNameTirePressure:@YES, + SDLRPCParameterNameTurnSignal:@YES, + SDLRPCParameterNameWiperStatus:@YES}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeVehicleData}}; SDLUnsubscribeVehicleData* testRequest = [[SDLUnsubscribeVehicleData alloc] initWithDictionary:dict]; expect(testRequest.accPedalPosition).to(equal(@YES)); expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -149,6 +154,7 @@ describe(@"initializers", ^{ expect(testRequest.airbagStatus).to(beNil()); expect(testRequest.beltStatus).to(beNil()); expect(testRequest.bodyInformation).to(beNil()); + expect(testRequest.cloudAppVehicleID).to(beNil()); expect(testRequest.clusterModeStatus).to(beNil()); expect(testRequest.deviceStatus).to(beNil()); expect(testRequest.driverBraking).to(beNil()); @@ -174,14 +180,49 @@ describe(@"initializers", ^{ expect(testRequest.turnSignal).to(beNil()); expect(testRequest.wiperStatus).to(beNil()); }); + context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:", ^{ + SDLUnsubscribeVehicleData *testRequest = [[SDLUnsubscribeVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES cloudAppVehicleID:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES wiperStatus:YES]; + expect(testRequest.accPedalPosition).to(equal(@YES)); + expect(testRequest.airbagStatus).to(equal(@YES)); + expect(testRequest.beltStatus).to(equal(@YES)); + expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@YES)); + expect(testRequest.clusterModeStatus).to(equal(@YES)); + expect(testRequest.deviceStatus).to(equal(@YES)); + expect(testRequest.driverBraking).to(equal(@YES)); + expect(testRequest.eCallInfo).to(equal(@YES)); + expect(testRequest.electronicParkBrakeStatus).to(equal(@YES)); + expect(testRequest.emergencyEvent).to(equal(@YES)); + expect(testRequest.engineOilLife).to(equal(@YES)); + expect(testRequest.engineTorque).to(equal(@YES)); + expect(testRequest.externalTemperature).to(equal(@YES)); + expect(testRequest.fuelLevel).to(equal(@YES)); + expect(testRequest.fuelLevel_State).to(equal(@YES)); + expect(testRequest.fuelRange).to(equal(@YES)); + expect(testRequest.gps).to(equal(@YES)); + expect(testRequest.headLampStatus).to(equal(@YES)); + expect(testRequest.instantFuelConsumption).to(equal(@YES)); + expect(testRequest.myKey).to(equal(@YES)); + expect(testRequest.odometer).to(equal(@YES)); + expect(testRequest.prndl).to(equal(@YES)); + expect(testRequest.rpm).to(equal(@YES)); + expect(testRequest.speed).to(equal(@YES)); + expect(testRequest.steeringWheelAngle).to(equal(@YES)); + expect(testRequest.tirePressure).to(equal(@YES)); + expect(testRequest.turnSignal).to(equal(@YES)); + expect(testRequest.wiperStatus).to(equal(@YES)); + }); context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:", ^{ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLUnsubscribeVehicleData *testRequest = [[SDLUnsubscribeVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES wiperStatus:YES]; expect(testRequest.accPedalPosition).to(equal(@YES)); expect(testRequest.airbagStatus).to(equal(@YES)); expect(testRequest.beltStatus).to(equal(@YES)); expect(testRequest.bodyInformation).to(equal(@YES)); + expect(testRequest.cloudAppVehicleID).to(equal(@NO)); expect(testRequest.clusterModeStatus).to(equal(@YES)); expect(testRequest.deviceStatus).to(equal(@YES)); expect(testRequest.driverBraking).to(equal(@YES)); @@ -206,6 +247,7 @@ describe(@"initializers", ^{ expect(testRequest.tirePressure).to(equal(@YES)); expect(testRequest.turnSignal).to(equal(@YES)); expect(testRequest.wiperStatus).to(equal(@YES)); + #pragma clang diagnostic pop }); context(@"initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", ^{ diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m index 24bd699d2..1fe93731f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m @@ -11,7 +11,8 @@ #import "SDLUpdateTurnList.h" #import "SDLTurn.h" #import "SDLSoftButton.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLUpdateTurnListSpec) @@ -30,11 +31,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameTurnList:[@[turn] mutableCopy], - SDLNameSoftButtons:[@[button] mutableCopy]}, - SDLNameOperationName:SDLNameUpdateTurnList}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameTurnList:[@[turn] mutableCopy], + SDLRPCParameterNameSoftButtons:[@[button] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameUpdateTurnList}} mutableCopy]; SDLUpdateTurnList* testRequest = [[SDLUpdateTurnList alloc] initWithDictionary:dict]; expect(testRequest.turnList).to(equal([@[turn] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddCommandResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddCommandResponseSpec.m index ff1f36682..cdce0363a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddCommandResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddCommandResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLAddCommandResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLAddCommandResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddSubMenuResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddSubMenuResponseSpec.m index a351d0ee2..bc34dbec0 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddSubMenuResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAddSubMenuResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLAddSubMenuResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLAddSubMenuResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertManeuverResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertManeuverResponseSpec.m index 5b4860134..ab4bdc999 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertManeuverResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertManeuverResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLAlertManeuverResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLAlertManeuverResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m index 73cb0023c..99541d772 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLAlertResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLAlertResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m index d9fc72fc8..824355600 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLButtonPressResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLButtonPressResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLChangeRegistrationResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLChangeRegistrationResponseSpec.m index c6e0b27d9..e130579e3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLChangeRegistrationResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLChangeRegistrationResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLChangeRegistrationResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLChangeRegistrationResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateInteractionChoiceSetResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateInteractionChoiceSetResponseSpec.m index 3b3d27e90..06a66ab68 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateInteractionChoiceSetResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateInteractionChoiceSetResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLCreateInteractionChoiceSetResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLCreateInteractionChoiceSetResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteCommandResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteCommandResponseSpec.m index 013702513..00687d419 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteCommandResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteCommandResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteCommandResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLDeleteCommandResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m index 13f68a2ea..6eb54798e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteFileResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDeleteFileResponseSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameSpaceAvailable:@0}, - SDLNameOperationName:SDLNameDeleteFile}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSpaceAvailable:@0}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDeleteFile}} mutableCopy]; SDLDeleteFileResponse* testResponse = [[SDLDeleteFileResponse alloc] initWithDictionary:dict]; expect(testResponse.spaceAvailable).to(equal(@0)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteInteractionChoiceSetResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteInteractionChoiceSetResponseSpec.m index 4f3f0c4c1..8ba0d0a0e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteInteractionChoiceSetResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteInteractionChoiceSetResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteInteractionChoiceSetResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLDeleteInteractionChoiceSetResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteSubMenuResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteSubMenuResponseSpec.m index c17b91d1c..934bbd0ff 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteSubMenuResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteSubMenuResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDeleteSubMenuResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLDeleteSubMenuResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m index eac33a7da..b8efd9c97 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLDiagnosticMessageResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLDiagnosticMessageResponseSpec) @@ -23,10 +24,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameMessageDataResult:@[@3, @9, @27, @81]}, - SDLNameOperationName:SDLNameDiagnosticMessage}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameMessageDataResult:@[@3, @9, @27, @81]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameDiagnosticMessage}} mutableCopy]; SDLDiagnosticMessageResponse* testResponse = [[SDLDiagnosticMessageResponse alloc] initWithDictionary:dict]; expect(testResponse.messageDataResult).to(equal(@[@3, @9, @27, @81])); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEncodedSyncPDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEncodedSyncPDataResponseSpec.m index 4324f0bb8..f7005bc62 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEncodedSyncPDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEncodedSyncPDataResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLEncodedSyncPDataResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLEncodedSyncPDataResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEndAudioPassThruResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEndAudioPassThruResponseSpec.m index 5fcc7d6d8..d9afc109b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEndAudioPassThruResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLEndAudioPassThruResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLEndAudioPassThruResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLEndAudioPassThruResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGenericResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGenericResponseSpec.m index 227aea92d..8198bb65e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGenericResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGenericResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLGenericResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLGenericResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetAppServiceDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetAppServiceDataResponseSpec.m new file mode 100644 index 000000000..53b04382b --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetAppServiceDataResponseSpec.m @@ -0,0 +1,60 @@ +// +// SDLGetAppServiceDataResponseSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceData.h" +#import "SDLAppServiceType.h" +#import "SDLGetAppServiceDataResponse.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLGetAppServiceDataResponseSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLAppServiceData *testAppServiceData = nil; + + beforeEach(^{ + testAppServiceData = [[SDLAppServiceData alloc] init]; + testAppServiceData.serviceType = SDLAppServiceTypeMedia; + }); + + it(@"Should set and get correctly", ^{ + SDLGetAppServiceDataResponse *testResponse = [[SDLGetAppServiceDataResponse alloc] init]; + testResponse.serviceData = testAppServiceData; + + expect(testResponse.serviceData).to(equal(testAppServiceData)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameResponse:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameServiceData:testAppServiceData + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetAppServiceData}}; + SDLGetAppServiceDataResponse *testResponse = [[SDLGetAppServiceDataResponse alloc] initWithDictionary:dict]; + + expect(testResponse.serviceData).to(equal(testAppServiceData)); + }); + + it(@"Should get correctly when initialized with initWithAppServiceData:", ^{ + SDLGetAppServiceDataResponse *testResponse = [[SDLGetAppServiceDataResponse alloc] initWithAppServiceData:testAppServiceData]; + + expect(testResponse.serviceData).to(equal(testAppServiceData)); + }); + + it(@"Should return nil if not set", ^{ + SDLGetAppServiceDataResponse *testResponse = [[SDLGetAppServiceDataResponse alloc] init]; + + expect(testResponse.serviceData).to(beNil()) + ; + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetCloudAppPropertiesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetCloudAppPropertiesResponseSpec.m new file mode 100644 index 000000000..4da3f7c89 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetCloudAppPropertiesResponseSpec.m @@ -0,0 +1,59 @@ +// +// SDLGetCloudAppPropertiesResponseSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLCloudAppProperties.h" +#import "SDLGetCloudAppPropertiesResponse.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLGetCloudAppPropertiesResponseSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLCloudAppProperties *testProperties = nil; + + beforeEach(^{ + testProperties = [[SDLCloudAppProperties alloc] initWithAppID:@"testAppID"]; + }); + + it(@"Should set and get correctly", ^{ + SDLGetCloudAppPropertiesResponse *testResponse = [[SDLGetCloudAppPropertiesResponse alloc] init]; + testResponse.properties = testProperties; + + expect(testResponse.properties).to(equal(testProperties)); + }); + + it(@"Should initialize correctly with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameResponse:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameProperties:testProperties + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetCloudAppProperties}}; + SDLGetCloudAppPropertiesResponse *testResponse = [[SDLGetCloudAppPropertiesResponse alloc] initWithDictionary:dict]; + + expect(testResponse.properties).to(equal(testProperties)); + expect(testResponse.name).to(equal(SDLRPCFunctionNameSetCloudAppProperties)); + }); + + it(@"Should initialize correctly with the convenience init", ^{ + SDLGetCloudAppPropertiesResponse *testResponse = [[SDLGetCloudAppPropertiesResponse alloc] initWithProperties:testProperties]; + + expect(testResponse.properties).to(equal(testProperties)); + }); + + it(@"Should return nil if not set", ^{ + SDLGetCloudAppPropertiesResponse *testResponse = [[SDLGetCloudAppPropertiesResponse alloc] init]; + + expect(testResponse.properties).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m index d22e8fd1b..5c6ea8658 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLGetDTCsResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLGetDTCsResponseSpec) @@ -25,11 +26,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameECUHeader:@404, - SDLNameDTC:[@[@"FFFF", @"FFFE", @"FFFD"] mutableCopy]}, - SDLNameOperationName:SDLNameGetDTCs}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameECUHeader:@404, + SDLRPCParameterNameDTC:[@[@"FFFF", @"FFFE", @"FFFD"] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetDTCs}} mutableCopy]; SDLGetDTCsResponse* testResponse = [[SDLGetDTCsResponse alloc] initWithDictionary:dict]; expect(testResponse.ecuHeader).to(equal(@404)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetFileResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetFileResponseSpec.m new file mode 100644 index 000000000..04bc119be --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetFileResponseSpec.m @@ -0,0 +1,81 @@ +// +// SDLGetFileResponseSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLFileType.h" +#import "SDLGetFileResponse.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLGetFileResponseSpec) + +describe(@"Getter/Setter Tests", ^{ + __block int testOffset = 34; + __block int testLength = 2; + __block SDLFileType testFileType = nil; + __block int testCrc = 2267295; + + beforeEach(^{ + testFileType = SDLFileTypeJPEG; + }); + + it(@"Should set and get correctly", ^{ + SDLGetFileResponse *testResponse = [[SDLGetFileResponse alloc] init]; + testResponse.offset = @(testOffset); + testResponse.length = @(testLength); + testResponse.fileType = testFileType; + testResponse.crc = @(testCrc); + + expect(testResponse.offset).to(equal(testOffset)); + expect(testResponse.length).to(equal(testLength)); + expect(testResponse.fileType).to(equal(testFileType)); + expect(testResponse.crc).to(equal(testCrc)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameResponse:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameOffset:@(testOffset), + SDLRPCParameterNameLength:@(testLength), + SDLRPCParameterNameFileType:testFileType, + SDLRPCParameterNameCRC:@(testCrc) + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetFile}}; + SDLGetFileResponse *testResponse = [[SDLGetFileResponse alloc] initWithDictionary:dict]; + + expect(testResponse.offset).to(equal(testOffset)); + expect(testResponse.length).to(equal(testLength)); + expect(testResponse.fileType).to(equal(testFileType)); + expect(testResponse.crc).to(equal(testCrc)); + }); + + it(@"Should get correctly when initialized with initWithOffset:length:fileType:crc:", ^{ + SDLGetFileResponse *testResponse = [[SDLGetFileResponse alloc] initWithOffset:testOffset length:testLength fileType:testFileType crc:testCrc]; + + expect(testResponse.offset).to(equal(testOffset)); + expect(testResponse.length).to(equal(testLength)); + expect(testResponse.fileType).to(equal(testFileType)); + expect(testResponse.crc).to(equal(testCrc)); + }); + + it(@"Should return nil if not set", ^{ + SDLGetFileResponse *testResponse = [[SDLGetFileResponse alloc] init]; + + expect(testResponse.offset).to(beNil()); + expect(testResponse.length).to(beNil()); + expect(testResponse.fileType).to(beNil()); + expect(testResponse.crc).to(beNil()); + }); +}); + +QuickSpecEnd + + + diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m index 7878eedce..7541d2625 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m @@ -10,7 +10,8 @@ #import "SDLGetInteriorVehicleDataResponse.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLGetInteriorVehicleDataResponseSpec) @@ -34,11 +35,11 @@ describe(@"Getter/Setter Tests", ^ { it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameModuleData:someModuleData, - SDLNameIsSubscribed:@NO}, - SDLNameOperationName:SDLNameGetInteriorVehicleData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameModuleData:someModuleData, + SDLRPCParameterNameIsSubscribed:@NO}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetInteriorVehicleData}} mutableCopy]; SDLGetInteriorVehicleDataResponse* testResponse = [[SDLGetInteriorVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.moduleData).to(equal(someModuleData)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m index a7f6ed74f..54d9c561e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m @@ -5,7 +5,8 @@ #import "SDLGetSystemCapabilityResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLNavigationCapability.h" #import "SDLSystemCapability.h" #import "SDLSystemCapabilityType.h" @@ -27,12 +28,17 @@ describe(@"Getter/Setter Tests", ^ { describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary *dict = @{SDLNameResponse: @{ - SDLNameParameters: @{ - SDLNameSystemCapability: @{SDLNameSystemCapabilityType: @"NAVIGATION", - SDLNameNavigationCapability: @{SDLNameGetWayPointsEnabled: @(NO), - SDLNameSendLocationEnabled: @(YES)}} - } + NSDictionary *dict = @{ + SDLRPCParameterNameResponse: @{ + SDLRPCParameterNameParameters: @{ + SDLRPCParameterNameSystemCapability: @{ + SDLRPCParameterNameSystemCapabilityType: @"NAVIGATION", + SDLRPCParameterNameNavigationCapability: @{ + SDLRPCParameterNameGetWayPointsEnabled: @(NO), + SDLRPCParameterNameSendLocationEnabled: @(YES)} + } + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetSystemCapability } }; SDLGetSystemCapabilityResponse *testResponse = [[SDLGetSystemCapabilityResponse alloc] initWithDictionary:dict]; @@ -41,6 +47,7 @@ describe(@"Initialization tests", ^{ expect(testResponse.systemCapability.navigationCapability.sendLocationEnabled).to(equal(YES)); expect(testResponse.systemCapability.navigationCapability.getWayPointsEnabled).to(equal(NO)); expect(testResponse.systemCapability.phoneCapability).to(beNil()); + expect(testResponse.name).to(equal(SDLRPCFunctionNameGetSystemCapability)); }); it(@"Should return nil if not set", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m index 9d7a69713..9d672c532 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m @@ -9,25 +9,45 @@ #import <Nimble/Nimble.h> #import "SmartDeviceLink.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLGetVehicleDataResponseSpec) -SDLGPSData* gps = [[SDLGPSData alloc] init]; -SDLTireStatus* tires = [[SDLTireStatus alloc] init]; -SDLBeltStatus* belt = [[SDLBeltStatus alloc] init]; -SDLBodyInformation* body = [[SDLBodyInformation alloc] init]; -SDLDeviceStatus* device = [[SDLDeviceStatus alloc] init]; -SDLHeadLampStatus* headLamp = [[SDLHeadLampStatus alloc] init]; -SDLECallInfo* eCall = [[SDLECallInfo alloc] init]; -SDLAirbagStatus* airbag = [[SDLAirbagStatus alloc] init]; -SDLEmergencyEvent* event = [[SDLEmergencyEvent alloc] init]; -SDLClusterModeStatus* clusterMode = [[SDLClusterModeStatus alloc] init]; -SDLMyKey* myKey = [[SDLMyKey alloc] init]; -SDLFuelRange* fuelRange = [[SDLFuelRange alloc] init]; - describe(@"Getter/Setter Tests", ^ { + __block SDLGPSData* gps = nil; + __block SDLTireStatus* tires = nil; + __block SDLBeltStatus* belt = nil; + __block SDLBodyInformation* body = nil; + __block SDLDeviceStatus* device = nil; + __block SDLHeadLampStatus* headLamp = nil; + __block SDLECallInfo* eCall = nil; + __block SDLAirbagStatus* airbag = nil; + __block SDLEmergencyEvent* event = nil; + __block SDLClusterModeStatus* clusterMode = nil; + __block SDLMyKey* myKey = nil; + __block SDLFuelRange* fuelRange = nil; + __block NSString* vin = nil; + __block NSString* cloudAppVehicleID = nil; + + beforeEach(^{ + gps = [[SDLGPSData alloc] init]; + tires = [[SDLTireStatus alloc] init]; + belt = [[SDLBeltStatus alloc] init]; + body = [[SDLBodyInformation alloc] init]; + device = [[SDLDeviceStatus alloc] init]; + headLamp = [[SDLHeadLampStatus alloc] init]; + eCall = [[SDLECallInfo alloc] init]; + airbag = [[SDLAirbagStatus alloc] init]; + event = [[SDLEmergencyEvent alloc] init]; + clusterMode = [[SDLClusterModeStatus alloc] init]; + myKey = [[SDLMyKey alloc] init]; + fuelRange = [[SDLFuelRange alloc] init]; + vin = @"6574839201a"; + cloudAppVehicleID = @"cloudAppVehicleID"; + }); + it(@"Should set and get correctly", ^ { SDLGetVehicleDataResponse* testResponse = [[SDLGetVehicleDataResponse alloc] init]; @@ -35,6 +55,7 @@ describe(@"Getter/Setter Tests", ^ { testResponse.airbagStatus = airbag; testResponse.beltStatus = belt; testResponse.bodyInformation = body; + testResponse.cloudAppVehicleID = cloudAppVehicleID; testResponse.clusterModeStatus = clusterMode; testResponse.deviceStatus = device; testResponse.driverBraking = SDLVehicleDataEventStatusNoEvent; @@ -58,13 +79,14 @@ describe(@"Getter/Setter Tests", ^ { testResponse.steeringWheelAngle = @-1500; testResponse.tirePressure = tires; testResponse.turnSignal = SDLTurnSignalBoth; - testResponse.vin = @"6574839201"; + testResponse.vin = vin; testResponse.wiperStatus = SDLWiperStatusAutomaticHigh; expect(testResponse.accPedalPosition).to(equal(@0)); expect(testResponse.airbagStatus).to(equal(airbag)); expect(testResponse.beltStatus).to(equal(belt)); expect(testResponse.bodyInformation).to(equal(body)); + expect(testResponse.cloudAppVehicleID).to(equal(cloudAppVehicleID)); expect(testResponse.clusterModeStatus).to(equal(clusterMode)); expect(testResponse.deviceStatus).to(equal(device)); expect(testResponse.driverBraking).to(equal(SDLVehicleDataEventStatusNoEvent)); @@ -88,50 +110,52 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.steeringWheelAngle).to(equal(@-1500)); expect(testResponse.tirePressure).to(equal(tires)); expect(testResponse.turnSignal).to(equal(SDLTurnSignalBoth)); - expect(testResponse.vin).to(equal(@"6574839201")); + expect(testResponse.vin).to(equal(vin)); expect(testResponse.wiperStatus).to(equal(SDLWiperStatusAutomaticHigh)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameNotification: - @{SDLNameParameters: + NSMutableDictionary* dict = [@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: @{ - SDLNameAccelerationPedalPosition:@0, - SDLNameAirbagStatus:airbag, - SDLNameBeltStatus:belt, - SDLNameBodyInformation:body, - SDLNameClusterModeStatus:clusterMode, - SDLNameDeviceStatus:device, - SDLNameDriverBraking:SDLVehicleDataEventStatusNoEvent, - SDLNameECallInfo:eCall, - SDLNameElectronicParkBrakeStatus:SDLElectronicParkBrakeStatusDriveActive, - SDLNameEmergencyEvent:event, - SDLNameEngineOilLife:@23.22, - SDLNameEngineTorque:@630.4, - SDLNameExternalTemperature:@0, - SDLNameFuelLevel:@99.9999, - SDLNameFuelLevelState:SDLComponentVolumeStatusFault, - SDLNameFuelRange:@[fuelRange], - SDLNameGPS:gps, - SDLNameHeadLampStatus:headLamp, - SDLNameInstantFuelConsumption:@40.7, - SDLNameMyKey:myKey, - SDLNameOdometer:@70000, - SDLNamePRNDL:SDLPRNDLPark, - SDLNameRPM:@3, - SDLNameSpeed:@100, - SDLNameSteeringWheelAngle:@-1500, - SDLNameTirePressure:tires, - SDLNameTurnSignal:SDLTurnSignalOff, - SDLNameVIN:@"6574839201", - SDLNameWiperStatus:SDLWiperStatusAutomaticHigh}, - SDLNameOperationName:SDLNameGetVehicleData}} mutableCopy]; + SDLRPCParameterNameAccelerationPedalPosition:@0, + SDLRPCParameterNameAirbagStatus:airbag, + SDLRPCParameterNameBeltStatus:belt, + SDLRPCParameterNameBodyInformation:body, + SDLRPCParameterNameCloudAppVehicleID:cloudAppVehicleID, + SDLRPCParameterNameClusterModeStatus:clusterMode, + SDLRPCParameterNameDeviceStatus:device, + SDLRPCParameterNameDriverBraking:SDLVehicleDataEventStatusNoEvent, + SDLRPCParameterNameECallInfo:eCall, + SDLRPCParameterNameElectronicParkBrakeStatus:SDLElectronicParkBrakeStatusDriveActive, + SDLRPCParameterNameEmergencyEvent:event, + SDLRPCParameterNameEngineOilLife:@23.22, + SDLRPCParameterNameEngineTorque:@630.4, + SDLRPCParameterNameExternalTemperature:@0, + SDLRPCParameterNameFuelLevel:@99.9999, + SDLRPCParameterNameFuelLevelState:SDLComponentVolumeStatusFault, + SDLRPCParameterNameFuelRange:@[fuelRange], + SDLRPCParameterNameGPS:gps, + SDLRPCParameterNameHeadLampStatus:headLamp, + SDLRPCParameterNameInstantFuelConsumption:@40.7, + SDLRPCParameterNameMyKey:myKey, + SDLRPCParameterNameOdometer:@70000, + SDLRPCParameterNamePRNDL:SDLPRNDLPark, + SDLRPCParameterNameRPM:@3, + SDLRPCParameterNameSpeed:@100, + SDLRPCParameterNameSteeringWheelAngle:@-1500, + SDLRPCParameterNameTirePressure:tires, + SDLRPCParameterNameTurnSignal:SDLTurnSignalOff, + SDLRPCParameterNameVIN:vin, + SDLRPCParameterNameWiperStatus:SDLWiperStatusAutomaticHigh}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetVehicleData}} mutableCopy]; SDLGetVehicleDataResponse* testResponse = [[SDLGetVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.accPedalPosition).to(equal(@0)); expect(testResponse.airbagStatus).to(equal(airbag)); expect(testResponse.beltStatus).to(equal(belt)); expect(testResponse.bodyInformation).to(equal(body)); + expect(testResponse.cloudAppVehicleID).to(equal(cloudAppVehicleID)); expect(testResponse.clusterModeStatus).to(equal(clusterMode)); expect(testResponse.deviceStatus).to(equal(device)); expect(testResponse.driverBraking).to(equal(SDLVehicleDataEventStatusNoEvent)); @@ -155,7 +179,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.steeringWheelAngle).to(equal(@-1500)); expect(testResponse.tirePressure).to(equal(tires)); expect(testResponse.turnSignal).to(equal(SDLTurnSignalOff)); - expect(testResponse.vin).to(equal(@"6574839201")); + expect(testResponse.vin).to(equal(vin)); expect(testResponse.wiperStatus).to(equal(SDLWiperStatusAutomaticHigh)); }); @@ -166,6 +190,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.airbagStatus).to(beNil()); expect(testResponse.beltStatus).to(beNil()); expect(testResponse.bodyInformation).to(beNil()); + expect(testResponse.cloudAppVehicleID).to(beNil()); expect(testResponse.clusterModeStatus).to(beNil()); expect(testResponse.deviceStatus).to(beNil()); expect(testResponse.driverBraking).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m index 9b5f0b873..c54acf9fa 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m @@ -11,7 +11,7 @@ #import "SDLImage.h" #import "SDLLocationCoordinate.h" #import "SDLLocationDetails.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLOasisAddress.h" QuickSpecBegin(SDLGetWaypointsResponseSpec) @@ -63,9 +63,9 @@ describe(@"Getter/Setter Tests", ^ { someWaypoints = @[someLocation]; - NSDictionary *initDict = @{SDLNameResponse : @{ - SDLNameParameters: @{ - SDLNameWayPoints: someWaypoints + NSDictionary *initDict = @{SDLRPCParameterNameResponse : @{ + SDLRPCParameterNameParameters: @{ + SDLRPCParameterNameWayPoints: someWaypoints } } }; @@ -83,8 +83,8 @@ describe(@"Getter/Setter Tests", ^ { context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - SDLNameRequest: @{ - SDLNameParameters: @{} + SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m index 9cc6571a5..02ab663c8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLListFilesResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLListFilesResponseSpec) @@ -25,11 +26,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameFilenames:[@[@"Music/music.mp3", @"Documents/document.txt", @"Downloads/format.exe"] mutableCopy], - SDLNameSpaceAvailable:@500000000}, - SDLNameOperationName:SDLNameListFiles}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameFilenames:[@[@"Music/music.mp3", @"Documents/document.txt", @"Downloads/format.exe"] mutableCopy], + SDLRPCParameterNameSpaceAvailable:@500000000}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameListFiles}} mutableCopy]; SDLListFilesResponse* testResponse = [[SDLListFilesResponse alloc] initWithDictionary:dict]; expect(testResponse.filenames).to(equal([@[@"Music/music.mp3", @"Documents/document.txt", @"Downloads/format.exe"] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAppServiceInteractionResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAppServiceInteractionResponseSpec.m new file mode 100644 index 000000000..9ac23a78f --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAppServiceInteractionResponseSpec.m @@ -0,0 +1,56 @@ +// +// SDLPerformAppServiceInteractionResponseSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/6/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLPerformAppServiceInteractionResponse.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLPerformAppServiceInteractionResponseSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testServiceSpecificResult = nil; + + beforeEach(^{ + testServiceSpecificResult = @"testServiceSpecificResult"; + }); + + it(@"Should set and get correctly", ^{ + SDLPerformAppServiceInteractionResponse *testResponse = [[SDLPerformAppServiceInteractionResponse alloc] init]; + testResponse.serviceSpecificResult = testServiceSpecificResult; + + expect(testResponse.serviceSpecificResult).to(equal(testServiceSpecificResult)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameResponse:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameServiceSpecificResult:testServiceSpecificResult + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePublishAppService}}; + SDLPerformAppServiceInteractionResponse *testResponse = [[SDLPerformAppServiceInteractionResponse alloc] initWithDictionary:dict]; + + expect(testResponse.serviceSpecificResult).to(equal(testServiceSpecificResult)); + }); + + it(@"Should get correctly when initialized with initWithServiceSpecificResult:", ^{ + SDLPerformAppServiceInteractionResponse *testResponse = [[SDLPerformAppServiceInteractionResponse alloc] initWithServiceSpecificResult:testServiceSpecificResult]; + + expect(testResponse.serviceSpecificResult).to(equal(testServiceSpecificResult)); + }); + + it(@"Should return nil if not set", ^{ + SDLPerformAppServiceInteractionResponse *testResponse = [[SDLPerformAppServiceInteractionResponse alloc] init]; + + expect(testResponse.serviceSpecificResult).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAudioPassThruResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAudioPassThruResponseSpec.m index eb661c3f2..9101fc39e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAudioPassThruResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformAudioPassThruResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLPerformAudioPassThruResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLPerformAudioPassThruResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m index fc2219356..832ed3e44 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLPerformInteractionResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLTriggerSource.h" @@ -29,12 +30,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameChoiceId:@25, - SDLNameManualTextEntry:@"entry", - SDLNameTriggerSource:SDLTriggerSourceKeyboard}, - SDLNameOperationName:SDLNamePerformInteraction}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameChoiceId:@25, + SDLRPCParameterNameManualTextEntry:@"entry", + SDLRPCParameterNameTriggerSource:SDLTriggerSourceKeyboard}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePerformInteraction}} mutableCopy]; SDLPerformInteractionResponse* testResponse = [[SDLPerformInteractionResponse alloc] initWithDictionary:dict]; expect(testResponse.choiceID).to(equal(@25)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPublishAppServiceResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPublishAppServiceResponseSpec.m new file mode 100644 index 000000000..7c3e84317 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPublishAppServiceResponseSpec.m @@ -0,0 +1,60 @@ +// +// SDLPublishAppServiceResponseSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLPublishAppServiceResponse.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLPublishAppServiceResponseSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLAppServiceRecord *testAppServiceRecord = nil; + + beforeEach(^{ + testAppServiceRecord = [[SDLAppServiceRecord alloc] init]; + testAppServiceRecord.serviceID = @"testServiceId"; + }); + + it(@"Should set and get correctly", ^{ + SDLPublishAppServiceResponse *testResponse = [[SDLPublishAppServiceResponse alloc] init]; + testResponse.appServiceRecord = testAppServiceRecord; + + expect(testResponse.appServiceRecord).to(equal(testAppServiceRecord)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameResponse:@{ + SDLRPCParameterNameParameters:@{ + SDLRPCParameterNameAppServiceRecord:testAppServiceRecord + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePublishAppService}}; + SDLPublishAppServiceResponse *testResponse = [[SDLPublishAppServiceResponse alloc] initWithDictionary:dict]; + + expect(testResponse.appServiceRecord).to(equal(testAppServiceRecord)); + }); + + it(@"Should get correctly when initialized with initWithAppServiceRecord:", ^{ + SDLPublishAppServiceResponse *testResponse = [[SDLPublishAppServiceResponse alloc] initWithAppServiceRecord:testAppServiceRecord]; + + expect(testResponse.appServiceRecord).to(equal(testAppServiceRecord)); + }); + + it(@"Should return nil if not set", ^{ + SDLPublishAppServiceResponse *testResponse = [[SDLPublishAppServiceResponse alloc] init]; + + expect(testResponse.appServiceRecord).to(beNil()); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m index 9fb2f42ad..347be0314 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLPutFileResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLPutFileResponseSpec) @@ -23,11 +24,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary<NSString *, id> *dict = @{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameSpaceAvailable:@1248, + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSpaceAvailable:@1248, }, - SDLNameOperationName:SDLNamePutFile}}; + SDLRPCParameterNameOperationName:SDLRPCFunctionNamePutFile}}; SDLPutFileResponse* testResponse = [[SDLPutFileResponse alloc] initWithDictionary:dict]; expect(testResponse.spaceAvailable).to(equal(@1248)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m index e8432243a..1ecc59fc9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m @@ -10,7 +10,8 @@ #import "SDLReadDIDResponse.h" #import "SDLDIDResult.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLReadDIDResponseSpec) @@ -26,10 +27,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameDIDResult:[@[result] mutableCopy]}, - SDLNameOperationName:SDLNameReadDID}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameDIDResult:[@[result] mutableCopy]}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameReadDID}} mutableCopy]; SDLReadDIDResponse* testResponse = [[SDLReadDIDResponse alloc] initWithDictionary:dict]; expect(testResponse.didResult).to(equal([@[result] mutableCopy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m index 9a4854fcc..b8c1c816b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SmartDeviceLink.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLRegisterAppInterfaceResponseSpec) @@ -69,29 +70,29 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary *dict = @{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameSyncMessageVersion:version, - SDLNameLanguage:SDLLanguageEsMx, - SDLNameHMIDisplayLanguage:SDLLanguageRuRu, - SDLNameDisplayCapabilities:info, - SDLNameButtonCapabilities:@[button], - SDLNameSoftButtonCapabilities:@[softButton], - SDLNamePresetBankCapabilities:presetBank, - SDLNameHMIZoneCapabilities:@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront], - SDLNameSpeechCapabilities:@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence], - SDLNameVRCapabilities:@[SDLVRCapabilitiesText], - SDLNameAudioPassThruCapabilities:@[audioPassThru], - SDLNamePCMStreamCapabilities: audioPassThru, - SDLNameVehicleType:vehicle, - SDLNamePrerecordedSpeech:@[SDLPrerecordedSpeechListen, SDLPrerecordedSpeechHelp], - SDLNameSupportedDiagnosticModes:@[@67, @99, @111], - SDLNameHMICapabilities: hmiCapabilities, - SDLNameSDLVersion: @"sdlVersion", - SDLNameSystemSoftwareVersion: @"systemSoftwareVersion", - SDLNameIconResumed: @YES, + NSDictionary *dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSyncMessageVersion:version, + SDLRPCParameterNameLanguage:SDLLanguageEsMx, + SDLRPCParameterNameHMIDisplayLanguage:SDLLanguageRuRu, + SDLRPCParameterNameDisplayCapabilities:info, + SDLRPCParameterNameButtonCapabilities:@[button], + SDLRPCParameterNameSoftButtonCapabilities:@[softButton], + SDLRPCParameterNamePresetBankCapabilities:presetBank, + SDLRPCParameterNameHMIZoneCapabilities:@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront], + SDLRPCParameterNameSpeechCapabilities:@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence], + SDLRPCParameterNameVRCapabilities:@[SDLVRCapabilitiesText], + SDLRPCParameterNameAudioPassThruCapabilities:@[audioPassThru], + SDLRPCParameterNamePCMStreamCapabilities: audioPassThru, + SDLRPCParameterNameVehicleType:vehicle, + SDLRPCParameterNamePrerecordedSpeech:@[SDLPrerecordedSpeechListen, SDLPrerecordedSpeechHelp], + SDLRPCParameterNameSupportedDiagnosticModes:@[@67, @99, @111], + SDLRPCParameterNameHMICapabilities: hmiCapabilities, + SDLRPCParameterNameSDLVersion: @"sdlVersion", + SDLRPCParameterNameSystemSoftwareVersion: @"systemSoftwareVersion", + SDLRPCParameterNameIconResumed: @YES, }, - SDLNameOperationName:SDLNameRegisterAppInterface}}; + SDLRPCParameterNameOperationName:SDLRPCFunctionNameRegisterAppInterface}}; SDLRegisterAppInterfaceResponse* testResponse = [[SDLRegisterAppInterfaceResponse alloc] initWithDictionary:dict]; expect(testResponse.syncMsgVersion).to(equal(version)); @@ -138,6 +139,53 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.systemSoftwareVersion).to(beNil()); expect(testResponse.iconResumed).to(beNil()); }); + + it(@"Should get correctly when initialized from NSNull", ^ { + NSDictionary *dict = @{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSyncMessageVersion:NSNull.null, + SDLRPCParameterNameLanguage:NSNull.null, + SDLRPCParameterNameHMIDisplayLanguage:NSNull.null, + SDLRPCParameterNameDisplayCapabilities:NSNull.null, + SDLRPCParameterNameButtonCapabilities:NSNull.null, + SDLRPCParameterNameSoftButtonCapabilities:NSNull.null, + SDLRPCParameterNamePresetBankCapabilities:NSNull.null, + SDLRPCParameterNameHMIZoneCapabilities:NSNull.null, + SDLRPCParameterNameSpeechCapabilities:NSNull.null, + SDLRPCParameterNameVRCapabilities:NSNull.null, + SDLRPCParameterNameAudioPassThruCapabilities:NSNull.null, + SDLRPCParameterNamePCMStreamCapabilities:NSNull.null, + SDLRPCParameterNameVehicleType:NSNull.null, + SDLRPCParameterNamePrerecordedSpeech:NSNull.null, + SDLRPCParameterNameSupportedDiagnosticModes:NSNull.null, + SDLRPCParameterNameHMICapabilities: NSNull.null, + SDLRPCParameterNameSDLVersion: NSNull.null, + SDLRPCParameterNameSystemSoftwareVersion: NSNull.null, + SDLRPCParameterNameIconResumed: NSNull.null, + }, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameRegisterAppInterface}}; + SDLRegisterAppInterfaceResponse* testResponse = [[SDLRegisterAppInterfaceResponse alloc] initWithDictionary:dict]; + + expectAction(^{ [testResponse syncMsgVersion]; }).to(raiseException()); + expectAction(^{ [testResponse language]; }).to(raiseException()); + expectAction(^{ [testResponse hmiDisplayLanguage]; }).to(raiseException()); + expectAction(^{ [testResponse displayCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse buttonCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse softButtonCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse presetBankCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse hmiZoneCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse speechCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse vrCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse audioPassThruCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse pcmStreamCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse vehicleType]; }).to(raiseException()); + expectAction(^{ [testResponse prerecordedSpeech]; }).to(raiseException()); + expectAction(^{ [testResponse supportedDiagModes]; }).to(raiseException()); + expectAction(^{ [testResponse hmiCapabilities]; }).to(raiseException()); + expectAction(^{ [testResponse sdlVersion]; }).to(raiseException()); + expectAction(^{ [testResponse systemSoftwareVersion]; }).to(raiseException()); + expectAction(^{ [testResponse iconResumed]; }).to(raiseException()); + }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLResetGlobalPropertiesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLResetGlobalPropertiesResponseSpec.m index fb9b4a2ed..95286de9c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLResetGlobalPropertiesResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLResetGlobalPropertiesResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLResetGlobalPropertiesResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLResetGlobalPropertiesResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLScrollableMessageResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLScrollableMessageResponseSpec.m index 5cebb0229..662b508e9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLScrollableMessageResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLScrollableMessageResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLScrollableMessageResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLScrollableMessageResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m index 29be138ad..6f6993125 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m @@ -11,7 +11,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSendHapticDataResponse.h" QuickSpecBegin(SDLSendHapticDataResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetAppIconResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetAppIconResponseSpec.m index 44593a080..eec77c545 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetAppIconResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetAppIconResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSetAppIconResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSetAppIconResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetCloudAppPropertiesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetCloudAppPropertiesResponseSpec.m new file mode 100644 index 000000000..fdcf9144e --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetCloudAppPropertiesResponseSpec.m @@ -0,0 +1,37 @@ +// +// SDLSetCloudAppPropertiesResponseSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSetCloudAppPropertiesResponse.h" + +QuickSpecBegin(SDLSetCloudAppPropertiesResponseSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^{ + SDLSetCloudAppPropertiesResponse *testResponse = [[SDLSetCloudAppPropertiesResponse alloc] init]; + + expect(testResponse).toNot(beNil()); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameResponse:@{ + SDLRPCParameterNameParameters:@{}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetCloudAppProperties}}; + SDLSetCloudAppPropertiesResponse *testResponse = [[SDLSetCloudAppPropertiesResponse alloc] initWithDictionary:dict]; + + expect(testResponse).toNot(beNil()); + expect(testResponse.name).to(equal(SDLRPCFunctionNameSetCloudAppProperties)); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m index 29b589eef..41e36b842 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m @@ -10,7 +10,8 @@ #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLPresetBankCapabilities.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSoftButtonCapabilities.h" @@ -39,13 +40,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRequest: - @{SDLNameParameters: - @{SDLNameDisplayCapabilities:info, - SDLNameButtonCapabilities:[@[button] mutableCopy], - SDLNameSoftButtonCapabilities:[@[softButton] mutableCopy], - SDLNamePresetBankCapabilities:presetBank}, - SDLNameOperationName:SDLNameSetDisplayLayout}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameDisplayCapabilities:info, + SDLRPCParameterNameButtonCapabilities:[@[button] mutableCopy], + SDLRPCParameterNameSoftButtonCapabilities:[@[softButton] mutableCopy], + SDLRPCParameterNamePresetBankCapabilities:presetBank}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetDisplayLayout}} mutableCopy]; SDLSetDisplayLayoutResponse* testResponse = [[SDLSetDisplayLayoutResponse alloc] initWithDictionary:dict]; expect(testResponse.displayCapabilities).to(equal(info)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetGlobalPropertiesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetGlobalPropertiesResponseSpec.m index 80a5f47ec..5ed1eb45c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetGlobalPropertiesResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetGlobalPropertiesResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSetGlobalPropertiesResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSetGlobalPropertiesResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m index a41210e91..cbb26be8b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m @@ -10,7 +10,8 @@ #import "SDLSetInteriorVehicleDataResponse.h" #import "SDLModuleData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSetInteriorVehicleDataResponseSpec) @@ -31,10 +32,10 @@ describe(@"Getter/Setter Tests", ^ { it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameModuleData:someModuleData}, - SDLNameOperationName:SDLNameSetInteriorVehicleData}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameModuleData:someModuleData}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetInteriorVehicleData}} mutableCopy]; SDLSetInteriorVehicleDataResponse* testResponse = [[SDLSetInteriorVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.moduleData).to(equal(someModuleData)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetMediaClockTimerResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetMediaClockTimerResponseSpec.m index e840213d6..dfc0abdf2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetMediaClockTimerResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetMediaClockTimerResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSetMediaClockTimerResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSetMediaClockTimerResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowConstantTBTResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowConstantTBTResponseSpec.m index 1bd2c57cd..d7ca02d43 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowConstantTBTResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowConstantTBTResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLShowConstantTBTResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLShowConstantTBTResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowResponseSpec.m index bbfa524c0..23ae97f4d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLShowResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLShowResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLShowResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m index b7dce33cb..bddbb04a4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m @@ -10,7 +10,8 @@ #import "SDLSliderResponse.h" #import "SDLDIDResult.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" QuickSpecBegin(SDLSliderResponseSpec) @@ -24,10 +25,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameSliderPosition:@13}, - SDLNameOperationName:SDLNameSlider}} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSliderPosition:@13}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSlider}} mutableCopy]; SDLSliderResponse* testResponse = [[SDLSliderResponse alloc] initWithDictionary:dict]; expect(testResponse.sliderPosition).to(equal(@13)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSpeakResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSpeakResponseSpec.m index 688e8f34c..dd3264265 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSpeakResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSpeakResponseSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSpeakResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSpeakResponseSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeButtonResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeButtonResponseSpec.m index 5e78d95ed..e97276a4a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeButtonResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeButtonResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSubscribeButtonResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSubscribeButtonResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m index aa8000b14..fa3f163a4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m @@ -8,7 +8,8 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLSubscribeVehicleDataResponse.h" #import "SDLVehicleDataResult.h" @@ -25,6 +26,7 @@ describe(@"Getter/Setter Tests", ^ { testResponse.airbagStatus = vehicleDataResult; testResponse.beltStatus = vehicleDataResult; testResponse.bodyInformation = vehicleDataResult; + testResponse.cloudAppVehicleID = vehicleDataResult; testResponse.clusterModes = vehicleDataResult; testResponse.deviceStatus = vehicleDataResult; testResponse.driverBraking = vehicleDataResult; @@ -54,6 +56,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.airbagStatus).to(equal(vehicleDataResult)); expect(testResponse.beltStatus).to(equal(vehicleDataResult)); expect(testResponse.bodyInformation).to(equal(vehicleDataResult)); + expect(testResponse.cloudAppVehicleID).to(equal(vehicleDataResult)); expect(testResponse.clusterModes).to(equal(vehicleDataResult)); expect(testResponse.deviceStatus).to(equal(vehicleDataResult)); expect(testResponse.driverBraking).to(equal(vehicleDataResult)); @@ -81,43 +84,45 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary<NSString *, id> *dict = @{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameAccelerationPedalPosition:vehicleDataResult, - SDLNameAirbagStatus:vehicleDataResult, - SDLNameBeltStatus:vehicleDataResult, - SDLNameBodyInformation:vehicleDataResult, - SDLNameClusterModes:vehicleDataResult, - SDLNameDeviceStatus:vehicleDataResult, - SDLNameDriverBraking:vehicleDataResult, - SDLNameECallInfo:vehicleDataResult, - SDLNameElectronicParkBrakeStatus:vehicleDataResult, - SDLNameEmergencyEvent:vehicleDataResult, - SDLNameEngineOilLife:vehicleDataResult, - SDLNameEngineTorque:vehicleDataResult, - SDLNameExternalTemperature:vehicleDataResult, - SDLNameFuelLevel:vehicleDataResult, - SDLNameFuelLevelState:vehicleDataResult, - SDLNameFuelRange:vehicleDataResult, - SDLNameGPS:vehicleDataResult, - SDLNameHeadLampStatus:vehicleDataResult, - SDLNameInstantFuelConsumption:vehicleDataResult, - SDLNameMyKey:vehicleDataResult, - SDLNameOdometer:vehicleDataResult, - SDLNamePRNDL:vehicleDataResult, - SDLNameRPM:vehicleDataResult, - SDLNameSpeed:vehicleDataResult, - SDLNameSteeringWheelAngle:vehicleDataResult, - SDLNameTirePressure:vehicleDataResult, - SDLNameTurnSignal:vehicleDataResult, - SDLNameWiperStatus:vehicleDataResult}, - SDLNameOperationName:SDLNameSubscribeVehicleData}}; + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameAccelerationPedalPosition:vehicleDataResult, + SDLRPCParameterNameAirbagStatus:vehicleDataResult, + SDLRPCParameterNameBeltStatus:vehicleDataResult, + SDLRPCParameterNameBodyInformation:vehicleDataResult, + SDLRPCParameterNameCloudAppVehicleID:vehicleDataResult, + SDLRPCParameterNameClusterModes:vehicleDataResult, + SDLRPCParameterNameDeviceStatus:vehicleDataResult, + SDLRPCParameterNameDriverBraking:vehicleDataResult, + SDLRPCParameterNameECallInfo:vehicleDataResult, + SDLRPCParameterNameElectronicParkBrakeStatus:vehicleDataResult, + SDLRPCParameterNameEmergencyEvent:vehicleDataResult, + SDLRPCParameterNameEngineOilLife:vehicleDataResult, + SDLRPCParameterNameEngineTorque:vehicleDataResult, + SDLRPCParameterNameExternalTemperature:vehicleDataResult, + SDLRPCParameterNameFuelLevel:vehicleDataResult, + SDLRPCParameterNameFuelLevelState:vehicleDataResult, + SDLRPCParameterNameFuelRange:vehicleDataResult, + SDLRPCParameterNameGPS:vehicleDataResult, + SDLRPCParameterNameHeadLampStatus:vehicleDataResult, + SDLRPCParameterNameInstantFuelConsumption:vehicleDataResult, + SDLRPCParameterNameMyKey:vehicleDataResult, + SDLRPCParameterNameOdometer:vehicleDataResult, + SDLRPCParameterNamePRNDL:vehicleDataResult, + SDLRPCParameterNameRPM:vehicleDataResult, + SDLRPCParameterNameSpeed:vehicleDataResult, + SDLRPCParameterNameSteeringWheelAngle:vehicleDataResult, + SDLRPCParameterNameTirePressure:vehicleDataResult, + SDLRPCParameterNameTurnSignal:vehicleDataResult, + SDLRPCParameterNameWiperStatus:vehicleDataResult}, + SDLRPCParameterNameOperationName:SDLRPCFunctionNameSubscribeVehicleData}}; SDLSubscribeVehicleDataResponse* testResponse = [[SDLSubscribeVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.accPedalPosition).to(equal(vehicleDataResult)); expect(testResponse.airbagStatus).to(equal(vehicleDataResult)); expect(testResponse.beltStatus).to(equal(vehicleDataResult)); expect(testResponse.bodyInformation).to(equal(vehicleDataResult)); + expect(testResponse.cloudAppVehicleID).to(equal(vehicleDataResult)); expect(testResponse.clusterModes).to(equal(vehicleDataResult)); expect(testResponse.deviceStatus).to(equal(vehicleDataResult)); expect(testResponse.driverBraking).to(equal(vehicleDataResult)); @@ -151,6 +156,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.airbagStatus).to(beNil()); expect(testResponse.beltStatus).to(beNil()); expect(testResponse.bodyInformation).to(beNil()); + expect(testResponse.cloudAppVehicleID).to(beNil()); expect(testResponse.clusterModes).to(beNil()); expect(testResponse.deviceStatus).to(beNil()); expect(testResponse.driverBraking).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSyncPDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSyncPDataResponseSpec.m index 6a287f226..511a0df77 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSyncPDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSyncPDataResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSyncPDataResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSyncPDataResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSystemRequestResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSystemRequestResponseSpec.m index 2571379c8..4624f6de8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSystemRequestResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSystemRequestResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLSystemRequestResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSystemRequestResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnregisterAppInterfaceResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnregisterAppInterfaceResponseSpec.m index f10eb6048..0384a94af 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnregisterAppInterfaceResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnregisterAppInterfaceResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLUnregisterAppInterfaceResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLUnregisterAppInterfaceResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeButtonResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeButtonResponseSpec.m index ca76ef4e7..4f3052ccc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeButtonResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeButtonResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLUnsubscribeButtonResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLUnsubscribeButtonResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m index 8af7ef673..d9ba58f6b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m @@ -9,7 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLUnsubscribeVehicleDataResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "SDLVehicleDataResult.h" @@ -49,6 +50,7 @@ describe(@"Getter/Setter Tests", ^ { testResponse.myKey = vehicleDataResult; testResponse.electronicParkBrakeStatus = vehicleDataResult; testResponse.turnSignal = vehicleDataResult; + testResponse.cloudAppVehicleID = vehicleDataResult; expect(testResponse.gps).to(equal(vehicleDataResult)); expect(testResponse.speed).to(equal(vehicleDataResult)); @@ -78,41 +80,43 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.myKey).to(equal(vehicleDataResult)); expect(testResponse.electronicParkBrakeStatus).to(equal(vehicleDataResult)); expect(testResponse.turnSignal).to(equal(vehicleDataResult)); + expect(testResponse.cloudAppVehicleID).to(equal(vehicleDataResult)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameGPS:vehicleDataResult, - SDLNameSpeed:vehicleDataResult, - SDLNameRPM:vehicleDataResult, - SDLNameFuelLevel:vehicleDataResult, - SDLNameFuelLevelState:vehicleDataResult, - SDLNameFuelRange:vehicleDataResult, - SDLNameInstantFuelConsumption:vehicleDataResult, - SDLNameExternalTemperature:vehicleDataResult, - SDLNamePRNDL:vehicleDataResult, - SDLNameTirePressure:vehicleDataResult, - SDLNameOdometer:vehicleDataResult, - SDLNameBeltStatus:vehicleDataResult, - SDLNameBodyInformation:vehicleDataResult, - SDLNameDeviceStatus:vehicleDataResult, - SDLNameDriverBraking:vehicleDataResult, - SDLNameWiperStatus:vehicleDataResult, - SDLNameHeadLampStatus:vehicleDataResult, - SDLNameEngineOilLife:vehicleDataResult, - SDLNameEngineTorque:vehicleDataResult, - SDLNameAccelerationPedalPosition:vehicleDataResult, - SDLNameSteeringWheelAngle:vehicleDataResult, - SDLNameECallInfo:vehicleDataResult, - SDLNameAirbagStatus:vehicleDataResult, - SDLNameEmergencyEvent:vehicleDataResult, - SDLNameClusterModes:vehicleDataResult, - SDLNameMyKey:vehicleDataResult, - SDLNameElectronicParkBrakeStatus:vehicleDataResult, - SDLNameTurnSignal:vehicleDataResult, + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameGPS:vehicleDataResult, + SDLRPCParameterNameSpeed:vehicleDataResult, + SDLRPCParameterNameRPM:vehicleDataResult, + SDLRPCParameterNameFuelLevel:vehicleDataResult, + SDLRPCParameterNameFuelLevelState:vehicleDataResult, + SDLRPCParameterNameFuelRange:vehicleDataResult, + SDLRPCParameterNameInstantFuelConsumption:vehicleDataResult, + SDLRPCParameterNameExternalTemperature:vehicleDataResult, + SDLRPCParameterNamePRNDL:vehicleDataResult, + SDLRPCParameterNameTirePressure:vehicleDataResult, + SDLRPCParameterNameOdometer:vehicleDataResult, + SDLRPCParameterNameBeltStatus:vehicleDataResult, + SDLRPCParameterNameBodyInformation:vehicleDataResult, + SDLRPCParameterNameDeviceStatus:vehicleDataResult, + SDLRPCParameterNameDriverBraking:vehicleDataResult, + SDLRPCParameterNameWiperStatus:vehicleDataResult, + SDLRPCParameterNameHeadLampStatus:vehicleDataResult, + SDLRPCParameterNameEngineOilLife:vehicleDataResult, + SDLRPCParameterNameEngineTorque:vehicleDataResult, + SDLRPCParameterNameAccelerationPedalPosition:vehicleDataResult, + SDLRPCParameterNameSteeringWheelAngle:vehicleDataResult, + SDLRPCParameterNameECallInfo:vehicleDataResult, + SDLRPCParameterNameAirbagStatus:vehicleDataResult, + SDLRPCParameterNameEmergencyEvent:vehicleDataResult, + SDLRPCParameterNameClusterModes:vehicleDataResult, + SDLRPCParameterNameMyKey:vehicleDataResult, + SDLRPCParameterNameElectronicParkBrakeStatus:vehicleDataResult, + SDLRPCParameterNameTurnSignal:vehicleDataResult, + SDLRPCParameterNameCloudAppVehicleID:vehicleDataResult }, - SDLNameOperationName:SDLNameUnsubscribeVehicleData}} mutableCopy]; + SDLRPCParameterNameOperationName:SDLRPCFunctionNameUnsubscribeVehicleData}} mutableCopy]; SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.gps).to(equal(vehicleDataResult)); @@ -143,6 +147,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.myKey).to(equal(vehicleDataResult)); expect(testResponse.electronicParkBrakeStatus).to(equal(vehicleDataResult)); expect(testResponse.turnSignal).to(equal(vehicleDataResult)); + expect(testResponse.cloudAppVehicleID).to(equal(vehicleDataResult)); }); it(@"Should return nil if not set", ^ { @@ -176,6 +181,7 @@ describe(@"Getter/Setter Tests", ^ { expect(testResponse.myKey).to(beNil()); expect(testResponse.electronicParkBrakeStatus).to(beNil()); expect(testResponse.turnSignal).to(beNil()); + expect(testResponse.cloudAppVehicleID).to(beNil()); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUpdateTurnListResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUpdateTurnListResponseSpec.m index d455dea46..28679dddf 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUpdateTurnListResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUpdateTurnListResponseSpec.m @@ -9,8 +9,8 @@ #import <Nimble/Nimble.h> #import "SDLUpdateTurnListResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLUpdateTurnListResponseSpec) -QuickSpecEnd
\ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m index 01a535ce4..032857f4b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLAirbagStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataEventStatus.h" @@ -39,14 +39,14 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameDriverAirbagDeployed:SDLVehicleDataEventStatusYes, - SDLNameDriverSideAirbagDeployed:SDLVehicleDataEventStatusNoEvent, - SDLNameDriverCurtainAirbagDeployed:SDLVehicleDataEventStatusNo, - SDLNamePassengerAirbagDeployed:SDLVehicleDataEventStatusNotSupported, - SDLNamePassengerCurtainAirbagDeployed:SDLVehicleDataEventStatusFault, - SDLNameDriverKneeAirbagDeployed:SDLVehicleDataEventStatusNo, - SDLNamePassengerSideAirbagDeployed:SDLVehicleDataEventStatusYes, - SDLNamePassengerKneeAirbagDeployed:SDLVehicleDataEventStatusNoEvent} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameDriverAirbagDeployed:SDLVehicleDataEventStatusYes, + SDLRPCParameterNameDriverSideAirbagDeployed:SDLVehicleDataEventStatusNoEvent, + SDLRPCParameterNameDriverCurtainAirbagDeployed:SDLVehicleDataEventStatusNo, + SDLRPCParameterNamePassengerAirbagDeployed:SDLVehicleDataEventStatusNotSupported, + SDLRPCParameterNamePassengerCurtainAirbagDeployed:SDLVehicleDataEventStatusFault, + SDLRPCParameterNameDriverKneeAirbagDeployed:SDLVehicleDataEventStatusNo, + SDLRPCParameterNamePassengerSideAirbagDeployed:SDLVehicleDataEventStatusYes, + SDLRPCParameterNamePassengerKneeAirbagDeployed:SDLVehicleDataEventStatusNoEvent} mutableCopy]; SDLAirbagStatus* testStruct = [[SDLAirbagStatus alloc] initWithDictionary:dict]; expect(testStruct.driverAirbagDeployed).to(equal(SDLVehicleDataEventStatusYes)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m index b8495dc74..f230a7898 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m @@ -10,7 +10,7 @@ #import <Nimble/Nimble.h> #import "SDLAppInfo.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLAppInfoSpec) @@ -28,9 +28,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameAppDisplayName:@"display name", - SDLNameAppVersion:@"1.2.3.4", - SDLNameAppBundleId:@"com.app.bundle"} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameAppDisplayName:@"display name", + SDLRPCParameterNameAppVersion:@"1.2.3.4", + SDLRPCParameterNameAppBundleId:@"com.app.bundle"} mutableCopy]; SDLAppInfo* testStruct = [[SDLAppInfo alloc] initWithDictionary:dict]; expect(testStruct.appDisplayName).to(equal(@"display name")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceCapabilitySpec.m new file mode 100644 index 000000000..220ce9e30 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceCapabilitySpec.m @@ -0,0 +1,68 @@ +// +// SDLAppServiceCapabilitySpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLAppServiceCapabilitySpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLServiceUpdateReason testUpdateReason = nil; + __block SDLAppServiceRecord *testUpdatedAppServiceRecord = nil; + + beforeEach(^{ + testUpdateReason = SDLServiceUpdateActivated; + testUpdatedAppServiceRecord = [[SDLAppServiceRecord alloc] initWithDictionary:@{SDLRPCParameterNameServiceID:@"1234", SDLRPCParameterNameServicePublished:@YES}]; + }); + + it(@"Should set and get correctly", ^{ + SDLAppServiceCapability *testStruct = [[SDLAppServiceCapability alloc] init]; + testStruct.updateReason = testUpdateReason; + testStruct.updatedAppServiceRecord = testUpdatedAppServiceRecord; + + expect(testStruct.updateReason).to(equal(testUpdateReason)); + expect(testStruct.updatedAppServiceRecord).to(equal(testUpdatedAppServiceRecord)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameUpdateReason:testUpdateReason, + SDLRPCParameterNameUpdatedAppServiceRecord:testUpdatedAppServiceRecord + }; + + SDLAppServiceCapability *testStruct = [[SDLAppServiceCapability alloc] initWithDictionary:dict]; + expect(testStruct.updateReason).to(equal(testUpdateReason)); + expect(testStruct.updatedAppServiceRecord).to(equal(testUpdatedAppServiceRecord)); + }); + + it(@"Should get correctly when initialized with initWithUpdatedAppServiceRecord:", ^{ + SDLAppServiceCapability *testStruct = [[SDLAppServiceCapability alloc] initWithUpdatedAppServiceRecord:testUpdatedAppServiceRecord]; + + expect(testStruct.updateReason).to(beNil()); + expect(testStruct.updatedAppServiceRecord).to(equal(testUpdatedAppServiceRecord)); + }); + + it(@"Should get correctly when initialized with initWithUpdateReason:updatedAppServiceRecord", ^{ + SDLAppServiceCapability *testStruct = [[SDLAppServiceCapability alloc] initWithUpdateReason:testUpdateReason updatedAppServiceRecord:testUpdatedAppServiceRecord]; + + expect(testStruct.updateReason).to(equal(testUpdateReason)); + expect(testStruct.updatedAppServiceRecord).to(equal(testUpdatedAppServiceRecord)); + }); + + it(@"Should return nil if not set", ^{ + SDLAppServiceCapability *testStruct = [[SDLAppServiceCapability alloc] init]; + + expect(testStruct.updateReason).to(beNil()); + expect(testStruct.updatedAppServiceRecord).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceDataSpec.m new file mode 100644 index 000000000..ec1aef4ab --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceDataSpec.m @@ -0,0 +1,130 @@ +// +// SDLAppServiceDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceData.h" +#import "SDLAppServiceType.h" +#import "SDLMediaServiceData.h" +#import "SDLNavigationServiceData.h" +#import "SDLRPCParameterNames.h" +#import "SDLWeatherServiceData.h" + +QuickSpecBegin(SDLAppServiceDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testServiceType = nil; + __block SDLAppServiceType testAppServiceType = nil; + __block NSString *testServiceId = nil; + __block SDLMediaServiceData *testMediaServiceData = nil; + __block SDLWeatherServiceData *testWeatherServiceData = nil; + __block SDLNavigationServiceData *testNavigationServiceData = nil; + + beforeEach(^{ + testServiceType = SDLAppServiceTypeMedia; + testAppServiceType = SDLAppServiceTypeNavigation; + testServiceId = @"a1*54z"; + testMediaServiceData = [[SDLMediaServiceData alloc] init]; + testWeatherServiceData = [[SDLWeatherServiceData alloc] init]; + testNavigationServiceData = [[SDLNavigationServiceData alloc] init]; + }); + + it(@"Should set and get correctly", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] init]; + testStruct.serviceType = testServiceType; + testStruct.serviceId = testServiceId; + testStruct.mediaServiceData = testMediaServiceData; + testStruct.weatherServiceData = testWeatherServiceData; + testStruct.navigationServiceData = testNavigationServiceData; + + expect(testStruct.serviceType).to(equal(testServiceType)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(equal(testMediaServiceData)); + expect(testStruct.weatherServiceData).to(equal(testWeatherServiceData)); + expect(testStruct.navigationServiceData).to(equal(testNavigationServiceData)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameServiceType:testServiceType, + SDLRPCParameterNameServiceID:testServiceId, + SDLRPCParameterNameMediaServiceData:testMediaServiceData, + SDLRPCParameterNameWeatherServiceData:testWeatherServiceData, + SDLRPCParameterNameNavigationServiceData:testNavigationServiceData + }; + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] initWithDictionary:dict]; + + expect(testStruct.serviceType).to(equal(testServiceType)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(equal(testMediaServiceData)); + expect(testStruct.weatherServiceData).to(equal(testWeatherServiceData)); + expect(testStruct.navigationServiceData).to(equal(testNavigationServiceData)); + }); + + it(@"Should get correctly when initialized with initWithAppServiceType:serviceId:", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] initWithAppServiceType:testAppServiceType serviceId:testServiceId]; + + expect(testStruct.serviceType).to(equal(testAppServiceType)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(beNil()); + expect(testStruct.weatherServiceData).to(beNil()); + expect(testStruct.navigationServiceData).to(beNil()); + }); + + it(@"Should get correctly when initialized with initWithMediaServiceData:serviceId:", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] initWithMediaServiceData:testMediaServiceData serviceId:testServiceId]; + + expect(testStruct.serviceType).to(equal(SDLAppServiceTypeMedia)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(equal(testMediaServiceData)); + expect(testStruct.weatherServiceData).to(beNil()); + expect(testStruct.navigationServiceData).to(beNil()); + }); + + it(@"Should get correctly when initialized with initWithWeatherServiceData:serviceId:", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] initWithWeatherServiceData:testWeatherServiceData serviceId:testServiceId]; + + expect(testStruct.serviceType).to(equal(SDLAppServiceTypeWeather)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(beNil()); + expect(testStruct.weatherServiceData).to(equal(testWeatherServiceData)); + expect(testStruct.navigationServiceData).to(beNil()); + }); + + it(@"Should get correctly when initialized with initWithNavigationServiceData:serviceId:", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] initWithNavigationServiceData:testNavigationServiceData serviceId:testServiceId]; + + expect(testStruct.serviceType).to(equal(SDLAppServiceTypeNavigation)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(beNil()); + expect(testStruct.weatherServiceData).to(beNil()); + expect(testStruct.navigationServiceData).to(equal(testNavigationServiceData)); + }); + + it(@"Should get correctly when initialized with initWithServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData:", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] initWithAppServiceType:testServiceType serviceId:testServiceId mediaServiceData:testMediaServiceData weatherServiceData:testWeatherServiceData navigationServiceData:testNavigationServiceData]; + + expect(testStruct.serviceType).to(equal(testServiceType)); + expect(testStruct.serviceId).to(equal(testServiceId)); + expect(testStruct.mediaServiceData).to(equal(testMediaServiceData)); + expect(testStruct.weatherServiceData).to(equal(testWeatherServiceData)); + expect(testStruct.navigationServiceData).to(equal(testNavigationServiceData)); + }); + + it(@"Should return nil if not set", ^{ + SDLAppServiceData *testStruct = [[SDLAppServiceData alloc] init]; + + expect(testStruct.serviceType).to(beNil()); + expect(testStruct.serviceId).to(beNil()); + expect(testStruct.mediaServiceData).to(beNil()); + expect(testStruct.weatherServiceData).to(beNil()); + expect(testStruct.navigationServiceData).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceManifestSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceManifestSpec.m new file mode 100644 index 000000000..b12c8e8ad --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceManifestSpec.m @@ -0,0 +1,182 @@ +// +// SDLAppServiceManifestSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceManifest.h" +#import "SDLAppServiceType.h" +#import "SDLFunctionID.h" +#import "SDLImage.h" +#import "SDLNavigationServiceManifest.h" +#import "SDLMediaServiceManifest.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" +#import "SDLSyncMsgVersion.h" +#import "SDLWeatherServiceManifest.h" + +QuickSpecBegin(SDLAppServiceManifestSpec) + +describe(@"Getter/Setter Tests", ^ { + __block NSString *testServiceName = nil; + __block NSString *testServiceType = nil; + __block SDLAppServiceType testAppServiceType = nil; + __block SDLImage *testServiceIcon = nil; + __block NSNumber<SDLBool> *testAllowAppConsumers = nil; + __block SDLSyncMsgVersion *testRPCSpecVersion = nil; + __block NSArray<NSNumber<SDLInt> *> *testHandledRPCs = nil; + __block SDLWeatherServiceManifest *testWeatherServiceManifest = nil; + __block SDLMediaServiceManifest *testMediaServiceManifest = nil; + __block SDLNavigationServiceManifest *testNavigationServiceManifest = nil; + + beforeEach(^{ + testServiceName = @"testService"; + testServiceType = SDLAppServiceTypeMedia; + testAppServiceType = SDLAppServiceTypeNavigation; + testServiceIcon = [[SDLImage alloc] initWithName:@"testImage" isTemplate:false]; + testAllowAppConsumers = @YES; + testRPCSpecVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:5 minorVersion:2 patchVersion:1]; + testHandledRPCs = [[NSArray alloc] initWithObjects:[SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameAddCommand], [SDLFunctionID.sharedInstance functionIdForName:SDLRPCFunctionNameCreateInteractionChoiceSet], nil]; + testWeatherServiceManifest = [[SDLWeatherServiceManifest alloc] initWithCurrentForecastSupported:true maxMultidayForecastAmount:3 maxHourlyForecastAmount:0 maxMinutelyForecastAmount:0 weatherForLocationSupported:false]; + testMediaServiceManifest = [[SDLMediaServiceManifest alloc] init]; + testNavigationServiceManifest = [[SDLNavigationServiceManifest alloc] init]; + }); + + it(@"Should set and get correctly", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] init]; + testStruct.serviceName = testServiceName; + testStruct.serviceType = testServiceType; + testStruct.serviceIcon = testServiceIcon; + testStruct.allowAppConsumers = testAllowAppConsumers; + testStruct.rpcSpecVersion = testRPCSpecVersion; + testStruct.handledRPCs = testHandledRPCs; + testStruct.weatherServiceManifest = testWeatherServiceManifest; + testStruct.mediaServiceManifest = testMediaServiceManifest; + testStruct.navigationServiceManifest = testNavigationServiceManifest; + + expect(testStruct.serviceName).to(match(testServiceName)); + expect(testStruct.serviceType).to(match(testServiceType)); + expect(testStruct.serviceIcon).to(equal(testServiceIcon)); + expect(testStruct.allowAppConsumers).to(beTrue()); + expect(testStruct.rpcSpecVersion).to(equal(testRPCSpecVersion)); + expect(testStruct.handledRPCs).to(equal(testHandledRPCs)); + expect(testStruct.weatherServiceManifest).to(equal(testWeatherServiceManifest)); + expect(testStruct.mediaServiceManifest).to(equal(testMediaServiceManifest)); + expect(testStruct.navigationServiceManifest).to(equal(testNavigationServiceManifest)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameServiceName:testServiceName, + SDLRPCParameterNameServiceType:testServiceType, + SDLRPCParameterNameServiceIcon:testServiceIcon, + SDLRPCParameterNameAllowAppConsumers:testAllowAppConsumers, + SDLRPCParameterNameRPCSpecVersion:testRPCSpecVersion, + SDLRPCParameterNameHandledRPCs:testHandledRPCs, + SDLRPCParameterNameWeatherServiceManifest:testWeatherServiceManifest, + SDLRPCParameterNameMediaServiceManifest:testMediaServiceManifest, + SDLRPCParameterNameNavigationServiceManifest:testNavigationServiceManifest + }; + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] initWithDictionary:dict]; + + expect(testStruct.serviceName).to(match(testServiceName)); + expect(testStruct.serviceType).to(equal(testServiceType)); + expect(testStruct.serviceIcon).to(equal(testServiceIcon)); + expect(testStruct.allowAppConsumers).to(beTrue()); + expect(testStruct.rpcSpecVersion).to(equal(testRPCSpecVersion)); + expect(testStruct.handledRPCs).to(equal(testHandledRPCs)); + expect(testStruct.weatherServiceManifest).to(equal(testWeatherServiceManifest)); + expect(testStruct.mediaServiceManifest).to(equal(testMediaServiceManifest)); + expect(testStruct.navigationServiceManifest).to(equal(testNavigationServiceManifest)); + }); + + it(@"Should init correctly with initWithAppServiceType:", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] initWithAppServiceType:testAppServiceType]; + + expect(testStruct.serviceName).to(beNil()); + expect(testStruct.serviceType).to(equal(testAppServiceType)); + expect(testStruct.serviceIcon).to(beNil()); + expect(testStruct.allowAppConsumers).to(beNil()); + expect(testStruct.rpcSpecVersion).to(beNil()); + expect(testStruct.handledRPCs).to(beNil()); + expect(testStruct.weatherServiceManifest).to(beNil()); + expect(testStruct.mediaServiceManifest).to(beNil()); + expect(testStruct.navigationServiceManifest).to(beNil()); + }); + + it(@"Should init correctly with initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] initWithMediaServiceName:testServiceName serviceIcon:testServiceIcon allowAppConsumers:testAllowAppConsumers rpcSpecVersion:testRPCSpecVersion handledRPCs:testHandledRPCs mediaServiceManifest:testMediaServiceManifest]; + + expect(testStruct.serviceName).to(match(testServiceName)); + expect(testStruct.serviceType).to(equal(SDLAppServiceTypeMedia)); + expect(testStruct.serviceIcon).to(equal(testServiceIcon)); + expect(testStruct.allowAppConsumers).to(beTrue()); + expect(testStruct.rpcSpecVersion).to(equal(testRPCSpecVersion)); + expect(testStruct.handledRPCs).to(equal(testHandledRPCs)); + expect(testStruct.weatherServiceManifest).to(beNil()); + expect(testStruct.mediaServiceManifest).to(equal(testMediaServiceManifest)); + expect(testStruct.navigationServiceManifest).to(beNil()); + }); + + it(@"Should init correctly with initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest:", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] initWithWeatherServiceName:testServiceName serviceIcon:testServiceIcon allowAppConsumers:testAllowAppConsumers rpcSpecVersion:testRPCSpecVersion handledRPCs:testHandledRPCs weatherServiceManifest:testWeatherServiceManifest]; + + expect(testStruct.serviceName).to(match(testServiceName)); + expect(testStruct.serviceType).to(equal(SDLAppServiceTypeWeather)); + expect(testStruct.serviceIcon).to(equal(testServiceIcon)); + expect(testStruct.allowAppConsumers).to(beTrue()); + expect(testStruct.rpcSpecVersion).to(equal(testRPCSpecVersion)); + expect(testStruct.handledRPCs).to(equal(testHandledRPCs)); + expect(testStruct.weatherServiceManifest).to(equal(testWeatherServiceManifest)); + expect(testStruct.mediaServiceManifest).to(beNil()); + expect(testStruct.navigationServiceManifest).to(beNil()); + }); + + it(@"Should init correctly with initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest:", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] initWithNavigationServiceName:testServiceName serviceIcon:testServiceIcon allowAppConsumers:testAllowAppConsumers rpcSpecVersion:testRPCSpecVersion handledRPCs:testHandledRPCs navigationServiceManifest:testNavigationServiceManifest]; + + expect(testStruct.serviceName).to(match(testServiceName)); + expect(testStruct.serviceType).to(equal(SDLAppServiceTypeNavigation)); + expect(testStruct.serviceIcon).to(equal(testServiceIcon)); + expect(testStruct.allowAppConsumers).to(beTrue()); + expect(testStruct.rpcSpecVersion).to(equal(testRPCSpecVersion)); + expect(testStruct.handledRPCs).to(equal(testHandledRPCs)); + expect(testStruct.weatherServiceManifest).to(beNil()); + expect(testStruct.mediaServiceManifest).to(beNil()); + expect(testStruct.navigationServiceManifest).to(equal(testNavigationServiceManifest)); + }); + + it(@"Should init correctly with initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest:", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] initWithServiceName:testServiceName serviceType:testServiceType serviceIcon:testServiceIcon allowAppConsumers:testAllowAppConsumers rpcSpecVersion:testRPCSpecVersion handledRPCs:testHandledRPCs mediaServiceManifest:testMediaServiceManifest weatherServiceManifest:testWeatherServiceManifest navigationServiceManifest:testNavigationServiceManifest]; + + expect(testStruct.serviceName).to(match(testServiceName)); + expect(testStruct.serviceType).to(equal(testServiceType)); + expect(testStruct.serviceIcon).to(equal(testServiceIcon)); + expect(testStruct.allowAppConsumers).to(beTrue()); + expect(testStruct.rpcSpecVersion).to(equal(testRPCSpecVersion)); + expect(testStruct.handledRPCs).to(equal(testHandledRPCs)); + expect(testStruct.weatherServiceManifest).to(equal(testWeatherServiceManifest)); + expect(testStruct.mediaServiceManifest).to(equal(testMediaServiceManifest)); + expect(testStruct.navigationServiceManifest).to(equal(testNavigationServiceManifest)); + }); + + it(@"Should return nil if not set", ^{ + SDLAppServiceManifest *testStruct = [[SDLAppServiceManifest alloc] init]; + + expect(testStruct.serviceName).to(beNil()); + expect(testStruct.serviceType).to(beNil()); + expect(testStruct.serviceIcon).to(beNil()); + expect(testStruct.allowAppConsumers).to(beNil()); + expect(testStruct.rpcSpecVersion).to(beNil()); + expect(testStruct.handledRPCs).to(beNil()); + expect(testStruct.weatherServiceManifest).to(beNil()); + expect(testStruct.mediaServiceManifest).to(beNil()); + expect(testStruct.navigationServiceManifest).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceRecordSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceRecordSpec.m new file mode 100644 index 000000000..f0d99c84f --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServiceRecordSpec.m @@ -0,0 +1,78 @@ +// +// SDLAppServiceRecordSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/29/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceManifest.h" +#import "SDLAppServiceRecord.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLAppServiceRecordSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testServiceID = nil; + __block SDLAppServiceManifest *testAppServiceManifest = nil; + __block NSNumber<SDLBool> *testServicePublished = nil; + __block NSNumber<SDLBool> *testServiceActive = nil; + + beforeEach(^{ + testServiceID = @"12345"; + testAppServiceManifest = [[SDLAppServiceManifest alloc] initWithDictionary:@{SDLRPCParameterNameAllowAppConsumers:@NO}]; + testServicePublished = @NO; + testServiceActive = @YES; + }); + + it(@"Should set and get correctly", ^{ + SDLAppServiceRecord *testStruct = [[SDLAppServiceRecord alloc] init]; + testStruct.serviceID = testServiceID; + testStruct.serviceManifest = testAppServiceManifest; + testStruct.servicePublished = testServicePublished; + testStruct.serviceActive = testServiceActive; + + expect(testStruct.serviceID).to(match(testServiceID)); + expect(testStruct.serviceManifest).to(equal(testAppServiceManifest)); + expect(testStruct.servicePublished).to(equal(testServicePublished)); + expect(testStruct.serviceActive).to(equal(testServiceActive)); + }); + + it(@"Should initWithServiceId:serviceManifest:servicePublished:serviceActive: correctly", ^{ + SDLAppServiceRecord *testStruct = [[SDLAppServiceRecord alloc] initWithServiceID:testServiceID serviceManifest:testAppServiceManifest servicePublished:false serviceActive:true]; + + expect(testStruct.serviceID).to(match(testServiceID)); + expect(testStruct.serviceManifest).to(equal(testAppServiceManifest)); + expect(testStruct.servicePublished).to(equal(testServicePublished)); + expect(testStruct.serviceActive).to(equal(testServiceActive)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameServiceID:testServiceID, + SDLRPCParameterNameServiceManifest:testAppServiceManifest, + SDLRPCParameterNameServicePublished:testServicePublished, + SDLRPCParameterNameServiceActive:testServiceActive + }; + SDLAppServiceRecord *testStruct = [[SDLAppServiceRecord alloc] initWithDictionary:dict]; + + expect(testStruct.serviceID).to(match(testServiceID)); + expect(testStruct.serviceManifest).to(equal(testAppServiceManifest)); + expect(testStruct.servicePublished).to(equal(testServicePublished)); + expect(testStruct.serviceActive).to(equal(testServiceActive)); + }); + + it(@"Should return nil if not set", ^{ + SDLAppServiceRecord *testStruct = [[SDLAppServiceRecord alloc] init]; + + expect(testStruct.serviceID).to(beNil()); + expect(testStruct.serviceManifest).to(beNil()); + expect(testStruct.servicePublished).to(beNil()); + expect(testStruct.serviceActive).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServicesCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServicesCapabilitiesSpec.m new file mode 100644 index 000000000..486a664e8 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppServicesCapabilitiesSpec.m @@ -0,0 +1,53 @@ +// +// SDLAppServicesCapabilitiesSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/30/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceCapability.h" +#import "SDLAppServicesCapabilities.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLAppServicesCapabilitiesSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSArray<SDLAppServiceCapability *> *testAppServices = nil; + + beforeEach(^{ + testAppServices = @[[[SDLAppServiceCapability alloc] initWithDictionary:@{SDLRPCParameterNameUpdateReason:SDLServiceUpdateRemoved}]]; + }); + + it(@"Should set and get correctly", ^{ + SDLAppServicesCapabilities *testStruct = [[SDLAppServicesCapabilities alloc] init]; + testStruct.appServices = testAppServices; + + expect(testStruct.appServices).to(equal(testAppServices)); + }); + + it(@"Should set and get with initWithServicesSupported:appServices:", ^{ + SDLAppServicesCapabilities *testStruct = [[SDLAppServicesCapabilities alloc] initWithAppServices:testAppServices]; + + expect(testStruct.appServices).to(equal(testAppServices)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameAppServices:testAppServices + }; + SDLAppServicesCapabilities *testStruct = [[SDLAppServicesCapabilities alloc] initWithDictionary:dict]; + + expect(testStruct.appServices).to(equal(testAppServices)); + }); + + it(@"Should return nil if not set", ^{ + SDLAppServicesCapabilities *testStruct = [[SDLAppServicesCapabilities alloc] init]; + + expect(testStruct.appServices).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m index f785e9bce..d99d76c22 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLAudioControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin( SDLAudioControlCapabilitiesSpec) @@ -56,12 +56,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameModuleName:@"module", - SDLNameSourceAvailable:@(NO), - SDLNameKeepContextAvailable: @YES, - SDLNameVolumeAvailable:@(YES), - SDLNameEqualizerAvailable:@(NO), - SDLNameEqualizerMaxChannelId:@12 + NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"module", + SDLRPCParameterNameSourceAvailable:@(NO), + SDLRPCParameterNameKeepContextAvailable: @YES, + SDLRPCParameterNameVolumeAvailable:@(YES), + SDLRPCParameterNameEqualizerAvailable:@(NO), + SDLRPCParameterNameEqualizerMaxChannelId:@12 } mutableCopy]; SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlDataSpec.m index f12cbc52b..19b88b71b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlDataSpec.m @@ -11,7 +11,7 @@ #import "SDLAudioControlData.h" #import "SDLPrimaryAudioSource.h" #import "SDLEqualizerSettings.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin( SDLAudioControlDataSpec) @@ -43,10 +43,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameSource:SDLPrimaryAudioSourceCD, - SDLNameKeepContext:@(NO), - SDLNameVolume:@(NO), - SDLNameEqualizerSettings:[@[someEqualizerSettings] copy] + NSMutableDictionary* dict = [@{SDLRPCParameterNameSource:SDLPrimaryAudioSourceCD, + SDLRPCParameterNameKeepContext:@(NO), + SDLRPCParameterNameVolume:@(NO), + SDLRPCParameterNameEqualizerSettings:[@[someEqualizerSettings] copy] } mutableCopy]; SDLAudioControlData* testStruct = [[SDLAudioControlData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m index 5e2981852..915af499a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m @@ -11,7 +11,7 @@ #import "SDLAudioPassThruCapabilities.h" #import "SDLAudioType.h" #import "SDLBitsPerSample.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSamplingRate.h" @@ -31,9 +31,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameSamplingRate:SDLSamplingRate22KHZ, - SDLNameBitsPerSample:SDLBitsPerSample8Bit, - SDLNameAudioType:SDLAudioTypePCM} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameSamplingRate:SDLSamplingRate22KHZ, + SDLRPCParameterNameBitsPerSample:SDLBitsPerSample8Bit, + SDLRPCParameterNameAudioType:SDLAudioTypePCM} mutableCopy]; SDLAudioPassThruCapabilities* testStruct = [[SDLAudioPassThruCapabilities alloc] initWithDictionary:dict]; expect(testStruct.samplingRate).to(equal(SDLSamplingRate22KHZ)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m index e6e9495c5..dbe9d7b1f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLBeltStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataEventStatus.h" @@ -53,21 +53,21 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameDriverBeltDeployed:SDLVehicleDataEventStatusNoEvent, - SDLNamePassengerBeltDeployed:SDLVehicleDataEventStatusYes, - SDLNamePassengerBuckleBelted:SDLVehicleDataEventStatusNo, - SDLNameDriverBuckleBelted:SDLVehicleDataEventStatusFault, - SDLNameLeftRow2BuckleBelted:SDLVehicleDataEventStatusYes, - SDLNamePassengerChildDetected:SDLVehicleDataEventStatusNo, - SDLNameRightRow2BuckleBelted:SDLVehicleDataEventStatusNotSupported, - SDLNameMiddleRow2BuckleBelted:SDLVehicleDataEventStatusNoEvent, - SDLNameMiddleRow3BuckleBelted:SDLVehicleDataEventStatusYes, - SDLNameLeftRow3BuckleBelted:SDLVehicleDataEventStatusFault, - SDLNameRightRow3BuckleBelted:SDLVehicleDataEventStatusNo, - SDLNameLeftRearInflatableBelted:SDLVehicleDataEventStatusNotSupported, - SDLNameRightRearInflatableBelted:SDLVehicleDataEventStatusFault, - SDLNameMiddleRow1BeltDeployed:SDLVehicleDataEventStatusNoEvent, - SDLNameMiddleRow1BuckleBelted:SDLVehicleDataEventStatusNotSupported} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameDriverBeltDeployed:SDLVehicleDataEventStatusNoEvent, + SDLRPCParameterNamePassengerBeltDeployed:SDLVehicleDataEventStatusYes, + SDLRPCParameterNamePassengerBuckleBelted:SDLVehicleDataEventStatusNo, + SDLRPCParameterNameDriverBuckleBelted:SDLVehicleDataEventStatusFault, + SDLRPCParameterNameLeftRow2BuckleBelted:SDLVehicleDataEventStatusYes, + SDLRPCParameterNamePassengerChildDetected:SDLVehicleDataEventStatusNo, + SDLRPCParameterNameRightRow2BuckleBelted:SDLVehicleDataEventStatusNotSupported, + SDLRPCParameterNameMiddleRow2BuckleBelted:SDLVehicleDataEventStatusNoEvent, + SDLRPCParameterNameMiddleRow3BuckleBelted:SDLVehicleDataEventStatusYes, + SDLRPCParameterNameLeftRow3BuckleBelted:SDLVehicleDataEventStatusFault, + SDLRPCParameterNameRightRow3BuckleBelted:SDLVehicleDataEventStatusNo, + SDLRPCParameterNameLeftRearInflatableBelted:SDLVehicleDataEventStatusNotSupported, + SDLRPCParameterNameRightRearInflatableBelted:SDLVehicleDataEventStatusFault, + SDLRPCParameterNameMiddleRow1BeltDeployed:SDLVehicleDataEventStatusNoEvent, + SDLRPCParameterNameMiddleRow1BuckleBelted:SDLVehicleDataEventStatusNotSupported} mutableCopy]; SDLBeltStatus* testStruct = [[SDLBeltStatus alloc] initWithDictionary:dict]; expect(testStruct.driverBeltDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m index 6ed210075..9c8765525 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m @@ -11,7 +11,7 @@ #import "SDLBodyInformation.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLBodyInformationSpec) @@ -37,13 +37,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameParkBrakeActive:@YES, - SDLNameIgnitionStableStatus:SDLIgnitionStableStatusNotStable, - SDLNameIgnitionStatus:SDLIgnitionStatusStart, - SDLNameDriverDoorAjar:@NO, - SDLNamePassengerDoorAjar:@NO, - SDLNameRearLeftDoorAjar:@NO, - SDLNameRearRightDoorAjar:@YES} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameParkBrakeActive:@YES, + SDLRPCParameterNameIgnitionStableStatus:SDLIgnitionStableStatusNotStable, + SDLRPCParameterNameIgnitionStatus:SDLIgnitionStatusStart, + SDLRPCParameterNameDriverDoorAjar:@NO, + SDLRPCParameterNamePassengerDoorAjar:@NO, + SDLRPCParameterNameRearLeftDoorAjar:@NO, + SDLRPCParameterNameRearRightDoorAjar:@YES} mutableCopy]; SDLBodyInformation* testStruct = [[SDLBodyInformation alloc] initWithDictionary:dict]; expect(testStruct.parkBrakeActive).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m index b10e0b094..f4a0a3a89 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m @@ -10,7 +10,7 @@ #import "SDLButtonCapabilities.h" #import "SDLButtonName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLButtonCapabilitiesSpec) @@ -31,10 +31,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameName:SDLButtonNameCustomButton, - SDLNameShortPressAvailable:@YES, - SDLNameLongPressAvailable:@YES, - SDLNameUpDownAvailable:@NO} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameName:SDLButtonNameCustomButton, + SDLRPCParameterNameShortPressAvailable:@YES, + SDLRPCParameterNameLongPressAvailable:@YES, + SDLRPCParameterNameUpDownAvailable:@NO} mutableCopy]; SDLButtonCapabilities* testStruct = [[SDLButtonCapabilities alloc] initWithDictionary:dict]; expect(testStruct.name).to(equal(SDLButtonNameCustomButton)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m index 3fa486a98..7cb870b61 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m @@ -10,7 +10,7 @@ #import "SDLChoice.h" #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLChoiceSpec) @@ -40,13 +40,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameChoiceId:@3, - SDLNameMenuName:@"Hello", - SDLNameVRCommands:[@[@"1", @"2"] mutableCopy], - SDLNameImage:image, - SDLNameSecondaryText:@"Arbitrary", - SDLNameTertiaryText:@"qwerty", - SDLNameSecondaryImage:secondaryImage} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameChoiceId:@3, + SDLRPCParameterNameMenuName:@"Hello", + SDLRPCParameterNameVRCommands:[@[@"1", @"2"] mutableCopy], + SDLRPCParameterNameImage:image, + SDLRPCParameterNameSecondaryText:@"Arbitrary", + SDLRPCParameterNameTertiaryText:@"qwerty", + SDLRPCParameterNameSecondaryImage:secondaryImage} mutableCopy]; SDLChoice* testStruct = [[SDLChoice alloc] initWithDictionary:dict]; expect(testStruct.choiceID).to(equal(@3)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m index 298dd27a3..1bc146b4e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m @@ -11,7 +11,7 @@ #import "SDLClimateControlCapabilities.h" #import "SDLDefrostZone.h" #import "SDLVentilationMode.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLClimateControlCapabilitiesSpec) @@ -57,22 +57,22 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameModuleName:@"Name", - SDLNameFanSpeedAvailable:@YES, - SDLNameDesiredTemperatureAvailable:@NO, - SDLNameACEnableAvailable:@NO, - SDLNameACMaxEnableAvailable:@NO, - SDLNameCirculateAirEnableAvailable:@YES, - SDLNameAutoModeEnableAvailable:@NO, - SDLNameDualModeEnableAvailable:@NO, - SDLNameDefrostZoneAvailable:@YES, - SDLNameDefrostZone:[@[SDLDefrostZoneFront] copy], - SDLNameVentilationModeAvailable:@NO, - SDLNameVentilationMode:[@[SDLVentilationModeUpper] copy], - SDLNameHeatedSteeringWheelAvailable:@YES, - SDLNameHeatedWindshieldAvailable:@NO, - SDLNameHeatedRearWindowAvailable:@YES, - SDLNameHeatedMirrorsAvailable:@NO + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameModuleName:@"Name", + SDLRPCParameterNameFanSpeedAvailable:@YES, + SDLRPCParameterNameDesiredTemperatureAvailable:@NO, + SDLRPCParameterNameACEnableAvailable:@NO, + SDLRPCParameterNameACMaxEnableAvailable:@NO, + SDLRPCParameterNameCirculateAirEnableAvailable:@YES, + SDLRPCParameterNameAutoModeEnableAvailable:@NO, + SDLRPCParameterNameDualModeEnableAvailable:@NO, + SDLRPCParameterNameDefrostZoneAvailable:@YES, + SDLRPCParameterNameDefrostZone:[@[SDLDefrostZoneFront] copy], + SDLRPCParameterNameVentilationModeAvailable:@NO, + SDLRPCParameterNameVentilationMode:[@[SDLVentilationModeUpper] copy], + SDLRPCParameterNameHeatedSteeringWheelAvailable:@YES, + SDLRPCParameterNameHeatedWindshieldAvailable:@NO, + SDLRPCParameterNameHeatedRearWindowAvailable:@YES, + SDLRPCParameterNameHeatedMirrorsAvailable:@NO } mutableCopy]; SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m index 2075fb53d..8864f9ef5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m @@ -12,7 +12,7 @@ #import "SDLTemperature.h" #import "SDLDefrostZone.h" #import "SDLVentilationMode.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLClimateControlDataSpec) @@ -100,20 +100,20 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameFanSpeed : @43, - SDLNameCurrentTemperature : currentTemp, - SDLNameDesiredTemperature : desiredTemp, - SDLNameACEnable : @YES, - SDLNameCirculateAirEnable : @YES, - SDLNameAutoModeEnable : @NO, - SDLNameDefrostZone : SDLDefrostZoneFront, - SDLNameDualModeEnable : @NO, - SDLNameACMaxEnable : @YES, - SDLNameVentilationMode :SDLVentilationModeBoth, - SDLNameHeatedSteeringWheelEnable:@NO, - SDLNameHeatedWindshieldEnable:@YES, - SDLNameHeatedRearWindowEnable:@NO, - SDLNameHeatedMirrorsEnable:@YES, + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameFanSpeed : @43, + SDLRPCParameterNameCurrentTemperature : currentTemp, + SDLRPCParameterNameDesiredTemperature : desiredTemp, + SDLRPCParameterNameACEnable : @YES, + SDLRPCParameterNameCirculateAirEnable : @YES, + SDLRPCParameterNameAutoModeEnable : @NO, + SDLRPCParameterNameDefrostZone : SDLDefrostZoneFront, + SDLRPCParameterNameDualModeEnable : @NO, + SDLRPCParameterNameACMaxEnable : @YES, + SDLRPCParameterNameVentilationMode :SDLVentilationModeBoth, + SDLRPCParameterNameHeatedSteeringWheelEnable:@NO, + SDLRPCParameterNameHeatedWindshieldEnable:@YES, + SDLRPCParameterNameHeatedRearWindowEnable:@NO, + SDLRPCParameterNameHeatedMirrorsEnable:@YES, } mutableCopy]; SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLCloudAppPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLCloudAppPropertiesSpec.m new file mode 100644 index 000000000..8e933275e --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLCloudAppPropertiesSpec.m @@ -0,0 +1,114 @@ +// +// SDLCloudAppPropertiesSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/26/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLCloudAppProperties.h" +#import "SDLHybridAppPreference.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLCloudAppPropertiesSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSArray<NSString *> *testNicknames = nil; + __block NSString *testAppID = nil; + __block BOOL testEnabled = nil; + __block NSString *testAuthToken = nil; + __block NSString *testCloudTransportType = nil; + __block SDLHybridAppPreference testHybridAppPreference = nil; + __block NSString *testEndpoint = nil; + + beforeEach(^{ + testNicknames = @[@"testNickname1", @"testNickname2", @"testNickname3"]; + testAppID = @"testAppID"; + testEnabled = false; + testAuthToken = @"testAuthToken"; + testCloudTransportType = @"testCloudTransportType"; + testHybridAppPreference = SDLHybridAppPreferenceCloud; + testEndpoint = @"testEndpoint"; + }); + + it(@"Should set and get correctly", ^{ + SDLCloudAppProperties *testStruct = [[SDLCloudAppProperties alloc] init]; + testStruct.nicknames = testNicknames; + testStruct.appID = testAppID; + testStruct.enabled = @(testEnabled); + testStruct.authToken = testAuthToken; + testStruct.cloudTransportType = testCloudTransportType; + testStruct.hybridAppPreference = testHybridAppPreference; + testStruct.endpoint = testEndpoint; + + expect(testStruct.nicknames).to(equal(testNicknames)); + expect(testStruct.appID).to(equal(testAppID)); + expect(testStruct.enabled).to(equal(testEnabled)); + expect(testStruct.authToken).to(equal(testAuthToken)); + expect(testStruct.cloudTransportType).to(equal(testCloudTransportType)); + expect(testStruct.hybridAppPreference).to(equal(testHybridAppPreference)); + expect(testStruct.endpoint).to(equal(testEndpoint)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameNicknames:testNicknames, + SDLRPCParameterNameAppId:testAppID, + SDLRPCParameterNameEnabled:@(testEnabled), + SDLRPCParameterNameAuthToken:testAuthToken, + SDLRPCParameterNameCloudTransportType:testCloudTransportType, + SDLRPCParameterNameHybridAppPreference:testHybridAppPreference, + SDLRPCParameterNameEndpoint:testEndpoint + }; + SDLCloudAppProperties *testStruct = [[SDLCloudAppProperties alloc] initWithDictionary:dict]; + + expect(testStruct.nicknames).to(equal(testNicknames)); + expect(testStruct.appID).to(equal(testAppID)); + expect(testStruct.enabled).to(equal(testEnabled)); + expect(testStruct.authToken).to(equal(testAuthToken)); + expect(testStruct.cloudTransportType).to(equal(testCloudTransportType)); + expect(testStruct.hybridAppPreference).to(equal(testHybridAppPreference)); + expect(testStruct.endpoint).to(equal(testEndpoint)); + }); + + it(@"Should get correctly when initialized with initWithAppID:", ^{ + SDLCloudAppProperties *testStruct = [[SDLCloudAppProperties alloc] initWithAppID:testAppID]; + + expect(testStruct.appID).to(equal(testAppID)); + expect(testStruct.nicknames).to(beNil()); + expect(testStruct.enabled).to(beNil()); + expect(testStruct.authToken).to(beNil()); + expect(testStruct.cloudTransportType).to(beNil()); + expect(testStruct.hybridAppPreference).to(beNil()); + expect(testStruct.endpoint).to(beNil()); + }); + + it(@"Should get correctly when initialized with initWithAppName:appID:enabled:authToken:cloudTransportType: hybridAppPreference:endpoint:", ^{ + SDLCloudAppProperties *testStruct = [[SDLCloudAppProperties alloc] initWithAppID:testAppID nicknames:testNicknames enabled:testEnabled authToken:testAuthToken cloudTransportType:testCloudTransportType hybridAppPreference:testHybridAppPreference endpoint:testEndpoint]; + + expect(testStruct.nicknames).to(equal(testNicknames)); + expect(testStruct.appID).to(equal(testAppID)); + expect(testStruct.enabled).to(equal(testEnabled)); + expect(testStruct.authToken).to(equal(testAuthToken)); + expect(testStruct.cloudTransportType).to(equal(testCloudTransportType)); + expect(testStruct.hybridAppPreference).to(equal(testHybridAppPreference)); + expect(testStruct.endpoint).to(equal(testEndpoint)); + }); + + it(@"Should return nil if not set", ^{ + SDLCloudAppProperties *testStruct = [[SDLCloudAppProperties alloc] init]; + + expect(testStruct.nicknames).to(beNil()); + expect(testStruct.appID).to(beNil()); + expect(testStruct.enabled).to(beNil()); + expect(testStruct.authToken).to(beNil()); + expect(testStruct.cloudTransportType).to(beNil()); + expect(testStruct.hybridAppPreference).to(beNil()); + expect(testStruct.endpoint).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m index f61afe79e..fcafcde1b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m @@ -12,7 +12,7 @@ #import "SDLClusterModeStatus.h" #import "SDLPowerModeQualificationStatus.h" #import "SDLPowerModeStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLClusterModeStatusSpec) @@ -32,10 +32,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNamePowerModeActive:@NO, - SDLNamePowerModeQualificationStatus:SDLPowerModeQualificationStatusOk, - SDLNameCarModeStatus:SDLCarModeStatusCrash, - SDLNamePowerModeStatus:SDLPowerModeStatusKeyOut} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNamePowerModeActive:@NO, + SDLRPCParameterNamePowerModeQualificationStatus:SDLPowerModeQualificationStatusOk, + SDLRPCParameterNameCarModeStatus:SDLCarModeStatusCrash, + SDLRPCParameterNamePowerModeStatus:SDLPowerModeStatusKeyOut} mutableCopy]; SDLClusterModeStatus* testStruct = [[SDLClusterModeStatus alloc] initWithDictionary:dict]; expect(testStruct.powerModeActive).to(equal(@NO)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m index d0715bded..263793455 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLDIDResult.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataResultCode.h" @@ -29,9 +29,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameResultCode:SDLVehicleDataResultCodeDataNotSubscribed, - SDLNameDIDLocation:@300, - SDLNameData:@"gertwydhty4235tdhedt4tue"} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameResultCode:SDLVehicleDataResultCodeDataNotSubscribed, + SDLRPCParameterNameDIDLocation:@300, + SDLRPCParameterNameData:@"gertwydhty4235tdhedt4tue"} mutableCopy]; SDLDIDResult* testStruct = [[SDLDIDResult alloc] initWithDictionary:dict]; expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDataNotSubscribed)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m index c152ad461..5f4091d0f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m @@ -12,7 +12,7 @@ #import <Nimble/Nimble.h> #import "SDLDateTime.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLDateTimeSpec) @@ -42,15 +42,15 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized with dictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameMillisecond:@100, - SDLNameSecond:@4, - SDLNameMinute:@12, - SDLNameHour:@20, - SDLNameDay:@30, - SDLNameMonth:@1, - SDLNameYear:@4000, - SDLNameTimezoneMinuteOffset:@0, - SDLNameTimezoneHourOffset:@1000} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameMillisecond:@100, + SDLRPCParameterNameSecond:@4, + SDLRPCParameterNameMinute:@12, + SDLRPCParameterNameHour:@20, + SDLRPCParameterNameDay:@30, + SDLRPCParameterNameMonth:@1, + SDLRPCParameterNameYear:@4000, + SDLRPCParameterNameTimezoneMinuteOffset:@0, + SDLRPCParameterNameTimezoneHourOffset:@1000} mutableCopy]; SDLDateTime* testStruct = [[SDLDateTime alloc] initWithDictionary:dict]; expect(testStruct.millisecond).to(equal(@100)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceInfoSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceInfoSpec.m index 3108257f4..d1fcc5b55 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceInfoSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceInfoSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLDeviceInfo.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLDeviceInfoSpec) @@ -33,12 +33,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameHardware:@"GDFR34F", - SDLNameFirmwareRevision:@"4.2a", - SDLNameOS:@"Robot", - SDLNameOSVersion:@"9.9", - SDLNameCarrier:@"ThatOneWirelessCompany", - SDLNameMaxNumberRFCOMMPorts:@20} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameHardware:@"GDFR34F", + SDLRPCParameterNameFirmwareRevision:@"4.2a", + SDLRPCParameterNameOS:@"Robot", + SDLRPCParameterNameOSVersion:@"9.9", + SDLRPCParameterNameCarrier:@"ThatOneWirelessCompany", + SDLRPCParameterNameMaxNumberRFCOMMPorts:@20} mutableCopy]; SDLDeviceInfo* testStruct = [[SDLDeviceInfo alloc] initWithDictionary:dict]; expect(testStruct.hardware).to(equal(@"GDFR34F")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m index eb56a11a0..847c7b95c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m @@ -10,7 +10,7 @@ #import "SDLDeviceLevelStatus.h" #import "SDLDeviceStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLPrimaryAudioSource.h" @@ -46,17 +46,17 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameVoiceRecognitionOn:@NO, - SDLNameBluetoothIconOn:@NO, - SDLNameCallActive:@YES, - SDLNamePhoneRoaming:@NO, - SDLNameTextMessageAvailable:@YES, - SDLNameBatteryLevelStatus:SDLDeviceLevelStatusFourBars, - SDLNameStereoAudioOutputMuted:@YES, - SDLNameMonoAudioOutputMuted:@YES, - SDLNameSignalLevelStatus:SDLDeviceLevelStatusTwoBars, - SDLNamePrimaryAudioSource:SDLPrimaryAudioSourceBluetoothStereo, - SDLNameECallEventActive:@NO} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameVoiceRecognitionOn:@NO, + SDLRPCParameterNameBluetoothIconOn:@NO, + SDLRPCParameterNameCallActive:@YES, + SDLRPCParameterNamePhoneRoaming:@NO, + SDLRPCParameterNameTextMessageAvailable:@YES, + SDLRPCParameterNameBatteryLevelStatus:SDLDeviceLevelStatusFourBars, + SDLRPCParameterNameStereoAudioOutputMuted:@YES, + SDLRPCParameterNameMonoAudioOutputMuted:@YES, + SDLRPCParameterNameSignalLevelStatus:SDLDeviceLevelStatusTwoBars, + SDLRPCParameterNamePrimaryAudioSource:SDLPrimaryAudioSourceBluetoothStereo, + SDLRPCParameterNameECallEventActive:@NO} mutableCopy]; SDLDeviceStatus* testStruct = [[SDLDeviceStatus alloc] initWithDictionary:dict]; expect(testStruct.voiceRecOn).to(equal(@NO)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m index 6c68a3e26..ab19ae425 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m @@ -12,7 +12,7 @@ #import "SDLDisplayType.h" #import "SDLImageField.h" #import "SDLMediaClockFormat.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLScreenParams.h" #import "SDLTextField.h" @@ -52,15 +52,15 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameDisplayType:SDLDisplayTypeGen26DMA, - SDLNameDisplayName: @"test", - SDLNameTextFields:[@[textField] mutableCopy], - SDLNameImageFields:[@[imageField] mutableCopy], - SDLNameMediaClockFormats:[@[SDLMediaClockFormatClockText1, SDLMediaClockFormatClock3, SDLMediaClockFormatClockText3] copy], - SDLNameGraphicSupported:@YES, - SDLNameTemplatesAvailable:[@[@"String", @"String", @"String"] mutableCopy], - SDLNameScreenParams:screenParams, - SDLNameNumberCustomPresetsAvailable:@43} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameDisplayType:SDLDisplayTypeGen26DMA, + SDLRPCParameterNameDisplayName: @"test", + SDLRPCParameterNameTextFields:[@[textField] mutableCopy], + SDLRPCParameterNameImageFields:[@[imageField] mutableCopy], + SDLRPCParameterNameMediaClockFormats:[@[SDLMediaClockFormatClockText1, SDLMediaClockFormatClock3, SDLMediaClockFormatClockText3] copy], + SDLRPCParameterNameGraphicSupported:@YES, + SDLRPCParameterNameTemplatesAvailable:[@[@"String", @"String", @"String"] mutableCopy], + SDLRPCParameterNameScreenParams:screenParams, + SDLRPCParameterNameNumberCustomPresetsAvailable:@43} mutableCopy]; SDLDisplayCapabilities* testStruct = [[SDLDisplayCapabilities alloc] initWithDictionary:dict]; expect(testStruct.displayType).to(equal(SDLDisplayTypeGen26DMA)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m index c69c46b84..d7229bdbc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m @@ -11,7 +11,7 @@ #import "SDLVehicleDataNotificationStatus.h" #import "SDLECallConfirmationStatus.h" #import "SDLECallInfo.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLECallInfoSpec) @@ -30,9 +30,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameECallNotificationStatus:SDLVehicleDataNotificationStatusNormal, - SDLNameAuxECallNotificationStatus:SDLVehicleDataNotificationStatusActive, - SDLNameECallConfirmationStatus:SDLECallConfirmationStatusInProgress} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameECallNotificationStatus:SDLVehicleDataNotificationStatusNormal, + SDLRPCParameterNameAuxECallNotificationStatus:SDLVehicleDataNotificationStatusActive, + SDLRPCParameterNameECallConfirmationStatus:SDLECallConfirmationStatusInProgress} mutableCopy]; SDLECallInfo* testStruct = [[SDLECallInfo alloc] initWithDictionary:dict]; expect(testStruct.eCallNotificationStatus).to(equal(SDLVehicleDataNotificationStatusNormal)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m index 0048ffdff..3ac05c2e5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m @@ -11,7 +11,7 @@ #import "SDLEmergencyEvent.h" #import "SDLEmergencyEventType.h" #import "SDLFuelCutoffStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataEventStatus.h" @@ -35,11 +35,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameEmergencyEventType:SDLEmergencyEventTypeFrontal, - SDLNameFuelCutoffStatus:SDLFuelCutoffStatusNormalOperation, - SDLNameRolloverEvent:SDLVehicleDataEventStatusYes, - SDLNameMaximumChangeVelocity:@33, - SDLNameMultipleEvents:SDLVehicleDataEventStatusNo} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameEmergencyEventType:SDLEmergencyEventTypeFrontal, + SDLRPCParameterNameFuelCutoffStatus:SDLFuelCutoffStatusNormalOperation, + SDLRPCParameterNameRolloverEvent:SDLVehicleDataEventStatusYes, + SDLRPCParameterNameMaximumChangeVelocity:@33, + SDLRPCParameterNameMultipleEvents:SDLVehicleDataEventStatusNo} mutableCopy]; SDLEmergencyEvent* testStruct = [[SDLEmergencyEvent alloc] initWithDictionary:dict]; expect(testStruct.emergencyEventType).to(equal(SDLEmergencyEventTypeFrontal)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEqualizerSettingsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEqualizerSettingsSpec.m index cd5dfe3b1..599a36b1c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEqualizerSettingsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEqualizerSettingsSpec.m @@ -8,7 +8,7 @@ #import <Nimble/Nimble.h> #import "SDLEqualizerSettings.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLEqualizerSettingsSpec) @@ -35,9 +35,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameChannelId:@2, - SDLNameChannelName:@"channel", - SDLNameChannelSetting:@45 + NSMutableDictionary* dict = [@{SDLRPCParameterNameChannelId:@2, + SDLRPCParameterNameChannelName:@"channel", + SDLRPCParameterNameChannelSetting:@45 } mutableCopy]; SDLEqualizerSettings* testStruct = [[SDLEqualizerSettings alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLFuelRangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLFuelRangeSpec.m index f812613da..8461f67a9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLFuelRangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLFuelRangeSpec.m @@ -12,7 +12,7 @@ #import <Nimble/Nimble.h> #import "SDLFuelRange.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLFuelRangeSpec) @@ -28,8 +28,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary *dict = @{SDLNameType:SDLFuelTypeLPG, - SDLNameRange:@23 + NSDictionary *dict = @{SDLRPCParameterNameType:SDLFuelTypeLPG, + SDLRPCParameterNameRange:@23 }; SDLFuelRange *testStruct = [[SDLFuelRange alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m index 35cc2b659..9251e315f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m @@ -11,7 +11,7 @@ #import "SDLCompassDirection.h" #import "SDLDimension.h" #import "SDLGPSData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLGPSDataSpec) @@ -60,24 +60,24 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameLongitudeDegrees:@31.41592653589793, - SDLNameLatitudeDegrees:@45, - SDLNameUTCYear:@2015, - SDLNameUTCMonth:@1, - SDLNameUTCDay:@26, - SDLNameUTCHours:@23, - SDLNameUTCMinutes:@59, - SDLNameUTCSeconds:@59, - SDLNameCompassDirection:SDLCompassDirectionSoutheast, - SDLNamePDOP:@3.4, - SDLNameHDOP:@9.9, - SDLNameVDOP:@0, - SDLNameActual:@NO, - SDLNameSatellites:@12, - SDLNameDimension:SDLDimension3D, - SDLNameAltitude:@3000, - SDLNameHeading:@96, - SDLNameSpeed:@64} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameLongitudeDegrees:@31.41592653589793, + SDLRPCParameterNameLatitudeDegrees:@45, + SDLRPCParameterNameUTCYear:@2015, + SDLRPCParameterNameUTCMonth:@1, + SDLRPCParameterNameUTCDay:@26, + SDLRPCParameterNameUTCHours:@23, + SDLRPCParameterNameUTCMinutes:@59, + SDLRPCParameterNameUTCSeconds:@59, + SDLRPCParameterNameCompassDirection:SDLCompassDirectionSoutheast, + SDLRPCParameterNamePDOP:@3.4, + SDLRPCParameterNameHDOP:@9.9, + SDLRPCParameterNameVDOP:@0, + SDLRPCParameterNameActual:@NO, + SDLRPCParameterNameSatellites:@12, + SDLRPCParameterNameDimension:SDLDimension3D, + SDLRPCParameterNameAltitude:@3000, + SDLRPCParameterNameHeading:@96, + SDLRPCParameterNameSpeed:@64} mutableCopy]; SDLGPSData* testStruct = [[SDLGPSData alloc] initWithDictionary:dict]; expect(testStruct.longitudeDegrees).to(equal(@31.41592653589793)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m index 72cc3df64..c47c4ce24 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m @@ -7,7 +7,7 @@ #import <Nimble/Nimble.h> #import "SDLHMICapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLHMICapabilitiesSpec) @@ -42,9 +42,9 @@ describe(@"SDLHMICapabilities struct", ^{ context(@"When initialized with a dictionary", ^{ beforeEach(^{ NSDictionary<NSString *, NSNumber *> *structInitDict = @{ - SDLNameNavigation: someNavigationState, - SDLNamePhoneCall: somePhoneCallState, - SDLNameVideoStreaming: someVideoStreamState + SDLRPCParameterNameNavigation: someNavigationState, + SDLRPCParameterNamePhoneCall: somePhoneCallState, + SDLRPCParameterNameVideoStreaming: someVideoStreamState }; testStruct = [[SDLHMICapabilities alloc] initWithDictionary:[structInitDict mutableCopy]]; }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m index aed9830d4..9b677e6ee 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m @@ -10,7 +10,7 @@ #import "SDLHMIPermissions.h" #import "SDLHMILevel.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLHMIPermissionsSpec) @@ -26,8 +26,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameAllowed:[@[SDLHMILevelBackground, SDLHMILevelFull] copy], - SDLNameUserDisallowed:[@[SDLHMILevelNone, SDLHMILevelLimited] copy]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameAllowed:[@[SDLHMILevelBackground, SDLHMILevelFull] copy], + SDLRPCParameterNameUserDisallowed:[@[SDLHMILevelNone, SDLHMILevelLimited] copy]} mutableCopy]; SDLHMIPermissions* testStruct = [[SDLHMIPermissions alloc] initWithDictionary:dict]; expect(testStruct.allowed).to(equal([@[SDLHMILevelBackground, SDLHMILevelFull] copy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m index f9b60810d..7bc085453 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLHMISettingsControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLHMISettingsControlCapabilitiesSpec) @@ -48,10 +48,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameModuleName:@"temperatureUnit", - SDLNameTemperatureUnitAvailable:@(YES), - SDLNameDistanceUnitAvailable:@(YES), - SDLNameDisplayModeUnitAvailable:@(NO) + NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"temperatureUnit", + SDLRPCParameterNameTemperatureUnitAvailable:@(YES), + SDLRPCParameterNameDistanceUnitAvailable:@(YES), + SDLRPCParameterNameDisplayModeUnitAvailable:@(NO) } mutableCopy]; SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlDataSpec.m index f2a1cd399..59f730476 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlDataSpec.m @@ -7,7 +7,7 @@ #import <Nimble/Nimble.h> #import "SDLHMISettingsControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLHMISettingsControlDataSpec) @@ -34,9 +34,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameDisplayMode:SDLDisplayModeAuto, - SDLNameTemperatureUnit:SDLTemperatureUnitCelsius, - SDLNameDistanceUnit:SDLDistanceUnitKilometers} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameDisplayMode:SDLDisplayModeAuto, + SDLRPCParameterNameTemperatureUnit:SDLTemperatureUnitCelsius, + SDLRPCParameterNameDistanceUnit:SDLDistanceUnitKilometers} mutableCopy]; SDLHMISettingsControlData* testStruct = [[SDLHMISettingsControlData alloc] initWithDictionary:dict]; expect(testStruct.displayMode).to(equal(SDLDisplayModeAuto)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m index 6235ea62f..b5ea6b725 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m @@ -11,7 +11,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLHapticRect.h" #import "SDLRectangle.h" @@ -41,12 +41,12 @@ describe(@"Getter/Setter Tests", ^{ }); it(@"Should get correctly when initialized with a dict", ^{ - NSMutableDictionary *dict = [@{SDLNameId:@2, - SDLNameRect: @{ - SDLNameX:@20, - SDLNameY:@200, - SDLNameWidth:@2000, - SDLNameHeight:@3000 + NSMutableDictionary *dict = [@{SDLRPCParameterNameId:@2, + SDLRPCParameterNameRect: @{ + SDLRPCParameterNameX:@20, + SDLRPCParameterNameY:@200, + SDLRPCParameterNameWidth:@2000, + SDLRPCParameterNameHeight:@3000 } } mutableCopy]; SDLHapticRect *testStruct = [[SDLHapticRect alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m index fe7a21198..201ce6bce 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m @@ -10,7 +10,7 @@ #import "SDLAmbientLightStatus.h" #import "SDLHeadLampStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLHeadLampStatusSpec) @@ -29,9 +29,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameLowBeamsOn:@YES, - SDLNameHighBeamsOn:@NO, - SDLNameAmbientLightSensorStatus:SDLAmbientLightStatusTwilight3} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameLowBeamsOn:@YES, + SDLRPCParameterNameHighBeamsOn:@NO, + SDLRPCParameterNameAmbientLightSensorStatus:SDLAmbientLightStatusTwilight3} mutableCopy]; SDLHeadLampStatus* testStruct = [[SDLHeadLampStatus alloc] initWithDictionary:dict]; expect(testStruct.lowBeamsOn).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m index b40371a4d..3850163be 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m @@ -12,7 +12,7 @@ #import "SDLImageField.h" #import "SDLImageFieldName.h" #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLImageFieldSpec) @@ -33,9 +33,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameName:SDLImageFieldNameTurnIcon, - SDLNameImageTypeSupported:[@[SDLFileTypePNG, SDLFileTypeJPEG] copy], - SDLNameImageResolution:resolution} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameName:SDLImageFieldNameTurnIcon, + SDLRPCParameterNameImageTypeSupported:[@[SDLFileTypePNG, SDLFileTypeJPEG] copy], + SDLRPCParameterNameImageResolution:resolution} mutableCopy]; SDLImageField* testStruct = [[SDLImageField alloc] initWithDictionary:dict]; expect(testStruct.name).to(equal(SDLImageFieldNameTurnIcon)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m index c56008516..8bacdab56 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m @@ -2,7 +2,7 @@ #import <Nimble/Nimble.h> #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLImageResolutionSpec) @@ -25,8 +25,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSDictionary *dict = @{SDLNameResolutionHeight:@69, - SDLNameResolutionWidth:@869, + NSDictionary *dict = @{SDLRPCParameterNameResolutionHeight:@69, + SDLRPCParameterNameResolutionWidth:@869, }; SDLImageResolution *testStruct = [[SDLImageResolution alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m index a88619d1b..62335c659 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m @@ -10,7 +10,7 @@ #import "SDLImage.h" #import "SDLImageType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLImageSpec) @@ -47,9 +47,9 @@ describe(@"Getter/Setter Tests", ^{ NSString *value = @"value"; SDLImageType imageType = SDLImageTypeStatic; - NSDictionary* dict = [@{SDLNameValue:value, - SDLNameImageType:imageType, - SDLNameImageTemplate:@YES + NSDictionary* dict = [@{SDLRPCParameterNameValue:value, + SDLRPCParameterNameImageType:imageType, + SDLRPCParameterNameImageTemplate:@YES } mutableCopy]; testSDLImage = [[SDLImage alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m index 4a8dc21bb..a615413fa 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m @@ -12,7 +12,7 @@ #import "SDLKeypressMode.h" #import "SDLKeyboardProperties.h" #import "SDLLanguage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLKeyboardPropertiesSpec) @@ -35,11 +35,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameLanguage:SDLLanguageDaDk, - SDLNameKeyboardLayout:SDLKeyboardLayoutQWERTZ, - SDLNameKeypressMode:SDLKeypressModeResendCurrentEntry, - SDLNameLimitedCharacterList:[@[@"s", @"r", @"f", @"q"] mutableCopy], - SDLNameAutoCompleteText:@"Auto Carrot"} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameLanguage:SDLLanguageDaDk, + SDLRPCParameterNameKeyboardLayout:SDLKeyboardLayoutQWERTZ, + SDLRPCParameterNameKeypressMode:SDLKeypressModeResendCurrentEntry, + SDLRPCParameterNameLimitedCharacterList:[@[@"s", @"r", @"f", @"q"] mutableCopy], + SDLRPCParameterNameAutoCompleteText:@"Auto Carrot"} mutableCopy]; SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] initWithDictionary:dict]; expect(testStruct.language).to(equal(SDLLanguageDaDk)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightCapabilitiesSpec.m index c3dc54ffa..a5aa62996 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightCapabilitiesSpec.m @@ -7,7 +7,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLLightName.h" #import "SDLLightCapabilities.h" @@ -37,9 +37,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameName:SDLLightNameFogLights, - SDLNameDensityAvailable:@YES, - SDLNameRGBColorSpaceAvailable:@NO + NSMutableDictionary* dict = [@{SDLRPCParameterNameName:SDLLightNameFogLights, + SDLRPCParameterNameDensityAvailable:@YES, + SDLRPCParameterNameRGBColorSpaceAvailable:@NO } mutableCopy]; SDLLightCapabilities* testStruct = [[SDLLightCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m index 1bcfad24c..837a6cacd 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLLightControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLLightCapabilities.h" QuickSpecBegin( SDLLightControlCapabilitiesSpec) @@ -37,8 +37,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameModuleName:@"moduleName", - SDLNameSupportedLights:[@[somelightCapabilities] copy] + NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"moduleName", + SDLRPCParameterNameSupportedLights:[@[somelightCapabilities] copy] } mutableCopy]; SDLLightControlCapabilities* testStruct = [[SDLLightControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlDataSpec.m index 40f342f05..a882bdf2f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlDataSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLLightControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLLightState.h" QuickSpecBegin(SDLLightControlDataSpec) @@ -31,7 +31,7 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameLightState:[@[someLightState] copy]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameLightState:[@[someLightState] copy]} mutableCopy]; SDLLightControlData* testStruct = [[SDLLightControlData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightStateSpec.m index 3975cb3ed..dc478bb06 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightStateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightStateSpec.m @@ -11,7 +11,7 @@ #import "SDLLightStatus.h" #import "SDLRGBColor.h" #import "SDLLightName.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLLightStateSpec) @@ -63,10 +63,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameId:SDLLightNameFogLights, - SDLNameStatus:SDLLightStatusOn, - SDLNameDensity:@(0.5), - SDLNameColor:someRGBColor} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameId:SDLLightNameFogLights, + SDLRPCParameterNameStatus:SDLLightStatusOn, + SDLRPCParameterNameDensity:@(0.5), + SDLRPCParameterNameColor:someRGBColor} mutableCopy]; SDLLightState* testStruct = [[SDLLightState alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m index 663eae3fe..011c8f8e4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m @@ -7,7 +7,7 @@ #import <Nimble/Nimble.h> #import "SDLLocationCoordinate.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLLocationCoordinateSpec) @@ -51,8 +51,8 @@ describe(@"Getter/Setter Tests", ^ { someLongitude = @123.4567; someLatitude = @65.4321; NSDictionary *initDict = @{ - SDLNameLongitudeDegrees: someLongitude, - SDLNameLatitudeDegrees: someLatitude, + SDLRPCParameterNameLongitudeDegrees: someLongitude, + SDLRPCParameterNameLatitudeDegrees: someLatitude, }; testStruct = [[SDLLocationCoordinate alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; @@ -69,7 +69,18 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.latitudeDegrees).to(beIdenticalTo(someLatitude)); }); }); - + + context(@"when init with initWithLatitudeDegrees:longitudeDegrees", ^{ + it(@"should get and set correctly", ^{ + float testLatitude = 34.5; + float testLongitude = 120.345; + SDLLocationCoordinate *testStruct = [[SDLLocationCoordinate alloc] initWithLatitudeDegrees:testLatitude longitudeDegrees:testLongitude]; + + expect(testStruct.latitudeDegrees).to(equal(testLatitude)); + expect(testStruct.longitudeDegrees).to(equal(testLongitude)); + }); + }); + context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m index de18bb501..5bbdd7f00 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m @@ -10,7 +10,7 @@ #import "SDLImage.h" #import "SDLLocationCoordinate.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLOasisAddress.h" QuickSpecBegin(SDLLocationDetailsSpec) @@ -87,6 +87,51 @@ describe(@"Getter/Setter Tests", ^ { }); }); + + context(@"when initialized with a convenience init", ^{ + __block SDLLocationCoordinate *testCoordinate = nil; + __block NSString *testLocationName = nil; + __block NSArray<NSString *> *testAddressLines = nil; + __block NSString *testLocationDescription = nil; + __block NSString *testPhoneNumber = nil; + __block SDLImage *testLocationImage = nil; + __block SDLOasisAddress *testSearchAddress = nil; + + beforeEach(^{ + testCoordinate = [[SDLLocationCoordinate alloc] init]; + testLocationName = @"testLocationName"; + testAddressLines = @[@"testAddressLines1", @"testAddressLines2"]; + testLocationDescription = @"testLocationDescription"; + testPhoneNumber = @"testPhoneNumber"; + testLocationImage = [[SDLImage alloc] initWithStaticIconName:SDLStaticIconNameKey]; + testSearchAddress = [[SDLOasisAddress alloc] init]; + }); + + it(@"should init correctly with initWithCoordinate:", ^{ + testStruct = [[SDLLocationDetails alloc] initWithCoordinate:testCoordinate]; + + expect(testStruct.coordinate).to(equal(testCoordinate)); + expect(testStruct.locationName).to(beNil()); + expect(testStruct.addressLines).to(beNil()); + expect(testStruct.locationDescription).to(beNil()); + expect(testStruct.phoneNumber).to(beNil()); + expect(testStruct.locationImage).to(beNil()); + expect(testStruct.searchAddress).to(beNil()); + }); + + it(@"should init correctly with all parameters", ^{ + testStruct = [[SDLLocationDetails alloc] initWithCoordinate:testCoordinate locationName:testLocationName addressLines:testAddressLines locationDescription:testLocationDescription phoneNumber:testPhoneNumber locationImage:testLocationImage searchAddress:testSearchAddress]; + + expect(testStruct.coordinate).to(equal(testCoordinate)); + expect(testStruct.locationName).to(equal(testLocationName)); + expect(testStruct.addressLines).to(equal(testAddressLines)); + expect(testStruct.locationDescription).to(equal(testLocationDescription)); + expect(testStruct.phoneNumber).to(equal(testPhoneNumber)); + expect(testStruct.locationImage).to(equal(testLocationImage)); + expect(testStruct.searchAddress).to(equal(testSearchAddress)); + }); + + }); describe(@"when initialized with a dictionary", ^{ context(@"when parameters are set correctly", ^{ @@ -99,13 +144,13 @@ describe(@"Getter/Setter Tests", ^ { someImage = [[SDLImage alloc] init]; someAddress = [[SDLOasisAddress alloc] initWithSubThoroughfare:@"test" thoroughfare:@"1" locality:@"local" administrativeArea:@"admin" postalCode:@"48067" countryCode:@"12345"]; NSDictionary *initDict = @{ - SDLNameLocationCoordinate: someCoordinate, - SDLNameLocationName: someLocation, - SDLNameLocationDescription: someLocationDescription, - SDLNameAddressLines: someAddressLines, - SDLNamePhoneNumber: somePhoneNumber, - SDLNameLocationImage: someImage, - SDLNameSearchAddress: someAddress + SDLRPCParameterNameLocationCoordinate: someCoordinate, + SDLRPCParameterNameLocationName: someLocation, + SDLRPCParameterNameLocationDescription: someLocationDescription, + SDLRPCParameterNameAddressLines: someAddressLines, + SDLRPCParameterNamePhoneNumber: somePhoneNumber, + SDLRPCParameterNameLocationImage: someImage, + SDLRPCParameterNameSearchAddress: someAddress }; testStruct = [[SDLLocationDetails alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; @@ -151,8 +196,8 @@ describe(@"Getter/Setter Tests", ^ { context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - SDLNameRequest: @{ - SDLNameParameters: @{} + SDLRPCParameterNameRequest: @{ + SDLRPCParameterNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageCushionFirmnessSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageCushionFirmnessSpec.m index 4fc8f0b43..1bd9b0a83 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageCushionFirmnessSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageCushionFirmnessSpec.m @@ -7,7 +7,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMassageCushionFirmness.h" QuickSpecBegin(SDLMassageCushionFirmnessSpec) @@ -31,8 +31,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameCushion:SDLMassageCushionSeatBolsters, - SDLNameFirmness:@12 + NSMutableDictionary* dict = [@{SDLRPCParameterNameCushion:SDLMassageCushionSeatBolsters, + SDLRPCParameterNameFirmness:@12 } mutableCopy]; SDLMassageCushionFirmness* testStruct = [[SDLMassageCushionFirmness alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageModeDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageModeDataSpec.m index 6b52a36b2..486049ffe 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageModeDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMassageModeDataSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMassageModeData.h" QuickSpecBegin(SDLMassageModeDataSpec) @@ -32,8 +32,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameMassageMode:SDLMassageModeLow, - SDLNameMassageZone:SDLMassageZoneLumbar + NSMutableDictionary* dict = [@{SDLRPCParameterNameMassageMode:SDLMassageModeLow, + SDLRPCParameterNameMassageZone:SDLMassageZoneLumbar } mutableCopy]; SDLMassageModeData* testStruct = [[SDLMassageModeData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceDataSpec.m new file mode 100644 index 000000000..821b7a098 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceDataSpec.m @@ -0,0 +1,136 @@ +// +// SDLMediaServiceDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLMediaServiceData.h" +#import "SDLMediaType.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLMediaServiceDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLMediaType testMediaType = nil; + __block NSString *testMediaTitle = nil; + __block NSString *testMediaArtist = nil; + __block NSString *testMediaAlbum = nil; + __block NSString *testPlaylistName = nil; + __block BOOL testIsExplicit = nil; + __block int testTrackPlaybackProgress = 45; + __block int testTrackPlaybackDuration = 3; + __block int testQueuePlaybackProgress = 21; + __block int testQueuePlaybackDuration = 5; + __block int testQueueCurrentTrackNumber = 3; + __block int testQueueTotalTrackCount = 56; + + beforeEach(^{ + testMediaType = SDLMediaTypePodcast; + testMediaTitle = @"testMediaTitle"; + testMediaArtist = @"testMediaArtist"; + testMediaAlbum = @"testMediaAlbum"; + testPlaylistName = @"testPlaylistName"; + testIsExplicit = true; + }); + + it(@"Should set and get correctly", ^{ + SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] init]; + testStruct.mediaType = testMediaType; + testStruct.mediaTitle = testMediaTitle; + testStruct.mediaArtist = testMediaArtist; + testStruct.mediaAlbum = testMediaAlbum; + testStruct.playlistName = testPlaylistName; + testStruct.isExplicit = @(testIsExplicit); + testStruct.trackPlaybackProgress = @(testTrackPlaybackProgress); + testStruct.trackPlaybackDuration = @(testTrackPlaybackDuration); + testStruct.queuePlaybackProgress = @(testQueuePlaybackProgress); + testStruct.queuePlaybackDuration = @(testQueuePlaybackDuration); + testStruct.queueCurrentTrackNumber = @(testQueueCurrentTrackNumber); + testStruct.queueTotalTrackCount = @(testQueueTotalTrackCount); + + expect(testStruct.mediaType).to(equal(testMediaType)); + expect(testStruct.mediaTitle).to(equal(testMediaTitle)); + expect(testStruct.mediaArtist).to(equal(testMediaArtist)); + expect(testStruct.mediaAlbum).to(equal(testMediaAlbum)); + expect(testStruct.playlistName).to(equal(testPlaylistName)); + expect(testStruct.isExplicit).to(equal(testIsExplicit)); + expect(testStruct.trackPlaybackProgress).to(equal(testTrackPlaybackProgress)); + expect(testStruct.trackPlaybackDuration).to(equal(testTrackPlaybackDuration)); + expect(testStruct.queuePlaybackProgress).to(equal(testQueuePlaybackProgress)); + expect(testStruct.queuePlaybackDuration).to(equal(testQueuePlaybackDuration)); + expect(testStruct.queueCurrentTrackNumber).to(equal(testQueueCurrentTrackNumber)); + expect(testStruct.queueTotalTrackCount).to(equal(testQueueTotalTrackCount)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameMediaType:testMediaType, + SDLRPCParameterNameMediaTitle:testMediaTitle, + SDLRPCParameterNameMediaArtist:testMediaArtist, + SDLRPCParameterNameMediaAlbum:testMediaAlbum, + SDLRPCParameterNamePlaylistName:testPlaylistName, + SDLRPCParameterNameIsExplicit:@(testIsExplicit), + SDLRPCParameterNameTrackPlaybackProgress:@(testTrackPlaybackProgress), + SDLRPCParameterNameTrackPlaybackDuration:@(testTrackPlaybackDuration), + SDLRPCParameterNameQueuePlaybackProgress:@(testQueuePlaybackProgress), + SDLRPCParameterNameQueuePlaybackDuration:@(testQueuePlaybackDuration), + SDLRPCParameterNameQueueCurrentTrackNumber:@(testQueueCurrentTrackNumber), + SDLRPCParameterNameQueueTotalTrackCount:@(testQueueTotalTrackCount) + }; + SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] initWithDictionary:dict]; + + expect(testStruct.mediaType).to(equal(testMediaType)); + expect(testStruct.mediaTitle).to(equal(testMediaTitle)); + expect(testStruct.mediaArtist).to(equal(testMediaArtist)); + expect(testStruct.mediaAlbum).to(equal(testMediaAlbum)); + expect(testStruct.playlistName).to(equal(testPlaylistName)); + expect(testStruct.isExplicit).to(equal(testIsExplicit)); + expect(testStruct.trackPlaybackProgress).to(equal(testTrackPlaybackProgress)); + expect(testStruct.trackPlaybackDuration).to(equal(testTrackPlaybackDuration)); + expect(testStruct.queuePlaybackProgress).to(equal(testQueuePlaybackProgress)); + expect(testStruct.queuePlaybackDuration).to(equal(testQueuePlaybackDuration)); + expect(testStruct.queueCurrentTrackNumber).to(equal(testQueueCurrentTrackNumber)); + expect(testStruct.queueTotalTrackCount).to(equal(testQueueTotalTrackCount)); + }); + + it(@"Should get correctly when initialized with initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount:", ^{ + SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] initWithMediaType:testMediaType mediaTitle:testMediaTitle mediaArtist:testMediaArtist mediaAlbum:testMediaAlbum playlistName:testPlaylistName isExplicit:testIsExplicit trackPlaybackProgress:testTrackPlaybackProgress trackPlaybackDuration:testTrackPlaybackDuration queuePlaybackProgress:testQueuePlaybackProgress queuePlaybackDuration:testQueuePlaybackDuration queueCurrentTrackNumber:testQueueCurrentTrackNumber queueTotalTrackCount:testQueueTotalTrackCount]; + + expect(testStruct.mediaType).to(equal(testMediaType)); + expect(testStruct.mediaTitle).to(equal(testMediaTitle)); + expect(testStruct.mediaArtist).to(equal(testMediaArtist)); + expect(testStruct.mediaAlbum).to(equal(testMediaAlbum)); + expect(testStruct.playlistName).to(equal(testPlaylistName)); + expect(testStruct.isExplicit).to(equal(testIsExplicit)); + expect(testStruct.trackPlaybackProgress).to(equal(testTrackPlaybackProgress)); + expect(testStruct.trackPlaybackDuration).to(equal(testTrackPlaybackDuration)); + expect(testStruct.queuePlaybackProgress).to(equal(testQueuePlaybackProgress)); + expect(testStruct.queuePlaybackDuration).to(equal(testQueuePlaybackDuration)); + expect(testStruct.queueCurrentTrackNumber).to(equal(testQueueCurrentTrackNumber)); + expect(testStruct.queueTotalTrackCount).to(equal(testQueueTotalTrackCount)); + }); + + it(@"Should return nil if not set", ^{ + SDLMediaServiceData *testStruct = [[SDLMediaServiceData alloc] init]; + + expect(testStruct.mediaType).to(beNil()); + expect(testStruct.mediaTitle).to(beNil()); + expect(testStruct.mediaArtist).to(beNil()); + expect(testStruct.mediaAlbum).to(beNil()); + expect(testStruct.playlistName).to(beNil()); + expect(testStruct.isExplicit).to(beNil()); + expect(testStruct.trackPlaybackProgress).to(beNil()); + expect(testStruct.trackPlaybackDuration).to(beNil()); + expect(testStruct.queuePlaybackProgress).to(beNil()); + expect(testStruct.queuePlaybackDuration).to(beNil()); + expect(testStruct.queueCurrentTrackNumber).to(beNil()); + expect(testStruct.queueTotalTrackCount).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceManifestSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceManifestSpec.m new file mode 100644 index 000000000..bdd8dab4b --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMediaServiceManifestSpec.m @@ -0,0 +1,33 @@ +// +// SDLMediaServiceManifestSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/11/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLMediaServiceManifest.h" + +QuickSpecBegin(SDLMediaServiceManifestSpec) + +describe(@"Getter/Setter Tests", ^{ + it(@"Should set and get correctly", ^{ + SDLMediaServiceManifest *testStruct = [[SDLMediaServiceManifest alloc] init]; + + // no parameters to test + expect(testStruct).toNot(beNil()); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{}; + SDLMediaServiceManifest *testStruct = [[SDLMediaServiceManifest alloc] initWithDictionary:dict]; + + // no parameters to test + expect(testStruct).toNot(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m index e2f5612d7..3b70bbfc8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLMenuParams.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLMenuParamsSpec) @@ -27,9 +27,9 @@ describe(@"Initialization tests", ^{ }); it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameParentId:@(testParentId), - SDLNamePosition:@(testPosition), - SDLNameMenuName:testMenuName} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameParentId:@(testParentId), + SDLRPCParameterNamePosition:@(testPosition), + SDLRPCParameterNameMenuName:testMenuName} mutableCopy]; SDLMenuParams* testStruct = [[SDLMenuParams alloc] initWithDictionary:dict]; expect(testStruct.parentID).to(equal(@(testParentId))); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m index db7d2d855..471508861 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m @@ -12,7 +12,7 @@ #import <Nimble/Nimble.h> #import "SDLMetadataTags.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLMetadataType.h" QuickSpecBegin(SDLMetadataTagsSpec) diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m index 8e57eef6b..5a67924ad 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m @@ -16,7 +16,7 @@ #import "SDLAudioControlData.h" #import "SDLLightControlData.h" #import "SDLHMISettingsControlData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLModuleDataSpec) @@ -43,13 +43,13 @@ describe(@"Initialization tests", ^{ it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameModuleType:SDLModuleTypeRadio, - SDLNameRadioControlData:someRadioData, - SDLNameClimateControlData:someClimateData, - SDLNameSeatControlData:someSeatData, - SDLNameAudioControlData:someAudioData, - SDLNameLightControlData:someLightData, - SDLNameHmiSettingsControlData:someHMISettingsData} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleType:SDLModuleTypeRadio, + SDLRPCParameterNameRadioControlData:someRadioData, + SDLRPCParameterNameClimateControlData:someClimateData, + SDLRPCParameterNameSeatControlData:someSeatData, + SDLRPCParameterNameAudioControlData:someAudioData, + SDLRPCParameterNameLightControlData:someLightData, + SDLRPCParameterNameHmiSettingsControlData:someHMISettingsData} mutableCopy]; SDLModuleData* testStruct = [[SDLModuleData alloc] initWithDictionary:dict]; expect(testStruct.moduleType).to(equal(SDLModuleTypeRadio)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m index 6d0a462fb..0eab03e46 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLMyKey.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVehicleDataStatus.h" @@ -25,7 +25,7 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameE911Override:SDLVehicleDataStatusOn} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameE911Override:SDLVehicleDataStatusOn} mutableCopy]; SDLMyKey* testStruct = [[SDLMyKey alloc] initWithDictionary:dict]; expect(testStruct.e911Override).to(equal(SDLVehicleDataStatusOn)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m index 99c85cdc8..e6db95484 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m @@ -4,7 +4,7 @@ #import <Nimble/Nimble.h> #import "SDLNavigationCapability.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLNavigationCapabilitySpec) @@ -23,8 +23,8 @@ describe(@"Getter/Setter Tests", ^ { describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary *dict = @{SDLNameGetWayPointsEnabled: @(YES), - SDLNameSendLocationEnabled: @(YES)}; + NSDictionary *dict = @{SDLRPCParameterNameGetWayPointsEnabled: @(YES), + SDLRPCParameterNameSendLocationEnabled: @(YES)}; SDLNavigationCapability* testStruct = [[SDLNavigationCapability alloc] initWithDictionary:dict]; expect(testStruct.getWayPointsEnabled).to(equal(YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationInstructionSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationInstructionSpec.m new file mode 100644 index 000000000..f7edb055b --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationInstructionSpec.m @@ -0,0 +1,124 @@ +// +// SDLNavigationInstructionSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/22/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDateTime.h" +#import "SDLImage.h" +#import "SDLLocationDetails.h" +#import "SDLNavigationInstruction.h" +#import "SDLRPCParameterNames.h" + +QuickSpecBegin(SDLNavigationInstructionSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLLocationDetails *testLocationDetails = nil; + __block SDLNavigationAction testAction = nil; + __block SDLDateTime *testETA = nil; + __block int testBearing = 34; + __block SDLNavigationJunction testJunctionType = nil; + __block SDLDirection testDrivingSide = nil; + __block NSString *testDetails = nil; + __block SDLImage *testImage = nil; + + beforeEach(^{ + testLocationDetails = [[SDLLocationDetails alloc] init]; + testAction = SDLNavigationActionExit; + testETA = [[SDLDateTime alloc] initWithHour:3 minute:2]; + testJunctionType = SDLNavigationJunctionJughandle; + testDrivingSide = SDLDirectionLeft; + testDetails = @"testDetails"; + testImage = [[SDLImage alloc] init]; + }); + + it(@"Should set and get correctly", ^{ + SDLNavigationInstruction *testStruct = [[SDLNavigationInstruction alloc] init]; + testStruct.locationDetails = testLocationDetails; + testStruct.action = testAction; + testStruct.eta = testETA; + testStruct.bearing = @(testBearing); + testStruct.junctionType = testJunctionType; + testStruct.drivingSide = testDrivingSide; + testStruct.details = testDetails; + testStruct.image = testImage; + + expect(testStruct.locationDetails).to(equal(testLocationDetails)); + expect(testStruct.action).to(equal(testAction)); + expect(testStruct.eta).to(equal(testETA)); + expect(testStruct.bearing).to(equal(testBearing)); + expect(testStruct.junctionType).to(equal(testJunctionType)); + expect(testStruct.drivingSide).to(equal(testDrivingSide)); + expect(testStruct.details).to(equal(testDetails)); + expect(testStruct.image).to(equal(testImage)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameLocationDetails:testLocationDetails, + SDLRPCParameterNameAction:testAction, + SDLRPCParameterNameETA:testETA, + SDLRPCParameterNameBearing:@(testBearing), + SDLRPCParameterNameJunctionType:testJunctionType, + SDLRPCParameterNameDrivingSide:testDrivingSide, + SDLRPCParameterNameDetails:testDetails, + SDLRPCParameterNameImage:testImage + }; + SDLNavigationInstruction *testStruct = [[SDLNavigationInstruction alloc] initWithDictionary:dict]; + + expect(testStruct.locationDetails).to(equal(testLocationDetails)); + expect(testStruct.action).to(equal(testAction)); + expect(testStruct.eta).to(equal(testETA)); + expect(testStruct.bearing).to(equal(testBearing)); + expect(testStruct.junctionType).to(equal(testJunctionType)); + expect(testStruct.drivingSide).to(equal(testDrivingSide)); + expect(testStruct.details).to(equal(testDetails)); + expect(testStruct.image).to(equal(testImage)); + }); + + it(@"Should initialize correctly with initWithLocationDetails:action:", ^{ + SDLNavigationInstruction *testStruct = [[SDLNavigationInstruction alloc] initWithLocationDetails:testLocationDetails action:testAction]; + + expect(testStruct.locationDetails).to(equal(testLocationDetails)); + expect(testStruct.action).to(equal(testAction)); + expect(testStruct.eta).to(beNil()); + expect(testStruct.bearing).to(beNil()); + expect(testStruct.junctionType).to(beNil()); + expect(testStruct.drivingSide).to(beNil()); + expect(testStruct.details).to(beNil()); + expect(testStruct.image).to(beNil()); + }); + + it(@"Should initialize correctly with initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:details image:", ^{ + SDLNavigationInstruction *testStruct = [[SDLNavigationInstruction alloc] initWithLocationDetails:testLocationDetails action:testAction eta:testETA bearing:testBearing junctionType:testJunctionType drivingSide:testDrivingSide details:testDetails image:testImage]; + + expect(testStruct.locationDetails).to(equal(testLocationDetails)); + expect(testStruct.action).to(equal(testAction)); + expect(testStruct.eta).to(equal(testETA)); + expect(testStruct.bearing).to(equal(testBearing)); + expect(testStruct.junctionType).to(equal(testJunctionType)); + expect(testStruct.drivingSide).to(equal(testDrivingSide)); + expect(testStruct.details).to(equal(testDetails)); + expect(testStruct.image).to(equal(testImage)); + }); + + it(@"Should return nil if not set", ^{ + SDLNavigationInstruction *testStruct = [[SDLNavigationInstruction alloc] init]; + + expect(testStruct.locationDetails).to(beNil()); + expect(testStruct.action).to(beNil()); + expect(testStruct.eta).to(beNil()); + expect(testStruct.bearing).to(beNil()); + expect(testStruct.junctionType).to(beNil()); + expect(testStruct.drivingSide).to(beNil()); + expect(testStruct.details).to(beNil()); + expect(testStruct.image).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationServiceDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationServiceDataSpec.m new file mode 100644 index 000000000..96ec6dae7 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationServiceDataSpec.m @@ -0,0 +1,132 @@ +// +// SDLNavigationServiceDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDateTime.h" +#import "SDLLocationDetails.h" +#import "SDLRPCParameterNames.h" +#import "SDLNavigationInstruction.h" +#import "SDLNavigationServiceData.h" + + +QuickSpecBegin(SDLNavigationServiceDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLDateTime *testTimestamp = nil; + __block SDLLocationDetails *testOrigin = nil; + __block SDLLocationDetails *testDestination = nil; + __block SDLDateTime *testDestinationETA = nil; + __block NSArray<SDLNavigationInstruction *> *testInstructions = nil; + __block SDLDateTime *testNextInstructionETA = nil; + __block float testNextInstructionDistance = 45.3; + __block float testNextInstructionDistanceScale = 0.3; + __block NSString *testPrompt = nil; + + beforeEach(^{ + testTimestamp = [[SDLDateTime alloc] initWithHour:4 minute:3]; + testOrigin = [[SDLLocationDetails alloc] init]; + testDestination = [[SDLLocationDetails alloc] init]; + testDestinationETA = [[SDLDateTime alloc] initWithHour:6 minute:1 second:1 millisecond:1]; + testInstructions = @[[[SDLNavigationInstruction alloc] init], [[SDLNavigationInstruction alloc] init]]; + testNextInstructionETA = [[SDLDateTime alloc] initWithHour:2 minute:0]; + testPrompt = @"testPrompt"; + }); + + it(@"Should set and get correctly", ^{ + SDLNavigationServiceData *testStruct = [[SDLNavigationServiceData alloc] init]; + testStruct.timestamp = testTimestamp; + testStruct.origin = testOrigin; + testStruct.destination = testDestination; + testStruct.destinationETA = testDestinationETA; + testStruct.instructions = testInstructions; + testStruct.nextInstructionETA = testNextInstructionETA; + testStruct.nextInstructionDistance = @(testNextInstructionDistance); + testStruct.nextInstructionDistanceScale = @(testNextInstructionDistanceScale); + testStruct.prompt = testPrompt; + + expect(testStruct.timestamp).to(equal(testTimestamp)); + expect(testStruct.origin).to(equal(testOrigin)); + expect(testStruct.destination).to(equal(testDestination)); + expect(testStruct.destinationETA).to(equal(testDestinationETA)); + expect(testStruct.instructions).to(equal(testInstructions)); + expect(testStruct.nextInstructionETA).to(equal(testNextInstructionETA)); + expect(testStruct.nextInstructionDistance).to(equal(testNextInstructionDistance)); + expect(testStruct.nextInstructionDistanceScale).to(equal(testNextInstructionDistanceScale)); + expect(testStruct.prompt).to(equal(testPrompt)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameTimeStamp:testTimestamp, + SDLRPCParameterNameOrigin:testOrigin, + SDLRPCParameterNameDestination:testDestination, + SDLRPCParameterNameDestinationETA:testDestinationETA, + SDLRPCParameterNameInstructions:testInstructions, + SDLRPCParameterNameNextInstructionETA:testNextInstructionETA, + SDLRPCParameterNameNextInstructionDistance:@(testNextInstructionDistance), + SDLRPCParameterNameNextInstructionDistanceScale:@(testNextInstructionDistanceScale), + SDLRPCParameterNamePrompt:testPrompt + }; + SDLNavigationServiceData *testStruct = [[SDLNavigationServiceData alloc] initWithDictionary:dict]; + + expect(testStruct.timestamp).to(equal(testTimestamp)); + expect(testStruct.origin).to(equal(testOrigin)); + expect(testStruct.destination).to(equal(testDestination)); + expect(testStruct.destinationETA).to(equal(testDestinationETA)); + expect(testStruct.instructions).to(equal(testInstructions)); + expect(testStruct.nextInstructionETA).to(equal(testNextInstructionETA)); + expect(testStruct.nextInstructionDistance).to(equal(testNextInstructionDistance)); + expect(testStruct.nextInstructionDistanceScale).to(equal(testNextInstructionDistanceScale)); + expect(testStruct.prompt).to(equal(testPrompt)); + }); + + it(@"Should initialize correctly with initWithTimestamp:", ^{ + SDLNavigationServiceData *testStruct = [[SDLNavigationServiceData alloc] initWithTimestamp:testTimestamp]; + + expect(testStruct.timestamp).to(equal(testTimestamp)); + expect(testStruct.origin).to(beNil()); + expect(testStruct.destination).to(beNil()); + expect(testStruct.destinationETA).to(beNil()); + expect(testStruct.instructions).to(beNil()); + expect(testStruct.nextInstructionETA).to(beNil()); + expect(testStruct.nextInstructionDistance).to(beNil()); + expect(testStruct.nextInstructionDistanceScale).to(beNil()); + expect(testStruct.prompt).to(beNil()); + }); + + it(@"Should initialize correctly with initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt:", ^{ + SDLNavigationServiceData *testStruct = [[SDLNavigationServiceData alloc] initWithTimestamp:testTimestamp origin:testOrigin destination:testDestination destinationETA:testDestinationETA instructions:testInstructions nextInstructionETA:testNextInstructionETA nextInstructionDistance:testNextInstructionDistance nextInstructionDistanceScale:testNextInstructionDistanceScale prompt:testPrompt]; + + expect(testStruct.timestamp).to(equal(testTimestamp)); + expect(testStruct.origin).to(equal(testOrigin)); + expect(testStruct.destination).to(equal(testDestination)); + expect(testStruct.destinationETA).to(equal(testDestinationETA)); + expect(testStruct.instructions).to(equal(testInstructions)); + expect(testStruct.nextInstructionETA).to(equal(testNextInstructionETA)); + expect(testStruct.nextInstructionDistance).to(equal(testNextInstructionDistance)); + expect(testStruct.nextInstructionDistanceScale).to(equal(testNextInstructionDistanceScale)); + expect(testStruct.prompt).to(equal(testPrompt)); + }); + + it(@"Should return nil if not set", ^{ + SDLNavigationServiceData *testStruct = [[SDLNavigationServiceData alloc] init]; + + expect(testStruct.timestamp).to(beNil()); + expect(testStruct.origin).to(beNil()); + expect(testStruct.destination).to(beNil()); + expect(testStruct.destinationETA).to(beNil()); + expect(testStruct.instructions).to(beNil()); + expect(testStruct.nextInstructionETA).to(beNil()); + expect(testStruct.nextInstructionDistance).to(beNil()); + expect(testStruct.nextInstructionDistanceScale).to(beNil()); + expect(testStruct.prompt).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationServiceManifestSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationServiceManifestSpec.m new file mode 100644 index 000000000..30786c531 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationServiceManifestSpec.m @@ -0,0 +1,51 @@ +// +// SDLNavigationServiceManifestSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/25/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLRPCParameterNames.h" +#import "SDLNavigationServiceManifest.h" + +QuickSpecBegin(SDLNavigationServiceManifestSpec) + +describe(@"Getter/Setter Tests", ^{ + __block BOOL testAcceptsWayPoints = nil; + + beforeEach(^{ + testAcceptsWayPoints = false; + }); + + it(@"Should set and get correctly", ^{ + SDLNavigationServiceManifest *testStruct = [[SDLNavigationServiceManifest alloc] init]; + testStruct.acceptsWayPoints = @(testAcceptsWayPoints); + + expect(testStruct.acceptsWayPoints).to(equal(testAcceptsWayPoints)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameAcceptsWayPoints:@(testAcceptsWayPoints)}; + SDLNavigationServiceManifest *testStruct = [[SDLNavigationServiceManifest alloc] initWithDictionary:dict]; + + expect(testStruct.acceptsWayPoints).to(equal(testAcceptsWayPoints)); + }); + + it(@"Should initialize correctly with a convenience init", ^{ + SDLNavigationServiceManifest *testStruct = [[SDLNavigationServiceManifest alloc] initWithAcceptsWayPoints:testAcceptsWayPoints]; + + expect(testStruct.acceptsWayPoints).to(equal(testAcceptsWayPoints)); + }); + + it(@"Should return nil if not set", ^{ + SDLNavigationServiceManifest *testStruct = [[SDLNavigationServiceManifest alloc] init]; + + expect(testStruct.acceptsWayPoints).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m index 5a4bf7cef..dbada5f4e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m @@ -7,7 +7,7 @@ #import <Nimble/Nimble.h> #import "SDLOasisAddress.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLOasisAddressSpec) @@ -38,15 +38,15 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameCountryName:@"United States", - SDLNameCountryCode:@"US", - SDLNamePostalCode:@"123456", - SDLNameAdministrativeArea:@"CA", - SDLNameSubAdministrativeArea:@"Santa Clara", - SDLNameLocality:@"Palo Alto", - SDLNameSubLocality:@"18", - SDLNameThoroughfare:@"Candy Lane", - SDLNameSubThoroughfare:@"123"} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameCountryName:@"United States", + SDLRPCParameterNameCountryCode:@"US", + SDLRPCParameterNamePostalCode:@"123456", + SDLRPCParameterNameAdministrativeArea:@"CA", + SDLRPCParameterNameSubAdministrativeArea:@"Santa Clara", + SDLRPCParameterNameLocality:@"Palo Alto", + SDLRPCParameterNameSubLocality:@"18", + SDLRPCParameterNameThoroughfare:@"Candy Lane", + SDLRPCParameterNameSubThoroughfare:@"123"} mutableCopy]; SDLOasisAddress* testStruct = [[SDLOasisAddress alloc] initWithDictionary:dict]; expect(testStruct.countryName).to(equal(@"United States")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLParameterPermissionsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLParameterPermissionsSpec.m index 92b6a5ef6..746bbea63 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLParameterPermissionsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLParameterPermissionsSpec.m @@ -10,7 +10,7 @@ #import "SDLParameterPermissions.h" #import "SDLHMILevel.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLParameterPermissionsSpec) @@ -26,8 +26,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameAllowed:[@[SDLHMILevelBackground, SDLHMILevelFull] copy], - SDLNameUserDisallowed:[@[SDLHMILevelNone, SDLHMILevelLimited] copy]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameAllowed:[@[SDLHMILevelBackground, SDLHMILevelFull] copy], + SDLRPCParameterNameUserDisallowed:[@[SDLHMILevelNone, SDLHMILevelLimited] copy]} mutableCopy]; SDLParameterPermissions* testStruct = [[SDLParameterPermissions alloc] initWithDictionary:dict]; expect(testStruct.allowed).to(equal([@[SDLHMILevelBackground, SDLHMILevelFull] copy])); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m index 4ff0ce5e5..8f629a11d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m @@ -11,7 +11,7 @@ #import "SDLHMIPermissions.h" #import "SDLParameterPermissions.h" #import "SDLPermissionItem.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLPermissionItemSpec) @@ -32,9 +32,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameRPCName:@"RPCNameThing", - SDLNameHMIPermissions:hmiPermissions, - SDLNameParameterPermissions:parameterPermissions} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRPCName:@"RPCNameThing", + SDLRPCParameterNameHMIPermissions:hmiPermissions, + SDLRPCParameterNameParameterPermissions:parameterPermissions} mutableCopy]; SDLPermissionItem* testStruct = [[SDLPermissionItem alloc] initWithDictionary:dict]; expect(testStruct.rpcName).to(equal(@"RPCNameThing")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m index af01dae52..a38ddec4b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m @@ -4,7 +4,7 @@ #import <Nimble/Nimble.h> #import "SDLPhoneCapability.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLPhoneCapabilitySpec) @@ -20,7 +20,7 @@ describe(@"Getter/Setter Tests", ^ { describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary *dict = @{SDLNameDialNumberEnabled: @(YES)}; + NSDictionary *dict = @{SDLRPCParameterNameDialNumberEnabled: @(YES)}; SDLPhoneCapability *testStruct = [[SDLPhoneCapability alloc] initWithDictionary:dict]; expect(testStruct.dialNumberEnabled).to(equal(YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPresetBankCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPresetBankCapabilitiesSpec.m index 8bab3c147..b10eace7b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPresetBankCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPresetBankCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLPresetBankCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLPresetBankCapabilitiesSpec) @@ -23,7 +23,7 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameOnScreenPresetsAvailable:@YES} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameOnScreenPresetsAvailable:@YES} mutableCopy]; SDLPresetBankCapabilities* testStruct = [[SDLPresetBankCapabilities alloc] initWithDictionary:dict]; expect(testStruct.onScreenPresetsAvailable).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m index 414aaa22c..082f201e3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLRDSData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLRDSDataSpec) @@ -30,14 +30,14 @@ describe(@"Initialization tests", ^{ it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameProgramService : @"ps", - SDLNameRadioText : @"rt", - SDLNameClockText : @"2017-07-25T19:20:30-5:00", - SDLNameProgramIdentification : @"pi", - SDLNameProgramType : @5, - SDLNameTrafficProgramIdentification : @NO, - SDLNameTrafficAnnouncementIdentification : @YES, - SDLNameRegion : @"reg"} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameProgramService : @"ps", + SDLRPCParameterNameRadioText : @"rt", + SDLRPCParameterNameClockText : @"2017-07-25T19:20:30-5:00", + SDLRPCParameterNameProgramIdentification : @"pi", + SDLRPCParameterNameProgramType : @5, + SDLRPCParameterNameTrafficProgramIdentification : @NO, + SDLRPCParameterNameTrafficAnnouncementIdentification : @YES, + SDLRPCParameterNameRegion : @"reg"} mutableCopy]; SDLRDSData* testStruct = [[SDLRDSData alloc] initWithDictionary:dict]; expect(testStruct.programService).to(equal(@"ps")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRGBColorSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRGBColorSpec.m index 49c423d41..766b72298 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRGBColorSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRGBColorSpec.m @@ -3,7 +3,7 @@ #import "SDLRGBColor.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLRGBColorSpec) @@ -38,9 +38,9 @@ describe(@"RGBColor Tests", ^{ }); it(@"Should get correctly when initialized with a dict", ^{ - NSDictionary *dict = @{SDLNameRed: @0, - SDLNameGreen: @100, - SDLNameBlue: @255}; + NSDictionary *dict = @{SDLRPCParameterNameRed: @0, + SDLRPCParameterNameGreen: @100, + SDLRPCParameterNameBlue: @255}; SDLRGBColor *testStruct = [[SDLRGBColor alloc] initWithDictionary:dict]; expect(testStruct.red).to(equal(@0)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m index d51d7910e..8ac7c7563 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLRadioControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLRadioControlCapabilitiesSpec) @@ -36,19 +36,19 @@ describe(@"Initialization tests", ^{ it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameModuleName : @"someName", - SDLNameRadioEnableAvailable : @YES, - SDLNameRadioBandAvailable : @YES, - SDLNameRadioFrequencyAvailable : @YES, - SDLNameHDChannelAvailable : @NO, - SDLNameRDSDataAvailable : @NO, - SDLNameAvailableHDsAvailable : @NO, - SDLNameStateAvailable : @YES, - SDLNameSignalStrengthAvailable : @YES, - SDLNameSignalChangeThresholdAvailable : @NO, - SDLNameHDRadioEnableAvailable : @YES, - SDLNameSiriusXMRadioAvailable : @NO, - SDLNameSISDataAvailable:@YES + NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName : @"someName", + SDLRPCParameterNameRadioEnableAvailable : @YES, + SDLRPCParameterNameRadioBandAvailable : @YES, + SDLRPCParameterNameRadioFrequencyAvailable : @YES, + SDLRPCParameterNameHDChannelAvailable : @NO, + SDLRPCParameterNameRDSDataAvailable : @NO, + SDLRPCParameterNameAvailableHDsAvailable : @NO, + SDLRPCParameterNameStateAvailable : @YES, + SDLRPCParameterNameSignalStrengthAvailable : @YES, + SDLRPCParameterNameSignalChangeThresholdAvailable : @NO, + SDLRPCParameterNameHDRadioEnableAvailable : @YES, + SDLRPCParameterNameSiriusXMRadioAvailable : @NO, + SDLRPCParameterNameSISDataAvailable:@YES } mutableCopy]; SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m index d974c1b2c..58d9f8f92 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m @@ -13,7 +13,7 @@ #import "SDLRadioState.h" #import "SDLRDSData.h" #import "SDLSISData.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLRadioControlDataSpec) __block SDLRDSData* someRdsData = [[SDLRDSData alloc] init]; @@ -37,17 +37,17 @@ describe(@"Initialization tests", ^{ }); it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameFrequencyInteger : @101, - SDLNameFrequencyFraction : @7, - SDLNameBand : SDLRadioBandAM, - SDLNameRDSData : someRdsData, - SDLNameAvailableHDs : @2, - SDLNameHDChannel : @2, - SDLNameSignalStrength : @54, - SDLNameSignalChangeThreshold : @76, - SDLNameRadioEnable : @YES, - SDLNameState : SDLRadioStateNotFound, - SDLNameHDRadioEnable : @NO + NSMutableDictionary* dict = [@{SDLRPCParameterNameFrequencyInteger : @101, + SDLRPCParameterNameFrequencyFraction : @7, + SDLRPCParameterNameBand : SDLRadioBandAM, + SDLRPCParameterNameRDSData : someRdsData, + SDLRPCParameterNameAvailableHDs : @2, + SDLRPCParameterNameHDChannel : @2, + SDLRPCParameterNameSignalStrength : @54, + SDLRPCParameterNameSignalChangeThreshold : @76, + SDLRPCParameterNameRadioEnable : @YES, + SDLRPCParameterNameState : SDLRadioStateNotFound, + SDLRPCParameterNameHDRadioEnable : @NO } mutableCopy]; SDLRadioControlData* testStruct = [[SDLRadioControlData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m index 87c516bfa..ceb7628e9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m @@ -3,7 +3,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLRectangle.h" QuickSpecBegin(SDLRectangleSpec) @@ -33,10 +33,10 @@ describe(@"Rectangle Tests", ^{ }); it(@"Should get correctly when initialized with a dict", ^{ - NSDictionary *dict = @{SDLNameX:@20, - SDLNameY:@200, - SDLNameWidth:@2000, - SDLNameHeight:@3000}; + NSDictionary *dict = @{SDLRPCParameterNameX:@20, + SDLRPCParameterNameY:@200, + SDLRPCParameterNameWidth:@2000, + SDLRPCParameterNameHeight:@3000}; SDLRectangle *testStruct = [[SDLRectangle alloc] initWithDictionary:dict]; expect(testStruct.x).to(equal(@20)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m index 7067d058d..c8b359d49 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m @@ -16,7 +16,7 @@ #import "SDLRadioControlCapabilities.h" #import "SDLSeatControlCapabilities.h" #import "SDLButtonCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLRemoteControlCapabilitiesSpec) @@ -49,13 +49,13 @@ describe(@"Initialization tests", ^{ it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameClimateControlCapabilities : [@[someClimateControlCapabilities] copy], - SDLNameRadioControlCapabilities :[@[someRadioControlCapabilities] copy], - SDLNameButtonCapabilities :[@[someButtonControlCapabilities] copy], - SDLNameSeatControlCapabilities:[@[someSeatControlCapabilities]copy], - SDLNameAudioControlCapabilities :[@[someAudioControlCapabilities] copy], - SDLNameLightControlCapabilities :[@[someLightControlCapabilities] copy], - SDLNameHmiSettingsControlCapabilities : [@[someHMISettingsControlCapabilities] copy] + NSMutableDictionary* dict = [@{SDLRPCParameterNameClimateControlCapabilities : [@[someClimateControlCapabilities] copy], + SDLRPCParameterNameRadioControlCapabilities :[@[someRadioControlCapabilities] copy], + SDLRPCParameterNameButtonCapabilities :[@[someButtonControlCapabilities] copy], + SDLRPCParameterNameSeatControlCapabilities:[@[someSeatControlCapabilities]copy], + SDLRPCParameterNameAudioControlCapabilities :[@[someAudioControlCapabilities] copy], + SDLRPCParameterNameLightControlCapabilities :[@[someLightControlCapabilities] copy], + SDLRPCParameterNameHmiSettingsControlCapabilities : [@[someHMISettingsControlCapabilities] copy] } mutableCopy]; SDLRemoteControlCapabilities* testStruct = [[SDLRemoteControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSISDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSISDataSpec.m index 3c20090aa..6803917cb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSISDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSISDataSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSISData.h" #import "SDLStationIDNumber.h" #import "SDLGPSData.h" @@ -48,11 +48,11 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameStationShortName:@"short", - SDLNameStationLongName:@"long", - SDLNameStationLocation:someLocation, - SDLNameStationIDNumber:someID, - SDLNameStationMessage:@"message" + NSMutableDictionary* dict = [@{SDLRPCParameterNameStationShortName:@"short", + SDLRPCParameterNameStationLongName:@"long", + SDLRPCParameterNameStationLocation:someLocation, + SDLRPCParameterNameStationIDNumber:someID, + SDLRPCParameterNameStationMessage:@"message" } mutableCopy]; SDLSISData* testStruct = [[SDLSISData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m index 6c574d040..421272ba4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLImageResolution.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLScreenParams.h" #import "SDLTouchEventCapabilities.h" @@ -31,8 +31,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameResolution:resolution, - SDLNameTouchEventAvailable:capabilities} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResolution:resolution, + SDLRPCParameterNameTouchEventAvailable:capabilities} mutableCopy]; SDLScreenParams* testStruct = [[SDLScreenParams alloc] initWithDictionary:dict]; expect(testStruct.resolution).to(equal(resolution)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m index 07f6b8c4a..ed1cb779b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSeatControlCapabilities.h" @@ -100,22 +100,22 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameModuleName:@"moduleName", - SDLNameHeatingEnabledAvailable:(@YES), - SDLNameCoolingEnabledAvailable:@YES, - SDLNameHeatingLevelAvailable:@YES, - SDLNameCoolingLevelAvailable:@NO, - SDLNameHorizontalPositionAvailable:@NO, - SDLNameVerticalPositionAvailable:@NO, - SDLNameFrontVerticalPositionAvailable:@NO, - SDLNameBackVerticalPositionAvailable:@NO, - SDLNameBackTiltAngleAvailable:@YES, - SDLNameHeadSupportHorizontalPositionAvailable:@NO, - SDLNameHeadSupportVerticalPositionAvailable:@YES, - SDLNameMassageEnabledAvailable:@NO, - SDLNameMassageModeAvailable:@YES, - SDLNameMassageCushionFirmnessAvailable:@NO, - SDLNameMemoryAvailable:@NO + NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"moduleName", + SDLRPCParameterNameHeatingEnabledAvailable:(@YES), + SDLRPCParameterNameCoolingEnabledAvailable:@YES, + SDLRPCParameterNameHeatingLevelAvailable:@YES, + SDLRPCParameterNameCoolingLevelAvailable:@NO, + SDLRPCParameterNameHorizontalPositionAvailable:@NO, + SDLRPCParameterNameVerticalPositionAvailable:@NO, + SDLRPCParameterNameFrontVerticalPositionAvailable:@NO, + SDLRPCParameterNameBackVerticalPositionAvailable:@NO, + SDLRPCParameterNameBackTiltAngleAvailable:@YES, + SDLRPCParameterNameHeadSupportHorizontalPositionAvailable:@NO, + SDLRPCParameterNameHeadSupportVerticalPositionAvailable:@YES, + SDLRPCParameterNameMassageEnabledAvailable:@NO, + SDLRPCParameterNameMassageModeAvailable:@YES, + SDLRPCParameterNameMassageCushionFirmnessAvailable:@NO, + SDLRPCParameterNameMemoryAvailable:@NO } mutableCopy]; SDLSeatControlCapabilities *testStruct = [[SDLSeatControlCapabilities alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlDataSpec.m index 02dc0500f..f7b75b357 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlDataSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSeatControlData.h" #import "SDLMassageModeData.h" #import "SDLMassageCushionFirmness.h" @@ -109,22 +109,22 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameId:SDLSupportedSeatDriver, - SDLNameHeatingEnabled:@NO, - SDLNameCoolingEnabled:@YES, - SDLNameHeatingLevel:@25, - SDLNameCoolingLevel:@10, - SDLNameHorizontalPosition:@23, - SDLNameVerticalPosition:@25, - SDLNameFrontVerticalPosition:@12, - SDLNameBackVerticalPosition:@34, - SDLNameBackTiltAngle:@2, - SDLNameHeadSupportHorizontalPosition:@3, - SDLNameHeadSupportVerticalPosition:@43, - SDLNameMassageEnabled:@YES, - SDLNameMassageMode:[@[massageModeData] mutableCopy], - SDLNameMassageCushionFirmness:[@[massageCushionFirmness] mutableCopy], - SDLNameMemory:seatMemoryAction + NSMutableDictionary* dict = [@{SDLRPCParameterNameId:SDLSupportedSeatDriver, + SDLRPCParameterNameHeatingEnabled:@NO, + SDLRPCParameterNameCoolingEnabled:@YES, + SDLRPCParameterNameHeatingLevel:@25, + SDLRPCParameterNameCoolingLevel:@10, + SDLRPCParameterNameHorizontalPosition:@23, + SDLRPCParameterNameVerticalPosition:@25, + SDLRPCParameterNameFrontVerticalPosition:@12, + SDLRPCParameterNameBackVerticalPosition:@34, + SDLRPCParameterNameBackTiltAngle:@2, + SDLRPCParameterNameHeadSupportHorizontalPosition:@3, + SDLRPCParameterNameHeadSupportVerticalPosition:@43, + SDLRPCParameterNameMassageEnabled:@YES, + SDLRPCParameterNameMassageMode:[@[massageModeData] mutableCopy], + SDLRPCParameterNameMassageCushionFirmness:[@[massageCushionFirmness] mutableCopy], + SDLRPCParameterNameMemory:seatMemoryAction } mutableCopy]; SDLSeatControlData *testStruct = [[SDLSeatControlData alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatMemoryActionSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatMemoryActionSpec.m index a256e50a8..aaeece688 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatMemoryActionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatMemoryActionSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSeatMemoryAction.h" QuickSpecBegin(SDLSeatMemoryActionSpec) @@ -37,9 +37,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameId:@54, - SDLNameLabel:@"none", - SDLNameAction: SDLSeatMemoryActionTypeNone + NSMutableDictionary* dict = [@{SDLRPCParameterNameId:@54, + SDLRPCParameterNameLabel:@"none", + SDLRPCParameterNameAction: SDLSeatMemoryActionTypeNone } mutableCopy]; SDLSeatMemoryAction *testStruct = [[SDLSeatMemoryAction alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m index 1fc06535e..41b685e31 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m @@ -10,7 +10,7 @@ #import "SDLSingleTireStatus.h" #import "SDLComponentVolumeStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSingleTireStatusSpec) @@ -29,9 +29,9 @@ describe(@"Getter/Setter Tests", ^ { it(@"Should get correctly when initialized", ^ { NSDictionary* dict = @{ - SDLNameStatus: SDLComponentVolumeStatusLow, - SDLNameTPMS: SDLTPMSLow, - SDLNamePressure: @67.78 + SDLRPCParameterNameStatus: SDLComponentVolumeStatusLow, + SDLRPCParameterNameTPMS: SDLTPMSLow, + SDLRPCParameterNamePressure: @67.78 }; SDLSingleTireStatus* testStruct = [[SDLSingleTireStatus alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m index 4000f2764..131ddebf1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSoftButtonCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSoftButtonCapabilitiesSpec) @@ -29,10 +29,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameShortPressAvailable:@NO, - SDLNameLongPressAvailable:@YES, - SDLNameUpDownAvailable:@NO, - SDLNameImageSupported:@NO} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameShortPressAvailable:@NO, + SDLRPCParameterNameLongPressAvailable:@YES, + SDLRPCParameterNameUpDownAvailable:@NO, + SDLRPCParameterNameImageSupported:@NO} mutableCopy]; SDLSoftButtonCapabilities* testStruct = [[SDLSoftButtonCapabilities alloc] initWithDictionary:dict]; expect(testStruct.shortPressAvailable).to(equal(@NO)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m index df938b7dc..6c637bc38 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSoftButton.h" #import "SDLSoftButtonType.h" #import "SDLSystemAction.h" @@ -39,12 +39,12 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameType:SDLSoftButtonTypeImage, - SDLNameText:@"Button", - SDLNameImage:image, - SDLNameIsHighlighted:@YES, - SDLNameSoftButtonId:@5423, - SDLNameSystemAction:SDLSystemActionKeepContext} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameType:SDLSoftButtonTypeImage, + SDLRPCParameterNameText:@"Button", + SDLRPCParameterNameImage:image, + SDLRPCParameterNameIsHighlighted:@YES, + SDLRPCParameterNameSoftButtonId:@5423, + SDLRPCParameterNameSystemAction:SDLSystemActionKeepContext} mutableCopy]; SDLSoftButton* testStruct = [[SDLSoftButton alloc] initWithDictionary:dict]; expect(testStruct.type).to(equal(SDLSoftButtonTypeImage)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m index 4de9c43f4..f4ba0eacd 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m @@ -9,11 +9,54 @@ #import <Nimble/Nimble.h> #import "SDLStartTime.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLStartTimeSpec) -describe(@"Getter/Setter Tests", ^ { +describe(@"StartTime Spec", ^ { + describe(@"when initialized", ^{ + __block UInt8 testHours = 22; + __block UInt8 testMinutes = 39; + __block UInt8 testSeconds = 11; + + __block NSTimeInterval testTimeInterval = 81551; + + it(@"should properly initialize with init", ^{ + SDLStartTime *testStruct = [[SDLStartTime alloc] init]; + + expect(testStruct.hours).to(beNil()); + expect(testStruct.minutes).to(beNil()); + expect(testStruct.seconds).to(beNil()); + }); + + it(@"should properly initialize with initWithDictionary:", ^{ + NSDictionary<NSString *, id> *dict = @{SDLRPCParameterNameHours:@(testHours), + SDLRPCParameterNameMinutes:@(testMinutes), + SDLRPCParameterNameSeconds:@(testSeconds)}; + SDLStartTime *testStruct = [[SDLStartTime alloc] initWithDictionary:dict]; + + expect(testStruct.hours).to(equal(@(testHours))); + expect(testStruct.minutes).to(equal(@(testMinutes))); + expect(testStruct.seconds).to(equal(@(testSeconds))); + }); + + it(@"should properly initialize with initWithTimeInterval:", ^{ + SDLStartTime *testStruct = [[SDLStartTime alloc] initWithTimeInterval:testTimeInterval]; + + expect(testStruct.hours).to(equal(@(testHours))); + expect(testStruct.minutes).to(equal(@(testMinutes))); + expect(testStruct.seconds).to(equal(@(testSeconds))); + }); + + it(@"should properly initialize with initWithHours:minutes:seconds:", ^{ + SDLStartTime *testStruct = [[SDLStartTime alloc] initWithHours:testHours minutes:testMinutes seconds:testSeconds]; + + expect(testStruct.hours).to(equal(@(testHours))); + expect(testStruct.minutes).to(equal(@(testMinutes))); + expect(testStruct.seconds).to(equal(@(testSeconds))); + }); + }); + it(@"Should set and get correctly", ^ { SDLStartTime* testStruct = [[SDLStartTime alloc] init]; @@ -25,25 +68,6 @@ describe(@"Getter/Setter Tests", ^ { expect(testStruct.minutes).to(equal(@39)); expect(testStruct.seconds).to(equal(@11)); }); - - it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameHours:@22, - SDLNameMinutes:@39, - SDLNameSeconds:@11} mutableCopy]; - SDLStartTime* testStruct = [[SDLStartTime alloc] initWithDictionary:dict]; - - expect(testStruct.hours).to(equal(@22)); - expect(testStruct.minutes).to(equal(@39)); - expect(testStruct.seconds).to(equal(@11)); - }); - - it(@"Should return nil if not set", ^ { - SDLStartTime* testStruct = [[SDLStartTime alloc] init]; - - expect(testStruct.hours).to(beNil()); - expect(testStruct.minutes).to(beNil()); - expect(testStruct.seconds).to(beNil()); - }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStationIDNumberSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStationIDNumberSpec.m index 3cd543f80..92390aab4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStationIDNumberSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStationIDNumberSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLStationIDNumber.h" QuickSpecBegin(SDLStationIDNumberSpec) @@ -33,8 +33,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameCountryCode:@91, - SDLNameFCCFacilityId:@23 + NSMutableDictionary* dict = [@{SDLRPCParameterNameCountryCode:@91, + SDLRPCParameterNameFCCFacilityId:@23 } mutableCopy]; SDLStationIDNumber* testStruct = [[SDLStationIDNumber alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m index 598f04d2e..f8bc93df5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLSyncMsgVersion.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSyncMsgVersionSpec) @@ -27,9 +27,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameMajorVersion:@4, - SDLNameMinorVersion:@532, - SDLNamePatchVersion:@12} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameMajorVersion:@4, + SDLRPCParameterNameMinorVersion:@532, + SDLRPCParameterNamePatchVersion:@12} mutableCopy]; SDLSyncMsgVersion* testStruct = [[SDLSyncMsgVersion alloc] initWithDictionary:dict]; expect(testStruct.majorVersion).to(equal(@4)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m index abfd13afb..c759058d8 100755 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m @@ -5,69 +5,93 @@ #import "SDLSystemCapability.h" +#import "SDLAppServicesCapabilities.h" #import "SDLImageResolution.h" #import "SDLNavigationCapability.h" #import "SDLPhoneCapability.h" #import "SDLSystemCapabilityType.h" #import "SDLRemoteControlCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVideoStreamingCapability.h" #import "SDLVideoStreamingCodec.h" #import "SDLVideoStreamingFormat.h" #import "SDLVideoStreamingProtocol.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLSystemCapabilitySpec) -SDLRemoteControlCapabilities *someRemoteControlCapabilities = [[SDLRemoteControlCapabilities alloc] init]; describe(@"Getter/Setter Tests", ^ { + __block SDLAppServicesCapabilities *testAppServicesCapabilities = nil; + __block SDLNavigationCapability *testNavigationCapability = nil; + __block SDLPhoneCapability *testPhoneCapability = nil; + __block SDLRemoteControlCapabilities *testRemoteControlCapabilities = nil; + __block SDLVideoStreamingCapability *testVideoStreamingCapability = nil; + + beforeEach(^{ + testAppServicesCapabilities = [[SDLAppServicesCapabilities alloc] initWithAppServices:nil]; + testNavigationCapability = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO]; + testPhoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + testRemoteControlCapabilities = [[SDLRemoteControlCapabilities alloc] initWithClimateControlCapabilities:nil radioControlCapabilities:nil buttonCapabilities:nil seatControlCapabilities:nil audioControlCapabilities:nil hmiSettingsControlCapabilities:nil lightControlCapabilities:nil]; + testVideoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:[[SDLImageResolution alloc] initWithWidth:50 height:50] maxBitrate:5 supportedFormats:@[] hapticDataSupported:false]; + }); + it(@"Should set and get correctly", ^ { SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] init]; - testStruct.systemCapabilityType = SDLSystemCapabilityTypeNavigation; - testStruct.navigationCapability = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO]; - testStruct.phoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; - testStruct.remoteControlCapability = someRemoteControlCapabilities; + testStruct.appServicesCapabilities = testAppServicesCapabilities; + testStruct.navigationCapability = testNavigationCapability; + testStruct.phoneCapability = testPhoneCapability; + testStruct.videoStreamingCapability = testVideoStreamingCapability; + testStruct.remoteControlCapability = testRemoteControlCapabilities; expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); - expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); - expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(NO)); - expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); - - testStruct.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming; - - expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming)); - expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities)); - + expect(testStruct.appServicesCapabilities).to(equal(testAppServicesCapabilities)); + expect(testStruct.navigationCapability).to(equal(testNavigationCapability)); + expect(testStruct.phoneCapability).to(equal(testPhoneCapability)); + expect(testStruct.videoStreamingCapability).to(equal(testVideoStreamingCapability)); + expect(testStruct.remoteControlCapability).to(equal(testRemoteControlCapabilities)); }); -}); -describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{SDLNameSystemCapabilityType: @"NAVIGATION", - SDLNameNavigationCapability: @{SDLNameGetWayPointsEnabled: @(NO), - SDLNameSendLocationEnabled: @(YES)}, - SDLNamePhoneCapability: @{SDLNameDialNumberEnabled: @(YES)}, - SDLNameRemoteControlCapability: someRemoteControlCapabilities} mutableCopy]; + NSDictionary *dict = @{ + SDLRPCParameterNameSystemCapabilityType:SDLSystemCapabilityTypeNavigation, + SDLRPCParameterNameAppServicesCapabilities:testAppServicesCapabilities, + SDLRPCParameterNameNavigationCapability:testNavigationCapability, + SDLRPCParameterNamePhoneCapability:testPhoneCapability, + SDLRPCParameterNameRemoteControlCapability:testRemoteControlCapabilities, + SDLRPCParameterNameVideoStreamingCapability:testVideoStreamingCapability + }; SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithDictionary:dict]; expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); - expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); - expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(NO)); - expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); - expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities)); + expect(testStruct.appServicesCapabilities).to(equal(testAppServicesCapabilities)); + expect(testStruct.navigationCapability).to(equal(testNavigationCapability)); + expect(testStruct.phoneCapability).to(equal(testPhoneCapability)); + expect(testStruct.remoteControlCapability).to(equal(testRemoteControlCapabilities)); + expect(testStruct.videoStreamingCapability).to(equal(testVideoStreamingCapability)); }); it(@"Should return nil if not set", ^ { SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] init]; expect(testStruct.systemCapabilityType).to(beNil()); + expect(testStruct.appServicesCapabilities).to(beNil()); expect(testStruct.navigationCapability).to(beNil()); expect(testStruct.phoneCapability).to(beNil()); expect(testStruct.videoStreamingCapability).to(beNil()); expect(testStruct.remoteControlCapability).to(beNil()); + }); + it(@"should initialize correctly with initWithAppServicesCapabilities:", ^{ + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithAppServicesCapabilities:testAppServicesCapabilities]; + + expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeAppServices)); + expect(testStruct.appServicesCapabilities).to(equal(testAppServicesCapabilities)); + expect(testStruct.navigationCapability).to(beNil()); + expect(testStruct.phoneCapability).to(beNil()); + expect(testStruct.remoteControlCapability).to(beNil()); + expect(testStruct.videoStreamingCapability).to(beNil()); }); it(@"should initialize correctly with initWithPhoneCapability:", ^{ @@ -75,10 +99,11 @@ describe(@"Initialization tests", ^{ SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithPhoneCapability:testPhoneStruct]; expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypePhoneCall)); - expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); + expect(testStruct.appServicesCapabilities).to(beNil()); expect(testStruct.navigationCapability).to(beNil()); - expect(testStruct.videoStreamingCapability).to(beNil()); + expect(testStruct.phoneCapability).to(equal(testPhoneStruct)); expect(testStruct.remoteControlCapability).to(beNil()); + expect(testStruct.videoStreamingCapability).to(beNil()); }); it(@"should initialize correctly with initWithNavigationCapability:", ^{ @@ -86,11 +111,11 @@ describe(@"Initialization tests", ^{ SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithNavigationCapability:testNavStruct]; expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); - expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); - expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(YES)); + expect(testStruct.appServicesCapabilities).to(beNil()); + expect(testStruct.navigationCapability).to(equal(testNavStruct)); expect(testStruct.phoneCapability).to(beNil()); - expect(testStruct.videoStreamingCapability).to(beNil()); expect(testStruct.remoteControlCapability).to(beNil()); + expect(testStruct.videoStreamingCapability).to(beNil()); }); it(@"should initialize correctly with initWithVideoStreamingCapability:", ^{ @@ -115,19 +140,22 @@ describe(@"Initialization tests", ^{ SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithVideoStreamingCapability:testVidStruct]; expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming)); - expect(testStruct.navigationCapability.sendLocationEnabled).to(beNil()); - expect(testStruct.navigationCapability.getWayPointsEnabled).to(beNil()); + expect(testStruct.appServicesCapabilities).to(beNil()); + expect(testStruct.navigationCapability).to(beNil()); expect(testStruct.phoneCapability).to(beNil()); - + expect(testStruct.remoteControlCapability).to(beNil()); + expect(testStruct.videoStreamingCapability).to(equal(testVidStruct)); }); it(@"should initialize correctly with initWithRemoteControlCapability:", ^{ - SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithRemoteControlCapability:someRemoteControlCapabilities]; + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithRemoteControlCapability:testRemoteControlCapabilities]; expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeRemoteControl)); + expect(testStruct.appServicesCapabilities).to(beNil()); expect(testStruct.navigationCapability).to(beNil()); expect(testStruct.phoneCapability).to(beNil()); - expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities)); + expect(testStruct.remoteControlCapability).to(equal(testRemoteControlCapabilities)); + expect(testStruct.videoStreamingCapability).to(beNil()); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m index ef4d741ec..3111d04a0 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLSpeechCapabilities.h" #import "SDLTTSChunk.h" @@ -30,8 +30,8 @@ describe(@"TTS Chunk Tests", ^{ }); it(@"should correctly initialize with initWithDictionary", ^{ - NSDictionary* dict = @{SDLNameText: testText, - SDLNameType: testCapabilities}; + NSDictionary* dict = @{SDLRPCParameterNameText: testText, + SDLRPCParameterNameType: testCapabilities}; testStruct = [[SDLTTSChunk alloc] initWithDictionary:dict]; expect(testStruct.text).to(equal(testText)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m index 9151e0df5..3e234d098 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m @@ -10,7 +10,7 @@ #import "SDLTemperature.h" #import "SDLTemperatureUnit.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLTemperatureSpec) @@ -25,20 +25,36 @@ describe(@"Initialization tests", ^{ it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{SDLNameUnit : SDLTemperatureUnitCelsius , - SDLNameValue:@30 } mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameUnit : SDLTemperatureUnitCelsius , + SDLRPCParameterNameValue:@30 } mutableCopy]; SDLTemperature* testStruct = [[SDLTemperature alloc] initWithDictionary:dict]; expect(testStruct.unit).to(equal(SDLTemperatureUnitCelsius)); expect(testStruct.value).to(equal(@30)); }); - it(@"should initialize correctly with Unit and value", ^{ + it(@"should initialize correctly with initWithUnit:value:", ^{ SDLTemperature *testStruct = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitCelsius value:30]; expect(testStruct.unit).to(equal(SDLTemperatureUnitCelsius)); expect(testStruct.value).to(equal(@30)); }); + + it(@"should initialize correctly with initWithFahrenheitValue:", ^{ + float fahrenheitValue = 22.121; + SDLTemperature *testStruct = [[SDLTemperature alloc] initWithFahrenheitValue:fahrenheitValue]; + + expect(testStruct.unit).to(equal(SDLTemperatureUnitFahrenheit)); + expect(testStruct.value).to(equal(fahrenheitValue)); + }); + + it(@"should initialize correctly with initWithCelsiusValue:", ^{ + float celsiusValue = -40.2; + SDLTemperature *testStruct = [[SDLTemperature alloc] initWithCelsiusValue:celsiusValue]; + + expect(testStruct.unit).to(equal(SDLTemperatureUnitCelsius)); + expect(testStruct.value).to(equal(celsiusValue)); + }); it(@"Should set and get correctly", ^{ SDLTemperature* testStruct = [[SDLTemperature alloc] init]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateColorSchemeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateColorSchemeSpec.m index 48112cf6f..f52354d7b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateColorSchemeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateColorSchemeSpec.m @@ -4,7 +4,7 @@ #import "SDLRGBColor.h" #import "SDLTemplateColorScheme.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLTemplateColorSchemeSpec) @@ -51,9 +51,9 @@ describe(@"TemplateColor Tests", ^{ }); it(@"Should get correctly when initialized with a dict", ^{ - NSDictionary *dict = @{SDLNameRed: @0, - SDLNameGreen: @100, - SDLNameBlue: @255}; + NSDictionary *dict = @{SDLRPCParameterNameRed: @0, + SDLRPCParameterNameGreen: @100, + SDLRPCParameterNameBlue: @255}; SDLRGBColor *testStruct = [[SDLRGBColor alloc] initWithDictionary:dict]; expect(testStruct.red).to(equal(@0)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m index 065945f48..983ec47a1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLCharacterSet.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLTextField.h" #import "SDLTextFieldName.h" @@ -32,10 +32,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameName:SDLTextFieldNameTertiaryText, - SDLNameCharacterSet:SDLCharacterSetType5, - SDLNameWidth:@111, - SDLNameRows:@4} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameName:SDLTextFieldNameTertiaryText, + SDLRPCParameterNameCharacterSet:SDLCharacterSetType5, + SDLRPCParameterNameWidth:@111, + SDLRPCParameterNameRows:@4} mutableCopy]; SDLTextField* testStruct = [[SDLTextField alloc] initWithDictionary:dict]; expect(testStruct.name).to(equal(SDLTextFieldNameTertiaryText)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m index ebe9eb7e3..67243d863 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m @@ -11,7 +11,7 @@ #import "SDLTireStatus.h" #import "SDLSingleTireStatus.h" #import "SDLWarningLightStatus.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLTireStatusSpec) @@ -44,13 +44,13 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNamePressureTelltale:SDLWarningLightStatusOff, - SDLNameLeftFront:tire1, - SDLNameRightFront:tire2, - SDLNameLeftRear:tire3, - SDLNameRightRear:tire4, - SDLNameInnerLeftRear:tire5, - SDLNameInnerRightRear:tire6} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNamePressureTelltale:SDLWarningLightStatusOff, + SDLRPCParameterNameLeftFront:tire1, + SDLRPCParameterNameRightFront:tire2, + SDLRPCParameterNameLeftRear:tire3, + SDLRPCParameterNameRightRear:tire4, + SDLRPCParameterNameInnerLeftRear:tire5, + SDLRPCParameterNameInnerRightRear:tire6} mutableCopy]; SDLTireStatus* testStruct = [[SDLTireStatus alloc] initWithDictionary:dict]; expect(testStruct.pressureTelltale).to(equal(SDLWarningLightStatusOff)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m index bc9ab9495..c0dcee58a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLTouchCoord.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLTouchCoordSpec) @@ -25,8 +25,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameX:@67, - SDLNameY:@362} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameX:@67, + SDLRPCParameterNameY:@362} mutableCopy]; SDLTouchCoord* testStruct = [[SDLTouchCoord alloc] initWithDictionary:dict]; expect(testStruct.x).to(equal(@67)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m index 6df769068..e54ec7b26 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLTouchEventCapabilities.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLTouchEventCapabilitiesSpec) @@ -27,9 +27,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNamePressAvailable:@YES, - SDLNameMultiTouchAvailable:@NO, - SDLNameDoublePressAvailable:@NO} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNamePressAvailable:@YES, + SDLRPCParameterNameMultiTouchAvailable:@NO, + SDLRPCParameterNameDoublePressAvailable:@NO} mutableCopy]; SDLTouchEventCapabilities* testStruct = [[SDLTouchEventCapabilities alloc] initWithDictionary:dict]; expect(testStruct.pressAvailable).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m index 0419916e5..1939c356e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m @@ -10,7 +10,7 @@ #import "SDLTouchEvent.h" #import "SDLTouchCoord.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLTouchEventSpec) @@ -30,9 +30,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameId:@3, - SDLNameTimestamp:[@[@23, @52, @41345234] mutableCopy], - SDLNameCoordinate:[@[coord] mutableCopy]} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameId:@3, + SDLRPCParameterNameTS:[@[@23, @52, @41345234] mutableCopy], + SDLRPCParameterNameCoordinate:[@[coord] mutableCopy]} mutableCopy]; SDLTouchEvent* testStruct = [[SDLTouchEvent alloc] initWithDictionary:dict]; expect(testStruct.touchEventId).to(equal(@3)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m index c445da76e..defce62e7 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLTurn.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLImage.h" QuickSpecBegin(SDLTurnSpec) @@ -28,8 +28,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameNavigationText:@"NAVTEXT", - SDLNameTurnIcon:image} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameNavigationText:@"NAVTEXT", + SDLRPCParameterNameTurnIcon:image} mutableCopy]; SDLTurn* testStruct = [[SDLTurn alloc] initWithDictionary:dict]; expect(testStruct.navigationText).to(equal(@"NAVTEXT")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m index fba4445bc..0c1c6c899 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m @@ -11,7 +11,7 @@ #import "SDLVehicleDataResult.h" #import "SDLVehicleDataResultCode.h" #import "SDLVehicleDataType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLVehicleDataResultSpec) @@ -27,8 +27,8 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameDataType:SDLVehicleDataTypeAirbagStatus, - SDLNameResultCode:SDLVehicleDataResultCodeDisallowed} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameDataType:SDLVehicleDataTypeAirbagStatus, + SDLRPCParameterNameResultCode:SDLVehicleDataResultCodeDisallowed} mutableCopy]; SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] initWithDictionary:dict]; expect(testStruct.dataType).to(equal(SDLVehicleDataTypeAirbagStatus)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m index eefc4618b..a4f3efa0d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLVehicleType.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLVehicleTypeSpec) @@ -29,10 +29,10 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameMake:@"Make", - SDLNameModel:@"Model", - SDLNameModelYear:@"3.141*10^36", - SDLNameTrim:@"AE"} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameMake:@"Make", + SDLRPCParameterNameModel:@"Model", + SDLRPCParameterNameModelYear:@"3.141*10^36", + SDLRPCParameterNameTrim:@"AE"} mutableCopy]; SDLVehicleType* testStruct = [[SDLVehicleType alloc] initWithDictionary:dict]; expect(testStruct.make).to(equal(@"Make")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m index ce42ce9d2..274d625d5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m @@ -11,7 +11,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLImageResolution.h" #import "SDLVideoStreamingCapability.h" #import "SDLVideoStreamingCodec.h" @@ -39,10 +39,10 @@ describe(@"Initialization tests", ^{ NSArray<SDLVideoStreamingFormat *> *formatArray = @[format1, format2]; - NSMutableDictionary* dict = [@{SDLNamePreferredResolution: resolution, - SDLNameMaxBitrate: maxBitrate, - SDLNameSupportedFormats: formatArray, - SDLNameHapticSpatialDataSupported: hapticDataSupported} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNamePreferredResolution: resolution, + SDLRPCParameterNameMaxBitrate: maxBitrate, + SDLRPCParameterNameSupportedFormats: formatArray, + SDLRPCParameterNameHapticSpatialDataSupported: hapticDataSupported} mutableCopy]; SDLVideoStreamingCapability* testStruct = [[SDLVideoStreamingCapability alloc] initWithDictionary:dict]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m index 551110ee8..a6b386738 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m @@ -11,7 +11,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVideoStreamingCodec.h" #import "SDLVideoStreamingFormat.h" #import "SDLVideoStreamingProtocol.h" @@ -20,8 +20,8 @@ QuickSpecBegin(SDLVideoStreamingFormatSpec) describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{SDLNameVideoProtocol: SDLVideoStreamingProtocolRAW, - SDLNameVideoCodec: SDLVideoStreamingCodecH264} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameVideoProtocol: SDLVideoStreamingProtocolRAW, + SDLRPCParameterNameVideoCodec: SDLVideoStreamingCodecH264} mutableCopy]; SDLVideoStreamingFormat* testStruct = [[SDLVideoStreamingFormat alloc] initWithDictionary:dict]; expect(testStruct.protocol).to(equal(SDLVideoStreamingProtocolRAW)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m index 307d92621..ea2153359 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLImage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLVrHelpItem.h" @@ -31,9 +31,9 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary<NSString *, id> *dict = [@{SDLNameText:@"DON'T PANIC", - SDLNameImage:image, - SDLNamePosition:@42} mutableCopy]; + NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameText:@"DON'T PANIC", + SDLRPCParameterNameImage:image, + SDLRPCParameterNamePosition:@42} mutableCopy]; SDLVRHelpItem* testStruct = [[SDLVRHelpItem alloc] initWithDictionary:dict]; expect(testStruct.text).to(equal(@"DON'T PANIC")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherAlertSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherAlertSpec.m new file mode 100644 index 000000000..e4c34b529 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherAlertSpec.m @@ -0,0 +1,94 @@ +// +// SDLWeatherAlertSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDateTime.h" +#import "SDLRPCParameterNames.h" +#import "SDLWeatherAlert.h" + +QuickSpecBegin(SDLWeatherAlertSpec) + +describe(@"Getter/Setter Tests", ^{ + __block NSString *testTitle = nil; + __block NSString *testSummary = nil; + __block SDLDateTime *testExpires = nil; + __block NSArray<NSString *> *testRegions = nil; + __block NSString *testSeverity = nil; + __block SDLDateTime *testTimeIssued = nil; + + beforeEach(^{ + testTitle = @"testTitle"; + testSummary = @"testSummary"; + testExpires = [[SDLDateTime alloc] initWithHour:5 minute:1 second:2 millisecond:2]; + testRegions = @[@"testRegion1" , @"testRegion2"]; + testSeverity = @"testSeverity"; + testTimeIssued = [[SDLDateTime alloc] initWithHour:3 minute:1 second:1 millisecond:23 day:1 month:2 year:1223]; + }); + + it(@"Should set and get correctly", ^{ + SDLWeatherAlert *testStruct = [[SDLWeatherAlert alloc] init]; + testStruct.title = testTitle; + testStruct.summary = testSummary; + testStruct.expires = testExpires; + testStruct.regions = testRegions; + testStruct.severity = testSeverity; + testStruct.timeIssued = testTimeIssued; + + expect(testStruct.title).to(equal(testTitle)); + expect(testStruct.summary).to(equal(testSummary)); + expect(testStruct.expires).to(equal(testExpires)); + expect(testStruct.regions).to(equal(testRegions)); + expect(testStruct.severity).to(equal(testSeverity)); + expect(testStruct.timeIssued).to(equal(testTimeIssued)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameTitle:testTitle, + SDLRPCParameterNameSummary:testSummary, + SDLRPCParameterNameExpires:testExpires, + SDLRPCParameterNameRegions:testRegions, + SDLRPCParameterNameSeverity:testSeverity, + SDLRPCParameterNameTimeIssued:testTimeIssued + }; + SDLWeatherAlert *testStruct = [[SDLWeatherAlert alloc] initWithDictionary:dict]; + + expect(testStruct.title).to(equal(testTitle)); + expect(testStruct.summary).to(equal(testSummary)); + expect(testStruct.expires).to(equal(testExpires)); + expect(testStruct.regions).to(equal(testRegions)); + expect(testStruct.severity).to(equal(testSeverity)); + expect(testStruct.timeIssued).to(equal(testTimeIssued)); + }); + + it(@"Should get correctly when initialized with a convenience init", ^{ + SDLWeatherAlert *testStruct = [[SDLWeatherAlert alloc] initWithTitle:testTitle summary:testSummary expires:testExpires regions:testRegions severity:testSeverity timeIssued:testTimeIssued]; + + expect(testStruct.title).to(equal(testTitle)); + expect(testStruct.summary).to(equal(testSummary)); + expect(testStruct.expires).to(equal(testExpires)); + expect(testStruct.regions).to(equal(testRegions)); + expect(testStruct.severity).to(equal(testSeverity)); + expect(testStruct.timeIssued).to(equal(testTimeIssued)); + }); + + it(@"Should return nil if not set", ^{ + SDLWeatherAlert *testStruct = [[SDLWeatherAlert alloc] init]; + + expect(testStruct.title).to(beNil()); + expect(testStruct.summary).to(beNil()); + expect(testStruct.expires).to(beNil()); + expect(testStruct.regions).to(beNil()); + expect(testStruct.severity).to(beNil()); + expect(testStruct.timeIssued).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherDataSpec.m new file mode 100644 index 000000000..f46cb0539 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherDataSpec.m @@ -0,0 +1,213 @@ +// +// SDLWeatherDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/7/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLDateTime.h" +#import "SDLImage.h" +#import "SDLRPCParameterNames.h" +#import "SDLTemperature.h" +#import "SDLWeatherData.h" + +QuickSpecBegin(SDLWeatherDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLTemperature *testCurrentTemp = nil; + __block SDLTemperature *testTempHigh = nil; + __block SDLTemperature *testTempLow = nil; + __block SDLTemperature *testApparentTemp = nil; + __block SDLTemperature *testApparentTempHigh = nil; + __block SDLTemperature *testApparentTempLow = nil; + __block NSString *testWeatherSummary = nil; + __block SDLDateTime *testTime = nil; + __block float testHumidity = 0.175; + __block float testCloudCover = 0.2; + __block float testMoonPhase = 0.1; + __block int testWindBearing = 1.65; + __block float testWindGust = 34.2; + __block float testWindSpeed = 12.01; + __block int testNearestStormBearing = 1; + __block int testNearestStormDistance = 45; + __block float testPrecipAccumulation = 2.34; + __block float testPrecipIntensity = 4.55; + __block float testPrecipProbability = 0.45; + __block NSString *testPrecipType = nil; + __block float testVisibility = 0.1; + __block SDLImage *testWeatherIcon = nil; + + beforeEach(^{ + testCurrentTemp = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitFahrenheit value:2]; + testTempHigh = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitFahrenheit value:3]; + testTempLow = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitFahrenheit value:4]; + testApparentTemp = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitFahrenheit value:5]; + testApparentTempHigh = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitFahrenheit value:6]; + testApparentTempLow = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitFahrenheit value:7]; + testWeatherSummary = @"testWeatherSummary"; + testTime = [[SDLDateTime alloc] initWithHour:4 minute:5]; + testPrecipType = @"testPrecipType"; + testWeatherIcon = [[SDLImage alloc] initWithName:@"testWeatherIcon" isTemplate:true]; + }); + + it(@"Should set and get correctly", ^{ + SDLWeatherData *testStruct = [[SDLWeatherData alloc] init]; + testStruct.currentTemperature = testCurrentTemp; + testStruct.temperatureHigh = testTempHigh; + testStruct.temperatureLow = testTempLow; + testStruct.apparentTemperature = testApparentTemp; + testStruct.apparentTemperatureHigh = testApparentTempHigh; + testStruct.apparentTemperatureLow = testApparentTempLow; + testStruct.weatherSummary = testWeatherSummary; + testStruct.time = testTime; + testStruct.humidity = @(testHumidity); + testStruct.cloudCover = @(testCloudCover); + testStruct.moonPhase = @(testMoonPhase); + testStruct.windBearing = @(testWindBearing); + testStruct.windGust = @(testWindGust); + testStruct.windSpeed = @(testWindSpeed); + testStruct.nearestStormBearing = @(testNearestStormBearing); + testStruct.nearestStormDistance = @(testNearestStormDistance); + testStruct.precipAccumulation = @(testPrecipAccumulation); + testStruct.precipIntensity = @(testPrecipIntensity); + testStruct.precipProbability = @(testPrecipProbability); + testStruct.precipType = testPrecipType; + testStruct.visibility = @(testVisibility); + testStruct.weatherIcon = testWeatherIcon; + + expect(testStruct.currentTemperature).to(equal(testCurrentTemp)); + expect(testStruct.temperatureHigh).to(equal(testTempHigh)); + expect(testStruct.temperatureLow).to(equal(testTempLow)); + expect(testStruct.apparentTemperature).to(equal(testApparentTemp)); + expect(testStruct.apparentTemperatureHigh).to(equal(testApparentTempHigh)); + expect(testStruct.apparentTemperatureLow).to(equal(testApparentTempLow)); + expect(testStruct.weatherSummary).to(equal(testWeatherSummary)); + expect(testStruct.time).to(equal(testTime)); + expect(testStruct.humidity).to(equal(testHumidity)); + expect(testStruct.cloudCover).to(equal(testCloudCover)); + expect(testStruct.moonPhase).to(equal(testMoonPhase)); + expect(testStruct.windBearing).to(equal(testWindBearing)); + expect(testStruct.windGust).to(equal(testWindGust)); + expect(testStruct.windSpeed).to(equal(testWindSpeed)); + expect(testStruct.nearestStormBearing).to(equal(testNearestStormBearing)); + expect(testStruct.nearestStormDistance).to(equal(testNearestStormDistance)); + expect(testStruct.precipAccumulation).to(equal(testPrecipAccumulation)); + expect(testStruct.precipIntensity).to(equal(testPrecipIntensity)); + expect(testStruct.precipProbability).to(equal(testPrecipProbability)); + expect(testStruct.precipType).to(equal(testPrecipType)); + expect(testStruct.visibility).to(equal(testVisibility)); + expect(testStruct.weatherIcon).to(equal(testWeatherIcon)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameCurrentTemperature:testCurrentTemp, + SDLRPCParameterNameTemperatureHigh:testTempHigh, + SDLRPCParameterNameTemperatureLow:testTempLow, + SDLRPCParameterNameApparentTemperature:testApparentTemp, + SDLRPCParameterNameApparentTemperatureHigh:testApparentTempHigh, + SDLRPCParameterNameApparentTemperatureLow:testApparentTempLow, + SDLRPCParameterNameWeatherSummary:testWeatherSummary, + SDLRPCParameterNameTime:testTime, + SDLRPCParameterNameHumidity:@(testHumidity), + SDLRPCParameterNameCloudCover:@(testCloudCover), + SDLRPCParameterNameMoonPhase:@(testMoonPhase), + SDLRPCParameterNameWindBearing:@(testWindBearing), + SDLRPCParameterNameWindGust:@(testWindGust), + SDLRPCParameterNameWindSpeed:@(testWindSpeed), + SDLRPCParameterNameNearestStormBearing:@(testNearestStormBearing), + SDLRPCParameterNameNearestStormDistance:@(testNearestStormDistance), + SDLRPCParameterNamePrecipAccumulation:@(testPrecipAccumulation), + SDLRPCParameterNamePrecipIntensity:@(testPrecipIntensity), + SDLRPCParameterNamePrecipProbability:@(testPrecipProbability), + SDLRPCParameterNamePrecipType:testPrecipType, + SDLRPCParameterNameVisibility:@(testVisibility), + SDLRPCParameterNameWeatherIcon:testWeatherIcon + }; + SDLWeatherData *testStruct = [[SDLWeatherData alloc] initWithDictionary:dict]; + + expect(testStruct.currentTemperature).to(equal(testCurrentTemp)); + expect(testStruct.temperatureHigh).to(equal(testTempHigh)); + expect(testStruct.temperatureLow).to(equal(testTempLow)); + expect(testStruct.apparentTemperature).to(equal(testApparentTemp)); + expect(testStruct.apparentTemperatureHigh).to(equal(testApparentTempHigh)); + expect(testStruct.apparentTemperatureLow).to(equal(testApparentTempLow)); + expect(testStruct.weatherSummary).to(equal(testWeatherSummary)); + expect(testStruct.time).to(equal(testTime)); + expect(testStruct.humidity).to(equal(testHumidity)); + expect(testStruct.cloudCover).to(equal(testCloudCover)); + expect(testStruct.moonPhase).to(equal(testMoonPhase)); + expect(testStruct.windBearing).to(equal(testWindBearing)); + expect(testStruct.windGust).to(equal(testWindGust)); + expect(testStruct.windSpeed).to(equal(testWindSpeed)); + expect(testStruct.nearestStormBearing).to(equal(testNearestStormBearing)); + expect(testStruct.nearestStormDistance).to(equal(testNearestStormDistance)); + expect(testStruct.precipAccumulation).to(equal(testPrecipAccumulation)); + expect(testStruct.precipIntensity).to(equal(testPrecipIntensity)); + expect(testStruct.precipProbability).to(equal(testPrecipProbability)); + expect(testStruct.precipType).to(equal(testPrecipType)); + expect(testStruct.visibility).to(equal(testVisibility)); + expect(testStruct.weatherIcon).to(equal(testWeatherIcon)); + }); + + it(@"Should get correctly when initialized with a convenience init", ^{ + SDLWeatherData *testStruct = [[SDLWeatherData alloc] initWithCurrentTemperature:testCurrentTemp temperatureHigh:testTempHigh temperatureLow:testTempLow apparentTemperature:testApparentTemp apparentTemperatureHigh:testApparentTempHigh apparentTemperatureLow:testApparentTempLow weatherSummary:testWeatherSummary time:testTime humidity:@(testHumidity) cloudCover:@(testCloudCover) moonPhase:@(testMoonPhase) windBearing:@(testWindBearing) windGust:@(testWindGust) windSpeed:@(testWindSpeed) nearestStormBearing:@(testNearestStormBearing) nearestStormDistance:@(testNearestStormDistance) precipAccumulation:@(testPrecipAccumulation) precipIntensity:@(testPrecipIntensity) precipProbability:@(testPrecipProbability) precipType:testPrecipType visibility:@(testVisibility) weatherIcon:testWeatherIcon]; + + expect(testStruct.currentTemperature).to(equal(testCurrentTemp)); + expect(testStruct.temperatureHigh).to(equal(testTempHigh)); + expect(testStruct.temperatureLow).to(equal(testTempLow)); + expect(testStruct.apparentTemperature).to(equal(testApparentTemp)); + expect(testStruct.apparentTemperatureHigh).to(equal(testApparentTempHigh)); + expect(testStruct.apparentTemperatureLow).to(equal(testApparentTempLow)); + expect(testStruct.weatherSummary).to(equal(testWeatherSummary)); + expect(testStruct.time).to(equal(testTime)); + expect(testStruct.humidity).to(equal(testHumidity)); + expect(testStruct.cloudCover).to(equal(testCloudCover)); + expect(testStruct.moonPhase).to(equal(testMoonPhase)); + expect(testStruct.windBearing).to(equal(testWindBearing)); + expect(testStruct.windGust).to(equal(testWindGust)); + expect(testStruct.windSpeed).to(equal(testWindSpeed)); + expect(testStruct.nearestStormBearing).to(equal(testNearestStormBearing)); + expect(testStruct.nearestStormDistance).to(equal(testNearestStormDistance)); + expect(testStruct.precipAccumulation).to(equal(testPrecipAccumulation)); + expect(testStruct.precipIntensity).to(equal(testPrecipIntensity)); + expect(testStruct.precipProbability).to(equal(testPrecipProbability)); + expect(testStruct.precipType).to(equal(testPrecipType)); + expect(testStruct.visibility).to(equal(testVisibility)); + expect(testStruct.weatherIcon).to(equal(testWeatherIcon)); + }); + + + it(@"Should return nil if not set", ^{ + SDLWeatherData *testStruct = [[SDLWeatherData alloc] init]; + + expect(testStruct.currentTemperature).to(beNil()); + expect(testStruct.temperatureHigh).to(beNil()); + expect(testStruct.temperatureLow).to(beNil()); + expect(testStruct.apparentTemperature).to(beNil()); + expect(testStruct.apparentTemperatureHigh).to(beNil()); + expect(testStruct.apparentTemperatureLow).to(beNil()); + expect(testStruct.weatherSummary).to(beNil()); + expect(testStruct.time).to(beNil()); + expect(testStruct.humidity).to(beNil()); + expect(testStruct.cloudCover).to(beNil()); + expect(testStruct.moonPhase).to(beNil()); + expect(testStruct.windBearing).to(beNil()); + expect(testStruct.windGust).to(beNil()); + expect(testStruct.windSpeed).to(beNil()); + expect(testStruct.nearestStormBearing).to(beNil()); + expect(testStruct.nearestStormDistance).to(beNil()); + expect(testStruct.precipAccumulation).to(beNil()); + expect(testStruct.precipIntensity).to(beNil()); + expect(testStruct.precipProbability).to(beNil()); + expect(testStruct.precipType).to(beNil()); + expect(testStruct.visibility).to(beNil()); + expect(testStruct.weatherIcon).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherServiceDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherServiceDataSpec.m new file mode 100644 index 000000000..dadf888a4 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherServiceDataSpec.m @@ -0,0 +1,115 @@ +// +// SDLWeatherServiceDataSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLLocationDetails.h" +#import "SDLRPCParameterNames.h" +#import "SDLWeatherData.h" +#import "SDLWeatherAlert.h" +#import "SDLWeatherServiceData.h" + +QuickSpecBegin(SDLWeatherServiceDataSpec) + +describe(@"Getter/Setter Tests", ^{ + __block SDLLocationDetails *testLocation = nil; + __block SDLWeatherData *testCurrentForecast = nil; + __block NSArray<SDLWeatherData *> *testMinuteForecast = nil; + __block NSArray<SDLWeatherData *> *testHourlyForecast = nil; + __block NSArray<SDLWeatherData *> *testMultidayForecast = nil; + __block NSArray<SDLWeatherAlert *> *testAlerts = nil; + + beforeEach(^{ + testLocation = [[SDLLocationDetails alloc] init]; + testLocation.locationName = @"testLocationName"; + + SDLWeatherData *testWeatherDataA = [[SDLWeatherData alloc] initWithDictionary:@{SDLRPCParameterNameWeatherSummary:@"testWeatherDataA"}]; + SDLWeatherData *testWeatherDataB = [[SDLWeatherData alloc] initWithDictionary:@{SDLRPCParameterNameWeatherSummary:@"testWeatherDataB"}]; + SDLWeatherData *testWeatherDataC = [[SDLWeatherData alloc] initWithDictionary:@{SDLRPCParameterNameWeatherSummary:@"testWeatherDataC"}]; + testCurrentForecast = testWeatherDataA; + testMinuteForecast = @[testWeatherDataA]; + testHourlyForecast = @[testWeatherDataB, testWeatherDataA]; + testMultidayForecast = @[testWeatherDataA, testWeatherDataC]; + + SDLWeatherAlert *testWeatherAlertA = [[SDLWeatherAlert alloc] initWithDictionary:@{SDLRPCParameterNameTitle:@"testWeatherAlertA"}]; + testAlerts = @[testWeatherAlertA]; + }); + + it(@"Should set and get correctly", ^{ + SDLWeatherServiceData *testStruct = [[SDLWeatherServiceData alloc] init]; + testStruct.location = testLocation; + testStruct.currentForecast = testCurrentForecast; + testStruct.minuteForecast = testMinuteForecast; + testStruct.hourlyForecast = testHourlyForecast; + testStruct.multidayForecast = testMultidayForecast; + testStruct.alerts = testAlerts; + + expect(testStruct.location).to(equal(testLocation)); + expect(testStruct.currentForecast).to(equal(testCurrentForecast)); + expect(testStruct.minuteForecast).to(equal(testMinuteForecast)); + expect(testStruct.hourlyForecast).to(equal(testHourlyForecast)); + expect(testStruct.multidayForecast).to(equal(testMultidayForecast)); + expect(testStruct.alerts).to(equal(testAlerts)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameLocation:testLocation, + SDLRPCParameterNameCurrentForecast:testCurrentForecast, + SDLRPCParameterNameMinuteForecast:testMinuteForecast, + SDLRPCParameterNameHourlyForecast:testHourlyForecast, + SDLRPCParameterNameMultidayForecast:testMultidayForecast, + SDLRPCParameterNameAlerts:testAlerts + }; + SDLWeatherServiceData *testStruct = [[SDLWeatherServiceData alloc] initWithDictionary:dict]; + + expect(testStruct.location).to(equal(testLocation)); + expect(testStruct.currentForecast).to(equal(testCurrentForecast)); + expect(testStruct.minuteForecast).to(equal(testMinuteForecast)); + expect(testStruct.hourlyForecast).to(equal(testHourlyForecast)); + expect(testStruct.multidayForecast).to(equal(testMultidayForecast)); + expect(testStruct.alerts).to(equal(testAlerts)); + }); + + it(@"Should get correctly when initialized with initWithLocation:", ^{ + SDLWeatherServiceData *testStruct = [[SDLWeatherServiceData alloc] initWithLocation:testLocation]; + + expect(testStruct.location).to(equal(testLocation)); + expect(testStruct.currentForecast).to(beNil()); + expect(testStruct.minuteForecast).to(beNil()); + expect(testStruct.hourlyForecast).to(beNil()); + expect(testStruct.multidayForecast).to(beNil()); + expect(testStruct.alerts).to(beNil()); + }); + + it(@"Should get correctly when initialized with initWithLocation:currentForecast:currentForecast minuteForecast:hourlyForecast:multidayForecast:alerts:", ^{ + SDLWeatherServiceData *testStruct = [[SDLWeatherServiceData alloc] initWithLocation:testLocation currentForecast:testCurrentForecast minuteForecast:testMinuteForecast hourlyForecast:testHourlyForecast multidayForecast:testMultidayForecast alerts:testAlerts]; + + expect(testStruct.location).to(equal(testLocation)); + expect(testStruct.currentForecast).to(equal(testCurrentForecast)); + expect(testStruct.minuteForecast).to(equal(testMinuteForecast)); + expect(testStruct.hourlyForecast).to(equal(testHourlyForecast)); + expect(testStruct.multidayForecast).to(equal(testMultidayForecast)); + expect(testStruct.alerts).to(equal(testAlerts)); + }); + + it(@"Should return nil if not set", ^{ + SDLWeatherServiceData *testStruct = [[SDLWeatherServiceData alloc] init]; + + expect(testStruct.location).to(beNil()); + expect(testStruct.currentForecast).to(beNil()); + expect(testStruct.minuteForecast).to(beNil()); + expect(testStruct.hourlyForecast).to(beNil()); + expect(testStruct.multidayForecast).to(beNil()); + expect(testStruct.alerts).to(beNil()); + }); +}); + +QuickSpecEnd + + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherServiceManifestSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherServiceManifestSpec.m new file mode 100644 index 000000000..1a495d633 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWeatherServiceManifestSpec.m @@ -0,0 +1,82 @@ +// +// SDLWeatherServiceManifestSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/8/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLRPCParameterNames.h" +#import "SDLWeatherServiceManifest.h" + +QuickSpecBegin(SDLWeatherServiceManifestSpec) + +describe(@"Getter/Setter Tests", ^{ + __block BOOL testCurrentForecastSupported = nil; + __block int testMaxMultidayForecastAmount = 3; + __block int testMaxHourlyForecastAmount = 78; + __block int testMaxMinutelyForecastAmount = 13; + __block BOOL testWeatherForLocationSupported = nil; + + beforeEach(^{ + testCurrentForecastSupported = false; + testCurrentForecastSupported = true; + }); + + it(@"Should set and get correctly", ^{ + SDLWeatherServiceManifest *testStruct = [[SDLWeatherServiceManifest alloc] init]; + testStruct.currentForecastSupported = @(testCurrentForecastSupported); + testStruct.maxMultidayForecastAmount = @(testMaxMultidayForecastAmount); + testStruct.maxHourlyForecastAmount = @(testMaxHourlyForecastAmount); + testStruct.maxMinutelyForecastAmount = @(testMaxMinutelyForecastAmount); + testStruct.weatherForLocationSupported = @(testWeatherForLocationSupported); + + expect(testStruct.currentForecastSupported).to(equal(testCurrentForecastSupported)); + expect(testStruct.maxMultidayForecastAmount).to(equal(testMaxMultidayForecastAmount)); + expect(testStruct.maxHourlyForecastAmount).to(equal(testMaxHourlyForecastAmount)); + expect(testStruct.maxMinutelyForecastAmount).to(equal(testMaxMinutelyForecastAmount)); + expect(testStruct.weatherForLocationSupported).to(equal(testWeatherForLocationSupported)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^{ + NSDictionary *dict = @{SDLRPCParameterNameCurrentForecastSupported:@(testCurrentForecastSupported), + SDLRPCParameterNameMaxMultidayForecastAmount:@(testMaxMultidayForecastAmount), + SDLRPCParameterNameMaxHourlyForecastAmount:@(testMaxHourlyForecastAmount), + SDLRPCParameterNameMaxMinutelyForecastAmount:@(testMaxMinutelyForecastAmount), + SDLRPCParameterNameWeatherForLocationSupported:@(testWeatherForLocationSupported) + }; + SDLWeatherServiceManifest *testStruct = [[SDLWeatherServiceManifest alloc] initWithDictionary:dict]; + + expect(testStruct.currentForecastSupported).to(equal(testCurrentForecastSupported)); + expect(testStruct.maxMultidayForecastAmount).to(equal(testMaxMultidayForecastAmount)); + expect(testStruct.maxHourlyForecastAmount).to(equal(testMaxHourlyForecastAmount)); + expect(testStruct.maxMinutelyForecastAmount).to(equal(testMaxMinutelyForecastAmount)); + expect(testStruct.weatherForLocationSupported).to(equal(testWeatherForLocationSupported)); + }); + + it(@"Should initialize correctly with initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported:", ^{ + SDLWeatherServiceManifest *testStruct = [[SDLWeatherServiceManifest alloc] initWithCurrentForecastSupported:testCurrentForecastSupported maxMultidayForecastAmount:testMaxMultidayForecastAmount maxHourlyForecastAmount:testMaxHourlyForecastAmount maxMinutelyForecastAmount:testMaxMinutelyForecastAmount weatherForLocationSupported:testWeatherForLocationSupported]; + + expect(testStruct.currentForecastSupported).to(equal(testCurrentForecastSupported)); + expect(testStruct.maxMultidayForecastAmount).to(equal(testMaxMultidayForecastAmount)); + expect(testStruct.maxHourlyForecastAmount).to(equal(testMaxHourlyForecastAmount)); + expect(testStruct.maxMinutelyForecastAmount).to(equal(testMaxMinutelyForecastAmount)); + expect(testStruct.weatherForLocationSupported).to(equal(testWeatherForLocationSupported)); + }); + + it(@"Should return nil if not set", ^{ + SDLWeatherServiceManifest *testStruct = [[SDLWeatherServiceManifest alloc] init]; + + expect(testStruct.currentForecastSupported).to(beNil()); + expect(testStruct.maxMultidayForecastAmount).to(beNil()); + expect(testStruct.maxHourlyForecastAmount).to(beNil()); + expect(testStruct.maxMinutelyForecastAmount).to(beNil()); + expect(testStruct.weatherForLocationSupported).to(beNil()); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m index 57dbd3513..0ace806a0 100644 --- a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import "SDLRPCMessage.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" QuickSpecBegin(SDLRPCMessageSpec) @@ -21,13 +21,13 @@ describe(@"Readonly Property Tests", ^ { }); it(@"Should get correctly when initialized with dictionary", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameNotification: - @{SDLNameParameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: @{@"name":@"George"}, - SDLNameOperationName:@"Poorly Named"}} mutableCopy]]; + SDLRPCParameterNameOperationName:@"Poorly Named"}} mutableCopy]]; expect(testMessage.name).to(equal(@"Poorly Named")); - expect(testMessage.messageType).to(equal(SDLNameNotification)); + expect(testMessage.messageType).to(equal(SDLRPCParameterNameNotification)); }); }); @@ -41,10 +41,10 @@ describe(@"Parameter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameResponse: - @{SDLNameParameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: @{@"age":@25}, - SDLNameOperationName:@"Nameless"}} mutableCopy]]; + SDLRPCParameterNameOperationName:@"Nameless"}} mutableCopy]]; expect([testMessage getParameters:@"age"]).to(equal(@25)); }); @@ -66,10 +66,10 @@ describe(@"FunctionName Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameRequest: - @{SDLNameParameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLRPCParameterNameRequest: + @{SDLRPCParameterNameParameters: @{@"age":@25}, - SDLNameOperationName:@"DoNothing"}} mutableCopy]]; + SDLRPCParameterNameOperationName:@"DoNothing"}} mutableCopy]]; expect([testMessage getFunctionName]).to(equal(@"DoNothing")); @@ -79,8 +79,8 @@ describe(@"FunctionName Tests", ^ { }); it(@"Should be nil if not set", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameNotification: - @{SDLNameParameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: @{}}} mutableCopy]]; expect([testMessage getFunctionName]).to(beNil()); }); @@ -97,10 +97,10 @@ describe(@"BulkDataTests", ^ { }); it(@"Should get correctly when initialized", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameNotification: - @{SDLNameParameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLRPCParameterNameNotification: + @{SDLRPCParameterNameParameters: @{}}, - SDLNameBulkData:[NSData dataWithBytes:"ImageData" length:strlen("ImageData")]} mutableCopy]]; + SDLRPCParameterNameBulkData:[NSData dataWithBytes:"ImageData" length:strlen("ImageData")]} mutableCopy]]; expect(testMessage.bulkData).to(equal([NSData dataWithBytes:"ImageData" length:strlen("ImageData")])); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m index 073135985..edb1a3cab 100644 --- a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m @@ -8,7 +8,7 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" #import "SDLResult.h" #import "SDLRPCResponse.h" @@ -31,19 +31,19 @@ describe(@"Getter/Setter Tests", ^ { }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{SDLNameResponse: - @{SDLNameParameters: - @{SDLNameSuccess:@YES, - SDLNameResultCode:SDLNameSuccess, - SDLNameInfo:@"Test Info"}, - SDLNameCorrelationId:@1004, - SDLNameOperationName:SDLNameResponse}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLRPCParameterNameResponse: + @{SDLRPCParameterNameParameters: + @{SDLRPCParameterNameSuccess:@YES, + SDLRPCParameterNameResultCode:SDLRPCParameterNameSuccess, + SDLRPCParameterNameInfo:@"Test Info"}, + SDLRPCParameterNameCorrelationId:@1004, + SDLRPCParameterNameOperationName:SDLRPCParameterNameResponse}} mutableCopy]; SDLRPCResponse* testResponse = [[SDLRPCResponse alloc] initWithDictionary:dict]; - expect(testResponse.getFunctionName).to(equal(SDLNameResponse)); + expect(testResponse.getFunctionName).to(equal(SDLRPCParameterNameResponse)); expect(testResponse.correlationID).to(equal(@1004)); expect(testResponse.success).to(equal(@YES)); - expect(testResponse.resultCode).to(equal(SDLNameSuccess)); + expect(testResponse.resultCode).to(equal(SDLRPCParameterNameSuccess)); expect(testResponse.info).to(equal(@"Test Info")); }); diff --git a/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m b/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m new file mode 100644 index 000000000..40fff1d7a --- /dev/null +++ b/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m @@ -0,0 +1,95 @@ +// +// SDLAsynchronousRPCOperationSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 2/20/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLAppServiceData.h" +#import "SDLGetAppServiceDataResponse.h" +#import "SDLAsynchronousRPCOperation.h" +#import "TestConnectionManager.h" + +QuickSpecBegin(SDLAsynchronousRPCOperationSpec) + +describe(@"sending responses and notifications", ^{ + __block TestConnectionManager *testConnectionManager = nil; + __block SDLAsynchronousRPCOperation *testOperation = nil; + __block NSOperationQueue *testOperationQueue = nil; + + beforeEach(^{ + testOperation = nil; + testConnectionManager = [[TestConnectionManager alloc] init]; + + testOperationQueue = [[NSOperationQueue alloc] init]; + testOperationQueue.name = @"com.sdl.RPCResponse.testqueue"; + testOperationQueue.maxConcurrentOperationCount = 3; + }); + + context(@"when a single request succeeds", ^{ + __block __kindof SDLRPCMessage *sendRPC = nil; + + beforeEach(^{ + sendRPC = [[SDLGetAppServiceDataResponse alloc] initWithAppServiceData:[[SDLAppServiceData alloc] init]]; + }); + + it(@"should correctly send the rpc", ^{ + testOperation = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:testConnectionManager rpc:sendRPC]; + + [testOperationQueue addOperation:testOperation]; + [NSThread sleepForTimeInterval:0.1]; + + expect(testConnectionManager.receivedRequests).toEventually(contain(sendRPC)); + }); + }); + + context(@"when multiple request succeed", ^{ + __block NSMutableArray< __kindof SDLRPCMessage *> *sendRPCs = nil; + __block int rpcCount = (int)testOperationQueue.maxConcurrentOperationCount + 3; + + beforeEach(^{ + sendRPCs = [NSMutableArray array]; + for (int i = 0; i < rpcCount; i += 1) { + [sendRPCs addObject:[[SDLGetAppServiceDataResponse alloc] initWithAppServiceData:[[SDLAppServiceData alloc] init]]]; + } + }); + + it(@"should correctly send all of the rpcs", ^{ + for (int i = 0; i < rpcCount; i += 1) { + testOperation = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:testConnectionManager rpc:sendRPCs[i]]; + [testOperationQueue addOperation:testOperation]; + } + + [NSThread sleepForTimeInterval:0.5]; + + expect(testConnectionManager.receivedRequests.count).toEventually(equal(rpcCount)); + expect(testConnectionManager.receivedRequests).toEventually(equal(sendRPCs)); + }); + }); + + context(@"when a requst is cancelled", ^{ + __block __kindof SDLRPCMessage *sendRPC = nil; + + beforeEach(^{ + sendRPC = [[SDLGetAppServiceDataResponse alloc] initWithAppServiceData:[[SDLAppServiceData alloc] init]]; + }); + + it(@"should not send the rpc", ^{ + testOperation = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:testConnectionManager rpc:sendRPC]; + + [testOperationQueue addOperation:testOperation]; + [testOperationQueue cancelAllOperations]; + + [NSThread sleepForTimeInterval:0.1]; + + expect(testConnectionManager.receivedRequests).toEventually(beEmpty()); + }); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m b/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m index 484b8b41a..f79085706 100644 --- a/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m +++ b/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m @@ -23,6 +23,7 @@ QuickSpecBegin(SDLH264VideoEncoderSpec) describe(@"a video encoder", ^{ __block SDLH264VideoEncoder *testVideoEncoder = nil; __block CGSize testSize = CGSizeZero; + __block UInt32 testSSRC = 234; __block id videoEncoderDelegateMock = OCMProtocolMock(@protocol(SDLVideoEncoderDelegate)); __block NSError *testError = nil; __block SDLVideoStreamingProtocol testProtocol = nil; @@ -35,7 +36,7 @@ describe(@"a video encoder", ^{ context(@"if using default video encoder settings", ^{ beforeEach(^{ - testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize ssrc:testSSRC properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; }); it(@"should initialize properties", ^{ @@ -70,7 +71,7 @@ describe(@"a video encoder", ^{ (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate : @1 }; - testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:testSettings delegate:videoEncoderDelegateMock error:&testError]; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize ssrc:testSSRC properties:testSettings delegate:videoEncoderDelegateMock error:&testError]; }); it(@"should initialize properties", ^{ @@ -90,7 +91,7 @@ describe(@"a video encoder", ^{ testSettings = @{ @"Bad" : @"Property" }; - testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:testSettings delegate:videoEncoderDelegateMock error:&testError]; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize ssrc:testSSRC properties:testSettings delegate:videoEncoderDelegateMock error:&testError]; }); it(@"should not be initialized", ^{ @@ -103,7 +104,7 @@ describe(@"a video encoder", ^{ context(@"using an unknown protocol", ^{ beforeEach(^{ testProtocol = SDLVideoStreamingProtocolRTSP; - testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize ssrc:testSSRC properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; }); it(@"should not be initialized", ^{ @@ -116,7 +117,7 @@ describe(@"a video encoder", ^{ context(@"creating with RTP H264 Protocol", ^{ beforeEach(^{ testProtocol = SDLVideoStreamingProtocolRTP; - testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize ssrc:testSSRC properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; }); it(@"should create an RTP packetizer", ^{ diff --git a/SmartDeviceLinkTests/SDLRPCFunctionNamesSpec.m b/SmartDeviceLinkTests/SDLRPCFunctionNamesSpec.m new file mode 100644 index 000000000..dc28ebf28 --- /dev/null +++ b/SmartDeviceLinkTests/SDLRPCFunctionNamesSpec.m @@ -0,0 +1,97 @@ +// +// SDLRPCFunctionNamesSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 3/5/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLRPCFunctionNames.h" + +QuickSpecBegin(SDLRPCFunctionNamesSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLRPCFunctionNameAddSubMenu).to(equal(@"AddSubMenu")); + expect(SDLRPCFunctionNameAlert).to(equal(@"Alert")); + expect(SDLRPCFunctionNameAlertManeuver).to(equal(@"AlertManeuver")); + expect(SDLRPCFunctionNameButtonPress).to(equal(@"ButtonPress")); + expect(SDLRPCFunctionNameChangeRegistration).to(equal(@"ChangeRegistration")); + expect(SDLRPCFunctionNameCreateInteractionChoiceSet).to(equal(@"CreateInteractionChoiceSet")); + expect(SDLRPCFunctionNameDeleteCommand).to(equal(@"DeleteCommand")); + expect(SDLRPCFunctionNameDeleteFile).to(equal(@"DeleteFile")); + expect(SDLRPCFunctionNameDeleteInteractionChoiceSet).to(equal(@"DeleteInteractionChoiceSet")); + expect(SDLRPCFunctionNameDeleteSubMenu).to(equal(@"DeleteSubMenu")); + expect(SDLRPCFunctionNameDiagnosticMessage).to(equal(@"DiagnosticMessage")); + expect(SDLRPCFunctionNameDialNumber).to(equal(@"DialNumber")); + expect(SDLRPCFunctionNameEncodedSyncPData).to(equal(@"EncodedSyncPData")); + expect(SDLRPCFunctionNameEndAudioPassThru).to(equal(@"EndAudioPassThru")); + expect(SDLRPCFunctionNameGenericResponse).to(equal(@"GenericResponse")); + expect(SDLRPCFunctionNameGetAppServiceData).to(equal(@"GetAppServiceData")); + expect(SDLRPCFunctionNameGetDTCs).to(equal(@"GetDTCs")); + expect(SDLRPCFunctionNameGetFile).to(equal(@"GetFile")); + expect(SDLRPCFunctionNameGetInteriorVehicleData).to(equal(@"GetInteriorVehicleData")); + expect(SDLRPCFunctionNameGetSystemCapability).to(equal(@"GetSystemCapability")); + expect(SDLRPCFunctionNameGetVehicleData).to(equal(@"GetVehicleData")); + expect(SDLRPCFunctionNameGetWayPoints).to(equal(@"GetWayPoints")); + expect(SDLRPCFunctionNameListFiles).to(equal(@"ListFiles")); + expect(SDLRPCFunctionNameOnAppInterfaceUnregistered).to(equal(@"OnAppInterfaceUnregistered")); + expect(SDLRPCFunctionNameOnAppServiceData).to(equal(@"OnAppServiceData")); + expect(SDLRPCFunctionNameOnAudioPassThru).to(equal(@"OnAudioPassThru")); + expect(SDLRPCFunctionNameOnButtonEvent).to(equal(@"OnButtonEvent")); + expect(SDLRPCFunctionNameOnButtonPress).to(equal(@"OnButtonPress")); + expect(SDLRPCFunctionNameOnCommand).to(equal(@"OnCommand")); + expect(SDLRPCFunctionNameOnDriverDistraction).to(equal(@"OnDriverDistraction")); + expect(SDLRPCFunctionNameOnEncodedSyncPData).to(equal(@"OnEncodedSyncPData")); + expect(SDLRPCFunctionNameOnHashChange).to(equal(@"OnHashChange")); + expect(SDLRPCFunctionNameOnHMIStatus).to(equal(@"OnHMIStatus")); + expect(SDLRPCFunctionNameOnInteriorVehicleData).to(equal(@"OnInteriorVehicleData")); + expect(SDLRPCFunctionNameOnKeyboardInput).to(equal(@"OnKeyboardInput")); + expect(SDLRPCFunctionNameOnLanguageChange).to(equal(@"OnLanguageChange")); + expect(SDLRPCFunctionNameOnPermissionsChange).to(equal(@"OnPermissionsChange")); + expect(SDLRPCFunctionNameOnRCStatus).to(equal(@"OnRCStatus")); + expect(SDLRPCFunctionNameOnSyncPData).to(equal(@"OnSyncPData")); + expect(SDLRPCFunctionNameOnSystemCapabilityUpdated).to(equal(@"OnSystemCapabilityUpdated")); + expect(SDLRPCFunctionNameOnSystemRequest).to(equal(@"OnSystemRequest")); + expect(SDLRPCFunctionNameOnTBTClientState).to(equal(@"OnTBTClientState")); + expect(SDLRPCFunctionNameOnTouchEvent).to(equal(@"OnTouchEvent")); + expect(SDLRPCFunctionNameOnVehicleData).to(equal(@"OnVehicleData")); + expect(SDLRPCFunctionNameOnWayPointChange).to(equal(@"OnWayPointChange")); + expect(SDLRPCFunctionNamePerformAppServiceInteraction).to(equal(@"PerformAppServiceInteraction")); + expect(SDLRPCFunctionNamePerformAudioPassThru).to(equal(@"PerformAudioPassThru")); + expect(SDLRPCFunctionNamePerformInteraction).to(equal(@"PerformInteraction")); + expect(SDLRPCFunctionNamePublishAppService).to(equal(@"PublishAppService")); + expect(SDLRPCFunctionNamePutFile).to(equal(@"PutFile")); + expect(SDLRPCFunctionNameReadDID).to(equal(@"ReadDID")); + expect(SDLRPCFunctionNameRegisterAppInterface).to(equal(@"RegisterAppInterface")); + expect(SDLRPCFunctionNameReserved).to(equal(@"reserved")); + expect(SDLRPCFunctionNameResetGlobalProperties).to(equal(@"ResetGlobalProperties")); + expect(SDLRPCFunctionNameScrollableMessage).to(equal(@"ScrollableMessage")); + expect(SDLRPCFunctionNameSendHapticData).to(equal(@"SendHapticData")); + expect(SDLRPCFunctionNameSendLocation).to(equal(@"SendLocation")); + expect(SDLRPCFunctionNameSetAppIcon).to(equal(@"SetAppIcon")); + expect(SDLRPCFunctionNameSetDisplayLayout).to(equal(@"SetDisplayLayout")); + expect(SDLRPCFunctionNameSetGlobalProperties).to(equal(@"SetGlobalProperties")); + expect(SDLRPCFunctionNameSetInteriorVehicleData).to(equal(@"SetInteriorVehicleData")); + expect(SDLRPCFunctionNameSetMediaClockTimer).to(equal(@"SetMediaClockTimer")); + expect(SDLRPCFunctionNameShow).to(equal(@"Show")); + expect(SDLRPCFunctionNameShowConstantTBT).to(equal(@"ShowConstantTBT")); + expect(SDLRPCFunctionNameSlider).to(equal(@"Slider")); + expect(SDLRPCFunctionNameSpeak).to(equal(@"Speak")); + expect(SDLRPCFunctionNameSubscribeButton).to(equal(@"SubscribeButton")); + expect(SDLRPCFunctionNameSubscribeVehicleData).to(equal(@"SubscribeVehicleData")); + expect(SDLRPCFunctionNameSubscribeWayPoints).to(equal(@"SubscribeWayPoints")); + expect(SDLRPCFunctionNameSyncPData).to(equal(@"SyncPData")); + expect(SDLRPCFunctionNameSystemRequest).to(equal(@"SystemRequest")); + expect(SDLRPCFunctionNameUnregisterAppInterface).to(equal(@"UnregisterAppInterface")); + expect(SDLRPCFunctionNameUnsubscribeButton).to(equal(@"UnsubscribeButton")); + expect(SDLRPCFunctionNameUnsubscribeVehicleData).to(equal(@"UnsubscribeVehicleData")); + expect(SDLRPCFunctionNameUnsubscribeWayPoints).to(equal(@"UnsubscribeWayPoints")); + expect(SDLRPCFunctionNameUpdateTurnList).to(equal(@"UpdateTurnList")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m index ee395a545..109b8ea2d 100644 --- a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m +++ b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m @@ -1,14 +1,21 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> +#import "SDLAppServiceCapability.h" +#import "SDLAppServiceManifest.h" +#import "SDLAppServiceRecord.h" +#import "SDLAppServicesCapabilities.h" #import "SDLAudioPassThruCapabilities.h" #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" #import "SDLGetSystemCapability.h" #import "SDLGetSystemCapabilityResponse.h" #import "SDLHMICapabilities.h" +#import "SDLMediaServiceManifest.h" #import "SDLNavigationCapability.h" #import "SDLNotificationConstants.h" +#import "SDLOnHMIStatus.h" +#import "SDLOnSystemCapabilityUpdated.h" #import "SDLPhoneCapability.h" #import "SDLPresetBankCapabilities.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -51,6 +58,7 @@ describe(@"System capability manager", ^{ expect(testSystemCapabilityManager.navigationCapability).to(beNil()); expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil()); expect(testSystemCapabilityManager.remoteControlCapability).to(beNil()); + expect(testSystemCapabilityManager.appServicesCapabilities).to(beNil()); }); context(@"When notified of a register app interface response", ^{ @@ -169,6 +177,7 @@ describe(@"System capability manager", ^{ expect(testSystemCapabilityManager.navigationCapability).to(beNil()); expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil()); expect(testSystemCapabilityManager.remoteControlCapability).to(beNil()); + expect(testSystemCapabilityManager.appServicesCapabilities).to(beNil()); }); }); @@ -250,15 +259,16 @@ describe(@"System capability manager", ^{ expect(testSystemCapabilityManager.navigationCapability).to(beNil()); expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil()); expect(testSystemCapabilityManager.remoteControlCapability).to(beNil()); + expect(testSystemCapabilityManager.appServicesCapabilities).to(beNil()); }); }); - context(@"When notified of a Get System Capability Response", ^{ + context(@"When sending a Get System Capability request", ^{ __block SDLGetSystemCapabilityResponse *testGetSystemCapabilityResponse; __block SDLPhoneCapability *testPhoneCapability = nil; beforeEach(^{ - testPhoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + testPhoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; testGetSystemCapabilityResponse = [[SDLGetSystemCapabilityResponse alloc] init]; testGetSystemCapabilityResponse.systemCapability = [[SDLSystemCapability alloc] init]; @@ -266,69 +276,45 @@ describe(@"System capability manager", ^{ testGetSystemCapabilityResponse.systemCapability.systemCapabilityType = SDLSystemCapabilityTypePhoneCall; }); - describe(@"If a Get System Capability Response notification is received", ^{ - context(@"If the request failed", ^{ - beforeEach(^{ - testGetSystemCapabilityResponse.success = @NO; - SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveGetSystemCapabilitiesResponse object:self rpcResponse:testGetSystemCapabilityResponse]; - [[NSNotificationCenter defaultCenter] postNotification:notification]; - }); + context(@"If the request failed with an error", ^{ + __block NSError *testError = nil; - it(@"should should not save the capabilities", ^{ - expect(testSystemCapabilityManager.phoneCapability).to(beNil()); - }); + beforeEach(^{ + testGetSystemCapabilityResponse.success = @NO; + testError = [NSError errorWithDomain:NSCocoaErrorDomain code:-234 userInfo:nil]; }); - context(@"If the request succeeded", ^{ - beforeEach(^{ - testGetSystemCapabilityResponse.success = @YES; - SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveGetSystemCapabilitiesResponse object:self rpcResponse:testGetSystemCapabilityResponse]; - [[NSNotificationCenter defaultCenter] postNotification:notification]; - }); + it(@"should should not save the capabilities", ^{ + waitUntilTimeout(1, ^(void (^done)(void)) { + [testSystemCapabilityManager updateCapabilityType:testGetSystemCapabilityResponse.systemCapability.systemCapabilityType completionHandler:^(NSError * _Nullable error, SDLSystemCapabilityManager * _Nonnull systemCapabilityManager) { + expect(error).to(equal(testConnectionManager.defaultError)); + expect(systemCapabilityManager.phoneCapability).to(beNil()); + done(); + }]; + + [NSThread sleepForTimeInterval:0.1]; - it(@"should should save the capabilities", ^{ - expect(testSystemCapabilityManager.phoneCapability).to(equal(testPhoneCapability)); + [testConnectionManager respondToLastRequestWithResponse:testGetSystemCapabilityResponse]; }); }); }); - describe(@"If a response is received for a sent Get System Capability request", ^{ - context(@"If the request failed with an error", ^{ - __block NSError *testError = nil; - - beforeEach(^{ - testGetSystemCapabilityResponse.success = @NO; - testError = [NSError errorWithDomain:NSCocoaErrorDomain code:-234 userInfo:nil]; - - waitUntilTimeout(1.0, ^(void (^done)(void)) { - [testSystemCapabilityManager updateCapabilityType:testGetSystemCapabilityResponse.systemCapability.systemCapabilityType completionHandler:^(NSError * _Nullable error, SDLSystemCapabilityManager * _Nonnull systemCapabilityManager) { - expect(error).to(equal(testConnectionManager.defaultError)); - expect(systemCapabilityManager.phoneCapability).to(beNil()); - done(); - }]; - - [testConnectionManager respondToLastRequestWithResponse:testGetSystemCapabilityResponse]; - }); - }); - - it(@"should should not save the capabilities", ^{ - expect(testSystemCapabilityManager.phoneCapability).to(beNil()); - }); + context(@"If the request succeeded", ^{ + beforeEach(^{ + testGetSystemCapabilityResponse.success = @YES; }); - context(@"If the request succeeded", ^{ - beforeEach(^{ - testGetSystemCapabilityResponse.success = @YES; - + it(@"should save the capabilitity", ^{ + waitUntilTimeout(1, ^(void (^done)(void)){ [testSystemCapabilityManager updateCapabilityType:testGetSystemCapabilityResponse.systemCapability.systemCapabilityType completionHandler:^(NSError * _Nullable error, SDLSystemCapabilityManager * _Nonnull systemCapabilityManager) { - // The handler will not be notifified + expect(testSystemCapabilityManager.phoneCapability).to(equal(testPhoneCapability)); + expect(error).to(beNil()); + done(); }]; - [testConnectionManager respondToLastRequestWithResponse:testGetSystemCapabilityResponse]; - }); + [NSThread sleepForTimeInterval:0.1]; - it(@"should not save the capabilities because a successful Get System Capability Response notification will be intercepted by the manager and be handled there", ^{ - expect(testSystemCapabilityManager.phoneCapability).to(beNil()); + [testConnectionManager respondToLastRequestWithResponse:testGetSystemCapabilityResponse]; }); }); }); @@ -349,48 +335,125 @@ describe(@"System capability manager", ^{ expect(testSystemCapabilityManager.navigationCapability).to(beNil()); expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil()); expect(testSystemCapabilityManager.remoteControlCapability).to(beNil()); + expect(testSystemCapabilityManager.appServicesCapabilities).to(beNil()); }); }); - context(@"When the system capability manager is stopped after being started", ^{ + describe(@"updating the SCM through OnSystemCapability", ^{ + __block SDLPhoneCapability *phoneCapability = nil; + beforeEach(^{ - SDLDisplayCapabilities *testDisplayCapabilities = [[SDLDisplayCapabilities alloc] init]; - testDisplayCapabilities.graphicSupported = @NO; + phoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + SDLSystemCapability *newCapability = [[SDLSystemCapability alloc] initWithPhoneCapability:phoneCapability]; + SDLOnSystemCapabilityUpdated *update = [[SDLOnSystemCapabilityUpdated alloc] initWithSystemCapability:newCapability]; + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil rpcNotification:update]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); - SDLRegisterAppInterfaceResponse *testRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init]; - testRegisterAppInterfaceResponse.displayCapabilities = testDisplayCapabilities; - testRegisterAppInterfaceResponse.success = @YES; + it(@"should properly update phone capability", ^{ + expect(testSystemCapabilityManager.phoneCapability).toEventually(equal(phoneCapability)); + }); + }); + + describe(@"merging app services capability changes", ^{ + __block SDLAppServicesCapabilities *baseAppServices = nil; + __block SDLAppServiceCapability *deleteCapability = nil; + __block SDLAppServiceCapability *updateCapability = nil; + __block SDLAppServiceCapability *newCapability = nil; - SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:testRegisterAppInterfaceResponse]; + beforeEach(^{ + SDLAppServiceManifest *deleteCapabilityManifest = [[SDLAppServiceManifest alloc] initWithMediaServiceName:@"Delete me" serviceIcon:nil allowAppConsumers:YES rpcSpecVersion:nil handledRPCs:nil mediaServiceManifest:[[SDLMediaServiceManifest alloc] init]]; + SDLAppServiceRecord *deleteCapabilityRecord = [[SDLAppServiceRecord alloc] initWithServiceID:@"1234" serviceManifest:deleteCapabilityManifest servicePublished:YES serviceActive:YES]; + deleteCapability = [[SDLAppServiceCapability alloc] initWithUpdatedAppServiceRecord:deleteCapabilityRecord]; + + SDLAppServiceManifest *updateCapabilityManifest = [[SDLAppServiceManifest alloc] initWithMediaServiceName:@"Update me" serviceIcon:nil allowAppConsumers:YES rpcSpecVersion:nil handledRPCs:nil mediaServiceManifest:[[SDLMediaServiceManifest alloc] init]]; + SDLAppServiceRecord *updateCapabilityRecord = [[SDLAppServiceRecord alloc] initWithServiceID:@"2345" serviceManifest:updateCapabilityManifest servicePublished:YES serviceActive:NO]; + updateCapability = [[SDLAppServiceCapability alloc] initWithUpdatedAppServiceRecord:updateCapabilityRecord]; + + baseAppServices = [[SDLAppServicesCapabilities alloc] initWithAppServices:@[deleteCapability, updateCapability]]; + SDLSystemCapability *appServiceCapability = [[SDLSystemCapability alloc] initWithAppServicesCapabilities:baseAppServices]; + SDLOnSystemCapabilityUpdated *update = [[SDLOnSystemCapabilityUpdated alloc] initWithSystemCapability:appServiceCapability]; + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil rpcNotification:update]; [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); - expect(testSystemCapabilityManager.displayCapabilities).to(equal(testDisplayCapabilities)); + it(@"should have the correct base services", ^{ + expect(testSystemCapabilityManager.appServicesCapabilities).to(equal(baseAppServices)); }); - describe(@"When stopped", ^{ - beforeEach(^{ - [testSystemCapabilityManager stop]; - }); + describe(@"when sending the merge update", ^{ + it(@"should correctly merge", ^{ + deleteCapability.updateReason = SDLServiceUpdateRemoved; + deleteCapability.updatedAppServiceRecord.servicePublished = @NO; + deleteCapability.updatedAppServiceRecord.serviceActive = @NO; - it(@"It should reset the system capability manager properties correctly", ^{ - expect(testSystemCapabilityManager.displayCapabilities).to(beNil()); - expect(testSystemCapabilityManager.hmiCapabilities).to(beNil()); - expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil()); - expect(testSystemCapabilityManager.buttonCapabilities).to(beNil()); - expect(testSystemCapabilityManager.presetBankCapabilities).to(beNil()); - expect(testSystemCapabilityManager.hmiZoneCapabilities).to(beNil()); - expect(testSystemCapabilityManager.speechCapabilities).to(beNil()); - expect(testSystemCapabilityManager.prerecordedSpeechCapabilities).to(beNil()); - expect(testSystemCapabilityManager.vrCapability).to(beFalse()); - expect(testSystemCapabilityManager.audioPassThruCapabilities).to(beNil()); - expect(testSystemCapabilityManager.pcmStreamCapability).to(beNil()); - expect(testSystemCapabilityManager.phoneCapability).to(beNil()); - expect(testSystemCapabilityManager.navigationCapability).to(beNil()); - expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil()); - expect(testSystemCapabilityManager.remoteControlCapability).to(beNil()); + updateCapability.updateReason = SDLServiceUpdateActivated; + updateCapability.updatedAppServiceRecord.serviceActive = @YES; + + SDLAppServiceManifest *newCapabilityManifest = [[SDLAppServiceManifest alloc] initWithMediaServiceName:@"New me" serviceIcon:nil allowAppConsumers:YES rpcSpecVersion:nil handledRPCs:nil mediaServiceManifest:[[SDLMediaServiceManifest alloc] init]]; + SDLAppServiceRecord *newCapabilityRecord = [[SDLAppServiceRecord alloc] initWithServiceID:@"3456" serviceManifest:newCapabilityManifest servicePublished:YES serviceActive:NO]; + newCapability = [[SDLAppServiceCapability alloc] initWithUpdateReason:SDLServiceUpdatePublished updatedAppServiceRecord:newCapabilityRecord]; + + SDLAppServicesCapabilities *appServicesUpdate = [[SDLAppServicesCapabilities alloc] initWithAppServices:@[deleteCapability, updateCapability, newCapability]]; + SDLSystemCapability *appServiceCapability = [[SDLSystemCapability alloc] initWithAppServicesCapabilities:appServicesUpdate]; + SDLOnSystemCapabilityUpdated *update = [[SDLOnSystemCapabilityUpdated alloc] initWithSystemCapability:appServiceCapability]; + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil rpcNotification:update]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + + expect(testSystemCapabilityManager.appServicesCapabilities.appServices).toNot(contain(deleteCapability)); + expect(testSystemCapabilityManager.appServicesCapabilities.appServices).to(haveCount(2)); + + SDLAppServiceCapability *firstCapability = testSystemCapabilityManager.appServicesCapabilities.appServices.firstObject; + SDLAppServiceCapability *secondCapability = testSystemCapabilityManager.appServicesCapabilities.appServices.lastObject; + + expect(firstCapability.updateReason).to(equal(SDLServiceUpdatePublished)); + expect(firstCapability.updatedAppServiceRecord.serviceID).to(equal(@"3456")); + + expect(secondCapability.updateReason).to(equal(SDLServiceUpdateActivated)); + expect(secondCapability.updatedAppServiceRecord.serviceID).to(equal(@"2345")); + expect(secondCapability.updatedAppServiceRecord.serviceActive).to(beTrue()); }); }); }); + + describe(@"when entering HMI FULL", ^{ + beforeEach(^{ + SDLOnHMIStatus *fullStatus = [[SDLOnHMIStatus alloc] init]; + fullStatus.hmiLevel = SDLHMILevelFull; + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeHMIStatusNotification object:nil rpcNotification:fullStatus]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); + + it(@"should send GetSystemCapability subscriptions for all known capabilities", ^{ + expect(testConnectionManager.receivedRequests).to(haveCount(5)); + expect(testConnectionManager.receivedRequests.lastObject).to(beAnInstanceOf([SDLGetSystemCapability class])); + }); + }); + + describe(@"when the system capability manager is stopped after being started", ^{ + beforeEach(^{ + [testSystemCapabilityManager stop]; + }); + + it(@"It should reset the system capability manager properties correctly", ^{ + expect(testSystemCapabilityManager.displayCapabilities).to(beNil()); + expect(testSystemCapabilityManager.hmiCapabilities).to(beNil()); + expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil()); + expect(testSystemCapabilityManager.buttonCapabilities).to(beNil()); + expect(testSystemCapabilityManager.presetBankCapabilities).to(beNil()); + expect(testSystemCapabilityManager.hmiZoneCapabilities).to(beNil()); + expect(testSystemCapabilityManager.speechCapabilities).to(beNil()); + expect(testSystemCapabilityManager.prerecordedSpeechCapabilities).to(beNil()); + expect(testSystemCapabilityManager.vrCapability).to(beFalse()); + expect(testSystemCapabilityManager.audioPassThruCapabilities).to(beNil()); + expect(testSystemCapabilityManager.pcmStreamCapability).to(beNil()); + expect(testSystemCapabilityManager.phoneCapability).to(beNil()); + expect(testSystemCapabilityManager.navigationCapability).to(beNil()); + expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil()); + expect(testSystemCapabilityManager.remoteControlCapability).to(beNil()); + expect(testSystemCapabilityManager.appServicesCapabilities).to(beNil()); + }); + }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m b/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m index 7eb43733f..ef4756bda 100644 --- a/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m +++ b/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m @@ -11,7 +11,8 @@ #import "SDLRPCRequest.h" #import "SDLPutFile.h" #import "SDLPutFileResponse.h" -#import "SDLNames.h" +#import "SDLRPCParameterNames.h" +#import "SDLRPCFunctionNames.h" #import "TestResponse.h" NS_ASSUME_NONNULL_BEGIN @@ -21,13 +22,13 @@ NS_ASSUME_NONNULL_BEGIN - (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { [super sendConnectionRequest:request withResponseHandler:handler]; - if ([[request name] isEqualToString:SDLNamePutFile]) { + if ([[request name] isEqualToString:SDLRPCFunctionNamePutFile]) { SDLPutFile *putfileRequest = (SDLPutFile *)request; TestResponse *response = self.responses[putfileRequest.syncFileName]; if (response == nil || handler == nil) { return; } handler(request, response.testResponse, response.testError); - } else if ([[request name] isEqualToString:SDLNameDeleteFile]) { + } else if ([[request name] isEqualToString:SDLRPCFunctionNameDeleteFile]) { SDLDeleteFile *deleteFileRequest = (SDLDeleteFile *)request; TestResponse *response = self.responses[deleteFileRequest.syncFileName]; diff --git a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h index e1a24418b..b538249b0 100644 --- a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h +++ b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h @@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN /** * All received requests. Chronological order. The 0th element will be the first request received; the nth request will be the n+1th request received. */ -@property (copy, nonatomic, readonly) NSMutableArray<__kindof SDLRPCRequest *> *receivedRequests; +@property (copy, nonatomic, readonly) NSMutableArray<__kindof SDLRPCMessage *> *receivedRequests; /** * The block passed for the last request send with sendRequest:withCompletionHandler: diff --git a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m index 4c8ea3a50..5ba813171 100644 --- a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m +++ b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m @@ -21,15 +21,20 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - _receivedRequests = [NSMutableArray<__kindof SDLRPCRequest *> array]; + _receivedRequests = [NSMutableArray<__kindof SDLRPCMessage *> array]; return self; } +- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc { + [self.receivedRequests addObject:rpc]; +} + - (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { self.lastRequestBlock = handler; - request.correlationID = [self test_nextCorrelationID]; - [self.receivedRequests addObject:request]; + SDLRPCRequest *requestRPC = (SDLRPCRequest *)request; + requestRPC.correlationID = [self test_nextCorrelationID]; + [self.receivedRequests addObject:requestRPC]; } - (void)sendConnectionManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { @@ -98,7 +103,7 @@ NS_ASSUME_NONNULL_BEGIN } - (void)reset { - _receivedRequests = [NSMutableArray<__kindof SDLRPCRequest *> array]; + _receivedRequests = [NSMutableArray<__kindof SDLRPCMessage *> array]; _lastRequestBlock = nil; } diff --git a/SmartDeviceLinkTests/TestUtilities/TestMultipleRequestsConnectionManager.m b/SmartDeviceLinkTests/TestUtilities/TestMultipleRequestsConnectionManager.m index 8c6cc8b06..b1935a8ab 100644 --- a/SmartDeviceLinkTests/TestUtilities/TestMultipleRequestsConnectionManager.m +++ b/SmartDeviceLinkTests/TestUtilities/TestMultipleRequestsConnectionManager.m @@ -10,7 +10,7 @@ #import "SDLAddCommand.h" #import "SDLAddCommandResponse.h" -#import "SDLNames.h" +#import "SDLRPCFunctionNames.h" #import "TestResponse.h" @implementation TestMultipleRequestsConnectionManager @@ -24,10 +24,14 @@ return self; } -- (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(SDLResponseHandler)handler { +- (void)sendConnectionRPC:(__kindof SDLRPCMessage *)rpc { + [super sendConnectionRPC:rpc]; +} + +- (void)sendConnectionRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { [super sendConnectionRequest:request withResponseHandler:handler]; - NSAssert([request.name isEqualToString:SDLNameAddCommand], @"The TestMultipleRequestsConnectionManager is only setup for SDLAddCommand"); + NSAssert([request.name isEqualToString:SDLRPCFunctionNameAddCommand], @"The TestMultipleRequestsConnectionManager is only setup for SDLAddCommand"); SDLAddCommand *addCommand = (SDLAddCommand *)request; TestResponse *response = self.responses[addCommand.correlationID]; diff --git a/SmartDeviceLinkTests/TransportSpecs/SDLTCPTransportSpec.m b/SmartDeviceLinkTests/TransportSpecs/TCP/SDLTCPTransportSpec.m index e9a25f834..e9a25f834 100644 --- a/SmartDeviceLinkTests/TransportSpecs/SDLTCPTransportSpec.m +++ b/SmartDeviceLinkTests/TransportSpecs/TCP/SDLTCPTransportSpec.m diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/EAAccessory+OCMock.m b/SmartDeviceLinkTests/TransportSpecs/iAP/EAAccessory+OCMock.m new file mode 100644 index 000000000..1c32c4b73 --- /dev/null +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/EAAccessory+OCMock.m @@ -0,0 +1,62 @@ +// +// EAAccessory+OCMock.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/24/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> +#import <UIKit/UIKit.h> +#import <OCMock/OCMock.h> +#import <ExternalAccessory/ExternalAccessory.h> + +// Based off of the Pebble Accessory OCKMock by Heiko Behrens https://github.com/HBehrens/PebbleKit-ios-sdk-test/blob/master/PebbleVendor/EAAccessoryFramework%2BOCMock.m + +@implementation EAAccessory (OCMock) +static id coreMockDelegate = nil; ++ (EAAccessory *)sdlCoreMock { + id mockEAAccessory = OCMClassMock([EAAccessory class]); + OCMStub([mockEAAccessory protocolStrings]).andReturn(@[@"com.smartdevicelink.multisession"]); + [[[mockEAAccessory stub] andReturnValue:OCMOCK_VALUE((NSString *)@"SDLTestHeadUnit")] name]; + OCMStub([mockEAAccessory modelNumber]).andReturn(@"0.0.0"); + OCMStub([mockEAAccessory serialNumber]).andReturn(@"123456"); + OCMStub([mockEAAccessory firmwareRevision]).andReturn(@"1.2.3"); + OCMStub([mockEAAccessory hardwareRevision]).andReturn(@"3.2.1"); + OCMStub([mockEAAccessory isConnected]).andReturn(OCMOCK_VALUE(YES)); + OCMStub([mockEAAccessory setDelegate:[OCMArg checkWithBlock:^BOOL(id obj) { + coreMockDelegate = obj; + return YES; + }]]); + OCMStub([mockEAAccessory delegate]).andCall(self, @selector(coreDelegate)); + [[[mockEAAccessory stub] andReturnValue:OCMOCK_VALUE((NSUInteger){5})] connectionID]; + + return mockEAAccessory; +} +- (id)coreDelegate { + return coreMockDelegate; +} +@end + +@implementation EAAccessoryManager (OCMock) ++ (EAAccessoryManager *)mockManager { + id mockEAAccessoryManager = OCMClassMock([EAAccessoryManager class]); + id mockEAAccessory = [EAAccessory sdlCoreMock]; + OCMStub([mockEAAccessoryManager connectedAccessories]).andReturn(@[mockEAAccessory]); + OCMStub([mockEAAccessory registerForLocalNotifications]); + OCMStub([mockEAAccessory unregisterForLocalNotifications]); + return mockEAAccessoryManager; +} +@end + +@implementation EASession (OCMock) ++ (EASession *)mockSessionWithAccessory:(EAAccessory*)mockAccessory protocolString:(NSString*)mockProtocolString inputStream:(NSInputStream*)mockInputStream outputStream:(NSOutputStream*)mockOutputStream { + id session = OCMClassMock([EASession class]); + OCMStub([session accessory]).andReturn(mockAccessory); + OCMStub([session protocolString]).andReturn(mockProtocolString); + OCMStub([session inputStream]).andReturn(mockInputStream); + OCMStub([session outputStream]).andReturn(mockOutputStream); + return session; +} +@end + diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m new file mode 100644 index 000000000..672aa76b1 --- /dev/null +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPSessionSpec.m @@ -0,0 +1,165 @@ +// +// SDLIAPSessionSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/23/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> +#import <OCMock/OCMock.h> + +#import "EAAccessory+OCMock.m" +#import "SDLIAPSession.h" +#import "SDLMutableDataQueue.h" +#import "SDLStreamDelegate.h" + +@interface SDLIAPSession () +@property (nonatomic, assign) BOOL isInputStreamOpen; +@property (nonatomic, assign) BOOL isOutputStreamOpen; +@property (nonatomic, assign) BOOL isDataSession; +@property (nullable, nonatomic, strong) NSThread *ioStreamThread; +@property (nonatomic, strong) SDLMutableDataQueue *sendDataQueue; +@property (nonatomic, strong) dispatch_semaphore_t canceledSemaphore; +- (BOOL)sdl_startWithSession:(EASession *)session; +@end + +QuickSpecBegin(SDLIAPSessionSpec) + +describe(@"SDLIAPSession", ^{ + __block SDLIAPSession *iapSession = nil; + __block EAAccessory *mockAccessory = nil; + __block NSString *protocol = nil; + + describe(@"Initialization", ^{ + beforeEach(^{ + mockAccessory = [EAAccessory.class sdlCoreMock]; + }); + + it(@"Should init correctly with a control protocol string", ^{ + protocol = @"com.smartdevicelink.prot0"; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + + expect(iapSession.isDataSession).to(beFalse()); + }); + + it(@"Should init correctly with a multisession protocol string", ^{ + protocol = @"com.smartdevicelink.multisession"; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + + expect(iapSession.isDataSession).to(beTrue()); + }); + + it(@"Should init correctly with a legacy protocol string", ^{ + protocol = @"com.ford.sync.prot0"; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + + expect(iapSession.isDataSession).to(beTrue()); + }); + + it(@"Should init correctly with a indexed protocol string", ^{ + protocol = @"com.smartdevicelink.prot1"; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + + expect(iapSession.isDataSession).to(beTrue()); + }); + + afterEach(^{ + expect(iapSession).toNot(beNil()); + expect(iapSession.protocol).to(match(protocol)); + expect(iapSession.accessory).to(equal(mockAccessory)); + expect(iapSession.canceledSemaphore).toNot(beNil()); + expect(iapSession.sendDataQueue).toNot(beNil()); + expect(iapSession.isInputStreamOpen).to(beFalse()); + expect(iapSession.isOutputStreamOpen).to(beFalse()); + }); + }); + + describe(@"When starting a session", ^{ + __block SDLStreamDelegate *streamDelegate = nil; + __block NSInputStream *inputStream = nil; + __block NSOutputStream *outputStream = nil; + + describe(@"unsuccessfully", ^{ + beforeEach(^{ + protocol = @"com.smartdevicelink.multisession"; + mockAccessory = [EAAccessory.class sdlCoreMock]; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + streamDelegate = [[SDLStreamDelegate alloc] init]; + iapSession.streamDelegate = streamDelegate; + }); + + it(@"the start method should return false if a session cannot be created", ^{ + BOOL success = [iapSession sdl_startWithSession:nil]; + expect(success).to(beFalse()); + expect(iapSession.ioStreamThread).to(beNil()); + expect(iapSession.isInputStreamOpen).to(beFalse()); + expect(iapSession.isOutputStreamOpen).to(beFalse()); + }); + }); + + describe(@"successfully", ^{ + beforeEach(^{ + inputStream = OCMClassMock([NSInputStream class]); + outputStream = OCMClassMock([NSOutputStream class]); + }); + + context(@"if creating a control session", ^{ + beforeEach(^{ + protocol = @"com.smartdevicelink.prot0"; + mockAccessory = [EAAccessory.class sdlCoreMock]; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + streamDelegate = [[SDLStreamDelegate alloc] init]; + iapSession.streamDelegate = streamDelegate; + + expect(iapSession.isDataSession).to(beFalse()); + }); + + it(@"should establish a control session ", ^{ + EASession *mockSession = [EASession.class mockSessionWithAccessory:mockAccessory protocolString:protocol inputStream:inputStream outputStream:outputStream]; + iapSession.easession = mockSession; + + BOOL success = [iapSession sdl_startWithSession:mockSession]; + expect(success).to(beTrue()); + expect(iapSession.ioStreamThread).to(beNil()); + expect(iapSession.easession.inputStream).toNot(beNil()); + expect(iapSession.easession.outputStream).toNot(beNil()); + }); + }); + + context(@"if creating a data session", ^{ + beforeEach(^{ + protocol = @"com.smartdevicelink.multisession"; + mockAccessory = [EAAccessory.class sdlCoreMock]; + iapSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:protocol]; + streamDelegate = [[SDLStreamDelegate alloc] init]; + iapSession.streamDelegate = streamDelegate; + + expect(iapSession.isDataSession).to(beTrue()); + }); + + it(@"should establish a data session ", ^{ + EASession *mockSession = [EASession.class mockSessionWithAccessory:mockAccessory protocolString:protocol inputStream:inputStream outputStream:outputStream]; + iapSession.easession = mockSession; + BOOL success = [iapSession sdl_startWithSession:mockSession]; + expect(success).to(beTrue()); + expect(iapSession.ioStreamThread).toNot(beNil()); + // The streams are opened in the `sdl_streamHasSpaceHandler` method + expect(iapSession.easession.inputStream).toNot(beNil()); + expect(iapSession.easession.outputStream).toNot(beNil()); + }); + }); + }); + + afterEach(^{ + [iapSession stop]; + + expect(iapSession.easession).to(beNil()); + expect(iapSession.ioStreamThread).to(beNil()); + }); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m new file mode 100644 index 000000000..7223c8d0b --- /dev/null +++ b/SmartDeviceLinkTests/TransportSpecs/iAP/SDLIAPTransportSpec.m @@ -0,0 +1,118 @@ +// +// SDLIAPTransportSpec.m +// SmartDeviceLinkTests +// +// Created by Nicole on 1/23/19. +// Copyright © 2019 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> +#import <OCMock/OCMock.h> + +#import "EAAccessory+OCMock.m" +#import "SDLIAPTransport.h" +#import "SDLIAPSession.h" +#import "SDLTimer.h" + +@interface SDLIAPTransport () +@property (assign, nonatomic) int retryCounter; +@property (assign, nonatomic) BOOL sessionSetupInProgress; +@property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTaskId; +@property (nullable, strong, nonatomic) SDLTimer *protocolIndexTimer; +@property (assign, nonatomic) BOOL accessoryConnectDuringActiveSession; +- (BOOL)sdl_isSessionActive:(SDLIAPSession *)session newAccessory:(EAAccessory *)newAccessory; +@end + +QuickSpecBegin(SDLIAPTransportSpec) + +describe(@"SDLIAPTransport", ^{ + __block SDLIAPTransport *transport = nil; + __block id mockTransportDelegate = nil; + __block EAAccessory *mockAccessory = nil; + + beforeEach(^{ + transport = [SDLIAPTransport new]; + mockTransportDelegate = OCMProtocolMock(@protocol(SDLTransportDelegate)); + transport.delegate = mockTransportDelegate; + mockAccessory = [EAAccessory.class sdlCoreMock]; + }); + + describe(@"Initialization", ^{ + it(@"Should init correctly", ^{ + expect(transport.delegate).toNot(beNil()); + expect(transport.controlSession).to(beNil()); + expect(transport.session).to(beNil()); + expect(transport.sessionSetupInProgress).to(beFalse()); + expect(transport.session).to(beNil()); + expect(transport.controlSession).to(beNil()); + expect(transport.retryCounter).to(equal(0)); + expect(transport.protocolIndexTimer).to(beNil()); + expect(transport.accessoryConnectDuringActiveSession).to(beFalse()); + }); + }); + + describe(@"When an accessory connects while a session is not open", ^{ + beforeEach(^{ + transport.session = nil; + }); + + it(@"If no session is open, it should create a session when an accessory connects", ^{ + BOOL sessionInProgress = [transport sdl_isSessionActive:transport.session newAccessory:mockAccessory]; + expect(sessionInProgress).to(beFalse()); + }); + }); + + describe(@"When an accessory connects when a session is already open", ^{ + beforeEach(^{ + transport.session = OCMClassMock([SDLIAPSession class]); + }); + + it(@"If a session is in progress", ^{ + BOOL sessionInProgress = [transport sdl_isSessionActive:transport.session newAccessory:mockAccessory]; + expect(sessionInProgress).to(beTrue()); + }); + }); + + describe(@"When an accessory disconnects while a data session is open", ^{ + beforeEach(^{ + transport.controlSession = nil; + transport.session = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:@"com.smartdevicelink.multisession"]; + transport.accessoryConnectDuringActiveSession = YES; + NSNotification *accessoryDisconnectedNotification = [[NSNotification alloc] initWithName:EAAccessoryDidDisconnectNotification object:nil userInfo:@{EAAccessoryKey: mockAccessory}]; + [[NSNotificationCenter defaultCenter] postNotification:accessoryDisconnectedNotification]; + }); + + it(@"It should close the open data session", ^{ + expect(transport.session).to(beNil()); + expect(transport.controlSession).to(beNil()); + expect(transport.retryCounter).to(equal(0)); + expect(transport.accessoryConnectDuringActiveSession).to(beFalse()); + expect(transport.sessionSetupInProgress).to(beFalse()); + }); + }); + + describe(@"When an accessory disconnects while a control session is open", ^{ + beforeEach(^{ + transport.controlSession = [[SDLIAPSession alloc] initWithAccessory:mockAccessory forProtocol:@"com.smartdevicelink.prot0"];; + transport.session = nil; + transport.accessoryConnectDuringActiveSession = NO; + transport.sessionSetupInProgress = YES; + transport.retryCounter = 1; + NSNotification *accessoryDisconnectedNotification = [[NSNotification alloc] initWithName:EAAccessoryDidDisconnectNotification object:nil userInfo:@{EAAccessoryKey: mockAccessory}]; + [[NSNotificationCenter defaultCenter] postNotification:accessoryDisconnectedNotification]; + }); + + it(@"It should close the open control session", ^{ + expect(transport.session).to(beNil()); + expect(transport.controlSession).to(beNil()); + expect(transport.retryCounter).to(equal(0)); + expect(transport.accessoryConnectDuringActiveSession).to(beFalse()); + expect(transport.sessionSetupInProgress).to(beFalse()); + }); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m index b09d1b4e5..f730c17c1 100644 --- a/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m +++ b/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m @@ -2,6 +2,7 @@ #import <Nimble/Nimble.h> #import "SDLGlobals.h" +#import "SDLVersion.h" QuickSpecBegin(SDLGlobalsSpec) @@ -14,68 +15,60 @@ describe(@"The SDLGlobals class", ^{ describe(@"when just initialized", ^{ it(@"should properly set parameters", ^{ - expect(testGlobals.protocolVersion).to(equal(@"1.0.0")); - expect(testGlobals.majorProtocolVersion).to(equal(1)); - expect(testGlobals.maxHeadUnitVersion).to(equal(@"0.0.0")); + expect(testGlobals.protocolVersion.stringVersion).to(equal(@"1.0.0")); + expect(testGlobals.protocolVersion.major).to(equal(1)); + expect(testGlobals.maxHeadUnitProtocolVersion.stringVersion).to(equal(@"0.0.0")); expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV1MTUSize)); - expect(testGlobals.rpcVersion).to(equal([[SDLSyncMsgVersion alloc] initWithMajorVersion:1 minorVersion:0 patchVersion:0])); - }); - }); - - describe(@"setting the RPC version", ^{ - it(@"should properly set", ^{ - testGlobals.rpcVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:4 minorVersion:2 patchVersion:3]; - - expect(testGlobals.rpcVersion).to(equal([[SDLSyncMsgVersion alloc] initWithMajorVersion:4 minorVersion:2 patchVersion:3])); + expect(testGlobals.rpcVersion).to(equal([[SDLVersion alloc] initWithMajor:1 minor:0 patch:0])); }); }); describe(@"setting maxHeadUnitVersion should alter negotiated protocol version", ^{ it(@"should use the max head unit version when lower than max proxy version", ^{ - NSString *someVersionLowerThanMaxProxyVersion = @"2.0.0"; - testGlobals.maxHeadUnitVersion = someVersionLowerThanMaxProxyVersion; + SDLVersion *someVersionLowerThanMaxProxyVersion = [SDLVersion versionWithString:@"2.0.0"]; + testGlobals.maxHeadUnitProtocolVersion = someVersionLowerThanMaxProxyVersion; expect(testGlobals.protocolVersion).to(equal(someVersionLowerThanMaxProxyVersion)); - expect(testGlobals.maxHeadUnitVersion).to(equal(someVersionLowerThanMaxProxyVersion)); + expect(testGlobals.maxHeadUnitProtocolVersion).to(equal(someVersionLowerThanMaxProxyVersion)); }); it(@"should use the max proxy version when lower than max head unit version", ^{ - NSString *someVersionHigherThanMaxProxyVersion = @"1000.0.0"; - testGlobals.maxHeadUnitVersion = someVersionHigherThanMaxProxyVersion; + SDLVersion *someVersionHigherThanMaxProxyVersion = [SDLVersion versionWithString:@"1000.0.0"]; + testGlobals.maxHeadUnitProtocolVersion = someVersionHigherThanMaxProxyVersion; - expect(([testGlobals.protocolVersion compare:someVersionHigherThanMaxProxyVersion options:NSNumericSearch] == NSOrderedDescending)).to(beFalsy()); - expect(testGlobals.maxHeadUnitVersion).to(equal(someVersionHigherThanMaxProxyVersion)); + expect([testGlobals.protocolVersion isGreaterThanVersion:someVersionHigherThanMaxProxyVersion]).to(beFalse()); + expect(testGlobals.maxHeadUnitProtocolVersion).to(equal(someVersionHigherThanMaxProxyVersion)); }); }); describe(@"getting the max MTU version", ^{ context(@"when protocol version is 1 - 2", ^{ it(@"should return the correct value when protocol version is 1", ^{ - testGlobals.maxHeadUnitVersion = @"1.0.0"; + testGlobals.maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"1.0.0"]; expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV1MTUSize)); }); it(@"should return the correct value when protocol version is 2", ^{ - testGlobals.maxHeadUnitVersion = @"2.0.0"; + testGlobals.maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"2.0.0"]; expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV1MTUSize)); }); }); context(@"when protocol version is 3 - 4", ^{ it(@"should return the correct value when protocol version is 3", ^{ - testGlobals.maxHeadUnitVersion = @"3.0.0"; + testGlobals.maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"3.0.0"]; expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV3MTUSize)); }); it(@"should return the correct value when protocol version is 4", ^{ - testGlobals.maxHeadUnitVersion = @"4.0.0"; + testGlobals.maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"4.0.0"]; expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV3MTUSize)); }); describe(@"when the max proxy version is lower than max head unit version", ^{ beforeEach(^{ - NSString *someVersionHigherThanMaxProxyVersion = @"1000.0.0"; - testGlobals.maxHeadUnitVersion = someVersionHigherThanMaxProxyVersion; + SDLVersion *someVersionHigherThanMaxProxyVersion = [SDLVersion versionWithString:@"1000.0.0"]; + testGlobals.maxHeadUnitProtocolVersion = someVersionHigherThanMaxProxyVersion; }); it(@"should return the v1 - 2 value", ^{ @@ -91,7 +84,7 @@ describe(@"The SDLGlobals class", ^{ __block NSUInteger dynamicMTUSize2 = 54321; beforeEach(^{ - testGlobals.maxHeadUnitVersion = @"5.0.0"; + testGlobals.maxHeadUnitProtocolVersion = [SDLVersion versionWithString:@"5.0.0"]; }); context(@"Setting the RPC service MTU", ^{ diff --git a/docs/Classes.html b/docs/Classes.html index f552e39ae..5778b4789 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -13,6 +13,11 @@ <li><a href="#section-SDLAlertManeuverResponse">SDLAlertManeuverResponse</a></li> <li><a href="#section-SDLAlertResponse">SDLAlertResponse</a></li> <li><a href="#section-SDLAppInfo">SDLAppInfo</a></li> + <li><a href="#section-SDLAppServiceCapability">SDLAppServiceCapability</a></li> + <li><a href="#section-SDLAppServiceData">SDLAppServiceData</a></li> + <li><a href="#section-SDLAppServiceManifest">SDLAppServiceManifest</a></li> + <li><a href="#section-SDLAppServiceRecord">SDLAppServiceRecord</a></li> + <li><a href="#section-SDLAppServicesCapabilities">SDLAppServicesCapabilities</a></li> <li><a href="#section-SDLArtwork">SDLArtwork</a></li> <li><a href="#section-SDLAudioControlCapabilities">SDLAudioControlCapabilities</a></li> <li><a href="#section-SDLAudioControlData">SDLAudioControlData</a></li> @@ -31,6 +36,7 @@ <li><a href="#section-SDLChoiceSet">SDLChoiceSet</a></li> <li><a href="#section-SDLClimateControlCapabilities">SDLClimateControlCapabilities</a></li> <li><a href="#section-SDLClimateControlData">SDLClimateControlData</a></li> + <li><a href="#section-SDLCloudAppProperties">SDLCloudAppProperties</a></li> <li><a href="#section-SDLClusterModeStatus">SDLClusterModeStatus</a></li> <li><a href="#section-SDLConfiguration">SDLConfiguration</a></li> <li><a href="#section-SDLCreateInteractionChoiceSet">SDLCreateInteractionChoiceSet</a></li> @@ -63,10 +69,17 @@ <li><a href="#section-SDLFileManager">SDLFileManager</a></li> <li><a href="#section-SDLFileManagerConfiguration">SDLFileManagerConfiguration</a></li> <li><a href="#section-SDLFuelRange">SDLFuelRange</a></li> + <li><a href="#section-SDLFunctionID">SDLFunctionID</a></li> <li><a href="#section-SDLGPSData">SDLGPSData</a></li> <li><a href="#section-SDLGenericResponse">SDLGenericResponse</a></li> + <li><a href="#section-SDLGetAppServiceData">SDLGetAppServiceData</a></li> + <li><a href="#section-SDLGetAppServiceDataResponse">SDLGetAppServiceDataResponse</a></li> + <li><a href="#section-SDLGetCloudAppProperties">SDLGetCloudAppProperties</a></li> + <li><a href="#section-SDLGetCloudAppPropertiesResponse">SDLGetCloudAppPropertiesResponse</a></li> <li><a href="#section-SDLGetDTCs">SDLGetDTCs</a></li> <li><a href="#section-SDLGetDTCsResponse">SDLGetDTCsResponse</a></li> + <li><a href="#section-SDLGetFile">SDLGetFile</a></li> + <li><a href="#section-SDLGetFileResponse">SDLGetFileResponse</a></li> <li><a href="#section-SDLGetInteriorVehicleData">SDLGetInteriorVehicleData</a></li> <li><a href="#section-SDLGetInteriorVehicleDataResponse">SDLGetInteriorVehicleDataResponse</a></li> <li><a href="#section-SDLGetSystemCapability">SDLGetSystemCapability</a></li> @@ -107,15 +120,21 @@ <li><a href="#section-SDLManager">SDLManager</a></li> <li><a href="#section-SDLMassageCushionFirmness">SDLMassageCushionFirmness</a></li> <li><a href="#section-SDLMassageModeData">SDLMassageModeData</a></li> + <li><a href="#section-SDLMediaServiceData">SDLMediaServiceData</a></li> + <li><a href="#section-SDLMediaServiceManifest">SDLMediaServiceManifest</a></li> <li><a href="#section-SDLMenuCell">SDLMenuCell</a></li> <li><a href="#section-SDLMenuParams">SDLMenuParams</a></li> <li><a href="#section-SDLMetadataTags">SDLMetadataTags</a></li> <li><a href="#section-SDLModuleData">SDLModuleData</a></li> <li><a href="#section-SDLMyKey">SDLMyKey</a></li> <li><a href="#section-SDLNavigationCapability">SDLNavigationCapability</a></li> + <li><a href="#section-SDLNavigationInstruction">SDLNavigationInstruction</a></li> + <li><a href="#section-SDLNavigationServiceData">SDLNavigationServiceData</a></li> + <li><a href="#section-SDLNavigationServiceManifest">SDLNavigationServiceManifest</a></li> <li><a href="#section-SDLNotificationConstants">SDLNotificationConstants</a></li> <li><a href="#section-SDLOasisAddress">SDLOasisAddress</a></li> <li><a href="#section-SDLOnAppInterfaceUnregistered">SDLOnAppInterfaceUnregistered</a></li> + <li><a href="#section-SDLOnAppServiceData">SDLOnAppServiceData</a></li> <li><a href="#section-SDLOnAudioPassThru">SDLOnAudioPassThru</a></li> <li><a href="#section-SDLOnButtonEvent">SDLOnButtonEvent</a></li> <li><a href="#section-SDLOnButtonPress">SDLOnButtonPress</a></li> @@ -131,12 +150,15 @@ <li><a href="#section-SDLOnPermissionsChange">SDLOnPermissionsChange</a></li> <li><a href="#section-SDLOnRCStatus">SDLOnRCStatus</a></li> <li><a href="#section-SDLOnSyncPData">SDLOnSyncPData</a></li> + <li><a href="#section-SDLOnSystemCapabilityUpdated">SDLOnSystemCapabilityUpdated</a></li> <li><a href="#section-SDLOnSystemRequest">SDLOnSystemRequest</a></li> <li><a href="#section-SDLOnTBTClientState">SDLOnTBTClientState</a></li> <li><a href="#section-SDLOnTouchEvent">SDLOnTouchEvent</a></li> <li><a href="#section-SDLOnVehicleData">SDLOnVehicleData</a></li> <li><a href="#section-SDLOnWayPointChange">SDLOnWayPointChange</a></li> <li><a href="#section-SDLParameterPermissions">SDLParameterPermissions</a></li> + <li><a href="#section-SDLPerformAppServiceInteraction">SDLPerformAppServiceInteraction</a></li> + <li><a href="#section-SDLPerformAppServiceInteractionResponse">SDLPerformAppServiceInteractionResponse</a></li> <li><a href="#section-SDLPerformAudioPassThru">SDLPerformAudioPassThru</a></li> <li><a href="#section-SDLPerformAudioPassThruResponse">SDLPerformAudioPassThruResponse</a></li> <li><a href="#section-SDLPerformInteraction">SDLPerformInteraction</a></li> @@ -146,6 +168,8 @@ <li><a href="#section-SDLPhoneCapability">SDLPhoneCapability</a></li> <li><a href="#section-SDLPinchGesture">SDLPinchGesture</a></li> <li><a href="#section-SDLPresetBankCapabilities">SDLPresetBankCapabilities</a></li> + <li><a href="#section-SDLPublishAppService">SDLPublishAppService</a></li> + <li><a href="#section-SDLPublishAppServiceResponse">SDLPublishAppServiceResponse</a></li> <li><a href="#section-SDLPutFile">SDLPutFile</a></li> <li><a href="#section-SDLPutFileResponse">SDLPutFileResponse</a></li> <li><a href="#section-SDLRDSData">SDLRDSData</a></li> @@ -154,6 +178,7 @@ <li><a href="#section-SDLRPCNotification">SDLRPCNotification</a></li> <li><a href="#section-SDLRPCNotificationNotification">SDLRPCNotificationNotification</a></li> <li><a href="#section-SDLRPCRequest">SDLRPCRequest</a></li> + <li><a href="#section-SDLRPCRequestNotification">SDLRPCRequestNotification</a></li> <li><a href="#section-SDLRPCResponse">SDLRPCResponse</a></li> <li><a href="#section-SDLRPCResponseNotification">SDLRPCResponseNotification</a></li> <li><a href="#section-SDLRPCStruct">SDLRPCStruct</a></li> @@ -181,6 +206,8 @@ <li><a href="#section-SDLSendLocationResponse">SDLSendLocationResponse</a></li> <li><a href="#section-SDLSetAppIcon">SDLSetAppIcon</a></li> <li><a href="#section-SDLSetAppIconResponse">SDLSetAppIconResponse</a></li> + <li><a href="#section-SDLSetCloudAppProperties">SDLSetCloudAppProperties</a></li> + <li><a href="#section-SDLSetCloudAppPropertiesResponse">SDLSetCloudAppPropertiesResponse</a></li> <li><a href="#section-SDLSetDisplayLayout">SDLSetDisplayLayout</a></li> <li><a href="#section-SDLSetDisplayLayoutResponse">SDLSetDisplayLayoutResponse</a></li> <li><a href="#section-SDLSetGlobalProperties">SDLSetGlobalProperties</a></li> @@ -217,6 +244,7 @@ <li><a href="#section-SDLSyncPDataResponse">SDLSyncPDataResponse</a></li> <li><a href="#section-SDLSystemCapability">SDLSystemCapability</a></li> <li><a href="#section-SDLSystemCapabilityManager">SDLSystemCapabilityManager</a></li> + <li><a href="#section-SDLSystemRequest">SDLSystemRequest</a></li> <li><a href="#section-SDLTTSChunk">SDLTTSChunk</a></li> <li><a href="#section-SDLTemperature">SDLTemperature</a></li> <li><a href="#section-SDLTemplateColorScheme">SDLTemplateColorScheme</a></li> @@ -240,10 +268,15 @@ <li><a href="#section-SDLUpdateTurnListResponse">SDLUpdateTurnListResponse</a></li> <li><a href="#section-SDLVehicleDataResult">SDLVehicleDataResult</a></li> <li><a href="#section-SDLVehicleType">SDLVehicleType</a></li> + <li><a href="#section-SDLVersion">SDLVersion</a></li> <li><a href="#section-SDLVideoStreamingCapability">SDLVideoStreamingCapability</a></li> <li><a href="#section-SDLVideoStreamingFormat">SDLVideoStreamingFormat</a></li> <li><a href="#section-SDLVoiceCommand">SDLVoiceCommand</a></li> <li><a href="#section-SDLVRHelpItem">SDLVRHelpItem</a></li> + <li><a href="#section-SDLWeatherAlert">SDLWeatherAlert</a></li> + <li><a href="#section-SDLWeatherData">SDLWeatherData</a></li> + <li><a href="#section-SDLWeatherServiceData">SDLWeatherServiceData</a></li> + <li><a href="#section-SDLWeatherServiceManifest">SDLWeatherServiceManifest</a></li> </ul> <h3>Overview</h3> @@ -507,6 +540,277 @@ + <h3 id="section-SDLAppServiceCapability"> + SDLAppServiceCapability + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLAppServiceCapability.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLAppServiceCapability</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for required parameters. + * + * @param updatedAppServiceRecord Service record for a specific app service provider + * @return A SDLAppServiceCapability object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdatedAppServiceRecord</span><span class="p">:(</span><span class="n"><a href="Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">updatedAppServiceRecord</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param updateReason Update reason for this service record + * @param updatedAppServiceRecord Service record for a specific app service provider + * @return A SDLAppServiceCapability object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateReason</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span><span class="p">)</span><span class="nv">updateReason</span> <span class="nf">updatedAppServiceRecord</span><span class="p">:(</span><span class="n"><a href="Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">updatedAppServiceRecord</span><span class="p">;</span> + +<span class="cm">/** + * Only included in `OnSystemCapbilityUpdated`. Update reason for this service record. + * + * SDLServiceUpdateReason, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">updateReason</span><span class="p">;</span> + +<span class="cm">/** + * Service record for a specific app service provider. + * + * SDLAppServiceRecord, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="n">updatedAppServiceRecord</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLAppServiceCapability</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLAppServiceData"> + SDLAppServiceData + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLAppServiceData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLAppServiceData</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for service type and service id. + * + * @param serviceType The type of service that is to be offered by this app. + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceType</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span> <span class="nf">serviceId</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for media service data. + * + * @param mediaServiceData The media service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithMediaServiceData</span><span class="p">:(</span><span class="n"><a href="Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaServiceData</span> <span class="nf">serviceId</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for weather service data. + * + * @param weatherServiceData The weather service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithWeatherServiceData</span><span class="p">:(</span><span class="n"><a href="Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherServiceData</span> <span class="nf">serviceId</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for navigation service data. + * + * @param navigationServiceData The navigation service data + * @param serviceId A unique ID tied to this specific service record. + * @return A SDLAppServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithNavigationServiceData</span><span class="p">:(</span><span class="n"><a href="Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">navigationServiceData</span> <span class="nf">serviceId</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param serviceType The type of service that is to be offered by this app. + * @param serviceId A unique ID tied to this specific service record. + * @param mediaServiceData The media service data + * @param weatherServiceData The weather service data + * @param navigationServiceData The navigation service data + * @return A SDLAppServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceType</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span> <span class="nf">serviceId</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span> <span class="nf">mediaServiceData</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaServiceData</span> <span class="nf">weatherServiceData</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherServiceData</span> <span class="nf">navigationServiceData</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">navigationServiceData</span><span class="p">;</span> + +<span class="cm">/** + * The type of service that is to be offered by this app. See `AppServiceType` for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core. + * + * String, See `SDLAppServiceType`, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">serviceType</span><span class="p">;</span> + +<span class="cm">/** + * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. + * + * String, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">serviceId</span><span class="p">;</span> + +<span class="cm">/** + * The media service data. + * + * SDLMediaServiceData, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span> <span class="o">*</span><span class="n">mediaServiceData</span><span class="p">;</span> + +<span class="cm">/** + * The weather service data. + * + * SDLWeatherServiceData, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span> <span class="o">*</span><span class="n">weatherServiceData</span><span class="p">;</span> + +<span class="cm">/** + * The navigation service data. + * + * SDLNavigationServiceData, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span> <span class="o">*</span><span class="n">navigationServiceData</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLAppServiceData</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLAppServiceManifest"> + SDLAppServiceManifest + </h3> + + <p>This manifest contains all the information necessary for the service to be published, activated, and allow consumers to interact with it</p> + + <a href="Classes/SDLAppServiceManifest.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLAppServiceManifest</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLAppServiceManifest</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLAppServiceRecord"> + SDLAppServiceRecord + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLAppServiceRecord.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLAppServiceRecord</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param serviceID A unique ID tied to this specific service record + * @param serviceManifest Manifest for the service that this record is for + * @param servicePublished If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable + * @param serviceActive If true, the service is the active primary service of the supplied service type. + * @return A SDLAppServiceRecord object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceID</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceID</span> <span class="nf">serviceManifest</span><span class="p">:(</span><span class="n"><a href="Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceManifest</span> <span class="nf">servicePublished</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">servicePublished</span> <span class="nf">serviceActive</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">serviceActive</span><span class="p">;</span> + +<span class="cm">/** + * A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves. + * + * String, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">serviceID</span><span class="p">;</span> + +<span class="cm">/** + * Manifest for the service that this record is for. + * + * SDLAppServiceManifest, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="o">*</span><span class="n">serviceManifest</span><span class="p">;</span> + +<span class="cm">/** + * If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable. + * + * Boolean, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">servicePublished</span><span class="p">;</span> + +<span class="cm">/** + * If true, the service is the active primary service of the supplied service type. It will receive all potential RPCs that are passed through to that service type. If false, it is not the primary service of the supplied type. See servicePublished for its availability. + * + * Boolean, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">serviceActive</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLAppServiceRecord</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLAppServicesCapabilities"> + SDLAppServicesCapabilities + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLAppServicesCapabilities.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLAppServicesCapabilities</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init. + * + * @param appServices An array of currently available services. + * @return A SDLAppServicesCapabilities object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServices</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Classes/SDLAppServiceCapability.html">SDLAppServiceCapability</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">appServices</span><span class="p">;</span> + +<span class="cm">/** + * An array of currently available services. If this is an update to the capability the affected services will include an update reason in that item. + * + * Array of SDLAppServiceCapability, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Classes/SDLAppServiceCapability.html">SDLAppServiceCapability</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">appServices</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLAppServicesCapabilities</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + <h3 id="section-SDLArtwork"> SDLArtwork </h3> @@ -527,6 +831,11 @@ <span class="k">@property</span> <span class="p">(</span><span class="n">assign</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">isTemplate</span><span class="p">;</span> <span class="cm">/** + The Image RPC representing this artwork. Generally for use internally, you should instead pass an artwork to a Screen Manager method. + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">imageRPC</span><span class="p">;</span> + +<span class="cm">/** * 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. @@ -560,6 +869,15 @@ <span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">artworkWithImage</span><span class="p">:(</span><span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="nf">asImageFormat</span><span class="p">:(</span><span class="n"><a href="Enums/SDLArtworkImageFormat.html">SDLArtworkImageFormat</a></span><span class="p">)</span><span class="nv">imageFormat</span> <span class="n">NS_SWIFT_UNAVAILABLE</span><span class="p">(</span><span class="s">"Use the standard initializer and set persistant to false"</span><span class="p">);</span> <span class="cm">/** + Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. + + @param staticIcon The static icon to be shown on the remote system. + + @return An instance of this class to be passed to a screen manager. + */</span> +<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">artworkWithStaticIcon</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName">SDLStaticIconName</a></span><span class="p">)</span><span class="nv">staticIcon</span> <span class="n">NS_SWIFT_UNAVAILABLE</span><span class="p">(</span><span class="s">"Use the standard initializer"</span><span class="p">);</span> + +<span class="cm">/** * 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. @@ -615,6 +933,15 @@ */</span> <span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithImage</span><span class="p">:(</span><span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="nf">persistent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">persistent</span> <span class="nf">asImageFormat</span><span class="p">:(</span><span class="n"><a href="Enums/SDLArtworkImageFormat.html">SDLArtworkImageFormat</a></span><span class="p">)</span><span class="nv">imageFormat</span><span class="p">;</span> +<span class="cm">/** + Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail. + + @param staticIcon The static icon to be shown on the remote system. + + @return An instance of this class to be passed to a screen manager. + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithStaticIcon</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName">SDLStaticIconName</a></span><span class="p">)</span><span class="nv">staticIcon</span><span class="p">;</span> + <span class="k">@end</span></code></pre> @@ -1300,6 +1627,98 @@ + <h3 id="section-SDLCloudAppProperties"> + SDLCloudAppProperties + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLCloudAppProperties.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLCloudAppProperties</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for required parameters. + * + * @param appID The id of the cloud app + * @return A SDLCloudAppProperties object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppID</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appID</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param appID The id of the cloud app + * @param nicknames An array of app names a cloud app is allowed to register with + * @param enabled If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list + * @param authToken Used to authenticate websocket connection on app activation + * @param cloudTransportType Specifies the connection type Core should use + * @param hybridAppPreference Specifies the user preference to use the cloud app version or mobile app version when both are available + * @param endpoint The websocket endpoint + * @return A SDLCloudAppProperties object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppID</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appID</span> <span class="nf">nicknames</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">nicknames</span> <span class="nf">enabled</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">enabled</span> <span class="nf">authToken</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">authToken</span> <span class="nf">cloudTransportType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">cloudTransportType</span> <span class="nf">hybridAppPreference</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span><span class="p">)</span><span class="nv">hybridAppPreference</span> <span class="nf">endpoint</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">endpoint</span><span class="p">;</span> + +<span class="cm">/** + * An array of app names a cloud app is allowed to register with. If included in a `SetCloudAppProperties` request, this value will overwrite the existing "nicknames" field in the app policies section of the policy table. + * + * Array of Strings, Optional, String length: minlength="0" maxlength="100", Array size: minsize="0" maxsize="100" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="n">nicknames</span><span class="p">;</span> + +<span class="cm">/** + * The id of the cloud app. + * + * String, Required, maxlength="100" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">appID</span><span class="p">;</span> + +<span class="cm">/** + * If true, the cloud app will appear in the HMI's app list; if false, the cloud app will not appear in the HMI's app list. + * + * Boolean, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">enabled</span><span class="p">;</span> + +<span class="cm">/** + * Used to authenticate websocket connection on app activation. + * + * String, Optional, maxlength="65535" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">authToken</span><span class="p">;</span> + +<span class="cm">/** + * Specifies the connection type Core should use. Currently the ones that work in SDL Core are `WS` or `WSS`, but an OEM can implement their own transport adapter to handle different values. + * + * String, Optional, maxlength="100" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">cloudTransportType</span><span class="p">;</span> + +<span class="cm">/** + * Specifies the user preference to use the cloud app version or mobile app version when both are available. + * + * SDLHybridAppPreference, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span> <span class="n">hybridAppPreference</span><span class="p">;</span> + +<span class="cm">/** + * The websocket endpoint. + * + * String, Optional, maxlength="65535" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">endpoint</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLCloudAppProperties</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + <h3 id="section-SDLClusterModeStatus"> SDLClusterModeStatus </h3> @@ -2084,6 +2503,15 @@ see SDLPerformAudioPassThru</p> */</span> <span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSInputStream</span> <span class="o">*</span><span class="n">inputStream</span><span class="p">;</span> +<span class="cm">/** + Describes whether or not this file is represented by static icon data. The head unit will present its representation of the static icon concept when sent this data. + + A file that represents a static icon may not be uploaded via the File Manager. It must be set using the Screen Manager. + + Support for this feature may vary by system, but it will generally be more supported in soft buttons and menus. + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">assign</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">isStaticIcon</span><span class="p">;</span> + <span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="n">init</span> <span class="n">NS_UNAVAILABLE</span><span class="p">;</span> <span class="cm">/** @@ -2268,6 +2696,32 @@ see SDLPerformAudioPassThru</p> + <h3 id="section-SDLFunctionID"> + SDLFunctionID + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLFunctionID.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLFunctionID</span> <span class="p">:</span> <span class="nc">NSObject</span> + +<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="n">sharedInstance</span><span class="p">;</span> + +<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span><span class="p">)</span><span class="nf">functionNameForId</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">functionID</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nf">functionIdForName</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span><span class="p">)</span><span class="nv">functionName</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLFunctionID</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre> + + + + <h3 id="section-SDLGPSData"> SDLGPSData </h3> @@ -2307,6 +2761,99 @@ see SDLPerformAudioPassThru</p> + <h3 id="section-SDLGetAppServiceData"> + SDLGetAppServiceData + </h3> + + <p>This request asks the module for current data related to the specific service. It also includes an option to subscribe to that service for future updates.</p> + + <a href="Classes/SDLGetAppServiceData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetAppServiceData</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLGetAppServiceData</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + + <h3 id="section-SDLGetAppServiceDataResponse"> + SDLGetAppServiceDataResponse + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLGetAppServiceDataResponse.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetAppServiceDataResponse</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span> + +<span class="cm">/** + * Convenience init. + * + * @param serviceData Contains all the current data of the app service + * @return A SDLGetAppServiceDataResponse object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceData</span><span class="p">:(</span><span class="n"><a href="Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceData</span><span class="p">;</span> + +<span class="cm">/** + * Contains all the current data of the app service. + * + * SDLAppServiceData, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="o">*</span><span class="n">serviceData</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLGetAppServiceDataResponse</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + + + <h3 id="section-SDLGetCloudAppProperties"> + SDLGetCloudAppProperties + </h3> + + <p>RPC used to get the current properties of a cloud application.</p> + + <a href="Classes/SDLGetCloudAppProperties.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetCloudAppProperties</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLGetCloudAppProperties</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + + <h3 id="section-SDLGetCloudAppPropertiesResponse"> + SDLGetCloudAppPropertiesResponse + </h3> + + <p>The response to GetCloudAppProperties</p> + + <a href="Classes/SDLGetCloudAppPropertiesResponse.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetCloudAppPropertiesResponse</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLGetCloudAppPropertiesResponse</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + + <h3 id="section-SDLGetDTCs"> SDLGetDTCs </h3> @@ -2353,6 +2900,85 @@ Function Group: ProprietaryData + <h3 id="section-SDLGetFile"> + SDLGetFile + </h3> + + <p>This request is sent to the module to retrieve a file.</p> + + <a href="Classes/SDLGetFile.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetFile</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLGetFile</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + + <h3 id="section-SDLGetFileResponse"> + SDLGetFileResponse + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLGetFileResponse.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetFileResponse</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param offset Optional offset in bytes for resuming partial data chunks + * @param length Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded + * @param fileType File type that is being sent in response + * @param crc Additional CRC32 checksum to protect data integrity up to 512 Mbits + * @return A SDLGetFileResponse object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithOffset</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">offset</span> <span class="nf">length</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">length</span> <span class="nf">fileType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">)</span><span class="nv">fileType</span> <span class="nf">crc</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">crc</span><span class="p">;</span> + +<span class="cm">/** + * Optional offset in bytes for resuming partial data chunks. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">offset</span><span class="p">;</span> + +<span class="cm">/** + * Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded. + * + * Integer, Optional, minvalue="0" maxvalue="2000000000" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">length</span><span class="p">;</span> + +<span class="cm">/** + * File type that is being sent in response. + * + * SDLFileType, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span> <span class="n">fileType</span><span class="p">;</span> + +<span class="cm">/** + * Additional CRC32 checksum to protect data integrity up to 512 Mbits. + * + * Integer, Optional, minvalue="0" maxvalue="4294967295" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">crc</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLGetFileResponse</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + + <h3 id="section-SDLGetInteriorVehicleData"> SDLGetInteriorVehicleData </h3> @@ -2407,15 +3033,37 @@ whenever new data is available for the module.</p> <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLGetSystemCapability</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> +<span class="cm">/** + * Convenience init + * + * @param type The type of system capability + * @return A SDLSystemCapabilityType object + */</span> <span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span><span class="p">)</span><span class="nv">type</span><span class="p">;</span> <span class="cm">/** - They type of capability you'd like to receive in the response. + * Convenience init + * + * @param type The type of system capability + * @param subscribe Whether or not to subscribe to updates of the supplied service capability type + * @return A SDLSystemCapabilityType object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span><span class="p">)</span><span class="nv">type</span> <span class="nf">subscribe</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">subscribe</span><span class="p">;</span> - Mandatory +<span class="cm">/** + * The type of system capability to get more information on + * + * SDLSystemCapabilityType, Required */</span> <span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span> <span class="n">systemCapabilityType</span><span class="p">;</span> +<span class="cm">/** + * Flag to subscribe to updates of the supplied service capability type. If true, the requester will be subscribed. If false, the requester will not be subscribed and be removed as a subscriber if it was previously subscribed. + * + * Boolean, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">subscribe</span><span class="p">;</span> + <span class="k">@end</span></code></pre> @@ -3328,6 +3976,11 @@ cases the language of the head unit changes or does not match the app language.< <span class="k">@property</span> <span class="p">(</span><span class="n">assign</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">getter</span><span class="o">=</span><span class="n">areErrorsAsynchronous</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">errorsAsynchronous</span><span class="p">;</span> <span class="cm">/** + Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO. + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">assign</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">getter</span><span class="o">=</span><span class="n">areAssertionsDisabled</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">disableAssertions</span><span class="p">;</span> + +<span class="cm">/** 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. */</span> @@ -3673,6 +4326,11 @@ cases the language of the head unit changes or does not match the app language.< <span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="Classes/SDLRegisterAppInterfaceResponse.html">SDLRegisterAppInterfaceResponse</a></span> <span class="o">*</span><span class="n">registerResponse</span><span class="p">;</span> <span class="cm">/** + * The auth token, if received. This should be used to log into a user account. Primarily used for cloud apps with companion app stores. + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">authToken</span><span class="p">;</span> + +<span class="cm">/** * The manager's delegate. */</span> <span class="k">@property</span> <span class="p">(</span><span class="n">weak</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="Protocols/SDLManagerDelegate.html">SDLManagerDelegate</a></span><span class="o">></span> <span class="n">delegate</span><span class="p">;</span> @@ -3722,6 +4380,13 @@ cases the language of the head unit changes or does not match the app language.< <span class="cp">#pragma mark Manually Send RPC Requests </span> <span class="cm">/** + * Send an RPC of type `Response`, `Notification` or `Request`. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call `sendRequest:withResponseHandler:` instead. + * + * @param rpc An RPC of type `SDLRPCResponse`, `SDLRPCNotification` or `SDLRPCRequest` + */</span> +<span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">sendRPC</span><span class="p">:(</span><span class="n">__kindof</span> <span class="n"><a href="Classes/SDLRPCMessage.html">SDLRPCMessage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpc</span><span class="p">;</span> + +<span class="cm">/** * 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 @@ -3801,6 +4466,43 @@ cases the language of the head unit changes or does not match the app language.< + <h3 id="section-SDLMediaServiceData"> + SDLMediaServiceData + </h3> + + <p>This data is related to what a media service should provide.</p> + + <a href="Classes/SDLMediaServiceData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLMediaServiceData</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLMediaServiceData</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLMediaServiceManifest"> + SDLMediaServiceManifest + </h3> + + <p>A media service manifest.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLMediaServiceManifest</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLMediaServiceManifest</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + <h3 id="section-SDLMenuCell"> SDLMenuCell </h3> @@ -4019,6 +4721,251 @@ cases the language of the head unit changes or does not match the app language.< + <h3 id="section-SDLNavigationInstruction"> + SDLNavigationInstruction + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLNavigationInstruction.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLNavigationInstruction</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for required parameters + * + * @param locationDetails The location details + * @param action The navigation action + * @return A SDLNavigationInstruction object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLocationDetails</span><span class="p">:(</span><span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDetails</span> <span class="nf">action</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span><span class="p">)</span><span class="nv">action</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param locationDetails The location details + * @param action The navigation action + * @param eta The estimated time of arrival + * @param bearing The angle at which this instruction takes place + * @param junctionType The navigation junction type + * @param drivingSide Used to infer which side of the road this instruction takes place + * @param details This is a string representation of this instruction, used to display instructions to the users + * @param image An image representation of this instruction + * @return A SDLNavigationInstruction object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLocationDetails</span><span class="p">:(</span><span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDetails</span> <span class="nf">action</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span><span class="p">)</span><span class="nv">action</span> <span class="nf">eta</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">eta</span> <span class="nf">bearing</span><span class="p">:(</span><span class="n">UInt16</span><span class="p">)</span><span class="nv">bearing</span> <span class="nf">junctionType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span><span class="p">)</span><span class="nv">junctionType</span> <span class="nf">drivingSide</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span><span class="p">)</span><span class="nv">drivingSide</span> <span class="nf">details</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">details</span> <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span><span class="p">;</span> + +<span class="cm">/** + * The location details. + * + * SDLLocationDetails, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">locationDetails</span><span class="p">;</span> + +<span class="cm">/** + * The navigation action. + * + * SDLNavigationAction, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="n">action</span><span class="p">;</span> + +<span class="cm">/** + * The estimated time of arrival. + * + * SDLDateTime, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">eta</span><span class="p">;</span> + +<span class="cm">/** + * The angle at which this instruction takes place. For example, 0 would mean straight, <=45 is bearing right, >= 135 is sharp right, between 45 and 135 is a regular right, and 180 is a U-Turn, etc. + * + * Integer, Optional, minValue="0" maxValue="359" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">bearing</span><span class="p">;</span> + +<span class="cm">/** + * The navigation junction type. + * + * SDLNavigationJunction, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="n">junctionType</span><span class="p">;</span> + +<span class="cm">/** + * Used to infer which side of the road this instruction takes place. For a U-Turn (action=TURN, bearing=180) this will determine which direction the turn should take place. + * + * SDLDirection, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span> <span class="n">drivingSide</span><span class="p">;</span> + +<span class="cm">/** + * This is a string representation of this instruction, used to display instructions to the users. This is not intended to be read aloud to the users, see the param prompt in `NavigationServiceData` for that. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">details</span><span class="p">;</span> + +<span class="cm">/** + * An image representation of this instruction. + * + * SDLImage, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">image</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLNavigationInstruction</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationServiceData"> + SDLNavigationServiceData + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLNavigationServiceData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLNavigationServiceData</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for required parameters. + * + * @param timestamp Timestamp of when the data was generated + * @return A SDLNavigationServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithTimestamp</span><span class="p">:(</span><span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timestamp</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param timestamp Timestamp of when the data was generated + * @param origin The start location + * @param destination The final destination location + * @param destinationETA The estimated time of arrival at the final destination location + * @param instructions Array ordered with all remaining instructions + * @param nextInstructionETA The estimated time of arrival at the next destination + * @param nextInstructionDistance The distance to this instruction from current location + * @param nextInstructionDistanceScale Distance till next maneuver (starting from) from previous maneuver + * @param prompt This is a prompt message that should be conveyed to the user through either display or voice (TTS) + * @return A SDLNavigationServiceData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithTimestamp</span><span class="p">:(</span><span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timestamp</span> <span class="nf">origin</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">origin</span> <span class="nf">destination</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">destination</span> <span class="nf">destinationETA</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">destinationETA</span> <span class="nf">instructions</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Classes/SDLNavigationInstruction.html">SDLNavigationInstruction</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">instructions</span> <span class="nf">nextInstructionETA</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">nextInstructionETA</span> <span class="nf">nextInstructionDistance</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">nextInstructionDistance</span> <span class="nf">nextInstructionDistanceScale</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">nextInstructionDistanceScale</span> <span class="nf">prompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">prompt</span><span class="p">;</span> + +<span class="cm">/** + * This is the timestamp of when the data was generated. This is to ensure any time or distance given in the data can accurately be adjusted if necessary. + * + * SDLDateTime, Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">timestamp</span><span class="p">;</span> + +<span class="cm">/** + * The start location. + * + * SDLLocationDetails, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">origin</span><span class="p">;</span> + +<span class="cm">/** + * The final destination location. + * + * SDLLocationDetails, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">destination</span><span class="p">;</span> + +<span class="cm">/** + * The estimated time of arrival at the final destination location. + * + * SDLDateTime, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">destinationETA</span><span class="p">;</span> + +<span class="cm">/** + * This array should be ordered with all remaining instructions. The start of this array should always contain the next instruction. + * + * Array of SDLNavigationInstruction, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Classes/SDLNavigationInstruction.html">SDLNavigationInstruction</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">instructions</span><span class="p">;</span> + +<span class="cm">/** + * The estimated time of arrival at the next destination. + * + * SDLDateTime, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">nextInstructionETA</span><span class="p">;</span> + +<span class="cm">/** + * The distance to this instruction from current location. This should only be updated ever .1 unit of distance. For more accuracy the consumer can use the GPS location of itself and the next instruction. + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">nextInstructionDistance</span><span class="p">;</span> + +<span class="cm">/** + * Distance till next maneuver (starting from) from previous maneuver. + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">nextInstructionDistanceScale</span><span class="p">;</span> + +<span class="cm">/** + * This is a prompt message that should be conveyed to the user through either display or voice (TTS). This param will change often as it should represent the following: approaching instruction, post instruction, alerts that affect the current navigation session, etc. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">prompt</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLNavigationServiceData</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationServiceManifest"> + SDLNavigationServiceManifest + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLNavigationServiceManifest.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLNavigationServiceManifest</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init. + * + * @param acceptsWayPoints Informs the subscriber if this service can actually accept way points + * @return A SDLNavigationServiceManifest object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAcceptsWayPoints</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">acceptsWayPoints</span><span class="p">;</span> + +<span class="cm">/** + * Informs the subscriber if this service can actually accept way points. + * + * Boolean, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">acceptsWayPoints</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLNavigationServiceManifest</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + <h3 id="section-SDLNotificationConstants"> SDLNotificationConstants </h3> @@ -4034,7 +4981,7 @@ cases the language of the head unit changes or does not match the app language.< <span class="cm">/** All of the possible SDL RPC Response notification names - @return The names + @return All response notification names */</span> <span class="k">+</span> <span class="p">(</span><span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="n">allResponseNames</span><span class="p">;</span> @@ -4101,6 +5048,25 @@ cases the language of the head unit changes or does not match the app language.< + <h3 id="section-SDLOnAppServiceData"> + SDLOnAppServiceData + </h3> + + <p>This notification includes the data that is updated from the specific service.</p> + + <a href="Classes/SDLOnAppServiceData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLOnAppServiceData</span> <span class="p">:</span> <span class="nc"><a href="Classes.html#/c:objc(cs)SDLRPCNotification">SDLRPCNotification</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLOnAppServiceData</span> <span class="p">:</span> <span class="kt"><a href="Classes.html#/c:objc(cs)SDLRPCNotification">SDLRPCNotification</a></span></code></pre> + + + + <h3 id="section-SDLOnAudioPassThru"> SDLOnAudioPassThru </h3> @@ -4487,6 +5453,25 @@ the application has subscribed.</p> + <h3 id="section-SDLOnSystemCapabilityUpdated"> + SDLOnSystemCapabilityUpdated + </h3> + + <p>A notification to inform the connected device that a specific system capability has changed.</p> + + <a href="Classes/SDLOnSystemCapabilityUpdated.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLOnSystemCapabilityUpdated</span> <span class="p">:</span> <span class="nc"><a href="Classes.html#/c:objc(cs)SDLRPCNotification">SDLRPCNotification</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLOnSystemCapabilityUpdated</span> <span class="p">:</span> <span class="kt"><a href="Classes.html#/c:objc(cs)SDLRPCNotification">SDLRPCNotification</a></span></code></pre> + + + + <h3 id="section-SDLOnSystemRequest"> SDLOnSystemRequest </h3> @@ -4605,6 +5590,71 @@ the application has subscribed.</p> + <h3 id="section-SDLPerformAppServiceInteraction"> + SDLPerformAppServiceInteraction + </h3> + + <p>App service providers will likely have different actions exposed to the module and app service consumers. It will be difficult to standardize these actions by RPC versions and can easily become stale. Therefore, we introduce a best-effort attempt to take actions on a service.</p> + +<p>The <code>PerformAppServiceInteraction</code> request will be sent to the service that has the matching <code>appServiceId</code>. The <code>serviceUri</code> should be the fully qualified URI with all parameters that are necessary for the given action. The URI prefix and actions list will be contained in the app service provider’s manifest. SDL takes no steps to validate an app service provider’s action sheet JSON object. In the future, plug in libraries could be added to handle these sheets on a provider by provider basis.</p> + +<p>An app service consumer can also request for this service to become the active service of its respective type. If the app service consumer currently has an HMI state of HMI_FULL this request can be performed without user interaction. If the app is currently not in that state, the HMI should present the user with a choice to allow this app service provider to become the active service of its specified type. If the app service provider is not allowed to become active, the request will not be sent to it and an unsuccessful response will be sent to the requester.</p> + +<p>SDL should make no guarantees that: + 1. App service providers offer URI prefix and URI Schema + 2. App service providers will correctly respond to the requests + 3. The requested app service provider will become the active service of that type + 4. The <code>serviceUri</code> will be a correctly formatted URI from the app service consumer</p> + + <a href="Classes/SDLPerformAppServiceInteraction.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLPerformAppServiceInteraction</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLPerformAppServiceInteraction</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + + <h3 id="section-SDLPerformAppServiceInteractionResponse"> + SDLPerformAppServiceInteractionResponse + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLPerformAppServiceInteractionResponse.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLPerformAppServiceInteractionResponse</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span> + +<span class="cm">/** + * Convenience init for all parameters. + * + * @param serviceSpecificResult The service can provide specific result strings to the consumer through this param. + * @return A SDLPerformAppServiceInteractionResponse object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceSpecificResult</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceSpecificResult</span><span class="p">;</span> + +<span class="cm">/** + * The service can provide specific result strings to the consumer through this param. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">serviceSpecificResult</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLPerformAppServiceInteractionResponse</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + + <h3 id="section-SDLPerformAudioPassThru"> SDLPerformAudioPassThru </h3> @@ -4796,7 +5846,7 @@ the application has subscribed.</p> * * @return A dictionary specifying if the passed in RPC names are currently allowed or not */</span> -<span class="k">-</span> <span class="p">(</span><span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="p">,</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nf">statusOfRPCs</span><span class="p">:(</span><span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcNames</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="p">,</span> <span class="n">NSNumber</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nf">statusOfRPCs</span><span class="p">:(</span><span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcNames</span><span class="p">;</span> <span class="cm">/** * 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. @@ -4938,6 +5988,62 @@ the application has subscribed.</p> + <h3 id="section-SDLPublishAppService"> + SDLPublishAppService + </h3> + + <p>Registers a service offered by this app on the module.</p> + + <a href="Classes/SDLPublishAppService.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLPublishAppService</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLPublishAppService</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + + <h3 id="section-SDLPublishAppServiceResponse"> + SDLPublishAppServiceResponse + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLPublishAppServiceResponse.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLPublishAppServiceResponse</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span> + +<span class="cm">/** + * Convenience init. + * + * @param appServiceRecord If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. + * @return A SDLPublishAppServiceResponse object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceRecord</span><span class="p">:(</span><span class="n"><a href="Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">appServiceRecord</span><span class="p">;</span> + +<span class="cm">/** + * If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID. + * + * SDLAppServiceRecord, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="n">appServiceRecord</span><span class="p">;</span> + + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLPublishAppServiceResponse</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + + <h3 id="section-SDLPutFile"> SDLPutFile </h3> @@ -5212,6 +6318,25 @@ the application has subscribed.</p> + <h3 id="section-SDLRPCRequestNotification"> + SDLRPCRequestNotification + </h3> + + <p>A NSNotification object that makes retrieving internal SDLRPCRequest data easier</p> + + <a href="Classes/SDLRPCRequestNotification.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLRPCRequestNotification</span> <span class="p">:</span> <span class="nc">NSNotification</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLRPCRequestNotification</span> <span class="p">:</span> <span class="kt">NSNotification</span></code></pre> + + + + <h3 id="section-SDLRPCResponse"> SDLRPCResponse </h3> @@ -5257,7 +6382,7 @@ the application has subscribed.</p> SDLRPCResponseNotification </h3> - <p>An NSNotification object that makes retrieving internal SDLRPCResponse data easier</p> + <p>A NSNotification object that makes retrieving internal SDLRPCResponse data easier</p> <a href="Classes/SDLRPCResponseNotification.html" class="slightly-smaller">See more</a> @@ -5980,21 +7105,63 @@ Function Group: ScrollableMessage <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLSendLocation</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> +<span class="cm">/** + Create a `SendLocation` request with an address object, without Lat/Long coordinates. + + @param address The address information to be passed to the nav system for determining the route + @param addressLines The user-facing address + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @param deliveryMode How the location should be sent to the nav system + @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here + @return A `SendLocation` object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAddress</span><span class="p">:(</span><span class="n"><a href="Classes/SDLOasisAddress.html">SDLOasisAddress</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span> <span class="nf">addressLines</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">addressLines</span> <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="nf">deliveryMode</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode">SDLDeliveryMode</a></span><span class="p">)</span><span class="nv">deliveryMode</span> <span class="nf">timeStamp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeStamp</span><span class="p">;</span> + +<span class="cm">/** + Create a `SendLocation` request with Lat/Long coordinate, not an address object + + @param longitude The longitudinal coordinate of the location + @param latitude The latitudinal coordinate of the location + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param address The user-facing address + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @return A `SendLocation` object + */</span> <span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLongitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">longitude</span> <span class="nf">latitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">latitude</span> <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> <span class="nf">address</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span> <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span><span class="p">;</span> +<span class="cm">/** + Create a `SendLocation` request with Lat/Long coordinate and an address object and let the nav system decide how to parse it + + @param longitude The longitudinal coordinate of the location + @param latitude The latitudinal coordinate of the location + @param locationName The user-facing name of the location + @param locationDescription The user-facing description of the location + @param displayAddressLines The user-facing address + @param phoneNumber The phone number for the location; the user could use this to call the location + @param image A user-facing image for the location + @param deliveryMode How the location should be sent to the nav system + @param timeStamp The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here + @param address The address information to be passed to the nav system for determining the route + @return A `SendLocation` object + */</span> <span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLongitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">longitude</span> <span class="nf">latitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">latitude</span> <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> <span class="nf">displayAddressLines</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">displayAddressLines</span> <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="nf">deliveryMode</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode">SDLDeliveryMode</a></span><span class="p">)</span><span class="nv">deliveryMode</span> <span class="nf">timeStamp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeStamp</span> <span class="nf">address</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLOasisAddress.html">SDLOasisAddress</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span><span class="p">;</span> <span class="cm">/** - * The longitudinal coordinate of the location. + * The longitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. * - * Float, Required, -180.0 - 180.0 + * Float, Optional, -180.0 - 180.0 */</span> <span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">longitudeDegrees</span><span class="p">;</span> <span class="cm">/** - * The latitudinal coordinate of the location. + * The latitudinal coordinate of the location. Either the latitude / longitude OR the `address` must be provided. * - * Float, Required, -90.0 - 90.0 + * Float, Optional, -90.0 - 90.0 */</span> <span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">latitudeDegrees</span><span class="p">;</span> @@ -6013,7 +7180,7 @@ Function Group: ScrollableMessage <span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">locationDescription</span><span class="p">;</span> <span class="cm">/** - * Location address for display purposes only + * Location address for display purposes only. * * Contains String, Optional, Max Array Length = 4, Max String Length = 500 */</span> @@ -6048,7 +7215,7 @@ Function Group: ScrollableMessage <span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">timeStamp</span><span class="p">;</span> <span class="cm">/** - * Address to be used for setting destination + * Address to be used for setting destination. Either the latitude / longitude OR the `address` must be provided. * * Optional */</span> @@ -6124,6 +7291,43 @@ Function Group: ScrollableMessage + <h3 id="section-SDLSetCloudAppProperties"> + SDLSetCloudAppProperties + </h3> + + <p>RPC used to enable/disable a cloud application and set authentication data</p> + + <a href="Classes/SDLSetCloudAppProperties.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLSetCloudAppProperties</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLSetCloudAppProperties</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + + <h3 id="section-SDLSetCloudAppPropertiesResponse"> + SDLSetCloudAppPropertiesResponse + </h3> + + <p>The response to SetCloudAppProperties</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLSetCloudAppPropertiesResponse</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLSetCloudAppPropertiesResponse</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCResponse.html">SDLRPCResponse</a></span></code></pre> + + + + <h3 id="section-SDLSetDisplayLayout"> SDLSetDisplayLayout </h3> @@ -6939,10 +8143,10 @@ change the settings of a specific remote control module.</p> 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 + @param configuration This session's configuration @return A new streaming manager */</span> -<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithConnectionManager</span><span class="p">:(</span><span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">connectionManager</span> <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithConnectionManager</span><span class="p">:(</span><span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">connectionManager</span> <span class="nf">configuration</span><span class="p">:(</span><span class="n"><a href="Classes/SDLConfiguration.html">SDLConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span> <span class="n">NS_DESIGNATED_INITIALIZER</span><span class="p">;</span> <span class="cm">/** * 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`. @@ -7366,6 +8570,15 @@ change the settings of a specific remote control module.</p> <span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n"><a href="Classes/SDLAudioPassThruCapabilities.html">SDLAudioPassThruCapabilities</a></span> <span class="o">*</span><span class="n">pcmStreamCapability</span><span class="p">;</span> <span class="cm">/** + * If returned, the platform supports app services + * + * @see SDLAppServicesCapabilities + * + * Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n"><a href="Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span> <span class="o">*</span><span class="n">appServicesCapabilities</span><span class="p">;</span> + +<span class="cm">/** * If returned, the platform supports navigation * * @see SDLNavigationCapability @@ -7423,7 +8636,7 @@ change the settings of a specific remote control module.</p> <span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">stop</span><span class="p">;</span> <span class="cm">/** - * 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. + * Retrieves a capability type from the remote system. This function must be called in order to retrieve the values for `navigationCapability`, `phoneCapability`, `videoStreamingCapability`, `remoteControlCapability`, and `appServicesCapabilities`. 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 @@ -7440,6 +8653,66 @@ change the settings of a specific remote control module.</p> + <h3 id="section-SDLSystemRequest"> + SDLSystemRequest + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLSystemRequest.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLSystemRequest</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> + +<span class="cm">/** + Create a generic system request with a file name + + @param requestType The request type to use + @param fileName The name of the file to use + @return The request + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n"><a href="Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span><span class="p">)</span><span class="nv">requestType</span> <span class="nf">fileName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span><span class="p">;</span> + +<span class="cm">/** + Create an OEM_PROPRIETARY system request with a subtype and file name + + @param proprietaryType The proprietary requestSubType to be used + @param fileName The name of the file to use + @return The request + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithProprietaryType</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">proprietaryType</span> <span class="nf">fileName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span><span class="p">;</span> + +<span class="cm">/** + * The type of system request. Note that Proprietary requests should forward the binary data to the known proprietary module on the system. + * + * Required + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span> <span class="n">requestType</span><span class="p">;</span> + +<span class="cm">/** + A request subType used when the `requestType` is `OEM_SPECIFIC`. + + Optional, Max length 255 + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">requestSubType</span><span class="p">;</span> + +<span class="cm">/** + * Filename of HTTP data to store in predefined system staging area. + * + * Required if requestType is HTTP. PROPRIETARY requestType should ignore this parameter. + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fileName</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLSystemRequest</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCRequest.html">SDLRPCRequest</a></span></code></pre> + + + + <h3 id="section-SDLTTSChunk"> SDLTTSChunk </h3> @@ -7469,7 +8742,7 @@ change the settings of a specific remote control module.</p> SDLTemperature </h3> - <p>Struct using in Remote Control representing a temperature.</p> + <p>Struct representing a temperature.</p> <a href="Classes/SDLTemperature.html" class="slightly-smaller">See more</a> @@ -8070,6 +9343,47 @@ See SDLSubscribeButton</p> + <h3 id="section-SDLVersion"> + SDLVersion + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLVersion.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLVersion</span> <span class="p">:</span> <span class="nc">NSObject</span> <span class="o"><</span><span class="n">NSCopying</span><span class="o">></span> + +<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSUInteger</span> <span class="n">major</span><span class="p">;</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSUInteger</span> <span class="n">minor</span><span class="p">;</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSUInteger</span> <span class="n">patch</span><span class="p">;</span> + +<span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">stringVersion</span><span class="p">;</span> + +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithMajor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">major</span> <span class="nf">minor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">minor</span> <span class="nf">patch</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">patch</span><span class="p">;</span> +<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">versionWithMajor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">major</span> <span class="nf">minor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">minor</span> <span class="nf">patch</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">patch</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">versionString</span><span class="p">;</span> +<span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">versionWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">versionString</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithSyncMsgVersion</span><span class="p">:(</span><span class="n"><a href="Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">syncMsgVersion</span><span class="p">;</span> +<span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">versionWithSyncMsgVersion</span><span class="p">:(</span><span class="n"><a href="Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">syncMsgVersion</span><span class="p">;</span> + +<span class="k">-</span> <span class="p">(</span><span class="n">NSComparisonResult</span><span class="p">)</span><span class="nf">compare</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isLessThanVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isEqualToVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isGreaterThanVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isGreaterThanOrEqualToVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span> +<span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isLessThanOrEqualToVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLVersion</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">NSCopying</span></code></pre> + + + + <h3 id="section-SDLVideoStreamingCapability"> SDLVideoStreamingCapability </h3> @@ -8160,4 +9474,322 @@ See SDLSubscribeButton</p> + <h3 id="section-SDLWeatherAlert"> + SDLWeatherAlert + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLWeatherAlert.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLWeatherAlert</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for all parameters + * + * @param title The title of the alert + * @param summary A summary for the alert + * @param expires The date the alert expires + * @param regions Regions affected + * @param severity Severity + * @param timeIssued The date the alert was issued + * @return A SDLWeatherAlert alert + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> <span class="nf">summary</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">summary</span> <span class="nf">expires</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">expires</span> <span class="nf">regions</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">regions</span> <span class="nf">severity</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">severity</span> <span class="nf">timeIssued</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeIssued</span><span class="p">;</span> + +<span class="cm">/** + * The title of the alert. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">title</span><span class="p">;</span> + +<span class="cm">/** + * A summary for the alert. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">summary</span><span class="p">;</span> + +<span class="cm">/** + * The date the alert expires. + * + * SDLDateTime, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">expires</span><span class="p">;</span> + +<span class="cm">/** + * Regions affected. + * + * Array of Strings, Optional, minsize="1" maxsize="99" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="n">regions</span><span class="p">;</span> + +<span class="cm">/** + * Severity of the weather alert. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">severity</span><span class="p">;</span> + +<span class="cm">/** + * The date the alert was issued. + * + * SDLDateTime, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">timeIssued</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLWeatherAlert</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLWeatherData"> + SDLWeatherData + </h3> + + <p>Undocumented</p> + + <a href="Classes/SDLWeatherData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLWeatherData</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span> + +<span class="cm">/** + * Convenience init for all parameters + * + * @param currentTemperature The current temperature + * @param temperatureHigh The predicted high temperature for the day + * @param temperatureLow The predicted low temperature for the day + * @param apparentTemperature The apparent temperature + * @param apparentTemperatureHigh The predicted high apparent temperature for the day + * @param apparentTemperatureLow The predicted low apparent temperature for the day + * @param weatherSummary A summary of the weather + * @param time The time this data refers to + * @param humidity From 0 to 1, percentage humidity + * @param cloudCover From 0 to 1, percentage cloud cover + * @param moonPhase From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon + * @param windBearing In degrees, true north at 0 degrees + * @param windGust In km/hr + * @param windSpeed In km/hr + * @param nearestStormBearing In degrees, true north at 0 degrees + * @param nearestStormDistance In km + * @param precipAccumulation In cm + * @param precipIntensity In cm of water per hour + * @param precipProbability From 0 to 1, percentage chance + * @param precipType A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") + * @param visibility In km + * @param weatherIcon The weather icon image + * @return A SDLWeatherData object + */</span> +<span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithCurrentTemperature</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">currentTemperature</span> <span class="nf">temperatureHigh</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">temperatureHigh</span> <span class="nf">temperatureLow</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">temperatureLow</span> <span class="nf">apparentTemperature</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">apparentTemperature</span> <span class="nf">apparentTemperatureHigh</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">apparentTemperatureHigh</span> <span class="nf">apparentTemperatureLow</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">apparentTemperatureLow</span> <span class="nf">weatherSummary</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherSummary</span> <span class="nf">time</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">time</span> <span class="nf">humidity</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">humidity</span> <span class="nf">cloudCover</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">cloudCover</span> <span class="nf">moonPhase</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">moonPhase</span> <span class="nf">windBearing</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">windBearing</span> <span class="nf">windGust</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">windGust</span> <span class="nf">windSpeed</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">windSpeed</span> <span class="nf">nearestStormBearing</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">nearestStormBearing</span> <span class="nf">nearestStormDistance</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">nearestStormDistance</span> <span class="nf">precipAccumulation</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">precipAccumulation</span> <span class="nf">precipIntensity</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">precipIntensity</span> <span class="nf">precipProbability</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">precipProbability</span> <span class="nf">precipType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">precipType</span> <span class="nf">visibility</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">visibility</span> <span class="nf">weatherIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherIcon</span><span class="p">;</span> + +<span class="cm">/** + * The current temperature. + * + * SDLTemperature, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">currentTemperature</span><span class="p">;</span> + +<span class="cm">/** + * The predicted high temperature for the day. + * + * SDLTemperature, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">temperatureHigh</span><span class="p">;</span> + +<span class="cm">/** + * The predicted low temperature for the day. + * + * SDLTemperature, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">temperatureLow</span><span class="p">;</span> + +<span class="cm">/** + * The apparent temperature. + * + * SDLTemperature, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">apparentTemperature</span><span class="p">;</span> + +<span class="cm">/** + * The predicted high apparent temperature for the day. + * + * SDLTemperature, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">apparentTemperatureHigh</span><span class="p">;</span> + +<span class="cm">/** + * The predicted low apparent temperature for the day. + * + * SDLTemperature, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">apparentTemperatureLow</span><span class="p">;</span> + +<span class="cm">/** + * A summary of the weather. + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">weatherSummary</span><span class="p">;</span> + +<span class="cm">/** + * The time this data refers to. + * + * SDLDateTime, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">time</span><span class="p">;</span> + +<span class="cm">/** + * From 0 to 1, percentage humidity. + * + * Float, Optional, minvalue="0" maxvalue="1" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">humidity</span><span class="p">;</span> + +<span class="cm">/** + * From 0 to 1, percentage cloud cover. + * + * Float, Optional, minvalue="0" maxvalue="1" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">cloudCover</span><span class="p">;</span> + +<span class="cm">/** + * From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon + * + * Float, Optional, minvalue="0" maxvalue="1" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">moonPhase</span><span class="p">;</span> + +<span class="cm">/** + * In degrees, true north at 0 degrees. + * + * Integer, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">windBearing</span><span class="p">;</span> + +<span class="cm">/** + * In km/hr + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">windGust</span><span class="p">;</span> + +<span class="cm">/** + * In km/hr + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">windSpeed</span><span class="p">;</span> + +<span class="cm">/** + * In degrees, true north at 0 degrees. + * + * Integer, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">nearestStormBearing</span><span class="p">;</span> + +<span class="cm">/** + * In km + * + * Integer, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">nearestStormDistance</span><span class="p">;</span> + +<span class="cm">/** + * In cm + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">precipAccumulation</span><span class="p">;</span> + +<span class="cm">/** + * In cm of water per hour. + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">precipIntensity</span><span class="p">;</span> + +<span class="cm">/** + * From 0 to 1, percentage chance. + * + * Float, Optional, minvalue="0" maxvalue="1" + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">precipProbability</span><span class="p">;</span> + +<span class="cm">/** + * A description of the precipitation type (e.g. "rain", "snow", "sleet", "hail") + * + * String, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">precipType</span><span class="p">;</span> + +<span class="cm">/** + * In km + * + * Float, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">visibility</span><span class="p">;</span> + +<span class="cm">/** + * The weather icon image. + * + * SDLImage, Optional + */</span> +<span class="k">@property</span> <span class="p">(</span><span class="n">nullable</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">weatherIcon</span><span class="p">;</span> + +<span class="k">@end</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLWeatherData</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLWeatherServiceData"> + SDLWeatherServiceData + </h3> + + <p>This data is related to what a weather service would provide.</p> + + <a href="Classes/SDLWeatherServiceData.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLWeatherServiceData</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLWeatherServiceData</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + + <h3 id="section-SDLWeatherServiceManifest"> + SDLWeatherServiceManifest + </h3> + + <p>A weather service manifest.</p> + + <a href="Classes/SDLWeatherServiceManifest.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@interface</span> <span class="nc">SDLWeatherServiceManifest</span> <span class="p">:</span> <span class="nc"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kt">SDLWeatherServiceManifest</span> <span class="p">:</span> <span class="kt"><a href="Classes/SDLRPCStruct.html">SDLRPCStruct</a></span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLAppServiceCapability.html b/docs/Classes/SDLAppServiceCapability.html new file mode 100644 index 000000000..9a64df4be --- /dev/null +++ b/docs/Classes/SDLAppServiceCapability.html @@ -0,0 +1,120 @@ +<h1>SDLAppServiceCapability Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithUpdatedAppServiceRecord:">-initWithUpdatedAppServiceRecord:</a></li> + <li><a href="#section--initWithUpdateReason:updatedAppServiceRecord:">-initWithUpdateReason:updatedAppServiceRecord:</a></li> + <li><a href="#section-updateReason">updateReason</a></li> + <li><a href="#section-updatedAppServiceRecord">updatedAppServiceRecord</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithUpdatedAppServiceRecord:"> + -initWithUpdatedAppServiceRecord: + </h3> + + <p>Convenience init for required parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdatedAppServiceRecord</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">updatedAppServiceRecord</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">updatedAppServiceRecord</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>updatedAppServiceRecord</dt> + <dd><p>Service record for a specific app service provider</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceCapability object</p> + </div> + + <h3 id="section--initWithUpdateReason:updatedAppServiceRecord:"> + -initWithUpdateReason:updatedAppServiceRecord: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateReason</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span><span class="p">)</span><span class="nv">updateReason</span> + <span class="nf">updatedAppServiceRecord</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">updatedAppServiceRecord</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">updateReason</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span><span class="p">?,</span> <span class="nv">updatedAppServiceRecord</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>updateReason</dt> + <dd><p>Update reason for this service record</p></dd> + <dt>updatedAppServiceRecord</dt> + <dd><p>Service record for a specific app service provider</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceCapability object</p> + </div> + + <h3 id="section-updateReason"> + updateReason + </h3> + + <p>Only included in <code>OnSystemCapbilityUpdated</code>. Update reason for this service record.</p> + +<p>SDLServiceUpdateReason, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">updateReason</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">updateReason</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-updatedAppServiceRecord"> + updatedAppServiceRecord + </h3> + + <p>Service record for a specific app service provider.</p> + +<p>SDLAppServiceRecord, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">updatedAppServiceRecord</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">updatedAppServiceRecord</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLAppServiceData.html b/docs/Classes/SDLAppServiceData.html new file mode 100644 index 000000000..02630ba03 --- /dev/null +++ b/docs/Classes/SDLAppServiceData.html @@ -0,0 +1,294 @@ +<h1>SDLAppServiceData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServiceType:serviceId:">-initWithAppServiceType:serviceId:</a></li> + <li><a href="#section--initWithMediaServiceData:serviceId:">-initWithMediaServiceData:serviceId:</a></li> + <li><a href="#section--initWithWeatherServiceData:serviceId:">-initWithWeatherServiceData:serviceId:</a></li> + <li><a href="#section--initWithNavigationServiceData:serviceId:">-initWithNavigationServiceData:serviceId:</a></li> + <li><a href="#section--initWithAppServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData:">-initWithAppServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData:</a></li> + <li><a href="#section-serviceType">serviceType</a></li> + <li><a href="#section-serviceId">serviceId</a></li> + <li><a href="#section-mediaServiceData">mediaServiceData</a></li> + <li><a href="#section-weatherServiceData">weatherServiceData</a></li> + <li><a href="#section-navigationServiceData">navigationServiceData</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServiceType:serviceId:"> + -initWithAppServiceType:serviceId: + </h3> + + <p>Convenience init for service type and service id.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceType</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span> + <span class="nf">serviceId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">appServiceType</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">,</span> <span class="nv">serviceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceType</dt> + <dd><p>The type of service that is to be offered by this app.</p></dd> + <dt>serviceId</dt> + <dd><p>A unique ID tied to this specific service record.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceData object</p> + </div> + + <h3 id="section--initWithMediaServiceData:serviceId:"> + -initWithMediaServiceData:serviceId: + </h3> + + <p>Convenience init for media service data.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithMediaServiceData</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaServiceData</span> + <span class="nf">serviceId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">mediaServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span><span class="p">,</span> <span class="nv">serviceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>mediaServiceData</dt> + <dd><p>The media service data</p></dd> + <dt>serviceId</dt> + <dd><p>A unique ID tied to this specific service record.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceData object</p> + </div> + + <h3 id="section--initWithWeatherServiceData:serviceId:"> + -initWithWeatherServiceData:serviceId: + </h3> + + <p>Convenience init for weather service data.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithWeatherServiceData</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherServiceData</span> + <span class="nf">serviceId</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">weatherServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span><span class="p">,</span> <span class="nv">serviceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>weatherServiceData</dt> + <dd><p>The weather service data</p></dd> + <dt>serviceId</dt> + <dd><p>A unique ID tied to this specific service record.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceData object</p> + </div> + + <h3 id="section--initWithNavigationServiceData:serviceId:"> + -initWithNavigationServiceData:serviceId: + </h3> + + <p>Convenience init for navigation service data.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithNavigationServiceData</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">navigationServiceData</span> + <span class="nf">serviceId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">navigationServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span><span class="p">,</span> <span class="nv">serviceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>navigationServiceData</dt> + <dd><p>The navigation service data</p></dd> + <dt>serviceId</dt> + <dd><p>A unique ID tied to this specific service record.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceData object</p> + </div> + + <h3 id="section--initWithAppServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData:"> + -initWithAppServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithAppServiceType</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span> + <span class="nf">serviceId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceId</span> + <span class="nf">mediaServiceData</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaServiceData</span> + <span class="nf">weatherServiceData</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherServiceData</span> + <span class="nf">navigationServiceData</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">navigationServiceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="n">appServiceType</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">,</span> <span class="nv">serviceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">mediaServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span><span class="p">?,</span> <span class="nv">weatherServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span><span class="p">?,</span> <span class="nv">navigationServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceType</dt> + <dd><p>The type of service that is to be offered by this app.</p></dd> + <dt>serviceId</dt> + <dd><p>A unique ID tied to this specific service record.</p></dd> + <dt>mediaServiceData</dt> + <dd><p>The media service data</p></dd> + <dt>weatherServiceData</dt> + <dd><p>The weather service data</p></dd> + <dt>navigationServiceData</dt> + <dd><p>The navigation service data</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceData object</p> + </div> + + <h3 id="section-serviceType"> + serviceType + </h3> + + <p>The type of service that is to be offered by this app. See <code>AppServiceType</code> for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core.</p> + +<p>String, See <code><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></code>, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-serviceId"> + serviceId + </h3> + + <p>A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves.</p> + +<p>String, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceId</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceId</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-mediaServiceData"> + mediaServiceData + </h3> + + <p>The media service data.</p> + +<p>SDLMediaServiceData, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span> <span class="o">*</span><span class="n">mediaServiceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">mediaServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLMediaServiceData.html">SDLMediaServiceData</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-weatherServiceData"> + weatherServiceData + </h3> + + <p>The weather service data.</p> + +<p>SDLWeatherServiceData, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span> <span class="o">*</span><span class="n">weatherServiceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">weatherServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherServiceData.html">SDLWeatherServiceData</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-navigationServiceData"> + navigationServiceData + </h3> + + <p>The navigation service data.</p> + +<p>SDLNavigationServiceData, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span> <span class="o">*</span><span class="n">navigationServiceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">navigationServiceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLNavigationServiceData.html">SDLNavigationServiceData</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLAppServiceManifest.html b/docs/Classes/SDLAppServiceManifest.html new file mode 100644 index 000000000..8da81c76f --- /dev/null +++ b/docs/Classes/SDLAppServiceManifest.html @@ -0,0 +1,432 @@ +<h1>SDLAppServiceManifest Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServiceType:">-initWithAppServiceType:</a></li> + <li><a href="#section--initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:">-initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:</a></li> + <li><a href="#section--initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest:">-initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest:</a></li> + <li><a href="#section--initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest:">-initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest:</a></li> + <li><a href="#section--initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest:">-initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest:</a></li> + <li><a href="#section-serviceName">serviceName</a></li> + <li><a href="#section-serviceType">serviceType</a></li> + <li><a href="#section-serviceIcon">serviceIcon</a></li> + <li><a href="#section-allowAppConsumers">allowAppConsumers</a></li> + <li><a href="#section-rpcSpecVersion">rpcSpecVersion</a></li> + <li><a href="#section-handledRPCs">handledRPCs</a></li> + <li><a href="#section-mediaServiceManifest">mediaServiceManifest</a></li> + <li><a href="#section-weatherServiceManifest">weatherServiceManifest</a></li> + <li><a href="#section-navigationServiceManifest">navigationServiceManifest</a></li> +</ul> + +<h3>Overview</h3> + +<p>This manifest contains all the information necessary for the service to be published, activated, and allow consumers to interact with it</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServiceType:"> + -initWithAppServiceType: + </h3> + + <p>Convenience init for serviceType.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceType</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">appServiceType</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceType</dt> + <dd><p>The type of service that is to be offered by this app</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceManifest object</p> + </div> + + <h3 id="section--initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:"> + -initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest: + </h3> + + <p>Convenience init for a media service manifest.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithMediaServiceName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceName</span> + <span class="nf">serviceIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceIcon</span> + <span class="nf">allowAppConsumers</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">allowAppConsumers</span> + <span class="nf">rpcSpecVersion</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcSpecVersion</span> + <span class="nf">handledRPCs</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">handledRPCs</span> + <span class="nf">mediaServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes.html#/c:objc(cs)SDLMediaServiceManifest">SDLMediaServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="n">mediaServiceName</span> <span class="nv">serviceName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">serviceIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?,</span> <span class="nv">allowAppConsumers</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpcSpecVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span><span class="p">?,</span> <span class="nv">handledRPCs</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">]?,</span> <span class="nv">mediaServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes.html#/c:objc(cs)SDLMediaServiceManifest">SDLMediaServiceManifest</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceName</dt> + <dd><p>Unique name of this service</p></dd> + <dt>serviceIcon</dt> + <dd><p>The file name of the icon to be associated with this service</p></dd> + <dt>allowAppConsumers</dt> + <dd><p>If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false</p></dd> + <dt>rpcSpecVersion</dt> + <dd><p>This is the max RPC Spec version the app service understands</p></dd> + <dt>handledRPCs</dt> + <dd><p>This field contains the Function IDs for the RPCs that this service intends to handle correctly</p></dd> + <dt>mediaServiceManifest</dt> + <dd><p>A media service manifest</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceManifest object</p> + </div> + + <h3 id="section--initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest:"> + -initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest: + </h3> + + <p>Convenience init for a weather service manifest.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithWeatherServiceName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceName</span> + <span class="nf">serviceIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceIcon</span> + <span class="nf">allowAppConsumers</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">allowAppConsumers</span> + <span class="nf">rpcSpecVersion</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcSpecVersion</span> + <span class="nf">handledRPCs</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">handledRPCs</span> + <span class="nf">weatherServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLWeatherServiceManifest.html">SDLWeatherServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="n">weatherServiceName</span> <span class="nv">serviceName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">serviceIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?,</span> <span class="nv">allowAppConsumers</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpcSpecVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span><span class="p">?,</span> <span class="nv">handledRPCs</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">]?,</span> <span class="nv">weatherServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherServiceManifest.html">SDLWeatherServiceManifest</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceName</dt> + <dd><p>Unique name of this service</p></dd> + <dt>serviceIcon</dt> + <dd><p>The file name of the icon to be associated with this service</p></dd> + <dt>allowAppConsumers</dt> + <dd><p>If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false</p></dd> + <dt>rpcSpecVersion</dt> + <dd><p>This is the max RPC Spec version the app service understands</p></dd> + <dt>handledRPCs</dt> + <dd><p>This field contains the Function IDs for the RPCs that this service intends to handle correctly</p></dd> + <dt>weatherServiceManifest</dt> + <dd><p>A weather service manifest</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceManifest object</p> + </div> + + <h3 id="section--initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest:"> + -initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest: + </h3> + + <p>Convenience init for a navigation service manifest.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithNavigationServiceName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceName</span> + <span class="nf">serviceIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceIcon</span> + <span class="nf">allowAppConsumers</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">allowAppConsumers</span> + <span class="nf">rpcSpecVersion</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcSpecVersion</span> + <span class="nf">handledRPCs</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">handledRPCs</span> + <span class="nf">navigationServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLNavigationServiceManifest.html">SDLNavigationServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">navigationServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="n">navigationServiceName</span> <span class="nv">serviceName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">serviceIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?,</span> <span class="nv">allowAppConsumers</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpcSpecVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span><span class="p">?,</span> <span class="nv">handledRPCs</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">]?,</span> <span class="nv">navigationServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLNavigationServiceManifest.html">SDLNavigationServiceManifest</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceName</dt> + <dd><p>Unique name of this service</p></dd> + <dt>serviceIcon</dt> + <dd><p>The file name of the icon to be associated with this service</p></dd> + <dt>allowAppConsumers</dt> + <dd><p>If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false</p></dd> + <dt>rpcSpecVersion</dt> + <dd><p>This is the max RPC Spec version the app service understands</p></dd> + <dt>handledRPCs</dt> + <dd><p>This field contains the Function IDs for the RPCs that this service intends to handle correctly</p></dd> + <dt>navigationServiceManifest</dt> + <dd><p>A navigation service manifest</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceManifest object</p> + </div> + + <h3 id="section--initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest:"> + -initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithServiceName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceName</span> + <span class="nf">serviceType</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span> + <span class="nf">serviceIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceIcon</span> + <span class="nf">allowAppConsumers</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">allowAppConsumers</span> + <span class="nf">rpcSpecVersion</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcSpecVersion</span> + <span class="nf">handledRPCs</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">handledRPCs</span> + <span class="nf">mediaServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes.html#/c:objc(cs)SDLMediaServiceManifest">SDLMediaServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaServiceManifest</span> + <span class="nf">weatherServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLWeatherServiceManifest.html">SDLWeatherServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherServiceManifest</span> + <span class="nf">navigationServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLNavigationServiceManifest.html">SDLNavigationServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">navigationServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">serviceName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">,</span> <span class="nv">serviceIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?,</span> <span class="nv">allowAppConsumers</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpcSpecVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span><span class="p">?,</span> <span class="nv">handledRPCs</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">]?,</span> <span class="nv">mediaServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes.html#/c:objc(cs)SDLMediaServiceManifest">SDLMediaServiceManifest</a></span><span class="p">?,</span> <span class="nv">weatherServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherServiceManifest.html">SDLWeatherServiceManifest</a></span><span class="p">?,</span> <span class="nv">navigationServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLNavigationServiceManifest.html">SDLNavigationServiceManifest</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceName</dt> + <dd><p>Unique name of this service</p></dd> + <dt>serviceType</dt> + <dd><p>The type of service that is to be offered by this app</p></dd> + <dt>serviceIcon</dt> + <dd><p>The file name of the icon to be associated with this service</p></dd> + <dt>allowAppConsumers</dt> + <dd><p>If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false</p></dd> + <dt>rpcSpecVersion</dt> + <dd><p>This is the max RPC Spec version the app service understands</p></dd> + <dt>handledRPCs</dt> + <dd><p>This field contains the Function IDs for the RPCs that this service intends to handle correctly</p></dd> + <dt>mediaServiceManifest</dt> + <dd><p>A media service manifest</p></dd> + <dt>weatherServiceManifest</dt> + <dd><p>A weather service manifest</p></dd> + <dt>navigationServiceManifest</dt> + <dd><p>A navigation service manifest</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceManifest object</p> + </div> + + <h3 id="section-serviceName"> + serviceName + </h3> + + <p>Unique name of this service.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">serviceName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-serviceType"> + serviceType + </h3> + + <p>The type of service that is to be offered by this app. See AppServiceType for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core.</p> + +<p>String, See <code><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></code>, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-serviceIcon"> + serviceIcon + </h3> + + <p>The file name of the icon to be associated with this service. Most likely the same as the appIcon.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">serviceIcon</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-allowAppConsumers"> + allowAppConsumers + </h3> + + <p>If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false.</p> + +<p>Boolean, Optional, default = NO</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">allowAppConsumers</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">allowAppConsumers</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-rpcSpecVersion"> + rpcSpecVersion + </h3> + + <p>This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable.</p> + +<p>SyncMsgVersion, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="n">rpcSpecVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">rpcSpecVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-handledRPCs"> + handledRPCs + </h3> + + <p>This field contains the Function IDs for the RPCs that this service intends to handle correctly. This means the service will provide meaningful responses. See FunctionID for enum equivalent values. This parameter is an integer to allow for new function IDs to be used by apps on older versions of SDL Core.</p> + +<p>Array of Integers, See <code><a href="../Classes/SDLFunctionID.html">SDLFunctionID</a></code>, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="n">handledRPCs</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">handledRPCs</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-mediaServiceManifest"> + mediaServiceManifest + </h3> + + <p>A media service manifest.</p> + +<p>SDLMediaServiceManifest, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes.html#/c:objc(cs)SDLMediaServiceManifest">SDLMediaServiceManifest</a></span> <span class="o">*</span><span class="n">mediaServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">mediaServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes.html#/c:objc(cs)SDLMediaServiceManifest">SDLMediaServiceManifest</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-weatherServiceManifest"> + weatherServiceManifest + </h3> + + <p>A weather service manifest.</p> + +<p>SDLWeatherServiceManifest, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLWeatherServiceManifest.html">SDLWeatherServiceManifest</a></span> <span class="o">*</span><span class="n">weatherServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">weatherServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherServiceManifest.html">SDLWeatherServiceManifest</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-navigationServiceManifest"> + navigationServiceManifest + </h3> + + <p>A navigation service manifest.</p> + +<p>SDLNavigationServiceManifest, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLNavigationServiceManifest.html">SDLNavigationServiceManifest</a></span> <span class="o">*</span><span class="n">navigationServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">navigationServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLNavigationServiceManifest.html">SDLNavigationServiceManifest</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLAppServiceRecord.html b/docs/Classes/SDLAppServiceRecord.html new file mode 100644 index 000000000..369552c86 --- /dev/null +++ b/docs/Classes/SDLAppServiceRecord.html @@ -0,0 +1,139 @@ +<h1>SDLAppServiceRecord Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithServiceID:serviceManifest:servicePublished:serviceActive:">-initWithServiceID:serviceManifest:servicePublished:serviceActive:</a></li> + <li><a href="#section-serviceID">serviceID</a></li> + <li><a href="#section-serviceManifest">serviceManifest</a></li> + <li><a href="#section-servicePublished">servicePublished</a></li> + <li><a href="#section-serviceActive">serviceActive</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithServiceID:serviceManifest:servicePublished:serviceActive:"> + -initWithServiceID:serviceManifest:servicePublished:serviceActive: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceID</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceID</span> + <span class="nf">serviceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceManifest</span> + <span class="nf">servicePublished</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">servicePublished</span> + <span class="nf">serviceActive</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">serviceActive</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">serviceID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">serviceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span><span class="p">,</span> <span class="nv">servicePublished</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">serviceActive</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceID</dt> + <dd><p>A unique ID tied to this specific service record</p></dd> + <dt>serviceManifest</dt> + <dd><p>Manifest for the service that this record is for</p></dd> + <dt>servicePublished</dt> + <dd><p>If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable</p></dd> + <dt>serviceActive</dt> + <dd><p>If true, the service is the active primary service of the supplied service type.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServiceRecord object</p> + </div> + + <h3 id="section-serviceID"> + serviceID + </h3> + + <p>A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves.</p> + +<p>String, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceID</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-serviceManifest"> + serviceManifest + </h3> + + <p>Manifest for the service that this record is for.</p> + +<p>SDLAppServiceManifest, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-servicePublished"> + servicePublished + </h3> + + <p>If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable.</p> + +<p>Boolean, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">servicePublished</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">servicePublished</span><span class="p">:</span> <span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-serviceActive"> + serviceActive + </h3> + + <p>If true, the service is the active primary service of the supplied service type. It will receive all potential RPCs that are passed through to that service type. If false, it is not the primary service of the supplied type. See servicePublished for its availability.</p> + +<p>Boolean, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceActive</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceActive</span><span class="p">:</span> <span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLAppServicesCapabilities.html b/docs/Classes/SDLAppServicesCapabilities.html new file mode 100644 index 000000000..c99999f25 --- /dev/null +++ b/docs/Classes/SDLAppServicesCapabilities.html @@ -0,0 +1,65 @@ +<h1>SDLAppServicesCapabilities Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServices:">-initWithAppServices:</a></li> + <li><a href="#section-appServices">appServices</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServices:"> + -initWithAppServices: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServices</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLAppServiceCapability.html">SDLAppServiceCapability</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">appServices</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">appServices</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLAppServiceCapability.html">SDLAppServiceCapability</a></span><span class="p">]?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>appServices</dt> + <dd><p>An array of currently available services.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLAppServicesCapabilities object</p> + </div> + + <h3 id="section-appServices"> + appServices + </h3> + + <p>An array of currently available services. If this is an update to the capability the affected services will include an update reason in that item.</p> + +<p>Array of SDLAppServiceCapability, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLAppServiceCapability.html">SDLAppServiceCapability</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">appServices</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appServices</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLAppServiceCapability.html">SDLAppServiceCapability</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLArtwork.html b/docs/Classes/SDLArtwork.html index 59655c425..10c8655f1 100644 --- a/docs/Classes/SDLArtwork.html +++ b/docs/Classes/SDLArtwork.html @@ -4,12 +4,15 @@ <ul> <li><a href="#section-isTemplate">isTemplate</a></li> + <li><a href="#section-imageRPC">imageRPC</a></li> <li><a href="#section-+artworkWithImage:name:asImageFormat:">+artworkWithImage:name:asImageFormat:</a></li> <li><a href="#section-+artworkWithImage:asImageFormat:">+artworkWithImage:asImageFormat:</a></li> + <li><a href="#section-+artworkWithStaticIcon:">+artworkWithStaticIcon:</a></li> <li><a href="#section-+persistentArtworkWithImage:name:asImageFormat:">+persistentArtworkWithImage:name:asImageFormat:</a></li> <li><a href="#section-+persistentArtworkWithImage:asImageFormat:">+persistentArtworkWithImage:asImageFormat:</a></li> <li><a href="#section--initWithImage:name:persistent:asImageFormat:">-initWithImage:name:persistent:asImageFormat:</a></li> <li><a href="#section--initWithImage:persistent:asImageFormat:">-initWithImage:persistent:asImageFormat:</a></li> + <li><a href="#section--initWithStaticIcon:">-initWithStaticIcon:</a></li> </ul> <h3>Overview</h3> @@ -38,6 +41,24 @@ + <h3 id="section-imageRPC"> + imageRPC + </h3> + + <p>The Image RPC representing this artwork. Generally for use internally, you should instead pass an artwork to a Screen Manager method.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readonly</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">imageRPC</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">imageRPC</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + <h3 id="section-+artworkWithImage:name:asImageFormat:"> +artworkWithImage:name:asImageFormat: </h3> @@ -113,6 +134,31 @@ <p>An instance of this class to be passed to the file manager.</p> </div> + <h3 id="section-+artworkWithStaticIcon:"> + +artworkWithStaticIcon: + </h3> + + <p>Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">artworkWithStaticIcon</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName">SDLStaticIconName</a></span><span class="p">)</span><span class="nv">staticIcon</span><span class="p">;</span></code></pre> + + + + + <h4>Parameters</h4> + <dl> + <dt>staticIcon</dt> + <dd><p>The static icon to be shown on the remote system.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An instance of this class to be passed to a screen manager.</p> + </div> + <h3 id="section-+persistentArtworkWithImage:name:asImageFormat:"> +persistentArtworkWithImage:name:asImageFormat: </h3> @@ -259,4 +305,32 @@ <p>An instance of this class to be passed to the file manager.</p> </div> + <h3 id="section--initWithStaticIcon:"> + -initWithStaticIcon: + </h3> + + <p>Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithStaticIcon</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName">SDLStaticIconName</a></span><span class="p">)</span><span class="nv">staticIcon</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">staticIcon</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName">SDLStaticIconName</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>staticIcon</dt> + <dd><p>The static icon to be shown on the remote system.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An instance of this class to be passed to a screen manager.</p> + </div> + </section> diff --git a/docs/Classes/SDLAudioControlCapabilities.html b/docs/Classes/SDLAudioControlCapabilities.html index d5001c528..5c706bbba 100644 --- a/docs/Classes/SDLAudioControlCapabilities.html +++ b/docs/Classes/SDLAudioControlCapabilities.html @@ -56,12 +56,12 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithModuleName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> - <span class="nf">sourceAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">sourceAvailable</span> - <span class="nf">keepContextAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">keepContextAvailable</span> - <span class="nf">volumeAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">volumeAvailable</span> - <span class="nf">equalizerAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">equalizerAvailable</span> -<span class="nf">equalizerMaxChannelID</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">equalizerMaxChannelID</span><span class="p">;</span></code></pre> + <span class="nf">initWithModuleName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> + <span class="nf">sourceAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">sourceAvailable</span> + <span class="nf">keepContextAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">keepContextAvailable</span> + <span class="nf">volumeAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">volumeAvailable</span> + <span class="nf">equalizerAvailable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">equalizerAvailable</span> + <span class="nf">equalizerMaxChannelID</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">equalizerMaxChannelID</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLAudioControlData.html b/docs/Classes/SDLAudioControlData.html index a4fc2e8c8..71d228006 100644 --- a/docs/Classes/SDLAudioControlData.html +++ b/docs/Classes/SDLAudioControlData.html @@ -25,11 +25,12 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithSource</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLPrimaryAudioSource.h@T@SDLPrimaryAudioSource">SDLPrimaryAudioSource</a></span><span class="p">)</span><span class="nv">source</span> - <span class="nf">keepContext</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">keepContext</span> - <span class="nf">volume</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">volume</span> -<span class="nf">equalizerSettings</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLEqualizerSettings.html">SDLEqualizerSettings</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">equalizerSettings</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithSource</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLPrimaryAudioSource.h@T@SDLPrimaryAudioSource">SDLPrimaryAudioSource</a></span><span class="p">)</span><span class="nv">source</span> + <span class="nf">keepContext</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">keepContext</span> + <span class="nf">volume</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">volume</span> + <span class="nf">equalizerSettings</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLEqualizerSettings.html">SDLEqualizerSettings</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)equalizerSettings">equalizerSettings</a></span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLChoiceSet.html b/docs/Classes/SDLChoiceSet.html index 5d8347de1..d8d311333 100644 --- a/docs/Classes/SDLChoiceSet.html +++ b/docs/Classes/SDLChoiceSet.html @@ -273,15 +273,15 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> - <span class="nf">delegate</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLChoiceSetDelegate.html">SDLChoiceSetDelegate</a></span><span class="o">></span><span class="p">)</span><span class="nv">delegate</span> - <span class="nf">layout</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLChoiceSetLayout.html">SDLChoiceSetLayout</a></span><span class="p">)</span><span class="nv">layout</span> - <span class="nf">timeout</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">timeout</span> -<span class="nf">initialPromptString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">initialPrompt</span> -<span class="nf">timeoutPromptString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">timeoutPrompt</span> - <span class="nf">helpPromptString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">helpPrompt</span> - <span class="nf">vrHelpList</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVRHelpItem.html">SDLVRHelpItem</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">helpList</span> - <span class="nf">choices</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLChoiceCell.html">SDLChoiceCell</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">choices</span><span class="p">;</span></code></pre> + <span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> + <span class="nf">delegate</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLChoiceSetDelegate.html">SDLChoiceSetDelegate</a></span><span class="o">></span><span class="p">)</span><span class="nv">delegate</span> + <span class="nf">layout</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLChoiceSetLayout.html">SDLChoiceSetLayout</a></span><span class="p">)</span><span class="nv">layout</span> + <span class="nf">timeout</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">timeout</span> + <span class="nf">initialPromptString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">initialPrompt</span> + <span class="nf">timeoutPromptString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">timeoutPrompt</span> + <span class="nf">helpPromptString</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">helpPrompt</span> + <span class="nf">vrHelpList</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVRHelpItem.html">SDLVRHelpItem</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">helpList</span> + <span class="nf">choices</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLChoiceCell.html">SDLChoiceCell</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">choices</span><span class="p">;</span></code></pre> @@ -322,15 +322,15 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> - <span class="nf">delegate</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLChoiceSetDelegate.html">SDLChoiceSetDelegate</a></span><span class="o">></span><span class="p">)</span><span class="nv">delegate</span> - <span class="nf">layout</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLChoiceSetLayout.html">SDLChoiceSetLayout</a></span><span class="p">)</span><span class="nv">layout</span> - <span class="nf">timeout</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">timeout</span> -<span class="nf">initialPrompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">initialPrompt</span> -<span class="nf">timeoutPrompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeoutPrompt</span> - <span class="nf">helpPrompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">helpPrompt</span> - <span class="nf">vrHelpList</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVRHelpItem.html">SDLVRHelpItem</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">helpList</span> - <span class="nf">choices</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLChoiceCell.html">SDLChoiceCell</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">choices</span><span class="p">;</span></code></pre> + <span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> + <span class="nf">delegate</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLChoiceSetDelegate.html">SDLChoiceSetDelegate</a></span><span class="o">></span><span class="p">)</span><span class="nv">delegate</span> + <span class="nf">layout</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLChoiceSetLayout.html">SDLChoiceSetLayout</a></span><span class="p">)</span><span class="nv">layout</span> + <span class="nf">timeout</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">timeout</span> + <span class="nf">initialPrompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">initialPrompt</span> + <span class="nf">timeoutPrompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeoutPrompt</span> + <span class="nf">helpPrompt</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">helpPrompt</span> + <span class="nf">vrHelpList</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVRHelpItem.html">SDLVRHelpItem</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">helpList</span> + <span class="nf">choices</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLChoiceCell.html">SDLChoiceCell</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">choices</span><span class="p">;</span></code></pre> diff --git a/docs/Classes/SDLCloudAppProperties.html b/docs/Classes/SDLCloudAppProperties.html new file mode 100644 index 000000000..fac3f98a0 --- /dev/null +++ b/docs/Classes/SDLCloudAppProperties.html @@ -0,0 +1,238 @@ +<h1>SDLCloudAppProperties Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppID:">-initWithAppID:</a></li> + <li><a href="#section--initWithAppID:nicknames:enabled:authToken:cloudTransportType:hybridAppPreference:endpoint:">-initWithAppID:nicknames:enabled:authToken:cloudTransportType:hybridAppPreference:endpoint:</a></li> + <li><a href="#section-nicknames">nicknames</a></li> + <li><a href="#section-appID">appID</a></li> + <li><a href="#section-enabled">enabled</a></li> + <li><a href="#section-authToken">authToken</a></li> + <li><a href="#section-cloudTransportType">cloudTransportType</a></li> + <li><a href="#section-hybridAppPreference">hybridAppPreference</a></li> + <li><a href="#section-endpoint">endpoint</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppID:"> + -initWithAppID: + </h3> + + <p>Convenience init for required parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppID</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>appID</dt> + <dd><p>The id of the cloud app</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLCloudAppProperties object</p> + </div> + + <h3 id="section--initWithAppID:nicknames:enabled:authToken:cloudTransportType:hybridAppPreference:endpoint:"> + -initWithAppID:nicknames:enabled:authToken:cloudTransportType:hybridAppPreference:endpoint: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppID</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appID</span> + <span class="nf">nicknames</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">nicknames</span> + <span class="nf">enabled</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">enabled</span> + <span class="nf">authToken</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">authToken</span> + <span class="nf">cloudTransportType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">cloudTransportType</span> + <span class="nf">hybridAppPreference</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span><span class="p">)</span><span class="nv">hybridAppPreference</span> + <span class="nf">endpoint</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">endpoint</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">nicknames</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?,</span> <span class="nv">enabled</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">authToken</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">cloudTransportType</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">hybridAppPreference</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span><span class="p">?,</span> <span class="nv">endpoint</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>appID</dt> + <dd><p>The id of the cloud app</p></dd> + <dt>nicknames</dt> + <dd><p>An array of app names a cloud app is allowed to register with</p></dd> + <dt>enabled</dt> + <dd><p>If true, the cloud app will appear in the HMI’s app list; if false, the cloud app will not appear in the HMI’s app list</p></dd> + <dt>authToken</dt> + <dd><p>Used to authenticate websocket connection on app activation</p></dd> + <dt>cloudTransportType</dt> + <dd><p>Specifies the connection type Core should use</p></dd> + <dt>hybridAppPreference</dt> + <dd><p>Specifies the user preference to use the cloud app version or mobile app version when both are available</p></dd> + <dt>endpoint</dt> + <dd><p>The websocket endpoint</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLCloudAppProperties object</p> + </div> + + <h3 id="section-nicknames"> + nicknames + </h3> + + <p>An array of app names a cloud app is allowed to register with. If included in a <code>SetCloudAppProperties</code> request, this value will overwrite the existing <q>nicknames</q> field in the app policies section of the policy table.</p> + +<p>Array of Strings, Optional, String length: minlength=<q>0</q> maxlength=<q>100</q>, Array size: minsize=<q>0</q> maxsize=<q>100</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="n">nicknames</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">nicknames</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-appID"> + appID + </h3> + + <p>The id of the cloud app.</p> + +<p>String, Required, maxlength=<q>100</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">appID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-enabled"> + enabled + </h3> + + <p>If true, the cloud app will appear in the HMI’s app list; if false, the cloud app will not appear in the HMI’s app list.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">enabled</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">enabled</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-authToken"> + authToken + </h3> + + <p>Used to authenticate websocket connection on app activation.</p> + +<p>String, Optional, maxlength=<q>65535</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">authToken</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">authToken</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-cloudTransportType"> + cloudTransportType + </h3> + + <p>Specifies the connection type Core should use. Currently the ones that work in SDL Core are <code>WS</code> or <code>WSS</code>, but an OEM can implement their own transport adapter to handle different values.</p> + +<p>String, Optional, maxlength=<q>100</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">cloudTransportType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudTransportType</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-hybridAppPreference"> + hybridAppPreference + </h3> + + <p>Specifies the user preference to use the cloud app version or mobile app version when both are available.</p> + +<p>SDLHybridAppPreference, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span> <span class="n">hybridAppPreference</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">hybridAppPreference</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-endpoint"> + endpoint + </h3> + + <p>The websocket endpoint.</p> + +<p>String, Optional, maxlength=<q>65535</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">endpoint</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">endpoint</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLConfiguration.html b/docs/Classes/SDLConfiguration.html index 3a05a5818..9a352ec23 100644 --- a/docs/Classes/SDLConfiguration.html +++ b/docs/Classes/SDLConfiguration.html @@ -129,9 +129,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span><span class="p">;</span></code></pre> + <span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -163,10 +163,10 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> - <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManagerConfig</span><span class="p">;</span></code></pre> + <span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> + <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManagerConfig</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -200,10 +200,11 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">configurationWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span><span class="p">;</span></code></pre> + <span class="nf">configurationWithLifecycle</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span><span class="p">;</span></code></pre> @@ -232,12 +233,13 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">configurationWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> - <span class="nf">fileManager</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManagerConfig</span><span class="p">;</span></code></pre> + <span class="nf">configurationWithLifecycle</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> + <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)fileManagerConfig">fileManagerConfig</a></span><span class="p">;</span></code></pre> @@ -268,11 +270,11 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> - <span class="nf">streamingMedia</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">streamingMediaConfig</span><span class="p">;</span></code></pre> + <span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> + <span class="nf">streamingMedia</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">streamingMediaConfig</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -306,12 +308,12 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> - <span class="nf">streamingMedia</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">streamingMediaConfig</span> - <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManagerConfig</span><span class="p">;</span></code></pre> + <span class="nf">initWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> + <span class="nf">streamingMedia</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">streamingMediaConfig</span> + <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManagerConfig</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -347,12 +349,13 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">configurationWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> - <span class="nf">streamingMedia</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">streamingMediaConfig</span><span class="p">;</span></code></pre> + <span class="nf">configurationWithLifecycle</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> + <span class="nf">streamingMedia</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)streamingMediaConfig">streamingMediaConfig</a></span><span class="p">;</span></code></pre> @@ -383,14 +386,15 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">configurationWithLifecycle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> - <span class="nf">lockScreen</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> - <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> - <span class="nf">streamingMedia</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">streamingMediaConfig</span> - <span class="nf">fileManager</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManagerConfig</span><span class="p">;</span></code></pre> + <span class="nf">configurationWithLifecycle</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLifecycleConfiguration.html">SDLLifecycleConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lifecycleConfig</span> + <span class="nf">lockScreen</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLockScreenConfiguration.html">SDLLockScreenConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenConfig</span> + <span class="nf">logging</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLogConfiguration.html">SDLLogConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">logConfig</span> + <span class="nf">streamingMedia</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)streamingMediaConfig">streamingMediaConfig</a></span> + <span class="n">fileManager</span><span class="o">:</span><span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)fileManagerConfig">fileManagerConfig</a></span><span class="p">;</span></code></pre> diff --git a/docs/Classes/SDLFile.html b/docs/Classes/SDLFile.html index d41b9a28b..5423a196c 100644 --- a/docs/Classes/SDLFile.html +++ b/docs/Classes/SDLFile.html @@ -11,6 +11,7 @@ <li><a href="#section-fileSize">fileSize</a></li> <li><a href="#section-fileType">fileType</a></li> <li><a href="#section-inputStream">inputStream</a></li> + <li><a href="#section-isStaticIcon">isStaticIcon</a></li> <li><a href="#section--init">-init</a></li> <li><a href="#section--initWithFileURL:name:persistent:">-initWithFileURL:name:persistent:</a></li> <li><a href="#section-+persistentFileAtFileURL:name:">+persistentFileAtFileURL:name:</a></li> @@ -170,6 +171,28 @@ + <h3 id="section-isStaticIcon"> + isStaticIcon + </h3> + + <p>Describes whether or not this file is represented by static icon data. The head unit will present its representation of the static icon concept when sent this data.</p> + +<p>A file that represents a static icon may not be uploaded via the File Manager. It must be set using the Screen Manager.</p> + +<p>Support for this feature may vary by system, but it will generally be more supported in soft buttons and menus.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readonly</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">BOOL</span> <span class="n">isStaticIcon</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">isStaticIcon</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + <h3 id="section--init"> -init </h3> diff --git a/docs/Classes/SDLFileManager.html b/docs/Classes/SDLFileManager.html index 0d28f62d3..db3b0f753 100644 --- a/docs/Classes/SDLFileManager.html +++ b/docs/Classes/SDLFileManager.html @@ -177,8 +177,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithConnectionManager</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">manager</span> - <span class="nf">configuration</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span><span class="p">;</span></code></pre> + <span class="nf">initWithConnectionManager</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">manager</span> + <span class="nf">configuration</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLFileManagerConfiguration.html">SDLFileManagerConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span><span class="p">;</span></code></pre> diff --git a/docs/Classes/SDLFunctionID.html b/docs/Classes/SDLFunctionID.html new file mode 100644 index 000000000..74b9e0aeb --- /dev/null +++ b/docs/Classes/SDLFunctionID.html @@ -0,0 +1,71 @@ +<h1>SDLFunctionID Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section-+sharedInstance">+sharedInstance</a></li> + <li><a href="#section--functionNameForId:">-functionNameForId:</a></li> + <li><a href="#section--functionIdForName:">-functionIdForName:</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section-+sharedInstance"> + +sharedInstance + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="n">sharedInstance</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">sharedInstance</span><span class="p">()</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + + <h3 id="section--functionNameForId:"> + -functionNameForId: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span><span class="p">)</span><span class="nf">functionNameForId</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">functionID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">functionName</span><span class="p">(</span><span class="n">forId</span> <span class="nv">functionID</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">)</span> <span class="o">-></span> <span class="kt"><a href="../Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span><span class="p">?</span></code></pre> + + + + + <h3 id="section--functionIdForName:"> + -functionIdForName: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nf">functionIdForName</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span><span class="p">)</span><span class="nv">functionName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">functionId</span><span class="p">(</span><span class="n">forName</span> <span class="nv">functionName</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span><span class="p">)</span> <span class="o">-></span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetAppServiceData.html b/docs/Classes/SDLGetAppServiceData.html new file mode 100644 index 000000000..c65963be8 --- /dev/null +++ b/docs/Classes/SDLGetAppServiceData.html @@ -0,0 +1,143 @@ +<h1>SDLGetAppServiceData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServiceType:">-initWithAppServiceType:</a></li> + <li><a href="#section--initAndSubscribeToAppServiceType:">-initAndSubscribeToAppServiceType:</a></li> + <li><a href="#section--initAndUnsubscribeToAppServiceType:">-initAndUnsubscribeToAppServiceType:</a></li> + <li><a href="#section-serviceType">serviceType</a></li> + <li><a href="#section-subscribe">subscribe</a></li> +</ul> + +<h3>Overview</h3> + +<p>This request asks the module for current data related to the specific service. It also includes an option to subscribe to that service for future updates.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServiceType:"> + -initWithAppServiceType: + </h3> + + <p>Convenience init for service type.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceType</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">appServiceType</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceType</dt> + <dd><p>The app service type</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetAppServiceData object</p> + </div> + + <h3 id="section--initAndSubscribeToAppServiceType:"> + -initAndSubscribeToAppServiceType: + </h3> + + <p>Convenience init for subscribing to a service type.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initAndSubscribeToAppServiceType</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">andSubscribeToAppServiceType</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceType</dt> + <dd><p>The app service type</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetAppServiceData object</p> + </div> + + <h3 id="section--initAndUnsubscribeToAppServiceType:"> + -initAndUnsubscribeToAppServiceType: + </h3> + + <p>Convenience init for unsubscribing to a service type</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initAndUnsubscribeToAppServiceType</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span><span class="nv">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">andUnsubscribeToAppServiceType</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceType</dt> + <dd><p>The app service type</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetAppServiceData object</p> + </div> + + <h3 id="section-serviceType"> + serviceType + </h3> + + <p>The type of service that is to be offered by this app. See <code>AppServiceType</code> for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core.</p> + +<p>String, See <code><a href="../Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></code>, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceType</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-subscribe"> + subscribe + </h3> + + <p>If true, the consumer is requesting to subscribe to all future updates from the service publisher. If false, the consumer doesn’t wish to subscribe and should be unsubscribed if it was previously subscribed.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">subscribe</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">subscribe</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetAppServiceDataResponse.html b/docs/Classes/SDLGetAppServiceDataResponse.html new file mode 100644 index 000000000..549fd4eb0 --- /dev/null +++ b/docs/Classes/SDLGetAppServiceDataResponse.html @@ -0,0 +1,65 @@ +<h1>SDLGetAppServiceDataResponse Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServiceData:">-initWithAppServiceData:</a></li> + <li><a href="#section-serviceData">serviceData</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServiceData:"> + -initWithAppServiceData: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceData</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">appServiceData</span> <span class="nv">serviceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceData</dt> + <dd><p>Contains all the current data of the app service</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetAppServiceDataResponse object</p> + </div> + + <h3 id="section-serviceData"> + serviceData + </h3> + + <p>Contains all the current data of the app service.</p> + +<p>SDLAppServiceData, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="o">*</span><span class="n">serviceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetCloudAppProperties.html b/docs/Classes/SDLGetCloudAppProperties.html new file mode 100644 index 000000000..9e5705895 --- /dev/null +++ b/docs/Classes/SDLGetCloudAppProperties.html @@ -0,0 +1,63 @@ +<h1>SDLGetCloudAppProperties Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppID:">-initWithAppID:</a></li> + <li><a href="#section-appID">appID</a></li> +</ul> + +<h3>Overview</h3> + +<p>RPC used to get the current properties of a cloud application.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppID:"> + -initWithAppID: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppID</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>appID</dt> + <dd><p>The id of the cloud app</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetCloudAppProperties object</p> + </div> + + <h3 id="section-appID"> + appID + </h3> + + <p>The id of the cloud app.</p> + +<p>String, Required, maxlength=<q>100</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">appID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appID</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetCloudAppPropertiesResponse.html b/docs/Classes/SDLGetCloudAppPropertiesResponse.html new file mode 100644 index 000000000..7ff78fb4f --- /dev/null +++ b/docs/Classes/SDLGetCloudAppPropertiesResponse.html @@ -0,0 +1,65 @@ +<h1>SDLGetCloudAppPropertiesResponse Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithProperties:">-initWithProperties:</a></li> + <li><a href="#section-properties">properties</a></li> +</ul> + +<h3>Overview</h3> + +<p>The response to GetCloudAppProperties</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithProperties:"> + -initWithProperties: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithProperties</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">properties</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">properties</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>properties</dt> + <dd><p>The requested cloud application properties</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetCloudAppPropertiesResponse object</p> + </div> + + <h3 id="section-properties"> + properties + </h3> + + <p>The requested cloud application properties.</p> + +<p>SDLCloudAppProperties, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span> <span class="o">*</span><span class="n">properties</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">properties</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetFile.html b/docs/Classes/SDLGetFile.html new file mode 100644 index 000000000..1a488aaa8 --- /dev/null +++ b/docs/Classes/SDLGetFile.html @@ -0,0 +1,221 @@ +<h1>SDLGetFile Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithFileName:">-initWithFileName:</a></li> + <li><a href="#section--initWithFileName:appServiceId:fileType:">-initWithFileName:appServiceId:fileType:</a></li> + <li><a href="#section--initWithFileName:appServiceId:fileType:offset:length:">-initWithFileName:appServiceId:fileType:offset:length:</a></li> + <li><a href="#section-fileName">fileName</a></li> + <li><a href="#section-appServiceId">appServiceId</a></li> + <li><a href="#section-fileType">fileType</a></li> + <li><a href="#section-offset">offset</a></li> + <li><a href="#section-length">length</a></li> +</ul> + +<h3>Overview</h3> + +<p>This request is sent to the module to retrieve a file.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithFileName:"> + -initWithFileName: + </h3> + + <p>Convenience init for required parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithFileName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>fileName</dt> + <dd><p>File name that should be retrieved.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetFile object</p> + </div> + + <h3 id="section--initWithFileName:appServiceId:fileType:"> + -initWithFileName:appServiceId:fileType: + </h3> + + <p>Convenience init for sending a small file.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithFileName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span> + <span class="nf">appServiceId</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appServiceId</span> + <span class="nf">fileType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">)</span><span class="nv">fileType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appServiceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">fileType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>fileName</dt> + <dd><p>File name that should be retrieved.</p></dd> + <dt>appServiceId</dt> + <dd><p>ID of the service that should have uploaded the requested file</p></dd> + <dt>fileType</dt> + <dd><p>Selected file type</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetFile object</p> + </div> + + <h3 id="section--initWithFileName:appServiceId:fileType:offset:length:"> + -initWithFileName:appServiceId:fileType:offset:length: + </h3> + + <p>Convenience init for sending a large file in multiple data chunks.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithFileName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span> + <span class="nf">appServiceId</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appServiceId</span> + <span class="nf">fileType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">)</span><span class="nv">fileType</span> + <span class="nf">offset</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">offset</span> + <span class="nf">length</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">length</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">appServiceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">fileType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">?,</span> <span class="nv">offset</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">length</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>fileName</dt> + <dd><p>File name that should be retrieved.</p></dd> + <dt>appServiceId</dt> + <dd><p>ID of the service that should have uploaded the requested file</p></dd> + <dt>fileType</dt> + <dd><p>Selected file type</p></dd> + <dt>offset</dt> + <dd><p>Offset in bytes for resuming partial data chunks</p></dd> + <dt>length</dt> + <dd><p>Length in bytes for resuming partial data chunks</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetFile object</p> + </div> + + <h3 id="section-fileName"> + fileName + </h3> + + <p>File name that should be retrieved.</p> + +<p>String, Required, Max string length 255 chars</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">fileName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-appServiceId"> + appServiceId + </h3> + + <p>ID of the service that should have uploaded the requested file.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">appServiceId</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appServiceId</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-fileType"> + fileType + </h3> + + <p>Selected file type.</p> + +<p>SDLFileType, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span> <span class="n">fileType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">fileType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-offset"> + offset + </h3> + + <p>Optional offset in bytes for resuming partial data chunks.</p> + +<p>Integer, Optional, minvalue=<q>0</q> maxvalue=<q>2000000000</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">offset</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">offset</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-length"> + length + </h3> + + <p>Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded.</p> + +<p>Integer, Optional, minvalue=<q>0</q> maxvalue=<q>2000000000</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">length</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">length</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetFileResponse.html b/docs/Classes/SDLGetFileResponse.html new file mode 100644 index 000000000..483962841 --- /dev/null +++ b/docs/Classes/SDLGetFileResponse.html @@ -0,0 +1,135 @@ +<h1>SDLGetFileResponse Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithOffset:length:fileType:crc:">-initWithOffset:length:fileType:crc:</a></li> + <li><a href="#section-offset">offset</a></li> + <li><a href="#section-length">length</a></li> + <li><a href="#section-fileType">fileType</a></li> + <li><a href="#section-crc">crc</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithOffset:length:fileType:crc:"> + -initWithOffset:length:fileType:crc: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithOffset</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">offset</span> + <span class="nf">length</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">length</span> + <span class="nf">fileType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">)</span><span class="nv">fileType</span> + <span class="nf">crc</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">crc</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">offset</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">length</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">fileType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">?,</span> <span class="nv">crc</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>offset</dt> + <dd><p>Optional offset in bytes for resuming partial data chunks</p></dd> + <dt>length</dt> + <dd><p>Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded</p></dd> + <dt>fileType</dt> + <dd><p>File type that is being sent in response</p></dd> + <dt>crc</dt> + <dd><p>Additional CRC32 checksum to protect data integrity up to 512 Mbits</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetFileResponse object</p> + </div> + + <h3 id="section-offset"> + offset + </h3> + + <p>Optional offset in bytes for resuming partial data chunks.</p> + +<p>Integer, Optional, minvalue=<q>0</q> maxvalue=<q>2000000000</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">offset</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">offset</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-length"> + length + </h3> + + <p>Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded.</p> + +<p>Integer, Optional, minvalue=<q>0</q> maxvalue=<q>2000000000</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">length</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">length</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-fileType"> + fileType + </h3> + + <p>File type that is being sent in response.</p> + +<p>SDLFileType, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span> <span class="n">fileType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">fileType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLFileType.h@T@SDLFileType">SDLFileType</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-crc"> + crc + </h3> + + <p>Additional CRC32 checksum to protect data integrity up to 512 Mbits.</p> + +<p>Integer, Optional, minvalue=<q>0</q> maxvalue=<q>4294967295</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">crc</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">crc</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLUInt">SDLUInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLGetSystemCapability.html b/docs/Classes/SDLGetSystemCapability.html index 3a2d40ba4..5b6d3a5c6 100644 --- a/docs/Classes/SDLGetSystemCapability.html +++ b/docs/Classes/SDLGetSystemCapability.html @@ -4,7 +4,9 @@ <ul> <li><a href="#section--initWithType:">-initWithType:</a></li> + <li><a href="#section--initWithType:subscribe:">-initWithType:subscribe:</a></li> <li><a href="#section-systemCapabilityType">systemCapabilityType</a></li> + <li><a href="#section-subscribe">subscribe</a></li> </ul> <h3>Overview</h3> @@ -17,12 +19,12 @@ -initWithType: </h3> - <p>Undocumented</p> + <p>Convenience init</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span><span class="p">)</span><span class="nv">type</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span><span class="p">)</span><span class="nv">type</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -30,14 +32,53 @@ + <h4>Parameters</h4> + <dl> + <dt>type</dt> + <dd><p>The type of system capability</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapabilityType object</p> + </div> + + <h3 id="section--initWithType:subscribe:"> + -initWithType:subscribe: + </h3> + + <p>Convenience init</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span><span class="p">)</span><span class="nv">type</span> + <span class="nf">subscribe</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">subscribe</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">type</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span><span class="p">,</span> <span class="nv">subscribe</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>type</dt> + <dd><p>The type of system capability</p></dd> + <dt>subscribe</dt> + <dd><p>Whether or not to subscribe to updates of the supplied service capability type</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapabilityType object</p> + </div> <h3 id="section-systemCapabilityType"> systemCapabilityType </h3> - <p>They type of capability you’d like to receive in the response.</p> + <p>The type of system capability to get more information on</p> -<p>Mandatory</p> +<p>SDLSystemCapabilityType, Required</p> @@ -52,4 +93,24 @@ + <h3 id="section-subscribe"> + subscribe + </h3> + + <p>Flag to subscribe to updates of the supplied service capability type. If true, the requester will be subscribed. If false, the requester will not be subscribed and be removed as a subscriber if it was previously subscribed.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">subscribe</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">subscribe</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLGetVehicleData.html b/docs/Classes/SDLGetVehicleData.html index a93e76f25..7702fde42 100644 --- a/docs/Classes/SDLGetVehicleData.html +++ b/docs/Classes/SDLGetVehicleData.html @@ -5,6 +5,7 @@ <ul> <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:vin:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:vin:wiperStatus:</a></li> <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:</a></li> + <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:</a></li> <li><a href="#section-gps">gps</a></li> <li><a href="#section-speed">speed</a></li> <li><a href="#section-rpm">rpm</a></li> @@ -34,6 +35,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -57,31 +59,31 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> - <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> - <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> - <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> - <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> - <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> - <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> - <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> - <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> - <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> - <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> - <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> - <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> - <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> - <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> - <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> - <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> - <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> - <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> - <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> - <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> - <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> - <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> - <span class="nf">vin</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">vin</span> - <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">vin</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">vin</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -157,35 +159,35 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> - <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> - <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> - <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> - <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> - <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> - <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> - <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> - <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> - <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> - <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> - <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> - <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> - <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> - <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> - <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> - <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> - <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> - <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> - <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> - <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> - <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> - <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> - <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> - <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> - <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> - <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> - <span class="nf">vin</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">vin</span> - <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> + <span class="nf">vin</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">vin</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -259,6 +261,121 @@ <p>A SDLGetVehicleData object</p> </div> + <h3 id="section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:"> + -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus: + </h3> + + <p>Convenience init for getting data for all possible vehicle data items.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">cloudAppVehicleID</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">cloudAppVehicleID</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> + <span class="nf">vin</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">vin</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">accelerationPedalPosition</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">airbagStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">beltStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">bodyInformation</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">clusterModeStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">deviceStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">driverBraking</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">eCallInfo</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">electronicParkBrakeStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">emergencyEvent</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">engineOilLife</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">engineTorque</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">externalTemperature</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelLevel</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelLevelState</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelRange</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">gps</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">headLampStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">instantFuelConsumption</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">myKey</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">odometer</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">prndl</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpm</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">speed</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">steeringWheelAngle</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">tirePressure</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">turnSignal</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">vin</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">wiperStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>accelerationPedalPosition</dt> + <dd><p>Get accelerationPedalPosition data</p></dd> + <dt>airbagStatus</dt> + <dd><p>Get airbagStatus data</p></dd> + <dt>beltStatus</dt> + <dd><p>Get beltStatus data</p></dd> + <dt>bodyInformation</dt> + <dd><p>Get bodyInformation data</p></dd> + <dt>cloudAppVehicleID</dt> + <dd><p>Get cloudAppVehicleID data</p></dd> + <dt>clusterModeStatus</dt> + <dd><p>Get clusterModeStatus data</p></dd> + <dt>deviceStatus</dt> + <dd><p>Get deviceStatus data</p></dd> + <dt>driverBraking</dt> + <dd><p>Get driverBraking data</p></dd> + <dt>eCallInfo</dt> + <dd><p>Get eCallInfo data</p></dd> + <dt>electronicParkBrakeStatus</dt> + <dd><p>Get electronicParkBrakeStatus data</p></dd> + <dt>emergencyEvent</dt> + <dd><p>Get emergencyEvent data</p></dd> + <dt>engineOilLife</dt> + <dd><p>Get engineOilLife data</p></dd> + <dt>engineTorque</dt> + <dd><p>Get engineTorque data</p></dd> + <dt>externalTemperature</dt> + <dd><p>Get externalTemperature data</p></dd> + <dt>fuelLevel</dt> + <dd><p>Get fuelLevel data</p></dd> + <dt>fuelLevelState</dt> + <dd><p>Get fuelLevelState data</p></dd> + <dt>fuelRange</dt> + <dd><p>Get fuelRange data</p></dd> + <dt>gps</dt> + <dd><p>Get gps data</p></dd> + <dt>headLampStatus</dt> + <dd><p>Get headLampStatus data</p></dd> + <dt>instantFuelConsumption</dt> + <dd><p>Get instantFuelConsumption data</p></dd> + <dt>myKey</dt> + <dd><p>Get myKey data</p></dd> + <dt>odometer</dt> + <dd><p>Get odometer data</p></dd> + <dt>prndl</dt> + <dd><p>Get prndl data</p></dd> + <dt>rpm</dt> + <dd><p>Get rpm data</p></dd> + <dt>speed</dt> + <dd><p>Get speed data</p></dd> + <dt>steeringWheelAngle</dt> + <dd><p>Get steeringWheelAngle data</p></dd> + <dt>tirePressure</dt> + <dd><p>Get tirePressure data</p></dd> + <dt>turnSignal</dt> + <dd><p>Get turnSignal data</p></dd> + <dt>vin</dt> + <dd><p>Get vin data</p></dd> + <dt>wiperStatus</dt> + <dd><p>Get wiperStatus data</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLGetVehicleData object</p> + </div> + <h3 id="section-gps"> gps </h3> @@ -798,4 +915,23 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>A boolean value. If true, requests the Cloud App Vehicle ID.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLGetVehicleDataResponse.html b/docs/Classes/SDLGetVehicleDataResponse.html index 4ae14f196..e8ce803cc 100644 --- a/docs/Classes/SDLGetVehicleDataResponse.html +++ b/docs/Classes/SDLGetVehicleDataResponse.html @@ -32,6 +32,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -580,4 +581,22 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>The cloud app vehicle ID</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLHMISettingsControlData.html b/docs/Classes/SDLHMISettingsControlData.html index 19c6fc933..c17c84f52 100644 --- a/docs/Classes/SDLHMISettingsControlData.html +++ b/docs/Classes/SDLHMISettingsControlData.html @@ -25,9 +25,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithDisplaymode</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDisplayMode.h@T@SDLDisplayMode">SDLDisplayMode</a></span><span class="p">)</span><span class="nv">displayMode</span> - <span class="nf">temperatureUnit</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit">SDLTemperatureUnit</a></span><span class="p">)</span><span class="nv">temperatureUnit</span> - <span class="nf">distanceUnit</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDistanceUnit.h@T@SDLDistanceUnit">SDLDistanceUnit</a></span><span class="p">)</span><span class="nv">distanceUnit</span><span class="p">;</span></code></pre> + <span class="nf">initWithDisplaymode</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDisplayMode.h@T@SDLDisplayMode">SDLDisplayMode</a></span><span class="p">)</span><span class="nv">displayMode</span> + <span class="nf">temperatureUnit</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit">SDLTemperatureUnit</a></span><span class="p">)</span><span class="nv">temperatureUnit</span> + <span class="nf">distanceUnit</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDistanceUnit.h@T@SDLDistanceUnit">SDLDistanceUnit</a></span><span class="p">)</span><span class="nv">distanceUnit</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLLifecycleConfiguration.html b/docs/Classes/SDLLifecycleConfiguration.html index d39b4b4a2..c19231eea 100644 --- a/docs/Classes/SDLLifecycleConfiguration.html +++ b/docs/Classes/SDLLifecycleConfiguration.html @@ -26,6 +26,8 @@ <li><a href="#section-voiceRecognitionCommandNames">voiceRecognitionCommandNames</a></li> <li><a href="#section-dayColorScheme">dayColorScheme</a></li> <li><a href="#section-nightColorScheme">nightColorScheme</a></li> + <li><a href="#section-minimumProtocolVersion">minimumProtocolVersion</a></li> + <li><a href="#section-minimumRPCVersion">minimumRPCVersion</a></li> </ul> <h3>Overview</h3> @@ -59,8 +61,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">SDLLifecycleConfiguration</span> <span class="o">*</span><span class="p">)</span> -<span class="nf">defaultConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> - <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span><span class="p">;</span></code></pre> + <span class="nf">defaultConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> + <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -90,8 +92,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">SDLLifecycleConfiguration</span> <span class="o">*</span><span class="p">)</span> -<span class="nf">defaultConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> - <span class="nf">fullAppId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fullAppId</span><span class="p">;</span></code></pre> + <span class="nf">defaultConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> + <span class="nf">fullAppId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fullAppId</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -121,10 +123,10 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">SDLLifecycleConfiguration</span> <span class="o">*</span><span class="p">)</span> -<span class="nf">debugConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> - <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span> - <span class="nf">ipAddress</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">ipAddress</span> - <span class="nf">port</span><span class="p">:(</span><span class="n">UInt16</span><span class="p">)</span><span class="nv">port</span><span class="p">;</span></code></pre> + <span class="nf">debugConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> + <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span> + <span class="nf">ipAddress</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">ipAddress</span> + <span class="nf">port</span><span class="p">:(</span><span class="n">UInt16</span><span class="p">)</span><span class="nv">port</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -158,10 +160,10 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">SDLLifecycleConfiguration</span> <span class="o">*</span><span class="p">)</span> -<span class="nf">debugConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> - <span class="nf">fullAppId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fullAppId</span> - <span class="nf">ipAddress</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">ipAddress</span> - <span class="nf">port</span><span class="p">:(</span><span class="n">UInt16</span><span class="p">)</span><span class="nv">port</span><span class="p">;</span></code></pre> + <span class="nf">debugConfigurationWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> + <span class="nf">fullAppId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fullAppId</span> + <span class="nf">ipAddress</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">ipAddress</span> + <span class="nf">port</span><span class="p">:(</span><span class="n">UInt16</span><span class="p">)</span><span class="nv">port</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -526,4 +528,41 @@ + <h3 id="section-minimumProtocolVersion"> + minimumProtocolVersion + </h3> + + <p>The minimum protocol version that will be permitted to connect. This defaults to 1.0.0. If the protocol version of the head unit connected is below this version, the app will disconnect with an EndService protocol message and will not register.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLVersion.html">SDLVersion</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">minimumProtocolVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">minimumProtocolVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLVersion.html">SDLVersion</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-minimumRPCVersion"> + minimumRPCVersion + </h3> + + <p>The minimum RPC version that will be permitted to connect. This defaults to 1.0.0. If the RPC version of the head unit connected is below this version, an UnregisterAppInterface will be sent.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLVersion.html">SDLVersion</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">minimumRPCVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">minimumRPCVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLVersion.html">SDLVersion</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLLightControlCapabilities.html b/docs/Classes/SDLLightControlCapabilities.html index 202336d92..3d8ecf928 100644 --- a/docs/Classes/SDLLightControlCapabilities.html +++ b/docs/Classes/SDLLightControlCapabilities.html @@ -23,9 +23,10 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithModuleName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">moduleName</span> - <span class="nf">supportedLights</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLLightCapabilities.html">SDLLightCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">supportedLights</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithModuleName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">moduleName</span> + <span class="nf">supportedLights</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLLightCapabilities.html">SDLLightCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(py)supportedLights">supportedLights</a></span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLLocationCoordinate.html b/docs/Classes/SDLLocationCoordinate.html index 378f8dc3c..860d59928 100644 --- a/docs/Classes/SDLLocationCoordinate.html +++ b/docs/Classes/SDLLocationCoordinate.html @@ -3,6 +3,7 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section--initWithLatitudeDegrees:longitudeDegrees:">-initWithLatitudeDegrees:longitudeDegrees:</a></li> <li><a href="#section-latitudeDegrees">latitudeDegrees</a></li> <li><a href="#section-longitudeDegrees">longitudeDegrees</a></li> </ul> @@ -13,6 +14,36 @@ <section class="section task-group-section"> + <h3 id="section--initWithLatitudeDegrees:longitudeDegrees:"> + -initWithLatitudeDegrees:longitudeDegrees: + </h3> + + <p>Convenience init for location coordinates</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLatitudeDegrees</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">latitudeDegrees</span> + <span class="nf">longitudeDegrees</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">longitudeDegrees</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">latitudeDegrees</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">longitudeDegrees</span><span class="p">:</span> <span class="kt">Float</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>latitudeDegrees</dt> + <dd><p>Latitude of the location</p></dd> + <dt>longitudeDegrees</dt> + <dd><p>Latitude of the location</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLLocationCoordinate object</p> + </div> + <h3 id="section-latitudeDegrees"> latitudeDegrees </h3> @@ -38,7 +69,7 @@ longitudeDegrees </h3> - <p>Longitude of the location</p> + <p>Latitude of the location</p> <p>Required, Double -180 - 180</p> diff --git a/docs/Classes/SDLLocationDetails.html b/docs/Classes/SDLLocationDetails.html index 3ad1defd5..f4372df97 100644 --- a/docs/Classes/SDLLocationDetails.html +++ b/docs/Classes/SDLLocationDetails.html @@ -3,6 +3,8 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section--initWithCoordinate:">-initWithCoordinate:</a></li> + <li><a href="#section--initWithCoordinate:locationName:addressLines:locationDescription:phoneNumber:locationImage:searchAddress:">-initWithCoordinate:locationName:addressLines:locationDescription:phoneNumber:locationImage:searchAddress:</a></li> <li><a href="#section-coordinate">coordinate</a></li> <li><a href="#section-locationName">locationName</a></li> <li><a href="#section-addressLines">addressLines</a></li> @@ -18,6 +20,80 @@ <section class="section task-group-section"> + <h3 id="section--initWithCoordinate:"> + -initWithCoordinate: + </h3> + + <p>Convenience init for location coordinate.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithCoordinate</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLocationCoordinate.html">SDLLocationCoordinate</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">coordinate</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">coordinate</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationCoordinate.html">SDLLocationCoordinate</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>coordinate</dt> + <dd><p>Latitude/Longitude of the location</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLLocationDetails object</p> + </div> + + <h3 id="section--initWithCoordinate:locationName:addressLines:locationDescription:phoneNumber:locationImage:searchAddress:"> + -initWithCoordinate:locationName:addressLines:locationDescription:phoneNumber:locationImage:searchAddress: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithCoordinate</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLocationCoordinate.html">SDLLocationCoordinate</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">coordinate</span> + <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> + <span class="nf">addressLines</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">addressLines</span> + <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> + <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> + <span class="nf">locationImage</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">locationImage</span> + <span class="nf">searchAddress</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLOasisAddress.html">SDLOasisAddress</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">searchAddress</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">coordinate</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationCoordinate.html">SDLLocationCoordinate</a></span><span class="p">,</span> <span class="nv">locationName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">addressLines</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?,</span> <span class="nv">locationDescription</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">phoneNumber</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">locationImage</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?,</span> <span class="n">search</span> <span class="nv">searchAddress</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLOasisAddress.html">SDLOasisAddress</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>coordinate</dt> + <dd><p>Latitude/Longitude of the location</p></dd> + <dt>locationName</dt> + <dd><p>Name of location</p></dd> + <dt>addressLines</dt> + <dd><p>Location address for display purposes only</p></dd> + <dt>locationDescription</dt> + <dd><p>Description intended location / establishment</p></dd> + <dt>phoneNumber</dt> + <dd><p>Phone number of location / establishment</p></dd> + <dt>locationImage</dt> + <dd><p>Image / icon of intended location</p></dd> + <dt>searchAddress</dt> + <dd><p>Address to be used by navigation engines for search</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLLocationDetails object</p> + </div> + <h3 id="section-coordinate"> coordinate </h3> diff --git a/docs/Classes/SDLLockScreenConfiguration.html b/docs/Classes/SDLLockScreenConfiguration.html index 68238843e..53d704568 100644 --- a/docs/Classes/SDLLockScreenConfiguration.html +++ b/docs/Classes/SDLLockScreenConfiguration.html @@ -190,8 +190,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">enabledConfigurationWithAppIcon</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenAppIcon</span> - <span class="nf">backgroundColor</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenBackgroundColor</span><span class="p">;</span></code></pre> + <span class="nf">enabledConfigurationWithAppIcon</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">UIImage</span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenAppIcon</span> + <span class="nf">backgroundColor</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">UIColor</span> <span class="o">*</span><span class="p">)</span><span class="nv">lockScreenBackgroundColor</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLLogConfiguration.html b/docs/Classes/SDLLogConfiguration.html index 0fff4b39c..281e20221 100644 --- a/docs/Classes/SDLLogConfiguration.html +++ b/docs/Classes/SDLLogConfiguration.html @@ -9,6 +9,7 @@ <li><a href="#section-formatType">formatType</a></li> <li><a href="#section-asynchronous">asynchronous</a></li> <li><a href="#section-errorsAsynchronous">errorsAsynchronous</a></li> + <li><a href="#section-disableAssertions">disableAssertions</a></li> <li><a href="#section-globalLogLevel">globalLogLevel</a></li> <li><a href="#section-+defaultConfiguration">+defaultConfiguration</a></li> <li><a href="#section-+debugConfiguration">+debugConfiguration</a></li> @@ -131,6 +132,25 @@ + <h3 id="section-disableAssertions"> + disableAssertions + </h3> + + <p>Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">getter</span><span class="o">=</span><span class="n">areAssertionsDisabled</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">readwrite</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n">BOOL</span> <span class="n">disableAssertions</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">areAssertionsDisabled</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + <h3 id="section-globalLogLevel"> globalLogLevel </h3> diff --git a/docs/Classes/SDLLogManager.html b/docs/Classes/SDLLogManager.html index ba5532c13..b3fc6ae59 100644 --- a/docs/Classes/SDLLogManager.html +++ b/docs/Classes/SDLLogManager.html @@ -10,6 +10,7 @@ <li><a href="#section-formatType">formatType</a></li> <li><a href="#section-asynchronous">asynchronous</a></li> <li><a href="#section-errorsAsynchronous">errorsAsynchronous</a></li> + <li><a href="#section-disableAssertions">disableAssertions</a></li> <li><a href="#section-dateFormatter">dateFormatter</a></li> <li><a href="#section-logQueue">logQueue</a></li> <li><a href="#section-+sharedManager">+sharedManager</a></li> @@ -21,6 +22,8 @@ <li><a href="#section--logWithLevel:timestamp:file:functionName:line:queue:message:">-logWithLevel:timestamp:file:functionName:line:queue:message:</a></li> <li><a href="#section-+logBytes:direction:timestamp:file:functionName:line:queue:">+logBytes:direction:timestamp:file:functionName:line:queue:</a></li> <li><a href="#section--logBytes:direction:timestamp:file:functionName:line:queue:">-logBytes:direction:timestamp:file:functionName:line:queue:</a></li> + <li><a href="#section-+logAssertWithTimestamp:file:functionName:line:queue:formatMessage:">+logAssertWithTimestamp:file:functionName:line:queue:formatMessage:</a></li> + <li><a href="#section--logAssertWithTimestamp:file:functionName:line:queue:formatMessage:">-logAssertWithTimestamp:file:functionName:line:queue:formatMessage:</a></li> </ul> <h3>Overview</h3> @@ -161,6 +164,25 @@ + <h3 id="section-disableAssertions"> + disableAssertions + </h3> + + <p>Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readonly</span><span class="p">,</span> <span class="n">getter</span><span class="o">=</span><span class="n">areAssertionsDisabled</span><span class="p">,</span> <span class="n">assign</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n">BOOL</span> <span class="n">disableAssertions</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">areAssertionsDisabled</span><span class="p">:</span> <span class="kt">Bool</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + <h3 id="section-dateFormatter"> dateFormatter </h3> @@ -507,4 +529,74 @@ <dd><p>The queue the log was sent from</p></dd> </dl> + <h3 id="section-+logAssertWithTimestamp:file:functionName:line:queue:formatMessage:"> + +logAssertWithTimestamp:file:functionName:line:queue:formatMessage: + </h3> + + <p>Log an error to the sharedManager’s active log targets and assert. This is used internally to log.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">logAssertWithTimestamp</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSDate</span> <span class="o">*</span><span class="p">)</span><span class="nv">timestamp</span> + <span class="nf">file</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">file</span> + <span class="nf">functionName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">functionName</span> + <span class="nf">line</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">line</span> + <span class="nf">queue</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">queueLabel</span> + <span class="nf">formatMessage</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">message</span><span class="p">,</span> <span class="p">...;</span></code></pre> + + + + + <h4>Parameters</h4> + <dl> + <dt>timestamp</dt> + <dd><p>The time the log was sent</p></dd> + <dt>file</dt> + <dd><p>The file the log originated from</p></dd> + <dt>functionName</dt> + <dd><p>The function the log originated from</p></dd> + <dt>line</dt> + <dd><p>The line the log originated from</p></dd> + <dt>queueLabel</dt> + <dd><p>The queue the log was sent from</p></dd> + <dt>message</dt> + <dd><p>The message of the log</p></dd> + </dl> + + <h3 id="section--logAssertWithTimestamp:file:functionName:line:queue:formatMessage:"> + -logAssertWithTimestamp:file:functionName:line:queue:formatMessage: + </h3> + + <p>Log an error to this manager’s active log targets and assert. This is used internally to log.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">logAssertWithTimestamp</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSDate</span> <span class="o">*</span><span class="p">)</span><span class="nv">timestamp</span> + <span class="nf">file</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">file</span> + <span class="nf">functionName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">functionName</span> + <span class="nf">line</span><span class="p">:(</span><span class="n">NSInteger</span><span class="p">)</span><span class="nv">line</span> + <span class="nf">queue</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">queueLabel</span> + <span class="nf">formatMessage</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">message</span><span class="p">,</span> <span class="p">...;</span></code></pre> + + + + + <h4>Parameters</h4> + <dl> + <dt>timestamp</dt> + <dd><p>The time the log was sent</p></dd> + <dt>file</dt> + <dd><p>The file the log originated from</p></dd> + <dt>functionName</dt> + <dd><p>The function the log originated from</p></dd> + <dt>line</dt> + <dd><p>The line the log originated from</p></dd> + <dt>queueLabel</dt> + <dd><p>The queue the log was sent from</p></dd> + <dt>message</dt> + <dd><p>The message of the log</p></dd> + </dl> + </section> diff --git a/docs/Classes/SDLManager.html b/docs/Classes/SDLManager.html index f7ad1673f..a13ab7752 100644 --- a/docs/Classes/SDLManager.html +++ b/docs/Classes/SDLManager.html @@ -13,12 +13,14 @@ <li><a href="#section-screenManager">screenManager</a></li> <li><a href="#section-systemCapabilityManager">systemCapabilityManager</a></li> <li><a href="#section-registerResponse">registerResponse</a></li> + <li><a href="#section-authToken">authToken</a></li> <li><a href="#section-delegate">delegate</a></li> <li><a href="#section-pendingRPCTransactions">pendingRPCTransactions</a></li> <li><a href="#section-proxy">proxy</a></li> <li><a href="#section--initWithConfiguration:delegate:">-initWithConfiguration:delegate:</a></li> <li><a href="#section--startWithReadyHandler:">-startWithReadyHandler:</a></li> <li><a href="#section--stop">-stop</a></li> + <li><a href="#section--sendRPC:">-sendRPC:</a></li> <li><a href="#section--sendRequest:">-sendRequest:</a></li> <li><a href="#section--sendRequest:withResponseHandler:">-sendRequest:withResponseHandler:</a></li> <li><a href="#section--sendRequests:progressHandler:completionHandler:">-sendRequests:progressHandler:completionHandler:</a></li> @@ -216,6 +218,24 @@ + <h3 id="section-authToken"> + authToken + </h3> + + <p>The auth token, if received. This should be used to log into a user account. Primarily used for cloud apps with companion app stores.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readonly</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">authToken</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">authToken</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + <h3 id="section-delegate"> delegate </h3> @@ -278,8 +298,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithConfiguration</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLConfiguration.html">SDLConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span> - <span class="nf">delegate</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLManagerDelegate.html">SDLManagerDelegate</a></span><span class="o">></span><span class="p">)</span><span class="nv">delegate</span><span class="p">;</span></code></pre> + <span class="nf">initWithConfiguration</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLConfiguration.html">SDLConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span> + <span class="nf">delegate</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLManagerDelegate.html">SDLManagerDelegate</a></span><span class="o">></span><span class="p">)</span><span class="nv">delegate</span><span class="p">;</span></code></pre> @@ -339,6 +359,29 @@ + <h3 id="section--sendRPC:"> + -sendRPC: + </h3> + + <p>Send an RPC of type <code>Response</code>, <code>Notification</code> or <code>Request</code>. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call <code>sendRequest:withResponseHandler:</code> instead.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">sendRPC</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">__kindof</span> <span class="n"><a href="../Classes/SDLRPCMessage.html">SDLRPCMessage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpc</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">sendRPC</span><span class="p">(</span><span class="n">_</span> <span class="nv">rpc</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLRPCMessage.html">SDLRPCMessage</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>rpc</dt> + <dd><p>An RPC of type <code><a href="../Classes/SDLRPCResponse.html">SDLRPCResponse</a></code>, <code><a href="../Classes.html#/c:objc(cs)SDLRPCNotification">SDLRPCNotification</a></code> or <code><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></code></p></dd> + </dl> + <h3 id="section--sendRequest:"> -sendRequest: </h3> @@ -428,12 +471,12 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span> -<span class="nf">sendSequentialRequests</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">requests</span> - <span class="nf">progressHandler</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleSequentialRequestProgressHandler">SDLMultipleSequentialRequestProgressHandler</a></span><span class="p">)</span><span class="nv">progressHandler</span> - <span class="nf">completionHandler</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleRequestCompletionHandler">SDLMultipleRequestCompletionHandler</a></span><span class="p">)</span><span class="nv">completionHandler</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">sendSequentialRequests</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">requests</span> + <span class="nf">progressHandler</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleSequentialRequestProgressHandler">SDLMultipleSequentialRequestProgressHandler</a></span><span class="p">)</span> + <span class="n">progressHandler</span> + <span class="n">completionHandler</span><span class="o">:</span><span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleRequestCompletionHandler">SDLMultipleRequestCompletionHandler</a></span><span class="p">)</span> + <span class="n">completionHandler</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLMediaServiceData.html b/docs/Classes/SDLMediaServiceData.html new file mode 100644 index 000000000..566940657 --- /dev/null +++ b/docs/Classes/SDLMediaServiceData.html @@ -0,0 +1,353 @@ +<h1>SDLMediaServiceData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount:">-initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount:</a></li> + <li><a href="#section-mediaType">mediaType</a></li> + <li><a href="#section-mediaTitle">mediaTitle</a></li> + <li><a href="#section-mediaArtist">mediaArtist</a></li> + <li><a href="#section-mediaAlbum">mediaAlbum</a></li> + <li><a href="#section-playlistName">playlistName</a></li> + <li><a href="#section-isExplicit">isExplicit</a></li> + <li><a href="#section-trackPlaybackProgress">trackPlaybackProgress</a></li> + <li><a href="#section-trackPlaybackDuration">trackPlaybackDuration</a></li> + <li><a href="#section-queuePlaybackProgress">queuePlaybackProgress</a></li> + <li><a href="#section-queuePlaybackDuration">queuePlaybackDuration</a></li> + <li><a href="#section-queueCurrentTrackNumber">queueCurrentTrackNumber</a></li> + <li><a href="#section-queueTotalTrackCount">queueTotalTrackCount</a></li> +</ul> + +<h3>Overview</h3> + +<p>This data is related to what a media service should provide.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount:"> + -initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount: + </h3> + + <p>Convenience init</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithMediaType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span><span class="p">)</span><span class="nv">mediaType</span> + <span class="nf">mediaTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaTitle</span> + <span class="nf">mediaArtist</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaArtist</span> + <span class="nf">mediaAlbum</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">mediaAlbum</span> + <span class="nf">playlistName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">playlistName</span> + <span class="nf">isExplicit</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">isExplicit</span> + <span class="nf">trackPlaybackProgress</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">trackPlaybackProgress</span> + <span class="nf">trackPlaybackDuration</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">trackPlaybackDuration</span> + <span class="nf">queuePlaybackProgress</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">queuePlaybackProgress</span> + <span class="nf">queuePlaybackDuration</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">queuePlaybackDuration</span> + <span class="nf">queueCurrentTrackNumber</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">queueCurrentTrackNumber</span> + <span class="nf">queueTotalTrackCount</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">queueTotalTrackCount</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">mediaType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span><span class="p">?,</span> <span class="nv">mediaTitle</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">mediaArtist</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">mediaAlbum</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">playlistName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">isExplicit</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">trackPlaybackProgress</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">trackPlaybackDuration</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">queuePlaybackProgress</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">queuePlaybackDuration</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">queueCurrentTrackNumber</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">queueTotalTrackCount</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>mediaType</dt> + <dd><p>The type of the currently playing or paused track</p></dd> + <dt>mediaTitle</dt> + <dd><p>The name of the current playing media</p></dd> + <dt>mediaArtist</dt> + <dd><p>The name of the current media artist</p></dd> + <dt>mediaAlbum</dt> + <dd><p>The name of the current media album</p></dd> + <dt>playlistName</dt> + <dd><p>The name of the playlist</p></dd> + <dt>isExplicit</dt> + <dd><p>Whether or not the content currently playing contains explicit content</p></dd> + <dt>trackPlaybackProgress</dt> + <dd><p>The current progress of the track</p></dd> + <dt>trackPlaybackDuration</dt> + <dd><p>The total duration of the track</p></dd> + <dt>queuePlaybackProgress</dt> + <dd><p>The current progress of the playback queue in seconds</p></dd> + <dt>queuePlaybackDuration</dt> + <dd><p>The total duration of the playback queue in seconds</p></dd> + <dt>queueCurrentTrackNumber</dt> + <dd><p>The current number (1 based) of the track in the playback queue</p></dd> + <dt>queueTotalTrackCount</dt> + <dd><p>The total number of tracks in the playback queue</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLMediaServiceData object</p> + </div> + + <h3 id="section-mediaType"> + mediaType + </h3> + + <p>The type of the currently playing or paused track.</p> + +<p>SDLMediaType, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span> <span class="n">mediaType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">mediaType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-mediaTitle"> + mediaTitle + </h3> + + <p>Music: The name of the current track + Podcast: The name of the current episode + Audiobook: The name of the current chapter</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">mediaTitle</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">mediaTitle</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-mediaArtist"> + mediaArtist + </h3> + + <p>Music: The name of the current album artist + Podcast: The provider of the podcast (hosts, network, company) + Audiobook: The book author’s name</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">mediaArtist</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">mediaArtist</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-mediaAlbum"> + mediaAlbum + </h3> + + <p>Music: The name of the current album + Podcast: The name of the current podcast show + Audiobook: The name of the current book</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">mediaAlbum</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">mediaAlbum</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-playlistName"> + playlistName + </h3> + + <p>Music: The name of the playlist or radio station, if the user is playing from a playlist, otherwise, Null + Podcast: The name of the playlist, if the user is playing from a playlist, otherwise, Null + Audiobook: Likely not applicable, possibly a collection or <q>playlist</q> of books</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">playlistName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">playlistName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-isExplicit"> + isExplicit + </h3> + + <p>Whether or not the content currently playing (e.g. the track, episode, or book) contains explicit content.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">isExplicit</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">isExplicit</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-trackPlaybackProgress"> + trackPlaybackProgress + </h3> + + <p>Music: The current progress of the track in seconds + Podcast: The current progress of the episode in seconds + Audiobook: The current progress of the current segment (e.g. the chapter) in seconds</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">trackPlaybackProgress</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">trackPlaybackProgress</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-trackPlaybackDuration"> + trackPlaybackDuration + </h3> + + <p>Music: The total duration of the track in seconds + Podcast: The total duration of the episode in seconds + Audiobook: The total duration of the current segment (e.g. the chapter) in seconds</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">trackPlaybackDuration</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">trackPlaybackDuration</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-queuePlaybackProgress"> + queuePlaybackProgress + </h3> + + <p>Music: The current progress of the playback queue in seconds + Podcast: The current progress of the playback queue in seconds + Audiobook: The current progress of the playback queue (e.g. the book) in seconds</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">queuePlaybackProgress</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">queuePlaybackProgress</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-queuePlaybackDuration"> + queuePlaybackDuration + </h3> + + <p>Music: The total duration of the playback queue in seconds + Podcast: The total duration of the playback queue in seconds + Audiobook: The total duration of the playback queue (e.g. the book) in seconds</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">queuePlaybackDuration</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">queuePlaybackDuration</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-queueCurrentTrackNumber"> + queueCurrentTrackNumber + </h3> + + <p>Music: The current number (1 based) of the track in the playback queue + Podcast: The current number (1 based) of the episode in the playback queue + Audiobook: The current number (1 based) of the episode in the playback queue (e.g. the chapter number in the book)</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">queueCurrentTrackNumber</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">queueCurrentTrackNumber</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-queueTotalTrackCount"> + queueTotalTrackCount + </h3> + + <p>Music: The total number of tracks in the playback queue + Podcast: The total number of episodes in the playback queue + Audiobook: The total number of sections in the playback queue (e.g. the number of chapters in the book)</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">queueTotalTrackCount</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">queueTotalTrackCount</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLMenuCell.html b/docs/Classes/SDLMenuCell.html index 28a65362c..d6733af36 100644 --- a/docs/Classes/SDLMenuCell.html +++ b/docs/Classes/SDLMenuCell.html @@ -121,10 +121,10 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> - <span class="nf">icon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLArtwork.html">SDLArtwork</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">icon</span> -<span class="nf">voiceCommands</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">voiceCommands</span> - <span class="nf">handler</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLMenuCell.h@T@SDLMenuCellSelectionHandler">SDLMenuCellSelectionHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre> + <span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> + <span class="nf">icon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLArtwork.html">SDLArtwork</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">icon</span> + <span class="nf">voiceCommands</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">voiceCommands</span> + <span class="nf">handler</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLMenuCell.h@T@SDLMenuCellSelectionHandler">SDLMenuCellSelectionHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLMetadataTags.html b/docs/Classes/SDLMetadataTags.html index 15adc0a78..cf860adff 100644 --- a/docs/Classes/SDLMetadataTags.html +++ b/docs/Classes/SDLMetadataTags.html @@ -27,8 +27,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithTextFieldTypes</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType">SDLMetadataType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">mainField1</span> - <span class="nf">mainField2</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType">SDLMetadataType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">mainField2</span><span class="p">;</span></code></pre> + <span class="nf">initWithTextFieldTypes</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType">SDLMetadataType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">mainField1</span> + <span class="nf">mainField2</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType">SDLMetadataType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">mainField2</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLNavigationInstruction.html b/docs/Classes/SDLNavigationInstruction.html new file mode 100644 index 000000000..978aaf8fa --- /dev/null +++ b/docs/Classes/SDLNavigationInstruction.html @@ -0,0 +1,266 @@ +<h1>SDLNavigationInstruction Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithLocationDetails:action:">-initWithLocationDetails:action:</a></li> + <li><a href="#section--initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:image:">-initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:image:</a></li> + <li><a href="#section-locationDetails">locationDetails</a></li> + <li><a href="#section-action">action</a></li> + <li><a href="#section-eta">eta</a></li> + <li><a href="#section-bearing">bearing</a></li> + <li><a href="#section-junctionType">junctionType</a></li> + <li><a href="#section-drivingSide">drivingSide</a></li> + <li><a href="#section-details">details</a></li> + <li><a href="#section-image">image</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithLocationDetails:action:"> + -initWithLocationDetails:action: + </h3> + + <p>Convenience init for required parameters</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithLocationDetails</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDetails</span> + <span class="nf">action</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span><span class="p">)</span><span class="nv">action</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">locationDetails</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">,</span> <span class="nv">action</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>locationDetails</dt> + <dd><p>The location details</p></dd> + <dt>action</dt> + <dd><p>The navigation action</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLNavigationInstruction object</p> + </div> + + <h3 id="section--initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:image:"> + -initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:image: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithLocationDetails</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDetails</span> + <span class="nf">action</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span><span class="p">)</span><span class="nv">action</span> + <span class="nf">eta</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">eta</span> + <span class="nf">bearing</span><span class="p">:(</span><span class="n">UInt16</span><span class="p">)</span><span class="nv">bearing</span> + <span class="nf">junctionType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span><span class="p">)</span><span class="nv">junctionType</span> + <span class="nf">drivingSide</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span><span class="p">)</span><span class="nv">drivingSide</span> + <span class="nf">details</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">details</span> + <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">locationDetails</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">,</span> <span class="nv">action</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span><span class="p">,</span> <span class="nv">eta</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?,</span> <span class="nv">bearing</span><span class="p">:</span> <span class="kt">UInt16</span><span class="p">,</span> <span class="nv">junctionType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span><span class="p">?,</span> <span class="nv">drivingSide</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span><span class="p">?,</span> <span class="nv">details</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">image</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>locationDetails</dt> + <dd><p>The location details</p></dd> + <dt>action</dt> + <dd><p>The navigation action</p></dd> + <dt>eta</dt> + <dd><p>The estimated time of arrival</p></dd> + <dt>bearing</dt> + <dd><p>The angle at which this instruction takes place</p></dd> + <dt>junctionType</dt> + <dd><p>The navigation junction type</p></dd> + <dt>drivingSide</dt> + <dd><p>Used to infer which side of the road this instruction takes place</p></dd> + <dt>details</dt> + <dd><p>This is a string representation of this instruction, used to display instructions to the users</p></dd> + <dt>image</dt> + <dd><p>An image representation of this instruction</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLNavigationInstruction object</p> + </div> + + <h3 id="section-locationDetails"> + locationDetails + </h3> + + <p>The location details.</p> + +<p>SDLLocationDetails, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">locationDetails</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">locationDetails</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-action"> + action + </h3> + + <p>The navigation action.</p> + +<p>SDLNavigationAction, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="n">_Nonnull</span> <span class="n">action</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">action</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-eta"> + eta + </h3> + + <p>The estimated time of arrival.</p> + +<p>SDLDateTime, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">eta</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">eta</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-bearing"> + bearing + </h3> + + <p>The angle at which this instruction takes place. For example, 0 would mean straight, <=45 is bearing right, >= 135 is sharp right, between 45 and 135 is a regular right, and 180 is a U-Turn, etc. </p> + +<p>Integer, Optional, minValue=<q>0</q> maxValue=<q>359</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">bearing</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">bearing</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-junctionType"> + junctionType + </h3> + + <p>The navigation junction type.</p> + +<p>SDLNavigationJunction, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="n">junctionType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">junctionType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-drivingSide"> + drivingSide + </h3> + + <p>Used to infer which side of the road this instruction takes place. For a U-Turn (action=TURN, bearing=180) this will determine which direction the turn should take place.</p> + +<p>SDLDirection, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span> <span class="n">drivingSide</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">drivingSide</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-details"> + details + </h3> + + <p>This is a string representation of this instruction, used to display instructions to the users. This is not intended to be read aloud to the users, see the param prompt in <code>NavigationServiceData</code> for that.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">details</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">details</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-image"> + image + </h3> + + <p>An image representation of this instruction.</p> + +<p>SDLImage, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">image</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">image</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLNavigationServiceData.html b/docs/Classes/SDLNavigationServiceData.html new file mode 100644 index 000000000..4fcdd81b5 --- /dev/null +++ b/docs/Classes/SDLNavigationServiceData.html @@ -0,0 +1,291 @@ +<h1>SDLNavigationServiceData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithTimestamp:">-initWithTimestamp:</a></li> + <li><a href="#section--initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt:">-initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt:</a></li> + <li><a href="#section-timestamp">timestamp</a></li> + <li><a href="#section-origin">origin</a></li> + <li><a href="#section-destination">destination</a></li> + <li><a href="#section-destinationETA">destinationETA</a></li> + <li><a href="#section-instructions">instructions</a></li> + <li><a href="#section-nextInstructionETA">nextInstructionETA</a></li> + <li><a href="#section-nextInstructionDistance">nextInstructionDistance</a></li> + <li><a href="#section-nextInstructionDistanceScale">nextInstructionDistanceScale</a></li> + <li><a href="#section-prompt">prompt</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithTimestamp:"> + -initWithTimestamp: + </h3> + + <p>Convenience init for required parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithTimestamp</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timestamp</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">timestamp</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>timestamp</dt> + <dd><p>Timestamp of when the data was generated</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLNavigationServiceData object</p> + </div> + + <h3 id="section--initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt:"> + -initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithTimestamp</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timestamp</span> + <span class="nf">origin</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">origin</span> + <span class="nf">destination</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">destination</span> + <span class="nf">destinationETA</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">destinationETA</span> + <span class="nf">instructions</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLNavigationInstruction.html">SDLNavigationInstruction</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)instructions">instructions</a></span> + <span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionETA">nextInstructionETA</a></span><span class="o">:</span><span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionETA">nextInstructionETA</a></span> + <span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionDistance">nextInstructionDistance</a></span><span class="o">:</span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionDistance">nextInstructionDistance</a></span> + <span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionDistanceScale">nextInstructionDistanceScale</a></span><span class="o">:</span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionDistanceScale">nextInstructionDistanceScale</a></span> + <span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)prompt">prompt</a></span><span class="o">:</span><span class="p">(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="n"><a href="../Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)prompt">prompt</a></span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">timestamp</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">,</span> <span class="nv">origin</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">?,</span> <span class="nv">destination</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">?,</span> <span class="nv">destinationETA</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?,</span> <span class="nv">instructions</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLNavigationInstruction.html">SDLNavigationInstruction</a></span><span class="p">]?,</span> <span class="nv">nextInstructionETA</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?,</span> <span class="nv">nextInstructionDistance</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">nextInstructionDistanceScale</span><span class="p">:</span> <span class="kt">Float</span><span class="p">,</span> <span class="nv">prompt</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>timestamp</dt> + <dd><p>Timestamp of when the data was generated</p></dd> + <dt>origin</dt> + <dd><p>The start location</p></dd> + <dt>destination</dt> + <dd><p>The final destination location</p></dd> + <dt>destinationETA</dt> + <dd><p>The estimated time of arrival at the final destination location</p></dd> + <dt>instructions</dt> + <dd><p>Array ordered with all remaining instructions</p></dd> + <dt>nextInstructionETA</dt> + <dd><p>The estimated time of arrival at the next destination</p></dd> + <dt>nextInstructionDistance</dt> + <dd><p>The distance to this instruction from current location</p></dd> + <dt>nextInstructionDistanceScale</dt> + <dd><p>Distance till next maneuver (starting from) from previous maneuver</p></dd> + <dt>prompt</dt> + <dd><p>This is a prompt message that should be conveyed to the user through either display or voice (TTS)</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLNavigationServiceData object</p> + </div> + + <h3 id="section-timestamp"> + timestamp + </h3> + + <p>This is the timestamp of when the data was generated. This is to ensure any time or distance given in the data can accurately be adjusted if necessary.</p> + +<p>SDLDateTime, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">timestamp</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">timestamp</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-origin"> + origin + </h3> + + <p>The start location.</p> + +<p>SDLLocationDetails, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">origin</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">origin</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-destination"> + destination + </h3> + + <p>The final destination location.</p> + +<p>SDLLocationDetails, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">destination</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">destination</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-destinationETA"> + destinationETA + </h3> + + <p>The estimated time of arrival at the final destination location.</p> + +<p>SDLDateTime, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">destinationETA</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">destinationETA</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-instructions"> + instructions + </h3> + + <p>This array should be ordered with all remaining instructions. The start of this array should always contain the next instruction.</p> + +<p>Array of SDLNavigationInstruction, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLNavigationInstruction.html">SDLNavigationInstruction</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">instructions</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">instructions</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLNavigationInstruction.html">SDLNavigationInstruction</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-nextInstructionETA"> + nextInstructionETA + </h3> + + <p>The estimated time of arrival at the next destination.</p> + +<p>SDLDateTime, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">nextInstructionETA</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">nextInstructionETA</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-nextInstructionDistance"> + nextInstructionDistance + </h3> + + <p>The distance to this instruction from current location. This should only be updated ever .1 unit of distance. For more accuracy the consumer can use the GPS location of itself and the next instruction.</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">nextInstructionDistance</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">nextInstructionDistance</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-nextInstructionDistanceScale"> + nextInstructionDistanceScale + </h3> + + <p>Distance till next maneuver (starting from) from previous maneuver.</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">nextInstructionDistanceScale</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">nextInstructionDistanceScale</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-prompt"> + prompt + </h3> + + <p>This is a prompt message that should be conveyed to the user through either display or voice (TTS). This param will change often as it should represent the following: approaching instruction, post instruction, alerts that affect the current navigation session, etc.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">prompt</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">prompt</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLNavigationServiceManifest.html b/docs/Classes/SDLNavigationServiceManifest.html new file mode 100644 index 000000000..37a443ca3 --- /dev/null +++ b/docs/Classes/SDLNavigationServiceManifest.html @@ -0,0 +1,64 @@ +<h1>SDLNavigationServiceManifest Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAcceptsWayPoints:">-initWithAcceptsWayPoints:</a></li> + <li><a href="#section-acceptsWayPoints">acceptsWayPoints</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAcceptsWayPoints:"> + -initWithAcceptsWayPoints: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAcceptsWayPoints</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">acceptsWayPoints</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">acceptsWayPoints</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>acceptsWayPoints</dt> + <dd><p>Informs the subscriber if this service can actually accept way points</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLNavigationServiceManifest object</p> + </div> + + <h3 id="section-acceptsWayPoints"> + acceptsWayPoints + </h3> + + <p>Informs the subscriber if this service can actually accept way points.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">acceptsWayPoints</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">acceptsWayPoints</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLNotificationConstants.html b/docs/Classes/SDLNotificationConstants.html index 3fa328e05..2df54946e 100644 --- a/docs/Classes/SDLNotificationConstants.html +++ b/docs/Classes/SDLNotificationConstants.html @@ -32,7 +32,7 @@ <div> <h4>Return Value</h4> - <p>The names</p> + <p>All response notification names</p> </div> <h3 id="section-+allButtonEventNotifications"> diff --git a/docs/Classes/SDLOnAppServiceData.html b/docs/Classes/SDLOnAppServiceData.html new file mode 100644 index 000000000..7a41fea67 --- /dev/null +++ b/docs/Classes/SDLOnAppServiceData.html @@ -0,0 +1,64 @@ +<h1>SDLOnAppServiceData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithServiceData:">-initWithServiceData:</a></li> + <li><a href="#section-serviceData">serviceData</a></li> +</ul> + +<h3>Overview</h3> + +<p>This notification includes the data that is updated from the specific service.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithServiceData:"> + -initWithServiceData: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceData</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">serviceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceData</dt> + <dd><p>The updated app service data</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLOnAppServiceData object</p> + </div> + + <h3 id="section-serviceData"> + serviceData + </h3> + + <p>The updated app service data.</p> + +<p>SDLAppServiceData, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceData</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceData</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceData.html">SDLAppServiceData</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLOnSystemCapabilityUpdated.html b/docs/Classes/SDLOnSystemCapabilityUpdated.html new file mode 100644 index 000000000..6ee5129a8 --- /dev/null +++ b/docs/Classes/SDLOnSystemCapabilityUpdated.html @@ -0,0 +1,65 @@ +<h1>SDLOnSystemCapabilityUpdated Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithSystemCapability:">-initWithSystemCapability:</a></li> + <li><a href="#section-systemCapability">systemCapability</a></li> +</ul> + +<h3>Overview</h3> + +<p>A notification to inform the connected device that a specific system capability has changed.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithSystemCapability:"> + -initWithSystemCapability: + </h3> + + <p>Convenience init for required parameters</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithSystemCapability</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLSystemCapability.html">SDLSystemCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">systemCapability</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">systemCapability</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSystemCapability.html">SDLSystemCapability</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>systemCapability</dt> + <dd><p>The system capability that has been updated</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLOnSystemCapabilityUpdated object</p> + </div> + + <h3 id="section-systemCapability"> + systemCapability + </h3> + + <p>The system capability that has been updated.</p> + +<p>SDLSystemCapability, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLSystemCapability.html">SDLSystemCapability</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">systemCapability</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">systemCapability</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSystemCapability.html">SDLSystemCapability</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLOnVehicleData.html b/docs/Classes/SDLOnVehicleData.html index 4f0dee901..4386c3a98 100644 --- a/docs/Classes/SDLOnVehicleData.html +++ b/docs/Classes/SDLOnVehicleData.html @@ -32,6 +32,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -580,4 +581,22 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>The cloud app vehicle ID</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLPerformAppServiceInteraction.html b/docs/Classes/SDLPerformAppServiceInteraction.html new file mode 100644 index 000000000..f267feb90 --- /dev/null +++ b/docs/Classes/SDLPerformAppServiceInteraction.html @@ -0,0 +1,180 @@ +<h1>SDLPerformAppServiceInteraction Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithServiceUri:serviceID:originApp:">-initWithServiceUri:serviceID:originApp:</a></li> + <li><a href="#section--initWithServiceUri:serviceID:originApp:requestServiceActive:">-initWithServiceUri:serviceID:originApp:requestServiceActive:</a></li> + <li><a href="#section-serviceUri">serviceUri</a></li> + <li><a href="#section-serviceID">serviceID</a></li> + <li><a href="#section-originApp">originApp</a></li> + <li><a href="#section-requestServiceActive">requestServiceActive</a></li> +</ul> + +<h3>Overview</h3> + +<p>App service providers will likely have different actions exposed to the module and app service consumers. It will be difficult to standardize these actions by RPC versions and can easily become stale. Therefore, we introduce a best-effort attempt to take actions on a service.</p> + +<p>The <code>PerformAppServiceInteraction</code> request will be sent to the service that has the matching <code>appServiceId</code>. The <code>serviceUri</code> should be the fully qualified URI with all parameters that are necessary for the given action. The URI prefix and actions list will be contained in the app service provider’s manifest. SDL takes no steps to validate an app service provider’s action sheet JSON object. In the future, plug in libraries could be added to handle these sheets on a provider by provider basis.</p> + +<p>An app service consumer can also request for this service to become the active service of its respective type. If the app service consumer currently has an HMI state of HMI_FULL this request can be performed without user interaction. If the app is currently not in that state, the HMI should present the user with a choice to allow this app service provider to become the active service of its specified type. If the app service provider is not allowed to become active, the request will not be sent to it and an unsuccessful response will be sent to the requester.</p> + +<p>SDL should make no guarantees that: + 1. App service providers offer URI prefix and URI Schema + 2. App service providers will correctly respond to the requests + 3. The requested app service provider will become the active service of that type + 4. The <code>serviceUri</code> will be a correctly formatted URI from the app service consumer</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithServiceUri:serviceID:originApp:"> + -initWithServiceUri:serviceID:originApp: + </h3> + + <p>Convenience init for required parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceUri</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceUri</span> + <span class="nf">serviceID</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceID</span> + <span class="nf">originApp</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">originApp</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">serviceUri</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">serviceID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">originApp</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceUri</dt> + <dd><p>The service URI</p></dd> + <dt>serviceID</dt> + <dd><p>The app service ID</p></dd> + <dt>originApp</dt> + <dd><p>The origin app</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLPerformAppServiceInteraction object</p> + </div> + + <h3 id="section--initWithServiceUri:serviceID:originApp:requestServiceActive:"> + -initWithServiceUri:serviceID:originApp:requestServiceActive: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceUri</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceUri</span> + <span class="nf">serviceID</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceID</span> + <span class="nf">originApp</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">originApp</span> + <span class="nf">requestServiceActive</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">requestServiceActive</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">serviceUri</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">serviceID</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">originApp</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">requestServiceActive</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceUri</dt> + <dd><p>The service URI</p></dd> + <dt>serviceID</dt> + <dd><p>The app service ID</p></dd> + <dt>originApp</dt> + <dd><p>The origin app</p></dd> + <dt>requestServiceActive</dt> + <dd><p>Whether or not the service is active</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLPerformAppServiceInteraction object</p> + </div> + + <h3 id="section-serviceUri"> + serviceUri + </h3> + + <p>Fully qualified URI based on a predetermined scheme provided by the app service. SDL makes no guarantee that this URI is correct.</p> + +<p>String, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceUri</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceUri</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-serviceID"> + serviceID + </h3> + + <p>The service ID that the app consumer wishes to send this URI.</p> + +<p>String, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">serviceID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceID</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-originApp"> + originApp + </h3> + + <p>This string is the appID of the app requesting the app service provider take the specific action.</p> + +<p>String, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">originApp</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">originApp</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-requestServiceActive"> + requestServiceActive + </h3> + + <p>This flag signals the requesting consumer would like this service to become the active primary service of the destination’s type.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">requestServiceActive</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">requestServiceActive</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLPerformAppServiceInteractionResponse.html b/docs/Classes/SDLPerformAppServiceInteractionResponse.html new file mode 100644 index 000000000..45ba0927c --- /dev/null +++ b/docs/Classes/SDLPerformAppServiceInteractionResponse.html @@ -0,0 +1,65 @@ +<h1>SDLPerformAppServiceInteractionResponse Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithServiceSpecificResult:">-initWithServiceSpecificResult:</a></li> + <li><a href="#section-serviceSpecificResult">serviceSpecificResult</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithServiceSpecificResult:"> + -initWithServiceSpecificResult: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithServiceSpecificResult</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">serviceSpecificResult</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">serviceSpecificResult</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>serviceSpecificResult</dt> + <dd><p>The service can provide specific result strings to the consumer through this param.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLPerformAppServiceInteractionResponse object</p> + </div> + + <h3 id="section-serviceSpecificResult"> + serviceSpecificResult + </h3> + + <p>The service can provide specific result strings to the consumer through this param.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSString</span> <span class="o">*</span><span class="n">serviceSpecificResult</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">serviceSpecificResult</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLPermissionManager.html b/docs/Classes/SDLPermissionManager.html index 5c9bce57a..d4743f7f5 100644 --- a/docs/Classes/SDLPermissionManager.html +++ b/docs/Classes/SDLPermissionManager.html @@ -125,12 +125,12 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="p">,</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> -<span class="nf">statusOfRPCs</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcNames</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="p">,</span> <span class="n">NSNumber</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nf">statusOfRPCs</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcNames</span><span class="p">;</span></code></pre> <h4>Swift</h4> - <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">status</span><span class="p">(</span><span class="n">ofRPCs</span> <span class="nv">rpcNames</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">])</span> <span class="o">-></span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">]</span></code></pre> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">status</span><span class="p">(</span><span class="n">ofRPCs</span> <span class="nv">rpcNames</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">])</span> <span class="o">-></span> <span class="p">[</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">NSNumber</span><span class="p">]</span></code></pre> @@ -164,9 +164,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionObserverIdentifier">SDLPermissionObserverIdentifier</a></span><span class="p">)</span> -<span class="nf">addObserverForRPCs</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcNames</span> - <span class="nf">groupType</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLPermissionGroupType.html">SDLPermissionGroupType</a></span><span class="p">)</span><span class="nv">groupType</span> - <span class="nf">withHandler</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler">SDLPermissionsChangedHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre> + <span class="nf">addObserverForRPCs</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">rpcNames</span> + <span class="nf">groupType</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLPermissionGroupType.html">SDLPermissionGroupType</a></span><span class="p">)</span><span class="nv">groupType</span> + <span class="nf">withHandler</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler">SDLPermissionsChangedHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLPublishAppService.html b/docs/Classes/SDLPublishAppService.html new file mode 100644 index 000000000..c1ff01fc6 --- /dev/null +++ b/docs/Classes/SDLPublishAppService.html @@ -0,0 +1,65 @@ +<h1>SDLPublishAppService Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServiceManifest:">-initWithAppServiceManifest:</a></li> + <li><a href="#section-appServiceManifest">appServiceManifest</a></li> +</ul> + +<h3>Overview</h3> + +<p>Registers a service offered by this app on the module.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServiceManifest:"> + -initWithAppServiceManifest: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceManifest</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">appServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">appServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>appServiceManifest</dt> + <dd><p>The app service manifest</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLPublishAppService object</p> + </div> + + <h3 id="section-appServiceManifest"> + appServiceManifest + </h3> + + <p>The manifest of the service that wishes to be published.</p> + +<p>SDLAppServiceManifest, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">appServiceManifest</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appServiceManifest</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceManifest.html">SDLAppServiceManifest</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLPublishAppServiceResponse.html b/docs/Classes/SDLPublishAppServiceResponse.html new file mode 100644 index 000000000..0b67d1245 --- /dev/null +++ b/docs/Classes/SDLPublishAppServiceResponse.html @@ -0,0 +1,65 @@ +<h1>SDLPublishAppServiceResponse Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithAppServiceRecord:">-initWithAppServiceRecord:</a></li> + <li><a href="#section-appServiceRecord">appServiceRecord</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithAppServiceRecord:"> + -initWithAppServiceRecord: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServiceRecord</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">appServiceRecord</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">appServiceRecord</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>appServiceRecord</dt> + <dd><p>If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLPublishAppServiceResponse object</p> + </div> + + <h3 id="section-appServiceRecord"> + appServiceRecord + </h3> + + <p>If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID.</p> + +<p>SDLAppServiceRecord, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span> <span class="o">*</span><span class="n">appServiceRecord</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appServiceRecord</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServiceRecord.html">SDLAppServiceRecord</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLRPCRequestNotification.html b/docs/Classes/SDLRPCRequestNotification.html new file mode 100644 index 000000000..4e7417c6a --- /dev/null +++ b/docs/Classes/SDLRPCRequestNotification.html @@ -0,0 +1,115 @@ +<h1>SDLRPCRequestNotification Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section-request">request</a></li> + <li><a href="#section--initWithName:object:rpcRequest:">-initWithName:object:rpcRequest:</a></li> + <li><a href="#section--isRequestMemberOfClass:">-isRequestMemberOfClass:</a></li> + <li><a href="#section--isRequestKindOfClass:">-isRequestKindOfClass:</a></li> +</ul> + +<h3>Overview</h3> + +<p>A NSNotification object that makes retrieving internal SDLRPCRequest data easier</p> + + +<section class="section task-group-section"> + <h3 id="section-request"> + request + </h3> + + <p>The request to be included in the userinfo dictionary</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readonly</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n">__kindof</span> <span class="n"><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">request</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">@NSCopying</span> <span class="k">var</span> <span class="nv">request</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section--initWithName:object:rpcRequest:"> + -initWithName:object:rpcRequest: + </h3> + + <p>Create an NSNotification object containing an SDLRPCRequest</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> + <span class="nf">object</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="p">)</span><span class="nv">object</span> + <span class="nf">rpcRequest</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">__kindof</span> <span class="n"><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">request</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">name</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">object</span><span class="p">:</span> <span class="kt">Any</span><span class="p">?,</span> <span class="n">rpcRequest</span> <span class="nv">request</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLRPCRequest.html">SDLRPCRequest</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>name</dt> + <dd><p>The NSNotification name</p></dd> + <dt>object</dt> + <dd><p>The NSNotification object</p></dd> + <dt>request</dt> + <dd><p>The SDLRPCRequest payload</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>The NSNotification</p> + </div> + + <h3 id="section--isRequestMemberOfClass:"> + -isRequestMemberOfClass: + </h3> + + <p>Returns whether or not the containing request is equal to a class, not including subclasses.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isRequestMemberOfClass</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">Class</span><span class="p">)</span><span class="nv">aClass</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isRequestMember</span><span class="p">(</span><span class="n">of</span> <span class="nv">aClass</span><span class="p">:</span> <span class="kt">AnyClass</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>aClass</dt> + <dd><p>the class you are questioning</p></dd> + </dl> + + <h3 id="section--isRequestKindOfClass:"> + -isRequestKindOfClass: + </h3> + + <p>Returns whether or not the containing request is a kind of class, including subclasses.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isRequestKindOfClass</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">Class</span><span class="p">)</span><span class="nv">aClass</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isRequestKind</span><span class="p">(</span><span class="n">of</span> <span class="nv">aClass</span><span class="p">:</span> <span class="kt">AnyClass</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>aClass</dt> + <dd><p>the class you are questioning</p></dd> + </dl> + +</section> diff --git a/docs/Classes/SDLRPCResponseNotification.html b/docs/Classes/SDLRPCResponseNotification.html index 8aa33bc8a..18a50b0c2 100644 --- a/docs/Classes/SDLRPCResponseNotification.html +++ b/docs/Classes/SDLRPCResponseNotification.html @@ -11,7 +11,7 @@ <h3>Overview</h3> -<p>An NSNotification object that makes retrieving internal SDLRPCResponse data easier</p> +<p>A NSNotification object that makes retrieving internal SDLRPCResponse data easier</p> <section class="section task-group-section"> @@ -19,7 +19,7 @@ response </h3> - <p>The response within the userinfo dictionary</p> + <p>The response to be included within the userinfo dictionary</p> @@ -37,7 +37,7 @@ -initWithName:object:rpcResponse: </h3> - <p>Create an NSNotification object caontaining an SDLRPCResponse</p> + <p>Create an NSNotification object containing an SDLRPCResponse</p> diff --git a/docs/Classes/SDLRadioControlData.html b/docs/Classes/SDLRadioControlData.html index 41bbdd328..23e35cdfc 100644 --- a/docs/Classes/SDLRadioControlData.html +++ b/docs/Classes/SDLRadioControlData.html @@ -35,11 +35,11 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithFrequencyInteger</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyInteger</span> - <span class="nf">frequencyFraction</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyFraction</span> - <span class="nf">band</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand">SDLRadioBand</a></span><span class="p">)</span><span class="nv">band</span> - <span class="nf">hdChannel</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">hdChannel</span> - <span class="nf">radioEnable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">radioEnable</span><span class="p">;</span></code></pre> + <span class="nf">initWithFrequencyInteger</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyInteger</span> + <span class="nf">frequencyFraction</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyFraction</span> + <span class="nf">band</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand">SDLRadioBand</a></span><span class="p">)</span><span class="nv">band</span> + <span class="nf">hdChannel</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">hdChannel</span> + <span class="nf">radioEnable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">radioEnable</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -75,12 +75,12 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithFrequencyInteger</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyInteger</span> - <span class="nf">frequencyFraction</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyFraction</span> - <span class="nf">band</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand">SDLRadioBand</a></span><span class="p">)</span><span class="nv">band</span> - <span class="nf">hdChannel</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">hdChannel</span> - <span class="nf">radioEnable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">radioEnable</span> - <span class="nf">hdRadioEnable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">hdRadioEnable</span><span class="p">;</span></code></pre> + <span class="nf">initWithFrequencyInteger</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyInteger</span> + <span class="nf">frequencyFraction</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">frequencyFraction</span> + <span class="nf">band</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand">SDLRadioBand</a></span><span class="p">)</span><span class="nv">band</span> + <span class="nf">hdChannel</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">hdChannel</span> + <span class="nf">radioEnable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">radioEnable</span> + <span class="nf">hdRadioEnable</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">hdRadioEnable</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLRegisterAppInterface.html b/docs/Classes/SDLRegisterAppInterface.html index f68730c8f..e1865dd11 100644 --- a/docs/Classes/SDLRegisterAppInterface.html +++ b/docs/Classes/SDLRegisterAppInterface.html @@ -155,16 +155,16 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> - <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span> - <span class="nf">languageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">languageDesired</span> - <span class="nf">isMediaApp</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">isMediaApp</span> - <span class="nf">appTypes</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType">SDLAppHMIType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">appTypes</span> - <span class="nf">shortAppName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">shortAppName</span> - <span class="nf">ttsName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">ttsName</span> - <span class="nf">vrSynonyms</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">vrSynonyms</span> -<span class="nf">hmiDisplayLanguageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">hmiDisplayLanguageDesired</span> - <span class="nf">resumeHash</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">resumeHash</span><span class="p">;</span></code></pre> + <span class="nf">initWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> + <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span> + <span class="nf">languageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">languageDesired</span> + <span class="nf">isMediaApp</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">isMediaApp</span> + <span class="nf">appTypes</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType">SDLAppHMIType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">appTypes</span> + <span class="nf">shortAppName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">shortAppName</span> + <span class="nf">ttsName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">ttsName</span> + <span class="nf">vrSynonyms</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">vrSynonyms</span> + <span class="nf">hmiDisplayLanguageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">hmiDisplayLanguageDesired</span> + <span class="nf">resumeHash</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">resumeHash</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -210,19 +210,20 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> - <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span> - <span class="nf">fullAppId</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fullAppId</span> - <span class="nf">languageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">languageDesired</span> - <span class="nf">isMediaApp</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">isMediaApp</span> - <span class="nf">appTypes</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType">SDLAppHMIType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">appTypes</span> - <span class="nf">shortAppName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">shortAppName</span> - <span class="nf">ttsName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">ttsName</span> - <span class="nf">vrSynonyms</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">vrSynonyms</span> -<span class="nf">hmiDisplayLanguageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">hmiDisplayLanguageDesired</span> - <span class="nf">resumeHash</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">resumeHash</span> - <span class="nf">dayColorScheme</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemplateColorScheme.html">SDLTemplateColorScheme</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">dayColorScheme</span> - <span class="nf">nightColorScheme</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemplateColorScheme.html">SDLTemplateColorScheme</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">nightColorScheme</span><span class="p">;</span></code></pre> + <span class="nf">initWithAppName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appName</span> + <span class="nf">appId</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">appId</span> + <span class="nf">fullAppId</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fullAppId</span> + <span class="nf">languageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">languageDesired</span> + <span class="nf">isMediaApp</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">isMediaApp</span> + <span class="nf">appTypes</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType">SDLAppHMIType</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">appTypes</span> + <span class="nf">shortAppName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">shortAppName</span> + <span class="nf">ttsName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLTTSChunk.html">SDLTTSChunk</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">ttsName</span> + <span class="nf">vrSynonyms</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">vrSynonyms</span> + <span class="nf">hmiDisplayLanguageDesired</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">hmiDisplayLanguageDesired</span> + <span class="nf">resumeHash</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">resumeHash</span> + <span class="nf">dayColorScheme</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemplateColorScheme.html">SDLTemplateColorScheme</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">dayColorScheme</span> + <span class="nf">nightColorScheme</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemplateColorScheme.html">SDLTemplateColorScheme</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">nightColorScheme</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLRemoteControlCapabilities.html b/docs/Classes/SDLRemoteControlCapabilities.html index 569543c1a..86f3c08db 100644 --- a/docs/Classes/SDLRemoteControlCapabilities.html +++ b/docs/Classes/SDLRemoteControlCapabilities.html @@ -48,26 +48,27 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithClimateControlCapabilities</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLClimateControlCapabilities.html">SDLClimateControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)climateControlCapabilities">climateControlCapabilities</a></span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities">radioControlCapabilities</a></span><span class="o">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLRadioControlCapabilities.html">SDLRadioControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities">radioControlCapabilities</a></span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities">buttonCapabilities</a></span><span class="o">:</span><span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLButtonCapabilities.html">SDLButtonCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities">buttonCapabilities</a></span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)seatControlCapabilities">seatControlCapabilities</a></span><span class="o">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLSeatControlCapabilities.html">SDLSeatControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)seatControlCapabilities">seatControlCapabilities</a></span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)audioControlCapabilities">audioControlCapabilities</a></span><span class="o">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLAudioControlCapabilities.html">SDLAudioControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)audioControlCapabilities">audioControlCapabilities</a></span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)hmiSettingsControlCapabilities">hmiSettingsControlCapabilities</a></span><span class="o">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLHMISettingsControlCapabilities.html">SDLHMISettingsControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)hmiSettingsControlCapabilities">hmiSettingsControlCapabilities</a></span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)lightControlCapabilities">lightControlCapabilities</a></span><span class="o">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLLightControlCapabilities.html">SDLLightControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> - <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)lightControlCapabilities">lightControlCapabilities</a></span><span class="p">;</span></code></pre> + <span class="nf">initWithClimateControlCapabilities</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLClimateControlCapabilities.html">SDLClimateControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)climateControlCapabilities">climateControlCapabilities</a></span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities">radioControlCapabilities</a></span><span class="o">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLRadioControlCapabilities.html">SDLRadioControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities">radioControlCapabilities</a></span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities">buttonCapabilities</a></span><span class="o">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLButtonCapabilities.html">SDLButtonCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities">buttonCapabilities</a></span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)seatControlCapabilities">seatControlCapabilities</a></span><span class="o">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLSeatControlCapabilities.html">SDLSeatControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)seatControlCapabilities">seatControlCapabilities</a></span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)audioControlCapabilities">audioControlCapabilities</a></span><span class="o">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLAudioControlCapabilities.html">SDLAudioControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)audioControlCapabilities">audioControlCapabilities</a></span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)hmiSettingsControlCapabilities">hmiSettingsControlCapabilities</a></span><span class="o">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLHMISettingsControlCapabilities.html">SDLHMISettingsControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)hmiSettingsControlCapabilities">hmiSettingsControlCapabilities</a></span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)lightControlCapabilities">lightControlCapabilities</a></span><span class="o">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLLightControlCapabilities.html">SDLLightControlCapabilities</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)lightControlCapabilities">lightControlCapabilities</a></span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLScreenManager.html b/docs/Classes/SDLScreenManager.html index 627ef710b..1f3310f2b 100644 --- a/docs/Classes/SDLScreenManager.html +++ b/docs/Classes/SDLScreenManager.html @@ -365,9 +365,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithConnectionManager</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">connectionManager</span> - <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLFileManager.html">SDLFileManager</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManager</span><span class="p">;</span></code></pre> + <span class="nf">initWithConnectionManager</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">connectionManager</span> + <span class="nf">fileManager</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLFileManager.html">SDLFileManager</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">fileManager</span><span class="p">;</span></code></pre> diff --git a/docs/Classes/SDLSendLocation.html b/docs/Classes/SDLSendLocation.html index 5c2dfa34b..cdb7f88c4 100644 --- a/docs/Classes/SDLSendLocation.html +++ b/docs/Classes/SDLSendLocation.html @@ -3,6 +3,7 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section--initWithAddress:addressLines:locationName:locationDescription:phoneNumber:image:deliveryMode:timeStamp:">-initWithAddress:addressLines:locationName:locationDescription:phoneNumber:image:deliveryMode:timeStamp:</a></li> <li><a href="#section--initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:">-initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:</a></li> <li><a href="#section--initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:">-initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:</a></li> <li><a href="#section-longitudeDegrees">longitudeDegrees</a></li> @@ -23,16 +24,72 @@ <section class="section task-group-section"> + <h3 id="section--initWithAddress:addressLines:locationName:locationDescription:phoneNumber:image:deliveryMode:timeStamp:"> + -initWithAddress:addressLines:locationName:locationDescription:phoneNumber:image:deliveryMode:timeStamp: + </h3> + + <p>Create a <code>SendLocation</code> request with an address object, without Lat/Long coordinates.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAddress</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLOasisAddress.html">SDLOasisAddress</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span> + <span class="nf">addressLines</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">addressLines</span> + <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> + <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> + <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> + <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> + <span class="nf">deliveryMode</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode">SDLDeliveryMode</a></span><span class="p">)</span><span class="nv">deliveryMode</span> + <span class="nf">timeStamp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeStamp</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">address</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLOasisAddress.html">SDLOasisAddress</a></span><span class="p">,</span> <span class="nv">addressLines</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?,</span> <span class="nv">locationName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">locationDescription</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">phoneNumber</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">image</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?,</span> <span class="nv">deliveryMode</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode">SDLDeliveryMode</a></span><span class="p">?,</span> <span class="nv">timeStamp</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>address</dt> + <dd><p>The address information to be passed to the nav system for determining the route</p></dd> + <dt>addressLines</dt> + <dd><p>The user-facing address</p></dd> + <dt>locationName</dt> + <dd><p>The user-facing name of the location</p></dd> + <dt>locationDescription</dt> + <dd><p>The user-facing description of the location</p></dd> + <dt>phoneNumber</dt> + <dd><p>The phone number for the location; the user could use this to call the location</p></dd> + <dt>image</dt> + <dd><p>A user-facing image for the location</p></dd> + <dt>deliveryMode</dt> + <dd><p>How the location should be sent to the nav system</p></dd> + <dt>timeStamp</dt> + <dd><p>The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A <code>SendLocation</code> object</p> + </div> + <h3 id="section--initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:"> -initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image: </h3> - <p>Undocumented</p> + <p>Create a <code>SendLocation</code> request with Lat/Long coordinate, not an address object</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLongitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">longitude</span> <span class="nf">latitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">latitude</span> <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> <span class="nf">address</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span> <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithLongitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">longitude</span> + <span class="nf">latitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">latitude</span> + <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> + <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> + <span class="nf">address</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span> + <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> + <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -40,17 +97,48 @@ + <h4>Parameters</h4> + <dl> + <dt>longitude</dt> + <dd><p>The longitudinal coordinate of the location</p></dd> + <dt>latitude</dt> + <dd><p>The latitudinal coordinate of the location</p></dd> + <dt>locationName</dt> + <dd><p>The user-facing name of the location</p></dd> + <dt>locationDescription</dt> + <dd><p>The user-facing description of the location</p></dd> + <dt>address</dt> + <dd><p>The user-facing address</p></dd> + <dt>phoneNumber</dt> + <dd><p>The phone number for the location; the user could use this to call the location</p></dd> + <dt>image</dt> + <dd><p>A user-facing image for the location</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A <code>SendLocation</code> object</p> + </div> <h3 id="section--initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:"> -initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address: </h3> - <p>Undocumented</p> + <p>Create a <code>SendLocation</code> request with Lat/Long coordinate and an address object and let the nav system decide how to parse it</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLongitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">longitude</span> <span class="nf">latitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">latitude</span> <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> <span class="nf">displayAddressLines</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">displayAddressLines</span> <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> <span class="nf">deliveryMode</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode">SDLDeliveryMode</a></span><span class="p">)</span><span class="nv">deliveryMode</span> <span class="nf">timeStamp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeStamp</span> <span class="nf">address</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLOasisAddress.html">SDLOasisAddress</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithLongitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">longitude</span> + <span class="nf">latitude</span><span class="p">:(</span><span class="kt">double</span><span class="p">)</span><span class="nv">latitude</span> + <span class="nf">locationName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationName</span> + <span class="nf">locationDescription</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">locationDescription</span> + <span class="nf">displayAddressLines</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">displayAddressLines</span> + <span class="nf">phoneNumber</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">phoneNumber</span> + <span class="nf">image</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">image</span> + <span class="nf">deliveryMode</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode">SDLDeliveryMode</a></span><span class="p">)</span><span class="nv">deliveryMode</span> + <span class="nf">timeStamp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeStamp</span> + <span class="nf">address</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLOasisAddress.html">SDLOasisAddress</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">address</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -58,14 +146,41 @@ + <h4>Parameters</h4> + <dl> + <dt>longitude</dt> + <dd><p>The longitudinal coordinate of the location</p></dd> + <dt>latitude</dt> + <dd><p>The latitudinal coordinate of the location</p></dd> + <dt>locationName</dt> + <dd><p>The user-facing name of the location</p></dd> + <dt>locationDescription</dt> + <dd><p>The user-facing description of the location</p></dd> + <dt>displayAddressLines</dt> + <dd><p>The user-facing address</p></dd> + <dt>phoneNumber</dt> + <dd><p>The phone number for the location; the user could use this to call the location</p></dd> + <dt>image</dt> + <dd><p>A user-facing image for the location</p></dd> + <dt>deliveryMode</dt> + <dd><p>How the location should be sent to the nav system</p></dd> + <dt>timeStamp</dt> + <dd><p>The estimated arrival time for the location (this will also likely be calculated by the nav system later, and may be different than your estimate). This is used to show the user approximately how long it would take to navigate here</p></dd> + <dt>address</dt> + <dd><p>The address information to be passed to the nav system for determining the route</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A <code>SendLocation</code> object</p> + </div> <h3 id="section-longitudeDegrees"> longitudeDegrees </h3> - <p>The longitudinal coordinate of the location.</p> + <p>The longitudinal coordinate of the location. Either the latitude / longitude OR the <code><a href="../Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address">address</a></code> must be provided.</p> -<p>Float, Required, -180.0 - 180.0</p> +<p>Float, Optional, -180.0 - 180.0</p> @@ -84,9 +199,9 @@ latitudeDegrees </h3> - <p>The latitudinal coordinate of the location.</p> + <p>The latitudinal coordinate of the location. Either the latitude / longitude OR the <code><a href="../Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address">address</a></code> must be provided.</p> -<p>Float, Required, -90.0 - 90.0</p> +<p>Float, Optional, -90.0 - 90.0</p> @@ -145,7 +260,7 @@ addressLines </h3> - <p>Location address for display purposes only</p> + <p>Location address for display purposes only.</p> <p>Contains String, Optional, Max Array Length = 4, Max String Length = 500</p> @@ -246,7 +361,7 @@ address </h3> - <p>Address to be used for setting destination</p> + <p>Address to be used for setting destination. Either the latitude / longitude OR the <code>address</code> must be provided.</p> <p>Optional</p> diff --git a/docs/Classes/SDLSetCloudAppProperties.html b/docs/Classes/SDLSetCloudAppProperties.html new file mode 100644 index 000000000..0064af1ce --- /dev/null +++ b/docs/Classes/SDLSetCloudAppProperties.html @@ -0,0 +1,65 @@ +<h1>SDLSetCloudAppProperties Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithProperties:">-initWithProperties:</a></li> + <li><a href="#section-properties">properties</a></li> +</ul> + +<h3>Overview</h3> + +<p>RPC used to enable/disable a cloud application and set authentication data</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithProperties:"> + -initWithProperties: + </h3> + + <p>Convenience init.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithProperties</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">properties</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">properties</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>properties</dt> + <dd><p>The new cloud application properties</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSetCloudAppProperties object</p> + </div> + + <h3 id="section-properties"> + properties + </h3> + + <p>The new cloud application properties.</p> + +<p>SDLCloudAppProperties, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">properties</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">properties</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLCloudAppProperties.html">SDLCloudAppProperties</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLSetGlobalProperties.html b/docs/Classes/SDLSetGlobalProperties.html index e189e1aca..456890678 100644 --- a/docs/Classes/SDLSetGlobalProperties.html +++ b/docs/Classes/SDLSetGlobalProperties.html @@ -102,13 +102,13 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithHelpText</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">helpText</span> - <span class="nf">timeoutText</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">timeoutText</span> - <span class="nf">vrHelpTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">vrHelpTitle</span> - <span class="nf">vrHelp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVRHelpItem.html">SDLVRHelpItem</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">vrHelp</span> - <span class="nf">menuTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">menuTitle</span> - <span class="nf">menuIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">menuIcon</span> -<span class="nf">keyboardProperties</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLKeyboardProperties.html">SDLKeyboardProperties</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">keyboardProperties</span><span class="p">;</span></code></pre> + <span class="nf">initWithHelpText</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">helpText</span> + <span class="nf">timeoutText</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">timeoutText</span> + <span class="nf">vrHelpTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">vrHelpTitle</span> + <span class="nf">vrHelp</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVRHelpItem.html">SDLVRHelpItem</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">vrHelp</span> + <span class="nf">menuTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">menuTitle</span> + <span class="nf">menuIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">menuIcon</span> + <span class="nf">keyboardProperties</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLKeyboardProperties.html">SDLKeyboardProperties</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">keyboardProperties</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLSetMediaClockTimer.html b/docs/Classes/SDLSetMediaClockTimer.html index f2f462c28..deddb608b 100644 --- a/docs/Classes/SDLSetMediaClockTimer.html +++ b/docs/Classes/SDLSetMediaClockTimer.html @@ -3,9 +3,19 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section-+countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:">+countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:</a></li> + <li><a href="#section-+countUpFromStartTime:toEndTime:playPauseIndicator:">+countUpFromStartTime:toEndTime:playPauseIndicator:</a></li> + <li><a href="#section-+countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:">+countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:</a></li> + <li><a href="#section-+countDownFromStartTime:toEndTime:playPauseIndicator:">+countDownFromStartTime:toEndTime:playPauseIndicator:</a></li> + <li><a href="#section-+pauseWithPlayPauseIndicator:">+pauseWithPlayPauseIndicator:</a></li> + <li><a href="#section-+updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:">+updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:</a></li> + <li><a href="#section-+updatePauseWithNewStartTime:endTime:playPauseIndicator:">+updatePauseWithNewStartTime:endTime:playPauseIndicator:</a></li> + <li><a href="#section-+resumeWithPlayPauseIndicator:">+resumeWithPlayPauseIndicator:</a></li> + <li><a href="#section-+clearWithPlayPauseIndicator:">+clearWithPlayPauseIndicator:</a></li> <li><a href="#section--initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:">-initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:</a></li> <li><a href="#section--initWithUpdateMode:hours:minutes:seconds:">-initWithUpdateMode:hours:minutes:seconds:</a></li> <li><a href="#section--initWithUpdateMode:">-initWithUpdateMode:</a></li> + <li><a href="#section--initWithUpdateMode:startTime:endTime:playPauseIndicator:">-initWithUpdateMode:startTime:endTime:playPauseIndicator:</a></li> <li><a href="#section-startTime">startTime</a></li> <li><a href="#section-endTime">endTime</a></li> <li><a href="#section-updateMode">updateMode</a></li> @@ -25,6 +35,308 @@ <section class="section task-group-section"> + <h3 id="section-+countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:"> + +countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator: + </h3> + + <p>Create a media clock timer that counts up, e.g from 0:00 to 4:18.</p> + +<p>This will fail if startTime is greater than endTime</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">countUpFromStartTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">toEndTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span> + <span class="n">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">countUp</span><span class="p">(</span><span class="n">from</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">,</span> <span class="n">to</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>startTime</dt> + <dd><p>The start time interval, e.g. (0) 0:00</p></dd> + <dt>endTime</dt> + <dd><p>The end time interval, e.g. (258) 4:18</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+countUpFromStartTime:toEndTime:playPauseIndicator:"> + +countUpFromStartTime:toEndTime:playPauseIndicator: + </h3> + + <p>Create a media clock timer that counts up, e.g from 0:00 to 4:18.</p> + +<p>This will fail if startTime is greater than endTime</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">countUpFromStartTime</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">toEndTime</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span> + <span class="n">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">countUp</span><span class="p">(</span><span class="n">from</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">,</span> <span class="n">to</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>startTime</dt> + <dd><p>The start time interval, e.g. 0:00</p></dd> + <dt>endTime</dt> + <dd><p>The end time interval, e.g. 4:18</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:"> + +countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator: + </h3> + + <p>Create a media clock timer that counts down, e.g. from 4:18 to 0:00</p> + +<p>This will fail if endTime is greater than startTime</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">countDownFromStartTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">toEndTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span> + <span class="n">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">countDown</span><span class="p">(</span><span class="n">from</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">,</span> <span class="n">to</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>startTime</dt> + <dd><p>The start time interval, e.g. (258) 4:18</p></dd> + <dt>endTime</dt> + <dd><p>The end time interval, e.g. (0) 0:00</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+countDownFromStartTime:toEndTime:playPauseIndicator:"> + +countDownFromStartTime:toEndTime:playPauseIndicator: + </h3> + + <p>Create a media clock timer that counts down, e.g. from 4:18 to 0:00</p> + +<p>This will fail if endTime is greater than startTime</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">countDownFromStartTime</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">toEndTime</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span> + <span class="n">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">countDown</span><span class="p">(</span><span class="n">from</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">,</span> <span class="n">to</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>startTime</dt> + <dd><p>The start time interval, e.g. 4:18</p></dd> + <dt>endTime</dt> + <dd><p>The end time interval, e.g. 0:00</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+pauseWithPlayPauseIndicator:"> + +pauseWithPlayPauseIndicator: + </h3> + + <p>Pause an existing (counting up / down) media clock timer</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">pauseWithPlayPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span><span class="nv">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">pause</span><span class="p">(</span><span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:"> + +updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator: + </h3> + + <p>Update a pause time (or pause and update the time) on a media clock timer</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">updatePauseWithNewStartTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">endTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span> + <span class="n">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">pause</span><span class="p">(</span><span class="n">newStart</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">,</span> <span class="n">newEnd</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>startTime</dt> + <dd><p>The new start time interval</p></dd> + <dt>endTime</dt> + <dd><p>The new end time interval</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+updatePauseWithNewStartTime:endTime:playPauseIndicator:"> + +updatePauseWithNewStartTime:endTime:playPauseIndicator: + </h3> + + <p>Update a pause time (or pause and update the time) on a media clock timer</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">updatePauseWithNewStartTime</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">endTime</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span><span class="nv">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">pause</span><span class="p">(</span><span class="n">newStart</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">,</span> <span class="n">newEnd</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>startTime</dt> + <dd><p>The new start time</p></dd> + <dt>endTime</dt> + <dd><p>The new end time</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+resumeWithPlayPauseIndicator:"> + +resumeWithPlayPauseIndicator: + </h3> + + <p>Resume a paused media clock timer. It resumes at the same time at which it was paused.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">resumeWithPlayPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span><span class="nv">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">resume</span><span class="p">(</span><span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + + <h3 id="section-+clearWithPlayPauseIndicator:"> + +clearWithPlayPauseIndicator: + </h3> + + <p>Remove a media clock timer from the screen</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">clearWithPlayPauseIndicator</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span><span class="nv">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">class</span> <span class="kd">func</span> <span class="nf">clear</span><span class="p">(</span><span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span> <span class="o">-></span> <span class="k">Self</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>playPauseIndicator</dt> + <dd><p>An optional audio indicator to change the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + <h3 id="section--initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:"> -initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator: </h3> @@ -34,7 +346,7 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span> <span class="nf">hours</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">hours</span> <span class="nf">minutes</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">minutes</span> <span class="nf">seconds</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">audioStreamingIndicator</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span><span class="nv">audioStreamingIndicator</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span> <span class="nf">hours</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">hours</span> <span class="nf">minutes</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">minutes</span> <span class="nf">seconds</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">seconds</span> <span class="nf">audioStreamingIndicator</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span><span class="nv">audioStreamingIndicator</span> <span class="n">__deprecated_msg</span><span class="p">(</span><span class="s">"Use a specific initializer"</span><span class="p">);</span></code></pre> <h4>Swift</h4> @@ -52,7 +364,7 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span> <span class="nf">hours</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">hours</span> <span class="nf">minutes</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">minutes</span> <span class="nf">seconds</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">seconds</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span> <span class="nf">hours</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">hours</span> <span class="nf">minutes</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">minutes</span> <span class="nf">seconds</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">seconds</span> <span class="n">__deprecated_msg</span><span class="p">(</span><span class="s">"Use a specific initializer"</span><span class="p">);</span></code></pre> <h4>Swift</h4> @@ -70,7 +382,7 @@ <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span> <span class="n">__deprecated_msg</span><span class="p">(</span><span class="s">"Use a specific initializer"</span><span class="p">);</span></code></pre> <h4>Swift</h4> @@ -79,6 +391,43 @@ + <h3 id="section--initWithUpdateMode:startTime:endTime:playPauseIndicator:"> + -initWithUpdateMode:startTime:endTime:playPauseIndicator: + </h3> + + <p>Create a SetMediaClockTimer RPC with all available parameters. It’s recommended to use the specific initializers above.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUpdateMode</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">)</span><span class="nv">updateMode</span> + <span class="nf">startTime</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">startTime</span> + <span class="nf">endTime</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">endTime</span> + <span class="nf">playPauseIndicator</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">)</span> + <span class="n">playPauseIndicator</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">updateMode</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode">SDLUpdateMode</a></span><span class="p">,</span> <span class="nv">startTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">?,</span> <span class="nv">endTime</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLStartTime.html">SDLStartTime</a></span><span class="p">?,</span> <span class="nv">playPauseIndicator</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>updateMode</dt> + <dd><p>The type of SetMediaClockTimer RPC</p></dd> + <dt>startTime</dt> + <dd><p>The start time. Only valid in some updateModes.</p></dd> + <dt>endTime</dt> + <dd><p>The end time. Only valid in some updateModes.</p></dd> + <dt>playPauseIndicator</dt> + <dd><p>The display of the play/pause button</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>An object of SetMediaClockTimer</p> + </div> + <h3 id="section-startTime"> startTime </h3> diff --git a/docs/Classes/SDLSoftButtonObject.html b/docs/Classes/SDLSoftButtonObject.html index c7cfedf42..a3b20e117 100644 --- a/docs/Classes/SDLSoftButtonObject.html +++ b/docs/Classes/SDLSoftButtonObject.html @@ -123,10 +123,10 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> - <span class="nf">initWithName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> - <span class="nf">states</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLSoftButtonState.html">SDLSoftButtonState</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">states</span> -<span class="nf">initialStateName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">initialStateName</span> - <span class="nf">handler</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">)</span><span class="nv">eventHandler</span><span class="p">;</span></code></pre> + <span class="nf">initWithName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">name</span> + <span class="nf">states</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLSoftButtonState.html">SDLSoftButtonState</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">states</span> + <span class="nf">initialStateName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">initialStateName</span> + <span class="nf">handler</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">)</span><span class="nv">eventHandler</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Classes/SDLStartTime.html b/docs/Classes/SDLStartTime.html index d909eaca9..b281b80eb 100644 --- a/docs/Classes/SDLStartTime.html +++ b/docs/Classes/SDLStartTime.html @@ -3,6 +3,7 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section--initWithTimeInterval:">-initWithTimeInterval:</a></li> <li><a href="#section--initWithHours:minutes:seconds:">-initWithHours:minutes:seconds:</a></li> <li><a href="#section-hours">hours</a></li> <li><a href="#section-minutes">minutes</a></li> @@ -17,16 +18,45 @@ <section class="section task-group-section"> + <h3 id="section--initWithTimeInterval:"> + -initWithTimeInterval: + </h3> + + <p>Create a time struct with a time interval (time in seconds). Fractions of the second will be eliminated and rounded down.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithTimeInterval</span><span class="p">:(</span><span class="n">NSTimeInterval</span><span class="p">)</span><span class="nv">timeInterval</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">timeInterval</span><span class="p">:</span> <span class="kt">TimeInterval</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>timeInterval</dt> + <dd><p>The time interval to transform into hours, minutes, seconds</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>The object</p> + </div> + <h3 id="section--initWithHours:minutes:seconds:"> -initWithHours:minutes:seconds: </h3> - <p>Undocumented</p> + <p>Create a time struct with hours, minutes, and seconds</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithHours</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">hours</span> <span class="nf">minutes</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">minutes</span> <span class="nf">seconds</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">seconds</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithHours</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">hours</span> + <span class="nf">minutes</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">minutes</span> + <span class="nf">seconds</span><span class="p">:(</span><span class="n">UInt8</span><span class="p">)</span><span class="nv">seconds</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -34,6 +64,19 @@ + <h4>Parameters</h4> + <dl> + <dt>hours</dt> + <dd><p>The number of hours</p></dd> + <dt>minutes</dt> + <dd><p>The number of minutes</p></dd> + <dt>seconds</dt> + <dd><p>The number of seconds</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>The object</p> + </div> <h3 id="section-hours"> hours diff --git a/docs/Classes/SDLStreamingMediaConfiguration.html b/docs/Classes/SDLStreamingMediaConfiguration.html index 96b59b0d3..2c88d3f9b 100644 --- a/docs/Classes/SDLStreamingMediaConfiguration.html +++ b/docs/Classes/SDLStreamingMediaConfiguration.html @@ -232,13 +232,14 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithSecurityManagers</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">Class</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLSecurityType.html">SDLSecurityType</a></span><span class="o">>></span> <span class="o">*</span><span class="p">)</span><span class="nv">securityManagers</span> - <span class="nf">encryptionFlag</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLStreamingEncryptionFlag.html">SDLStreamingEncryptionFlag</a></span><span class="p">)</span><span class="nv">encryptionFlag</span> - <span class="nf">videoSettings</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSDictionary</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span> <span class="n">id</span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">videoSettings</span> - <span class="nf">dataSource</span><span class="p">:</span> - <span class="p">(</span><span class="n">nullable</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLStreamingMediaManagerDataSource.html">SDLStreamingMediaManagerDataSource</a></span><span class="o">></span><span class="p">)</span><span class="nv">dataSource</span> - <span class="nf">rootViewController</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">rootViewController</span><span class="p">;</span></code></pre> + <span class="nf">initWithSecurityManagers</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">Class</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLSecurityType.html">SDLSecurityType</a></span><span class="o">>></span> <span class="o">*</span><span class="p">)</span><span class="nv">securityManagers</span> + <span class="nf">encryptionFlag</span><span class="p">:(</span><span class="n"><a href="../Enums/SDLStreamingEncryptionFlag.html">SDLStreamingEncryptionFlag</a></span><span class="p">)</span><span class="nv">encryptionFlag</span> + <span class="nf">videoSettings</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n">NSDictionary</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*</span><span class="p">,</span> <span class="n">id</span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">videoSettings</span> + <span class="nf">dataSource</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">id</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLStreamingMediaManagerDataSource.html">SDLStreamingMediaManagerDataSource</a></span><span class="o">></span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)dataSource">dataSource</a></span> + <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)rootViewController">rootViewController</a></span><span class="o">:</span><span class="p">(</span><span class="n">nullable</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)rootViewController">rootViewController</a></span><span class="p">;</span></code></pre> @@ -338,8 +339,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">autostreamingInsecureConfigurationWithInitialViewController</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">initialViewController</span><span class="p">;</span></code></pre> + <span class="nf">autostreamingInsecureConfigurationWithInitialViewController</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span><span class="nv">initialViewController</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -367,11 +368,11 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">autostreamingSecureConfigurationWithSecurityManagers</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">Class</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLSecurityType.html">SDLSecurityType</a></span><span class="o">>></span> <span class="o">*</span><span class="p">)</span><span class="nv">securityManagers</span> - <span class="nf">initialViewController</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span> - <span class="n">initialViewController</span><span class="p">;</span></code></pre> + <span class="nf">autostreamingSecureConfigurationWithSecurityManagers</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">Class</span><span class="o"><</span><span class="n"><a href="../Protocols/SDLSecurityType.html">SDLSecurityType</a></span><span class="o">>></span> <span class="o">*</span><span class="p">)</span><span class="nv">securityManagers</span> + <span class="nf">initialViewController</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">UIViewController</span> <span class="o">*</span><span class="p">)</span> + <span class="n">initialViewController</span><span class="p">;</span></code></pre> diff --git a/docs/Classes/SDLStreamingMediaManager.html b/docs/Classes/SDLStreamingMediaManager.html index f1a5384f9..c162d8fd7 100644 --- a/docs/Classes/SDLStreamingMediaManager.html +++ b/docs/Classes/SDLStreamingMediaManager.html @@ -355,10 +355,9 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithConnectionManager</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">connectionManager</span> - <span class="nf">configuration</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLStreamingMediaConfiguration.html">SDLStreamingMediaConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span><span class="p">;</span></code></pre> + <span class="nf">initWithConnectionManager</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">id</span><span class="o"><</span><span class="n">SDLConnectionManagerType</span><span class="o">></span><span class="p">)</span><span class="nv">connectionManager</span> + <span class="nf">configuration</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLConfiguration.html">SDLConfiguration</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">configuration</span><span class="p">;</span></code></pre> @@ -368,7 +367,7 @@ <dt>connectionManager</dt> <dd><p>The pass-through for RPCs</p></dd> <dt>configuration</dt> - <dd><p>The configuration of this streaming media session</p></dd> + <dd><p>This session’s configuration</p></dd> </dl> <div> <h4>Return Value</h4> diff --git a/docs/Classes/SDLSubscribeVehicleData.html b/docs/Classes/SDLSubscribeVehicleData.html index 02ac82aa2..ebe009aa6 100644 --- a/docs/Classes/SDLSubscribeVehicleData.html +++ b/docs/Classes/SDLSubscribeVehicleData.html @@ -5,6 +5,7 @@ <ul> <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:</a></li> <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:</a></li> + <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:</a></li> <li><a href="#section-gps">gps</a></li> <li><a href="#section-speed">speed</a></li> <li><a href="#section-rpm">rpm</a></li> @@ -33,6 +34,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -61,30 +63,30 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> - <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> - <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> - <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> - <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> - <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> - <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> - <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> - <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> - <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> - <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> - <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> - <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> - <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> - <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> - <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> - <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> - <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> - <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> - <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> - <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> - <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> - <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> - <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -158,34 +160,34 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> - <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> - <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> - <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> - <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> - <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> - <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> - <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> - <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> - <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> - <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> - <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> - <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> - <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> - <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> - <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> - <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> - <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> - <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> - <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> - <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> - <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> - <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> - <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> - <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> - <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> - <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> - <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -257,6 +259,118 @@ <p>A SDLSubscribeVehicleData object</p> </div> + <h3 id="section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:"> + -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: + </h3> + + <p>Convenience init for subscribing to all possible vehicle data items.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">cloudAppVehicleID</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">cloudAppVehicleID</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">accelerationPedalPosition</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">airbagStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">beltStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">bodyInformation</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">clusterModeStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">deviceStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">driverBraking</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">eCallInfo</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">electronicParkBrakeStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">emergencyEvent</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">engineOilLife</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">engineTorque</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">externalTemperature</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelLevel</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelLevelState</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelRange</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">gps</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">headLampStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">instantFuelConsumption</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">myKey</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">odometer</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">prndl</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpm</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">speed</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">steeringWheelAngle</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">tirePressure</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">turnSignal</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">wiperStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>accelerationPedalPosition</dt> + <dd><p>Subscribe to accelerationPedalPosition</p></dd> + <dt>airbagStatus</dt> + <dd><p>Subscribe to airbagStatus</p></dd> + <dt>beltStatus</dt> + <dd><p>Subscribe to beltStatus</p></dd> + <dt>bodyInformation</dt> + <dd><p>Subscribe to bodyInformation</p></dd> + <dt>cloudAppVehicleID</dt> + <dd><p>Subscribe to cloudAppVehicleID</p></dd> + <dt>clusterModeStatus</dt> + <dd><p>Subscribe to clusterModeStatus</p></dd> + <dt>deviceStatus</dt> + <dd><p>Subscribe to deviceStatus</p></dd> + <dt>driverBraking</dt> + <dd><p>Subscribe to driverBraking</p></dd> + <dt>eCallInfo</dt> + <dd><p>Subscribe to eCallInfo</p></dd> + <dt>electronicParkBrakeStatus</dt> + <dd><p>Subscribe to electronicParkBrakeStatus</p></dd> + <dt>emergencyEvent</dt> + <dd><p>Subscribe to emergencyEvent</p></dd> + <dt>engineOilLife</dt> + <dd><p>Subscribe to engineOilLife</p></dd> + <dt>engineTorque</dt> + <dd><p>Subscribe to engineTorque</p></dd> + <dt>externalTemperature</dt> + <dd><p>Subscribe to externalTemperature</p></dd> + <dt>fuelLevel</dt> + <dd><p>Subscribe to fuelLevel</p></dd> + <dt>fuelLevelState</dt> + <dd><p>Subscribe to fuelLevelState</p></dd> + <dt>fuelRange</dt> + <dd><p>Subscribe to fuelRange</p></dd> + <dt>gps</dt> + <dd><p>Subscribe to gps</p></dd> + <dt>headLampStatus</dt> + <dd><p>Subscribe to headLampStatus</p></dd> + <dt>instantFuelConsumption</dt> + <dd><p>Subscribe to instantFuelConsumption</p></dd> + <dt>myKey</dt> + <dd><p>Subscribe to myKey</p></dd> + <dt>odometer</dt> + <dd><p>Subscribe to odometer</p></dd> + <dt>prndl</dt> + <dd><p>Subscribe to prndl</p></dd> + <dt>rpm</dt> + <dd><p>Subscribe to rpm</p></dd> + <dt>speed</dt> + <dd><p>Subscribe to speed</p></dd> + <dt>steeringWheelAngle</dt> + <dd><p>Subscribe to steeringWheelAngle</p></dd> + <dt>tirePressure</dt> + <dd><p>Subscribe to tirePressure</p></dd> + <dt>turnSignal</dt> + <dd><p>Subscribe to turnSignal</p></dd> + <dt>wiperStatus</dt> + <dd><p>Subscribe to wiperStatus</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSubscribeVehicleData object</p> + </div> + <h3 id="section-gps"> gps </h3> @@ -778,4 +892,23 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>A boolean value. If true, subscribes to the cloud app vehicle ID.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLSubscribeVehicleDataResponse.html b/docs/Classes/SDLSubscribeVehicleDataResponse.html index 02eed7d86..aafe7004c 100644 --- a/docs/Classes/SDLSubscribeVehicleDataResponse.html +++ b/docs/Classes/SDLSubscribeVehicleDataResponse.html @@ -31,6 +31,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -624,4 +625,25 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>The result of requesting to subscribe to the cloud app vehicle ID</p> + +<p>Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLVehicleDataResult.html">SDLVehicleDataResult</a></span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLVehicleDataResult.html">SDLVehicleDataResult</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLSystemCapability.html b/docs/Classes/SDLSystemCapability.html index e4d0ecffb..5050cae3b 100644 --- a/docs/Classes/SDLSystemCapability.html +++ b/docs/Classes/SDLSystemCapability.html @@ -3,11 +3,13 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section--initWithAppServicesCapabilities:">-initWithAppServicesCapabilities:</a></li> <li><a href="#section--initWithNavigationCapability:">-initWithNavigationCapability:</a></li> <li><a href="#section--initWithPhoneCapability:">-initWithPhoneCapability:</a></li> <li><a href="#section--initWithVideoStreamingCapability:">-initWithVideoStreamingCapability:</a></li> <li><a href="#section--initWithRemoteControlCapability:">-initWithRemoteControlCapability:</a></li> <li><a href="#section-systemCapabilityType">systemCapabilityType</a></li> + <li><a href="#section-appServicesCapabilities">appServicesCapabilities</a></li> <li><a href="#section-navigationCapability">navigationCapability</a></li> <li><a href="#section-phoneCapability">phoneCapability</a></li> <li><a href="#section-videoStreamingCapability">videoStreamingCapability</a></li> @@ -22,16 +24,45 @@ <section class="section task-group-section"> + <h3 id="section--initWithAppServicesCapabilities:"> + -initWithAppServicesCapabilities: + </h3> + + <p>Convenience init for an App Service Capability</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithAppServicesCapabilities</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n"><a href="../Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)appServicesCapabilities">appServicesCapabilities</a></span> <span class="nv">capability</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>capability</dt> + <dd><p>Describes the capabilities of app services including what service types are supported and the current state of services</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapability object</p> + </div> + <h3 id="section--initWithNavigationCapability:"> -initWithNavigationCapability: </h3> - <p>Undocumented</p> + <p>Convenience init for a Navigation Capability</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithNavigationCapability</span><span class="p">:(</span><span class="n"><a href="../Classes/SDLNavigationCapability.html">SDLNavigationCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithNavigationCapability</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLNavigationCapability.html">SDLNavigationCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -39,17 +70,27 @@ + <h4>Parameters</h4> + <dl> + <dt>capability</dt> + <dd><p>Describes the extended capabilities of the onboard navigation system</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapability object</p> + </div> <h3 id="section--initWithPhoneCapability:"> -initWithPhoneCapability: </h3> - <p>Undocumented</p> + <p>Convenience init for a Phone Capability</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithPhoneCapability</span><span class="p">:(</span><span class="n"><a href="../Classes/SDLPhoneCapability.html">SDLPhoneCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithPhoneCapability</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLPhoneCapability.html">SDLPhoneCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -57,17 +98,27 @@ + <h4>Parameters</h4> + <dl> + <dt>capability</dt> + <dd><p>Describes the extended capabilities of the module’s phone feature</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapability object</p> + </div> <h3 id="section--initWithVideoStreamingCapability:"> -initWithVideoStreamingCapability: </h3> - <p>Undocumented</p> + <p>Convenience init for a Video Streaming Capability</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithVideoStreamingCapability</span><span class="p">:(</span><span class="n"><a href="../Classes/SDLVideoStreamingCapability.html">SDLVideoStreamingCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithVideoStreamingCapability</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLVideoStreamingCapability.html">SDLVideoStreamingCapability</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -75,17 +126,27 @@ + <h4>Parameters</h4> + <dl> + <dt>capability</dt> + <dd><p>Describes the capabilities of the module’s video streaming feature</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapability object</p> + </div> <h3 id="section--initWithRemoteControlCapability:"> -initWithRemoteControlCapability: </h3> - <p>Undocumented</p> + <p>Convenience init for a Remote Control Capability</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithRemoteControlCapability</span><span class="p">:(</span><span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html">SDLRemoteControlCapabilities</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithRemoteControlCapability</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLRemoteControlCapabilities.html">SDLRemoteControlCapabilities</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">capability</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -93,6 +154,15 @@ + <h4>Parameters</h4> + <dl> + <dt>capability</dt> + <dd><p>Describes the extended capabilities of the module’s remote control feature</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLSystemCapability object</p> + </div> <h3 id="section-systemCapabilityType"> systemCapabilityType @@ -113,11 +183,34 @@ + <h3 id="section-appServicesCapabilities"> + appServicesCapabilities + </h3> + + <p>Describes the capabilities of app services including what service types are supported and the current state of services.</p> + +<p>Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span> <span class="o">*</span><span class="n">appServicesCapabilities</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appServicesCapabilities</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + <h3 id="section-navigationCapability"> navigationCapability </h3> - <p>Describes extended capabilities for onboard navigation system</p> + <p>Describes the extended capabilities of the onboard navigation system</p> + +<p>Optional</p> @@ -136,7 +229,9 @@ phoneCapability </h3> - <p>Describes extended capabilities of the module’s phone feature</p> + <p>Describes the extended capabilities of the module’s phone feature</p> + +<p>Optional</p> @@ -155,7 +250,9 @@ videoStreamingCapability </h3> - <p>Describes extended capabilities of the module’s phone feature</p> + <p>Describes the capabilities of the module’s video streaming feature</p> + +<p>Optional</p> @@ -174,7 +271,9 @@ remoteControlCapability </h3> - <p>Describes extended capabilities of the module’s phone feature</p> + <p>Describes the extended capabilities of the module’s remote control feature</p> + +<p>Optional</p> diff --git a/docs/Classes/SDLSystemCapabilityManager.html b/docs/Classes/SDLSystemCapabilityManager.html index 9440f442d..eb94938cb 100644 --- a/docs/Classes/SDLSystemCapabilityManager.html +++ b/docs/Classes/SDLSystemCapabilityManager.html @@ -14,6 +14,7 @@ <li><a href="#section-vrCapability">vrCapability</a></li> <li><a href="#section-audioPassThruCapabilities">audioPassThruCapabilities</a></li> <li><a href="#section-pcmStreamCapability">pcmStreamCapability</a></li> + <li><a href="#section-appServicesCapabilities">appServicesCapabilities</a></li> <li><a href="#section-navigationCapability">navigationCapability</a></li> <li><a href="#section-phoneCapability">phoneCapability</a></li> <li><a href="#section-videoStreamingCapability">videoStreamingCapability</a></li> @@ -306,6 +307,32 @@ + <h3 id="section-appServicesCapabilities"> + appServicesCapabilities + </h3> + + <p>If returned, the platform supports app services</p> +<div class="aside aside-see"> + <p class="aside-title">See</p> + SDLAppServicesCapabilities + +</div> + +<p>Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readonly</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span> <span class="o">*</span><span class="n">appServicesCapabilities</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">appServicesCapabilities</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLAppServicesCapabilities.html">SDLAppServicesCapabilities</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + <h3 id="section-navigationCapability"> navigationCapability </h3> @@ -476,7 +503,7 @@ -updateCapabilityType:completionHandler: </h3> - <p>Retrieves a capability type from the remote system. This function must be called in order to retrieve the values of <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)navigationCapability">navigationCapability</a></code>, <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)phoneCapability">phoneCapability</a></code>, <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)videoStreamingCapability">videoStreamingCapability</a></code> and <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)remoteControlCapability">remoteControlCapability</a></code>. 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.</p> + <p>Retrieves a capability type from the remote system. This function must be called in order to retrieve the values for <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)navigationCapability">navigationCapability</a></code>, <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)phoneCapability">phoneCapability</a></code>, <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)videoStreamingCapability">videoStreamingCapability</a></code>, <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)remoteControlCapability">remoteControlCapability</a></code>, and <code><a href="../Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)appServicesCapabilities">appServicesCapabilities</a></code>. 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.</p> diff --git a/docs/Classes/SDLSystemRequest.html b/docs/Classes/SDLSystemRequest.html new file mode 100644 index 000000000..258203814 --- /dev/null +++ b/docs/Classes/SDLSystemRequest.html @@ -0,0 +1,140 @@ +<h1>SDLSystemRequest Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithType:fileName:">-initWithType:fileName:</a></li> + <li><a href="#section--initWithProprietaryType:fileName:">-initWithProprietaryType:fileName:</a></li> + <li><a href="#section-requestType">requestType</a></li> + <li><a href="#section-requestSubType">requestSubType</a></li> + <li><a href="#section-fileName">fileName</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithType:fileName:"> + -initWithType:fileName: + </h3> + + <p>Create a generic system request with a file name</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithType</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span><span class="p">)</span><span class="nv">requestType</span> + <span class="nf">fileName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="n">type</span> <span class="nv">requestType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span><span class="p">,</span> <span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>requestType</dt> + <dd><p>The request type to use</p></dd> + <dt>fileName</dt> + <dd><p>The name of the file to use</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>The request</p> + </div> + + <h3 id="section--initWithProprietaryType:fileName:"> + -initWithProprietaryType:fileName: + </h3> + + <p>Create an OEM_PROPRIETARY system request with a subtype and file name</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithProprietaryType</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">proprietaryType</span> + <span class="nf">fileName</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">fileName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">proprietaryType</span><span class="p">:</span> <span class="kt">String</span><span class="p">,</span> <span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>proprietaryType</dt> + <dd><p>The proprietary requestSubType to be used</p></dd> + <dt>fileName</dt> + <dd><p>The name of the file to use</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>The request</p> + </div> + + <h3 id="section-requestType"> + requestType + </h3> + + <p>The type of system request. Note that Proprietary requests should forward the binary data to the known proprietary module on the system.</p> + +<p>Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span> <span class="n">_Nonnull</span> <span class="n">requestType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">requestType</span><span class="p">:</span> <span class="kt"><a href="../Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-requestSubType"> + requestSubType + </h3> + + <p>A request subType used when the <code><a href="../Classes/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(py)requestType">requestType</a></code> is <code>OEM_SPECIFIC</code>.</p> + +<p>Optional, Max length 255</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">requestSubType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">requestSubType</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-fileName"> + fileName + </h3> + + <p>Filename of HTTP data to store in predefined system staging area.</p> + +<p>Required if requestType is HTTP. PROPRIETARY requestType should ignore this parameter.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">fileName</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">fileName</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLTemperature.html b/docs/Classes/SDLTemperature.html index 187719c0b..74a96ecdd 100644 --- a/docs/Classes/SDLTemperature.html +++ b/docs/Classes/SDLTemperature.html @@ -3,6 +3,8 @@ <h3>Section Contents</h3> <ul> + <li><a href="#section--initWithFahrenheitValue:">-initWithFahrenheitValue:</a></li> + <li><a href="#section--initWithCelsiusValue:">-initWithCelsiusValue:</a></li> <li><a href="#section--initWithUnit:value:">-initWithUnit:value:</a></li> <li><a href="#section-unit">unit</a></li> <li><a href="#section-value">value</a></li> @@ -10,20 +12,75 @@ <h3>Overview</h3> -<p>Struct using in Remote Control representing a temperature.</p> +<p>Struct representing a temperature.</p> <section class="section task-group-section"> + <h3 id="section--initWithFahrenheitValue:"> + -initWithFahrenheitValue: + </h3> + + <p>Convenience init for a fahrenheit temperature value.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithFahrenheitValue</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">value</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="n">fahrenheitValue</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">Float</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>value</dt> + <dd><p>Temperature value in fahrenheit</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLTemperature object</p> + </div> + + <h3 id="section--initWithCelsiusValue:"> + -initWithCelsiusValue: + </h3> + + <p>Convenience init for a celsius temperature value.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithCelsiusValue</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">value</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="n">celsiusValue</span> <span class="nv">value</span><span class="p">:</span> <span class="kt">Float</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>value</dt> + <dd><p>Temperature value in celsius</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLTemperature object</p> + </div> + <h3 id="section--initWithUnit:value:"> -initWithUnit:value: </h3> - <p>Undocumented</p> + <p>Convenience init for all parameters.</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUnit</span><span class="p">:(</span><span class="n"><a href="../Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit">SDLTemperatureUnit</a></span><span class="p">)</span><span class="nv">unit</span> <span class="nf">value</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">value</span><span class="p">;</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithUnit</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit">SDLTemperatureUnit</a></span><span class="p">)</span><span class="nv">unit</span> + <span class="nf">value</span><span class="p">:(</span><span class="kt">float</span><span class="p">)</span><span class="nv">value</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -31,12 +88,23 @@ + <h4>Parameters</h4> + <dl> + <dt>unit</dt> + <dd><p>Temperature unit</p></dd> + <dt>value</dt> + <dd><p>Temperature value in specified unit</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLTemperature object</p> + </div> <h3 id="section-unit"> unit </h3> - <p>Temperature Unit</p> + <p>Temperature unit</p> <p>Required, float</p> @@ -56,7 +124,7 @@ value </h3> - <p>Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL.</p> + <p>Temperature value in specified unit. Range depends on OEM and is not checked by SDL.</p> <p>Required, float</p> diff --git a/docs/Classes/SDLUnsubscribeVehicleData.html b/docs/Classes/SDLUnsubscribeVehicleData.html index a7ab630cc..8f05d9b7f 100644 --- a/docs/Classes/SDLUnsubscribeVehicleData.html +++ b/docs/Classes/SDLUnsubscribeVehicleData.html @@ -5,6 +5,7 @@ <ul> <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:</a></li> <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:</a></li> + <li><a href="#section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:">-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:</a></li> <li><a href="#section-gps">gps</a></li> <li><a href="#section-speed">speed</a></li> <li><a href="#section-rpm">rpm</a></li> @@ -33,6 +34,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -60,30 +62,30 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> - <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> - <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> - <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> - <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> - <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> - <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> - <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> - <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> - <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> - <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> - <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> - <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> - <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> - <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> - <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> - <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> - <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> - <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> - <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> - <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> - <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> - <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> - <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -157,34 +159,34 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> -<span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> - <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> - <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> - <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> - <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> - <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> - <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> - <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> - <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> - <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> - <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> - <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> - <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> - <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> - <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> - <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> - <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> - <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> - <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> - <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> - <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> - <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> - <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> - <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> - <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> - <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> - <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> - <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -256,6 +258,118 @@ <p>A SDLUnsubscribeVehicleData object</p> </div> + <h3 id="section--initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:"> + -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus: + </h3> + + <p>Convenience init for unsubscribing to all possible vehicle data items.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithAccelerationPedalPosition</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">accelerationPedalPosition</span> + <span class="nf">airbagStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">airbagStatus</span> + <span class="nf">beltStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">beltStatus</span> + <span class="nf">bodyInformation</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">bodyInformation</span> + <span class="nf">cloudAppVehicleID</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">cloudAppVehicleID</span> + <span class="nf">clusterModeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">clusterModeStatus</span> + <span class="nf">deviceStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">deviceStatus</span> + <span class="nf">driverBraking</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">driverBraking</span> + <span class="nf">eCallInfo</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">eCallInfo</span> + <span class="nf">electronicParkBrakeStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">electronicParkBrakeStatus</span> + <span class="nf">emergencyEvent</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">emergencyEvent</span> + <span class="nf">engineOilLife</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineOilLife</span> + <span class="nf">engineTorque</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">engineTorque</span> + <span class="nf">externalTemperature</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">externalTemperature</span> + <span class="nf">fuelLevel</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevel</span> + <span class="nf">fuelLevelState</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelLevelState</span> + <span class="nf">fuelRange</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">fuelRange</span> + <span class="nf">gps</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">gps</span> + <span class="nf">headLampStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">headLampStatus</span> + <span class="nf">instantFuelConsumption</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">instantFuelConsumption</span> + <span class="nf">myKey</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">myKey</span> + <span class="nf">odometer</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">odometer</span> + <span class="nf">prndl</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">prndl</span> + <span class="nf">rpm</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">rpm</span> + <span class="nf">speed</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">speed</span> + <span class="nf">steeringWheelAngle</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">steeringWheelAngle</span> + <span class="nf">tirePressure</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">tirePressure</span> + <span class="nf">turnSignal</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">turnSignal</span> + <span class="nf">wiperStatus</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">wiperStatus</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">accelerationPedalPosition</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">airbagStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">beltStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">bodyInformation</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">clusterModeStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">deviceStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">driverBraking</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">eCallInfo</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">electronicParkBrakeStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">emergencyEvent</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">engineOilLife</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">engineTorque</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">externalTemperature</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelLevel</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelLevelState</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">fuelRange</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">gps</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">headLampStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">instantFuelConsumption</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">myKey</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">odometer</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">prndl</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">rpm</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">speed</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">steeringWheelAngle</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">tirePressure</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">turnSignal</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">wiperStatus</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>accelerationPedalPosition</dt> + <dd><p>Unsubscribe to accelerationPedalPosition</p></dd> + <dt>airbagStatus</dt> + <dd><p>Unsubscribe to airbagStatus</p></dd> + <dt>beltStatus</dt> + <dd><p>Unsubscribe to beltStatus</p></dd> + <dt>bodyInformation</dt> + <dd><p>Unsubscribe to bodyInformation</p></dd> + <dt>cloudAppVehicleID</dt> + <dd><p>Unsubscribe to cloudAppVehicleID</p></dd> + <dt>clusterModeStatus</dt> + <dd><p>Unsubscribe to clusterModeStatus</p></dd> + <dt>deviceStatus</dt> + <dd><p>Unsubscribe to deviceStatus</p></dd> + <dt>driverBraking</dt> + <dd><p>Unsubscribe to driverBraking</p></dd> + <dt>eCallInfo</dt> + <dd><p>Unsubscribe to eCallInfo</p></dd> + <dt>electronicParkBrakeStatus</dt> + <dd><p>Unsubscribe to electronicParkBrakeStatus</p></dd> + <dt>emergencyEvent</dt> + <dd><p>Unsubscribe to emergencyEvent</p></dd> + <dt>engineOilLife</dt> + <dd><p>Unsubscribe to engineOilLife</p></dd> + <dt>engineTorque</dt> + <dd><p>Unsubscribe to engineTorque</p></dd> + <dt>externalTemperature</dt> + <dd><p>Unsubscribe to externalTemperature</p></dd> + <dt>fuelLevel</dt> + <dd><p>Unsubscribe to fuelLevel</p></dd> + <dt>fuelLevelState</dt> + <dd><p>Unsubscribe to fuelLevelState</p></dd> + <dt>fuelRange</dt> + <dd><p>Unsubscribe to fuelRange</p></dd> + <dt>gps</dt> + <dd><p>Unsubscribe to gps</p></dd> + <dt>headLampStatus</dt> + <dd><p>Unsubscribe to headLampStatus</p></dd> + <dt>instantFuelConsumption</dt> + <dd><p>Unsubscribe to instantFuelConsumption</p></dd> + <dt>myKey</dt> + <dd><p>Unsubscribe to myKey</p></dd> + <dt>odometer</dt> + <dd><p>Unsubscribe to odometer</p></dd> + <dt>prndl</dt> + <dd><p>Unsubscribe to prndl</p></dd> + <dt>rpm</dt> + <dd><p>Unsubscribe to rpm</p></dd> + <dt>speed</dt> + <dd><p>Unsubscribe to speed</p></dd> + <dt>steeringWheelAngle</dt> + <dd><p>Unsubscribe to steeringWheelAngle</p></dd> + <dt>tirePressure</dt> + <dd><p>Unsubscribe to tirePressure</p></dd> + <dt>turnSignal</dt> + <dd><p>Unsubscribe to turnSignal</p></dd> + <dt>wiperStatus</dt> + <dd><p>Unsubscribe to wiperStatus</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLUnsubscribeVehicleData object</p> + </div> + <h3 id="section-gps"> gps </h3> @@ -777,4 +891,23 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>A boolean value. If true, unsubscribes to the Cloud App Vehicle ID</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLUnsubscribeVehicleDataResponse.html b/docs/Classes/SDLUnsubscribeVehicleDataResponse.html index e51ad8714..4b99eaa08 100644 --- a/docs/Classes/SDLUnsubscribeVehicleDataResponse.html +++ b/docs/Classes/SDLUnsubscribeVehicleDataResponse.html @@ -31,6 +31,7 @@ <li><a href="#section-myKey">myKey</a></li> <li><a href="#section-electronicParkBrakeStatus">electronicParkBrakeStatus</a></li> <li><a href="#section-turnSignal">turnSignal</a></li> + <li><a href="#section-cloudAppVehicleID">cloudAppVehicleID</a></li> </ul> <h3>Overview</h3> @@ -624,4 +625,25 @@ + <h3 id="section-cloudAppVehicleID"> + cloudAppVehicleID + </h3> + + <p>The result of requesting to unsubscribe to the cloud app vehicle id</p> + +<p>Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLVehicleDataResult.html">SDLVehicleDataResult</a></span> <span class="o">*</span><span class="n">cloudAppVehicleID</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLVehicleDataResult.html">SDLVehicleDataResult</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + </section> diff --git a/docs/Classes/SDLVersion.html b/docs/Classes/SDLVersion.html new file mode 100644 index 000000000..e1d5f4878 --- /dev/null +++ b/docs/Classes/SDLVersion.html @@ -0,0 +1,309 @@ +<h1>SDLVersion Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section-major">major</a></li> + <li><a href="#section-minor">minor</a></li> + <li><a href="#section-patch">patch</a></li> + <li><a href="#section-stringVersion">stringVersion</a></li> + <li><a href="#section--initWithMajor:minor:patch:">-initWithMajor:minor:patch:</a></li> + <li><a href="#section-+versionWithMajor:minor:patch:">+versionWithMajor:minor:patch:</a></li> + <li><a href="#section--initWithString:">-initWithString:</a></li> + <li><a href="#section-+versionWithString:">+versionWithString:</a></li> + <li><a href="#section--initWithSyncMsgVersion:">-initWithSyncMsgVersion:</a></li> + <li><a href="#section-+versionWithSyncMsgVersion:">+versionWithSyncMsgVersion:</a></li> + <li><a href="#section--compare:">-compare:</a></li> + <li><a href="#section--isLessThanVersion:">-isLessThanVersion:</a></li> + <li><a href="#section--isEqualToVersion:">-isEqualToVersion:</a></li> + <li><a href="#section--isGreaterThanVersion:">-isGreaterThanVersion:</a></li> + <li><a href="#section--isGreaterThanOrEqualToVersion:">-isGreaterThanOrEqualToVersion:</a></li> + <li><a href="#section--isLessThanOrEqualToVersion:">-isLessThanOrEqualToVersion:</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section-major"> + major + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSUInteger</span> <span class="n">major</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">major</span><span class="p">:</span> <span class="kt">UInt</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-minor"> + minor + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSUInteger</span> <span class="n">minor</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">minor</span><span class="p">:</span> <span class="kt">UInt</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-patch"> + patch + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">assign</span><span class="p">)</span> <span class="n">NSUInteger</span> <span class="n">patch</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">patch</span><span class="p">:</span> <span class="kt">UInt</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-stringVersion"> + stringVersion + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">nonatomic</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">readonly</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">stringVersion</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">stringVersion</span><span class="p">:</span> <span class="kt">String</span> <span class="p">{</span> <span class="k">get</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section--initWithMajor:minor:patch:"> + -initWithMajor:minor:patch: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithMajor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">major</span> <span class="nf">minor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">minor</span> <span class="nf">patch</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">patch</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">major</span><span class="p">:</span> <span class="kt">UInt</span><span class="p">,</span> <span class="nv">minor</span><span class="p">:</span> <span class="kt">UInt</span><span class="p">,</span> <span class="nv">patch</span><span class="p">:</span> <span class="kt">UInt</span><span class="p">)</span></code></pre> + + + + + <h3 id="section-+versionWithMajor:minor:patch:"> + +versionWithMajor:minor:patch: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">versionWithMajor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">major</span> <span class="nf">minor</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">minor</span> <span class="nf">patch</span><span class="p">:(</span><span class="n">NSUInteger</span><span class="p">)</span><span class="nv">patch</span><span class="p">;</span></code></pre> + + + + + + <h3 id="section--initWithString:"> + -initWithString: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">versionString</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">?(</span><span class="n">string</span> <span class="nv">versionString</span><span class="p">:</span> <span class="kt">String</span><span class="p">)</span></code></pre> + + + + + <h3 id="section-+versionWithString:"> + +versionWithString: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">nullable</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">versionWithString</span><span class="p">:(</span><span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">versionString</span><span class="p">;</span></code></pre> + + + + + + <h3 id="section--initWithSyncMsgVersion:"> + -initWithSyncMsgVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithSyncMsgVersion</span><span class="p">:(</span><span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">syncMsgVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">syncMsgVersion</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span><span class="p">)</span></code></pre> + + + + + <h3 id="section-+versionWithSyncMsgVersion:"> + +versionWithSyncMsgVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">+</span> <span class="p">(</span><span class="n">instancetype</span><span class="p">)</span><span class="nf">versionWithSyncMsgVersion</span><span class="p">:(</span><span class="n"><a href="../Classes/SDLSyncMsgVersion.html">SDLSyncMsgVersion</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">syncMsgVersion</span><span class="p">;</span></code></pre> + + + + + + <h3 id="section--compare:"> + -compare: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">NSComparisonResult</span><span class="p">)</span><span class="nf">compare</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">compare</span><span class="p">(</span><span class="n">_</span> <span class="nv">otherVersion</span><span class="p">:</span> <span class="kt">SDLVersion</span><span class="p">)</span> <span class="o">-></span> <span class="kt">ComparisonResult</span></code></pre> + + + + + <h3 id="section--isLessThanVersion:"> + -isLessThanVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isLessThanVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isLessThanVersion</span><span class="p">(</span><span class="n">_</span> <span class="nv">otherVersion</span><span class="p">:</span> <span class="kt">SDLVersion</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + + <h3 id="section--isEqualToVersion:"> + -isEqualToVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isEqualToVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isEqual</span><span class="p">(</span><span class="n">to</span> <span class="nv">otherVersion</span><span class="p">:</span> <span class="kt">SDLVersion</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + + <h3 id="section--isGreaterThanVersion:"> + -isGreaterThanVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isGreaterThanVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isGreaterThanVersion</span><span class="p">(</span><span class="n">_</span> <span class="nv">otherVersion</span><span class="p">:</span> <span class="kt">SDLVersion</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + + <h3 id="section--isGreaterThanOrEqualToVersion:"> + -isGreaterThanOrEqualToVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isGreaterThanOrEqualToVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isGreaterThanOrEqual</span><span class="p">(</span><span class="n">to</span> <span class="nv">otherVersion</span><span class="p">:</span> <span class="kt">SDLVersion</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + + <h3 id="section--isLessThanOrEqualToVersion:"> + -isLessThanOrEqualToVersion: + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">BOOL</span><span class="p">)</span><span class="nf">isLessThanOrEqualToVersion</span><span class="p">:(</span><span class="n">SDLVersion</span> <span class="o">*</span><span class="p">)</span><span class="nv">otherVersion</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">isLessThanOrEqual</span><span class="p">(</span><span class="n">to</span> <span class="nv">otherVersion</span><span class="p">:</span> <span class="kt">SDLVersion</span><span class="p">)</span> <span class="o">-></span> <span class="kt">Bool</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLWeatherAlert.html b/docs/Classes/SDLWeatherAlert.html new file mode 100644 index 000000000..e4acee691 --- /dev/null +++ b/docs/Classes/SDLWeatherAlert.html @@ -0,0 +1,183 @@ +<h1>SDLWeatherAlert Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithTitle:summary:expires:regions:severity:timeIssued:">-initWithTitle:summary:expires:regions:severity:timeIssued:</a></li> + <li><a href="#section-title">title</a></li> + <li><a href="#section-summary">summary</a></li> + <li><a href="#section-expires">expires</a></li> + <li><a href="#section-regions">regions</a></li> + <li><a href="#section-severity">severity</a></li> + <li><a href="#section-timeIssued">timeIssued</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithTitle:summary:expires:regions:severity:timeIssued:"> + -initWithTitle:summary:expires:regions:severity:timeIssued: + </h3> + + <p>Convenience init for all parameters</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithTitle</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">title</span> + <span class="nf">summary</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">summary</span> + <span class="nf">expires</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">expires</span> + <span class="nf">regions</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">regions</span> + <span class="nf">severity</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">severity</span> + <span class="nf">timeIssued</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">timeIssued</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">title</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">summary</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">expires</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?,</span> <span class="nv">regions</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?,</span> <span class="nv">severity</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">timeIssued</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>title</dt> + <dd><p>The title of the alert</p></dd> + <dt>summary</dt> + <dd><p>A summary for the alert</p></dd> + <dt>expires</dt> + <dd><p>The date the alert expires</p></dd> + <dt>regions</dt> + <dd><p>Regions affected</p></dd> + <dt>severity</dt> + <dd><p>Severity</p></dd> + <dt>timeIssued</dt> + <dd><p>The date the alert was issued</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLWeatherAlert alert</p> + </div> + + <h3 id="section-title"> + title + </h3> + + <p>The title of the alert.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">title</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">title</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-summary"> + summary + </h3> + + <p>A summary for the alert.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">summary</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">summary</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-expires"> + expires + </h3> + + <p>The date the alert expires.</p> + +<p>SDLDateTime, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">expires</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">expires</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-regions"> + regions + </h3> + + <p>Regions affected.</p> + +<p>Array of Strings, Optional, minsize=<q>1</q> maxsize=<q>99</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSArray</span><span class="o"><</span><span class="n">NSString</span> <span class="o">*></span> <span class="o">*</span><span class="n">regions</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">regions</span><span class="p">:</span> <span class="p">[</span><span class="kt">String</span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-severity"> + severity + </h3> + + <p>Severity of the weather alert.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">severity</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">severity</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-timeIssued"> + timeIssued + </h3> + + <p>The date the alert was issued.</p> + +<p>SDLDateTime, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">timeIssued</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">timeIssued</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLWeatherData.html b/docs/Classes/SDLWeatherData.html new file mode 100644 index 000000000..dc27523d6 --- /dev/null +++ b/docs/Classes/SDLWeatherData.html @@ -0,0 +1,582 @@ +<h1>SDLWeatherData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithCurrentTemperature:temperatureHigh:temperatureLow:apparentTemperature:apparentTemperatureHigh:apparentTemperatureLow:weatherSummary:time:humidity:cloudCover:moonPhase:windBearing:windGust:windSpeed:nearestStormBearing:nearestStormDistance:precipAccumulation:precipIntensity:precipProbability:precipType:visibility:weatherIcon:">-initWithCurrentTemperature:temperatureHigh:temperatureLow:apparentTemperature:apparentTemperatureHigh:apparentTemperatureLow:weatherSummary:time:humidity:cloudCover:moonPhase:windBearing:windGust:windSpeed:nearestStormBearing:nearestStormDistance:precipAccumulation:precipIntensity:precipProbability:precipType:visibility:weatherIcon:</a></li> + <li><a href="#section-currentTemperature">currentTemperature</a></li> + <li><a href="#section-temperatureHigh">temperatureHigh</a></li> + <li><a href="#section-temperatureLow">temperatureLow</a></li> + <li><a href="#section-apparentTemperature">apparentTemperature</a></li> + <li><a href="#section-apparentTemperatureHigh">apparentTemperatureHigh</a></li> + <li><a href="#section-apparentTemperatureLow">apparentTemperatureLow</a></li> + <li><a href="#section-weatherSummary">weatherSummary</a></li> + <li><a href="#section-time">time</a></li> + <li><a href="#section-humidity">humidity</a></li> + <li><a href="#section-cloudCover">cloudCover</a></li> + <li><a href="#section-moonPhase">moonPhase</a></li> + <li><a href="#section-windBearing">windBearing</a></li> + <li><a href="#section-windGust">windGust</a></li> + <li><a href="#section-windSpeed">windSpeed</a></li> + <li><a href="#section-nearestStormBearing">nearestStormBearing</a></li> + <li><a href="#section-nearestStormDistance">nearestStormDistance</a></li> + <li><a href="#section-precipAccumulation">precipAccumulation</a></li> + <li><a href="#section-precipIntensity">precipIntensity</a></li> + <li><a href="#section-precipProbability">precipProbability</a></li> + <li><a href="#section-precipType">precipType</a></li> + <li><a href="#section-visibility">visibility</a></li> + <li><a href="#section-weatherIcon">weatherIcon</a></li> +</ul> + +<h3>Overview</h3> + +<p>Undocumented</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithCurrentTemperature:temperatureHigh:temperatureLow:apparentTemperature:apparentTemperatureHigh:apparentTemperatureLow:weatherSummary:time:humidity:cloudCover:moonPhase:windBearing:windGust:windSpeed:nearestStormBearing:nearestStormDistance:precipAccumulation:precipIntensity:precipProbability:precipType:visibility:weatherIcon:"> + -initWithCurrentTemperature:temperatureHigh:temperatureLow:apparentTemperature:apparentTemperatureHigh:apparentTemperatureLow:weatherSummary:time:humidity:cloudCover:moonPhase:windBearing:windGust:windSpeed:nearestStormBearing:nearestStormDistance:precipAccumulation:precipIntensity:precipProbability:precipType:visibility:weatherIcon: + </h3> + + <p>Convenience init for all parameters</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithCurrentTemperature</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">currentTemperature</span> + <span class="nf">temperatureHigh</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">temperatureHigh</span> + <span class="nf">temperatureLow</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">temperatureLow</span> + <span class="nf">apparentTemperature</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">apparentTemperature</span> + <span class="nf">apparentTemperatureHigh</span><span class="p">:</span> + <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">apparentTemperatureHigh</span> + <span class="nf">apparentTemperatureLow</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">apparentTemperatureLow</span> + <span class="nf">weatherSummary</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherSummary</span> + <span class="nf">time</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">time</span> + <span class="nf">humidity</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">humidity</span> + <span class="nf">cloudCover</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">cloudCover</span> + <span class="nf">moonPhase</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">moonPhase</span> + <span class="nf">windBearing</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">windBearing</span> + <span class="nf">windGust</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">windGust</span> + <span class="nf">windSpeed</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">windSpeed</span> + <span class="nf">nearestStormBearing</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">nearestStormBearing</span> + <span class="nf">nearestStormDistance</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">nearestStormDistance</span> + <span class="nf">precipAccumulation</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">precipAccumulation</span> + <span class="nf">precipIntensity</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">precipIntensity</span> + <span class="nf">precipProbability</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">precipProbability</span> + <span class="nf">precipType</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSString</span> <span class="o">*</span><span class="p">)</span><span class="nv">precipType</span> + <span class="nf">visibility</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="p">)</span><span class="nv">visibility</span> + <span class="nf">weatherIcon</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">weatherIcon</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">currentTemperature</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?,</span> <span class="nv">temperatureHigh</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?,</span> <span class="nv">temperatureLow</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?,</span> <span class="nv">apparentTemperature</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?,</span> <span class="nv">apparentTemperatureHigh</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?,</span> <span class="nv">apparentTemperatureLow</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?,</span> <span class="nv">weatherSummary</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">time</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?,</span> <span class="nv">humidity</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">cloudCover</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">moonPhase</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">windBearing</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?,</span> <span class="nv">windGust</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">windSpeed</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">nearestStormBearing</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?,</span> <span class="nv">nearestStormDistance</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?,</span> <span class="nv">precipAccumulation</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">precipIntensity</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">precipProbability</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">precipType</span><span class="p">:</span> <span class="kt">String</span><span class="p">?,</span> <span class="nv">visibility</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?,</span> <span class="nv">weatherIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>currentTemperature</dt> + <dd><p>The current temperature</p></dd> + <dt>temperatureHigh</dt> + <dd><p>The predicted high temperature for the day</p></dd> + <dt>temperatureLow</dt> + <dd><p>The predicted low temperature for the day</p></dd> + <dt>apparentTemperature</dt> + <dd><p>The apparent temperature</p></dd> + <dt>apparentTemperatureHigh</dt> + <dd><p>The predicted high apparent temperature for the day</p></dd> + <dt>apparentTemperatureLow</dt> + <dd><p>The predicted low apparent temperature for the day</p></dd> + <dt>weatherSummary</dt> + <dd><p>A summary of the weather</p></dd> + <dt>time</dt> + <dd><p>The time this data refers to</p></dd> + <dt>humidity</dt> + <dd><p>From 0 to 1, percentage humidity</p></dd> + <dt>cloudCover</dt> + <dd><p>From 0 to 1, percentage cloud cover</p></dd> + <dt>moonPhase</dt> + <dd><p>From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon</p></dd> + <dt>windBearing</dt> + <dd><p>In degrees, true north at 0 degrees</p></dd> + <dt>windGust</dt> + <dd><p>In km/hr</p></dd> + <dt>windSpeed</dt> + <dd><p>In km/hr</p></dd> + <dt>nearestStormBearing</dt> + <dd><p>In degrees, true north at 0 degrees</p></dd> + <dt>nearestStormDistance</dt> + <dd><p>In km</p></dd> + <dt>precipAccumulation</dt> + <dd><p>In cm</p></dd> + <dt>precipIntensity</dt> + <dd><p>In cm of water per hour</p></dd> + <dt>precipProbability</dt> + <dd><p>From 0 to 1, percentage chance</p></dd> + <dt>precipType</dt> + <dd><p>A description of the precipitation type (e.g. <q>rain</q>, <q>snow</q>, <q>sleet</q>, <q>hail</q>)</p></dd> + <dt>visibility</dt> + <dd><p>In km</p></dd> + <dt>weatherIcon</dt> + <dd><p>The weather icon image</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLWeatherData object</p> + </div> + + <h3 id="section-currentTemperature"> + currentTemperature + </h3> + + <p>The current temperature.</p> + +<p>SDLTemperature, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">currentTemperature</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">currentTemperature</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-temperatureHigh"> + temperatureHigh + </h3> + + <p>The predicted high temperature for the day.</p> + +<p>SDLTemperature, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">temperatureHigh</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">temperatureHigh</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-temperatureLow"> + temperatureLow + </h3> + + <p>The predicted low temperature for the day.</p> + +<p>SDLTemperature, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">temperatureLow</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">temperatureLow</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-apparentTemperature"> + apparentTemperature + </h3> + + <p>The apparent temperature.</p> + +<p>SDLTemperature, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">apparentTemperature</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">apparentTemperature</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-apparentTemperatureHigh"> + apparentTemperatureHigh + </h3> + + <p>The predicted high apparent temperature for the day.</p> + +<p>SDLTemperature, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">apparentTemperatureHigh</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">apparentTemperatureHigh</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-apparentTemperatureLow"> + apparentTemperatureLow + </h3> + + <p>The predicted low apparent temperature for the day.</p> + +<p>SDLTemperature, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span> <span class="o">*</span><span class="n">apparentTemperatureLow</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">apparentTemperatureLow</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLTemperature.html">SDLTemperature</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-weatherSummary"> + weatherSummary + </h3> + + <p>A summary of the weather.</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">weatherSummary</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">weatherSummary</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-time"> + time + </h3> + + <p>The time this data refers to.</p> + +<p>SDLDateTime, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span> <span class="o">*</span><span class="n">time</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">time</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLDateTime.html">SDLDateTime</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-humidity"> + humidity + </h3> + + <p>From 0 to 1, percentage humidity.</p> + +<p>Float, Optional, minvalue=<q>0</q> maxvalue=<q>1</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">humidity</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">humidity</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-cloudCover"> + cloudCover + </h3> + + <p>From 0 to 1, percentage cloud cover.</p> + +<p>Float, Optional, minvalue=<q>0</q> maxvalue=<q>1</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">cloudCover</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">cloudCover</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-moonPhase"> + moonPhase + </h3> + + <p>From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon</p> + +<p>Float, Optional, minvalue=<q>0</q> maxvalue=<q>1</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">moonPhase</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">moonPhase</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-windBearing"> + windBearing + </h3> + + <p>In degrees, true north at 0 degrees.</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">windBearing</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">windBearing</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-windGust"> + windGust + </h3> + + <p>In km/hr</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">windGust</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">windGust</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-windSpeed"> + windSpeed + </h3> + + <p>In km/hr</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">windSpeed</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">windSpeed</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-nearestStormBearing"> + nearestStormBearing + </h3> + + <p>In degrees, true north at 0 degrees.</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">nearestStormBearing</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">nearestStormBearing</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-nearestStormDistance"> + nearestStormDistance + </h3> + + <p>In km</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">nearestStormDistance</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">nearestStormDistance</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-precipAccumulation"> + precipAccumulation + </h3> + + <p>In cm</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">precipAccumulation</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">precipAccumulation</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-precipIntensity"> + precipIntensity + </h3> + + <p>In cm of water per hour.</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">precipIntensity</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">precipIntensity</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-precipProbability"> + precipProbability + </h3> + + <p>From 0 to 1, percentage chance.</p> + +<p>Float, Optional, minvalue=<q>0</q> maxvalue=<q>1</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">precipProbability</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">precipProbability</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-precipType"> + precipType + </h3> + + <p>A description of the precipitation type (e.g. <q>rain</q>, <q>snow</q>, <q>sleet</q>, <q>hail</q>)</p> + +<p>String, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n">NSString</span> <span class="o">*</span><span class="n">precipType</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">precipType</span><span class="p">:</span> <span class="kt">String</span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-visibility"> + visibility + </h3> + + <p>In km</p> + +<p>Float, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="o">></span> <span class="o">*</span><span class="n">visibility</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">visibility</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLFloat">SDLFloat</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-weatherIcon"> + weatherIcon + </h3> + + <p>The weather icon image.</p> + +<p>SDLImage, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLImage.html">SDLImage</a></span> <span class="o">*</span><span class="n">weatherIcon</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">weatherIcon</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImage.html">SDLImage</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLWeatherServiceData.html b/docs/Classes/SDLWeatherServiceData.html new file mode 100644 index 000000000..2fe3e0ba5 --- /dev/null +++ b/docs/Classes/SDLWeatherServiceData.html @@ -0,0 +1,217 @@ +<h1>SDLWeatherServiceData Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithLocation:">-initWithLocation:</a></li> + <li><a href="#section--initWithLocation:currentForecast:minuteForecast:hourlyForecast:multidayForecast:alerts:">-initWithLocation:currentForecast:minuteForecast:hourlyForecast:multidayForecast:alerts:</a></li> + <li><a href="#section-location">location</a></li> + <li><a href="#section-currentForecast">currentForecast</a></li> + <li><a href="#section-minuteForecast">minuteForecast</a></li> + <li><a href="#section-hourlyForecast">hourlyForecast</a></li> + <li><a href="#section-multidayForecast">multidayForecast</a></li> + <li><a href="#section-alerts">alerts</a></li> +</ul> + +<h3>Overview</h3> + +<p>This data is related to what a weather service would provide.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithLocation:"> + -initWithLocation: + </h3> + + <p>Convenience init for required parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithLocation</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">location</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">location</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>location</dt> + <dd><p>The location</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLWeatherServiceData object</p> + </div> + + <h3 id="section--initWithLocation:currentForecast:minuteForecast:hourlyForecast:multidayForecast:alerts:"> + -initWithLocation:currentForecast:minuteForecast:hourlyForecast:multidayForecast:alerts: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithLocation</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">location</span> + <span class="nf">currentForecast</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">currentForecast</span> + <span class="nf">minuteForecast</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">minuteForecast</span> + <span class="nf">hourlyForecast</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">hourlyForecast</span> + <span class="nf">multidayForecast</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">multidayForecast</span> + <span class="nf">alerts</span><span class="p">:(</span><span class="n">nullable</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherAlert.html">SDLWeatherAlert</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">alerts</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="n">convenience</span> <span class="nf">init</span><span class="p">(</span><span class="nv">location</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span><span class="p">,</span> <span class="nv">currentForecast</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">?,</span> <span class="nv">minuteForecast</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">]?,</span> <span class="nv">hourlyForecast</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">]?,</span> <span class="nv">multidayForecast</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">]?,</span> <span class="nv">alerts</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherAlert.html">SDLWeatherAlert</a></span><span class="p">]?)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>location</dt> + <dd><p>The location</p></dd> + <dt>currentForecast</dt> + <dd><p>The current forecast</p></dd> + <dt>minuteForecast</dt> + <dd><p>A minute-by-minute array of forecasts</p></dd> + <dt>hourlyForecast</dt> + <dd><p>An hour-by-hour array of forecasts</p></dd> + <dt>multidayForecast</dt> + <dd><p>A day-by-day array of forecasts</p></dd> + <dt>alerts</dt> + <dd><p>An array of weather alerts</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLWeatherServiceData object</p> + </div> + + <h3 id="section-location"> + location + </h3> + + <p>The location.</p> + +<p>SDLLocationDetails, Required</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="o">*</span><span class="n">_Nonnull</span> <span class="n">location</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">location</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLLocationDetails.html">SDLLocationDetails</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-currentForecast"> + currentForecast + </h3> + + <p>The current forecast.</p> + +<p>SDLWeatherData, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*</span><span class="n">currentForecast</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">currentForecast</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-minuteForecast"> + minuteForecast + </h3> + + <p>A minute-by-minute array of forecasts.</p> + +<p>Array of SDLWeatherData, Optional, minsize=<q>15</q> maxsize=<q>60</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">minuteForecast</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">minuteForecast</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-hourlyForecast"> + hourlyForecast + </h3> + + <p>An hour-by-hour array of forecasts.</p> + +<p>Array of SDLWeatherData, Optional, minsize=<q>1</q> maxsize=<q>96</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">hourlyForecast</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">hourlyForecast</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-multidayForecast"> + multidayForecast + </h3> + + <p>A day-by-day array of forecasts.</p> + +<p>Array of SDLWeatherData, Optional, minsize=<q>1</q> maxsize=<q>30</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">multidayForecast</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">multidayForecast</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherData.html">SDLWeatherData</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-alerts"> + alerts + </h3> + + <p>An array of weather alerts. This array should be ordered with the first object being the current day.</p> + +<p>Array of SDLWeatherData, Optional, minsize=<q>1</q> maxsize=<q>10</q></p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLWeatherAlert.html">SDLWeatherAlert</a></span> <span class="o">*></span> <span class="o">*</span><span class="n">alerts</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">alerts</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLWeatherAlert.html">SDLWeatherAlert</a></span><span class="p">]?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Classes/SDLWeatherServiceManifest.html b/docs/Classes/SDLWeatherServiceManifest.html new file mode 100644 index 000000000..93c8c83e7 --- /dev/null +++ b/docs/Classes/SDLWeatherServiceManifest.html @@ -0,0 +1,165 @@ +<h1>SDLWeatherServiceManifest Class Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section--initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported:">-initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported:</a></li> + <li><a href="#section-currentForecastSupported">currentForecastSupported</a></li> + <li><a href="#section-maxMultidayForecastAmount">maxMultidayForecastAmount</a></li> + <li><a href="#section-maxHourlyForecastAmount">maxHourlyForecastAmount</a></li> + <li><a href="#section-maxMinutelyForecastAmount">maxMinutelyForecastAmount</a></li> + <li><a href="#section-weatherForLocationSupported">weatherForLocationSupported</a></li> +</ul> + +<h3>Overview</h3> + +<p>A weather service manifest.</p> + + +<section class="section task-group-section"> + <h3 id="section--initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported:"> + -initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported: + </h3> + + <p>Convenience init for all parameters.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span> + <span class="nf">initWithCurrentForecastSupported</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">currentForecastSupported</span> + <span class="nf">maxMultidayForecastAmount</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">maxMultidayForecastAmount</span> + <span class="nf">maxHourlyForecastAmount</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">maxHourlyForecastAmount</span> + <span class="nf">maxMinutelyForecastAmount</span><span class="p">:(</span><span class="n">UInt32</span><span class="p">)</span><span class="nv">maxMinutelyForecastAmount</span> + <span class="nf">weatherForLocationSupported</span><span class="p">:(</span><span class="n">BOOL</span><span class="p">)</span><span class="nv">weatherForLocationSupported</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">currentForecastSupported</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">,</span> <span class="nv">maxMultidayForecastAmount</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">maxHourlyForecastAmount</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">maxMinutelyForecastAmount</span><span class="p">:</span> <span class="kt">UInt32</span><span class="p">,</span> <span class="nv">weatherForLocationSupported</span><span class="p">:</span> <span class="kt">Bool</span><span class="p">)</span></code></pre> + + + + <h4>Parameters</h4> + <dl> + <dt>currentForecastSupported</dt> + <dd><p>Whether or not the current forcast is supported.</p></dd> + <dt>maxMultidayForecastAmount</dt> + <dd><p>The maximum number of day-by-day forecasts.</p></dd> + <dt>maxHourlyForecastAmount</dt> + <dd><p>The maximum number of hour-by-hour forecasts.</p></dd> + <dt>maxMinutelyForecastAmount</dt> + <dd><p>The maximum number of minute-by-minute forecasts.</p></dd> + <dt>weatherForLocationSupported</dt> + <dd><p>Whether or not the weather for location is supported.</p></dd> + </dl> + <div> + <h4>Return Value</h4> + <p>A SDLWeatherServiceManifest object</p> + </div> + + <h3 id="section-currentForecastSupported"> + currentForecastSupported + </h3> + + <p>Whether or not the current forcast is supported.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">currentForecastSupported</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">currentForecastSupported</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-maxMultidayForecastAmount"> + maxMultidayForecastAmount + </h3> + + <p>The maximum number of day-by-day forecasts.</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">maxMultidayForecastAmount</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">maxMultidayForecastAmount</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-maxHourlyForecastAmount"> + maxHourlyForecastAmount + </h3> + + <p>The maximum number of hour-by-hour forecasts.</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">maxHourlyForecastAmount</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">maxHourlyForecastAmount</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-maxMinutelyForecastAmount"> + maxMinutelyForecastAmount + </h3> + + <p>The maximum number of minute-by-minute forecasts.</p> + +<p>Integer, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="o">></span> <span class="o">*</span><span class="n">maxMinutelyForecastAmount</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">maxMinutelyForecastAmount</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLInt">SDLInt</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + + <h3 id="section-weatherForLocationSupported"> + weatherForLocationSupported + </h3> + + <p>Whether or not the weather for location is supported.</p> + +<p>Boolean, Optional</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">,</span> <span class="n">nullable</span><span class="p">)</span> + <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*</span><span class="n">weatherForLocationSupported</span><span class="p">;</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">weatherForLocationSupported</span><span class="p">:</span> <span class="p">(</span><span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="../Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">)?</span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre> + + + + +</section> diff --git a/docs/Constants.html b/docs/Constants.html index a5dfc6b5d..582f0cc5a 100644 --- a/docs/Constants.html +++ b/docs/Constants.html @@ -33,6 +33,11 @@ <li><a href="#section-SDLAppInterfaceUnregisteredReasonMasterReset">SDLAppInterfaceUnregisteredReasonMasterReset</a></li> <li><a href="#section-SDLAppInterfaceUnregisteredReasonFactoryDefaults">SDLAppInterfaceUnregisteredReasonFactoryDefaults</a></li> <li><a href="#section-SDLAppInterfaceUnregisteredReasonAppUnauthorized">SDLAppInterfaceUnregisteredReasonAppUnauthorized</a></li> + <li><a href="#section-SDLAppInterfaceUnregisteredReasonProtocolViolation">SDLAppInterfaceUnregisteredReasonProtocolViolation</a></li> + <li><a href="#section-SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource">SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource</a></li> + <li><a href="#section-SDLAppServiceTypeMedia">SDLAppServiceTypeMedia</a></li> + <li><a href="#section-SDLAppServiceTypeWeather">SDLAppServiceTypeWeather</a></li> + <li><a href="#section-SDLAppServiceTypeNavigation">SDLAppServiceTypeNavigation</a></li> <li><a href="#section-SDLErrorDomainAudioStreamManager">SDLErrorDomainAudioStreamManager</a></li> <li><a href="#section-SDLAudioStreamingIndicatorPlayPause">SDLAudioStreamingIndicatorPlayPause</a></li> <li><a href="#section-SDLAudioStreamingIndicatorPlay">SDLAudioStreamingIndicatorPlay</a></li> @@ -122,6 +127,8 @@ <li><a href="#section-SDLDimensionNoFix">SDLDimensionNoFix</a></li> <li><a href="#section-SDLDimension2D">SDLDimension2D</a></li> <li><a href="#section-SDLDimension3D">SDLDimension3D</a></li> + <li><a href="#section-SDLDirectionLeft">SDLDirectionLeft</a></li> + <li><a href="#section-SDLDirectionRight">SDLDirectionRight</a></li> <li><a href="#section-SDLDisplayModeDay">SDLDisplayModeDay</a></li> <li><a href="#section-SDLDisplayModeNight">SDLDisplayModeNight</a></li> <li><a href="#section-SDLDisplayModeAuto">SDLDisplayModeAuto</a></li> @@ -189,6 +196,9 @@ <li><a href="#section-SDLHMILevelNone">SDLHMILevelNone</a></li> <li><a href="#section-SDLHMIZoneCapabilitiesFront">SDLHMIZoneCapabilitiesFront</a></li> <li><a href="#section-SDLHMIZoneCapabilitiesBack">SDLHMIZoneCapabilitiesBack</a></li> + <li><a href="#section-SDLHybridAppPreferenceMobile">SDLHybridAppPreferenceMobile</a></li> + <li><a href="#section-SDLHybridAppPreferenceCloud">SDLHybridAppPreferenceCloud</a></li> + <li><a href="#section-SDLHybridAppPreferenceBoth">SDLHybridAppPreferenceBoth</a></li> <li><a href="#section-SDLIgnitionStableStatusNotStable">SDLIgnitionStableStatusNotStable</a></li> <li><a href="#section-SDLIgnitionStableStatusStable">SDLIgnitionStableStatusStable</a></li> <li><a href="#section-SDLIgnitionStableStatusMissingFromTransmitter">SDLIgnitionStableStatusMissingFromTransmitter</a></li> @@ -349,6 +359,10 @@ <li><a href="#section-SDLMediaClockFormatClockText2">SDLMediaClockFormatClockText2</a></li> <li><a href="#section-SDLMediaClockFormatClockText3">SDLMediaClockFormatClockText3</a></li> <li><a href="#section-SDLMediaClockFormatClockText4">SDLMediaClockFormatClockText4</a></li> + <li><a href="#section-SDLMediaTypeMusic">SDLMediaTypeMusic</a></li> + <li><a href="#section-SDLMediaTypePodcast">SDLMediaTypePodcast</a></li> + <li><a href="#section-SDLMediaTypeAudiobook">SDLMediaTypeAudiobook</a></li> + <li><a href="#section-SDLMediaTypeOther">SDLMediaTypeOther</a></li> <li><a href="#section-SDLMetadataTypeMediaTitle">SDLMetadataTypeMediaTitle</a></li> <li><a href="#section-SDLMetadataTypeMediaArtist">SDLMetadataTypeMediaArtist</a></li> <li><a href="#section-SDLMetadataTypeMediaAlbum">SDLMetadataTypeMediaAlbum</a></li> @@ -367,6 +381,21 @@ <li><a href="#section-SDLModuleTypeAudio">SDLModuleTypeAudio</a></li> <li><a href="#section-SDLModuleTypeLight">SDLModuleTypeLight</a></li> <li><a href="#section-SDLModuleTypeHMISettings">SDLModuleTypeHMISettings</a></li> + <li><a href="#section-SDLNavigationActionTurn">SDLNavigationActionTurn</a></li> + <li><a href="#section-SDLNavigationActionExit">SDLNavigationActionExit</a></li> + <li><a href="#section-SDLNavigationActionStay">SDLNavigationActionStay</a></li> + <li><a href="#section-SDLNavigationActionMerge">SDLNavigationActionMerge</a></li> + <li><a href="#section-SDLNavigationActionFerry">SDLNavigationActionFerry</a></li> + <li><a href="#section-SDLNavigationActionCarShuttleTrain">SDLNavigationActionCarShuttleTrain</a></li> + <li><a href="#section-SDLNavigationActionWaypoint">SDLNavigationActionWaypoint</a></li> + <li><a href="#section-SDLNavigationJunctionRegular">SDLNavigationJunctionRegular</a></li> + <li><a href="#section-SDLNavigationJunctionBifurcation">SDLNavigationJunctionBifurcation</a></li> + <li><a href="#section-SDLNavigationJunctionMultiCarriageway">SDLNavigationJunctionMultiCarriageway</a></li> + <li><a href="#section-SDLNavigationJunctionRoundabout">SDLNavigationJunctionRoundabout</a></li> + <li><a href="#section-SDLNavigationJunctionTraversableRoundabout">SDLNavigationJunctionTraversableRoundabout</a></li> + <li><a href="#section-SDLNavigationJunctionJughandle">SDLNavigationJunctionJughandle</a></li> + <li><a href="#section-SDLNavigationJunctionAllWayYield">SDLNavigationJunctionAllWayYield</a></li> + <li><a href="#section-SDLNavigationJunctionTurnAround">SDLNavigationJunctionTurnAround</a></li> <li><a href="#section-SDLNotificationUserInfoObject">SDLNotificationUserInfoObject</a></li> <li><a href="#section-SDLTransportDidDisconnect">SDLTransportDidDisconnect</a></li> <li><a href="#section-SDLTransportDidConnect">SDLTransportDidConnect</a></li> @@ -391,14 +420,19 @@ <li><a href="#section-SDLDidReceiveEncodedSyncPDataResponse">SDLDidReceiveEncodedSyncPDataResponse</a></li> <li><a href="#section-SDLDidReceiveEndAudioPassThruResponse">SDLDidReceiveEndAudioPassThruResponse</a></li> <li><a href="#section-SDLDidReceiveGenericResponse">SDLDidReceiveGenericResponse</a></li> + <li><a href="#section-SDLDidReceiveGetCloudAppPropertiesResponse">SDLDidReceiveGetCloudAppPropertiesResponse</a></li> + <li><a href="#section-SDLDidReceiveGetAppServiceDataResponse">SDLDidReceiveGetAppServiceDataResponse</a></li> <li><a href="#section-SDLDidReceiveGetDTCsResponse">SDLDidReceiveGetDTCsResponse</a></li> + <li><a href="#section-SDLDidReceiveGetFileResponse">SDLDidReceiveGetFileResponse</a></li> <li><a href="#section-SDLDidReceiveGetInteriorVehicleDataResponse">SDLDidReceiveGetInteriorVehicleDataResponse</a></li> <li><a href="#section-SDLDidReceiveGetSystemCapabilitiesResponse">SDLDidReceiveGetSystemCapabilitiesResponse</a></li> <li><a href="#section-SDLDidReceiveGetVehicleDataResponse">SDLDidReceiveGetVehicleDataResponse</a></li> <li><a href="#section-SDLDidReceiveGetWaypointsResponse">SDLDidReceiveGetWaypointsResponse</a></li> <li><a href="#section-SDLDidReceiveListFilesResponse">SDLDidReceiveListFilesResponse</a></li> + <li><a href="#section-SDLDidReceivePerformAppServiceInteractionResponse">SDLDidReceivePerformAppServiceInteractionResponse</a></li> <li><a href="#section-SDLDidReceivePerformAudioPassThruResponse">SDLDidReceivePerformAudioPassThruResponse</a></li> <li><a href="#section-SDLDidReceivePerformInteractionResponse">SDLDidReceivePerformInteractionResponse</a></li> + <li><a href="#section-SDLDidReceivePublishAppServiceResponse">SDLDidReceivePublishAppServiceResponse</a></li> <li><a href="#section-SDLDidReceivePutFileResponse">SDLDidReceivePutFileResponse</a></li> <li><a href="#section-SDLDidReceiveReadDIDResponse">SDLDidReceiveReadDIDResponse</a></li> <li><a href="#section-SDLDidReceiveRegisterAppInterfaceResponse">SDLDidReceiveRegisterAppInterfaceResponse</a></li> @@ -407,6 +441,7 @@ <li><a href="#section-SDLDidReceiveSendHapticDataResponse">SDLDidReceiveSendHapticDataResponse</a></li> <li><a href="#section-SDLDidReceiveSendLocationResponse">SDLDidReceiveSendLocationResponse</a></li> <li><a href="#section-SDLDidReceiveSetAppIconResponse">SDLDidReceiveSetAppIconResponse</a></li> + <li><a href="#section-SDLDidReceiveSetCloudAppPropertiesResponse">SDLDidReceiveSetCloudAppPropertiesResponse</a></li> <li><a href="#section-SDLDidReceiveSetDisplayLayoutResponse">SDLDidReceiveSetDisplayLayoutResponse</a></li> <li><a href="#section-SDLDidReceiveSetGlobalPropertiesResponse">SDLDidReceiveSetGlobalPropertiesResponse</a></li> <li><a href="#section-SDLDidReceiveSetInteriorVehicleDataResponse">SDLDidReceiveSetInteriorVehicleDataResponse</a></li> @@ -424,10 +459,66 @@ <li><a href="#section-SDLDidReceiveUnsubscribeButtonResponse">SDLDidReceiveUnsubscribeButtonResponse</a></li> <li><a href="#section-SDLDidReceiveUnsubscribeVehicleDataResponse">SDLDidReceiveUnsubscribeVehicleDataResponse</a></li> <li><a href="#section-SDLDidReceiveUnsubscribeWaypointsResponse">SDLDidReceiveUnsubscribeWaypointsResponse</a></li> + <li><a href="#section-SDLDidReceiveAddCommandRequest">SDLDidReceiveAddCommandRequest</a></li> + <li><a href="#section-SDLDidReceiveAddSubMenuRequest">SDLDidReceiveAddSubMenuRequest</a></li> + <li><a href="#section-SDLDidReceiveAlertRequest">SDLDidReceiveAlertRequest</a></li> + <li><a href="#section-SDLDidReceiveAlertManeuverRequest">SDLDidReceiveAlertManeuverRequest</a></li> + <li><a href="#section-SDLDidReceiveButtonPressRequest">SDLDidReceiveButtonPressRequest</a></li> + <li><a href="#section-SDLDidReceiveChangeRegistrationRequest">SDLDidReceiveChangeRegistrationRequest</a></li> + <li><a href="#section-SDLDidReceiveCreateInteractionChoiceSetRequest">SDLDidReceiveCreateInteractionChoiceSetRequest</a></li> + <li><a href="#section-SDLDidReceiveDeleteCommandRequest">SDLDidReceiveDeleteCommandRequest</a></li> + <li><a href="#section-SDLDidReceiveDeleteFileRequest">SDLDidReceiveDeleteFileRequest</a></li> + <li><a href="#section-SDLDidReceiveDeleteInteractionChoiceSetRequest">SDLDidReceiveDeleteInteractionChoiceSetRequest</a></li> + <li><a href="#section-SDLDidReceiveDeleteSubMenuRequest">SDLDidReceiveDeleteSubMenuRequest</a></li> + <li><a href="#section-SDLDidReceiveDiagnosticMessageRequest">SDLDidReceiveDiagnosticMessageRequest</a></li> + <li><a href="#section-SDLDidReceiveDialNumberRequest">SDLDidReceiveDialNumberRequest</a></li> + <li><a href="#section-SDLDidReceiveEncodedSyncPDataRequest">SDLDidReceiveEncodedSyncPDataRequest</a></li> + <li><a href="#section-SDLDidReceiveEndAudioPassThruRequest">SDLDidReceiveEndAudioPassThruRequest</a></li> + <li><a href="#section-SDLDidReceiveGetAppServiceDataRequest">SDLDidReceiveGetAppServiceDataRequest</a></li> + <li><a href="#section-SDLDidReceiveGetCloudAppPropertiesRequest">SDLDidReceiveGetCloudAppPropertiesRequest</a></li> + <li><a href="#section-SDLDidReceiveGetDTCsRequest">SDLDidReceiveGetDTCsRequest</a></li> + <li><a href="#section-SDLDidReceiveGetFileRequest">SDLDidReceiveGetFileRequest</a></li> + <li><a href="#section-SDLDidReceiveGetInteriorVehicleDataRequest">SDLDidReceiveGetInteriorVehicleDataRequest</a></li> + <li><a href="#section-SDLDidReceiveGetSystemCapabilityRequest">SDLDidReceiveGetSystemCapabilityRequest</a></li> + <li><a href="#section-SDLDidReceiveGetVehicleDataRequest">SDLDidReceiveGetVehicleDataRequest</a></li> + <li><a href="#section-SDLDidReceiveGetWayPointsRequest">SDLDidReceiveGetWayPointsRequest</a></li> + <li><a href="#section-SDLDidReceiveListFilesRequest">SDLDidReceiveListFilesRequest</a></li> + <li><a href="#section-SDLDidReceivePerformAppServiceInteractionRequest">SDLDidReceivePerformAppServiceInteractionRequest</a></li> + <li><a href="#section-SDLDidReceivePerformAudioPassThruRequest">SDLDidReceivePerformAudioPassThruRequest</a></li> + <li><a href="#section-SDLDidReceivePerformInteractionRequest">SDLDidReceivePerformInteractionRequest</a></li> + <li><a href="#section-SDLDidReceivePublishAppServiceRequest">SDLDidReceivePublishAppServiceRequest</a></li> + <li><a href="#section-SDLDidReceivePutFileRequest">SDLDidReceivePutFileRequest</a></li> + <li><a href="#section-SDLDidReceiveReadDIDRequest">SDLDidReceiveReadDIDRequest</a></li> + <li><a href="#section-SDLDidReceiveRegisterAppInterfaceRequest">SDLDidReceiveRegisterAppInterfaceRequest</a></li> + <li><a href="#section-SDLDidReceiveResetGlobalPropertiesRequest">SDLDidReceiveResetGlobalPropertiesRequest</a></li> + <li><a href="#section-SDLDidReceiveScrollableMessageRequest">SDLDidReceiveScrollableMessageRequest</a></li> + <li><a href="#section-SDLDidReceiveSendHapticDataRequest">SDLDidReceiveSendHapticDataRequest</a></li> + <li><a href="#section-SDLDidReceiveSendLocationRequest">SDLDidReceiveSendLocationRequest</a></li> + <li><a href="#section-SDLDidReceiveSetAppIconRequest">SDLDidReceiveSetAppIconRequest</a></li> + <li><a href="#section-SDLDidReceiveSetCloudAppPropertiesRequest">SDLDidReceiveSetCloudAppPropertiesRequest</a></li> + <li><a href="#section-SDLDidReceiveSetDisplayLayoutRequest">SDLDidReceiveSetDisplayLayoutRequest</a></li> + <li><a href="#section-SDLDidReceiveSetGlobalPropertiesRequest">SDLDidReceiveSetGlobalPropertiesRequest</a></li> + <li><a href="#section-SDLDidReceiveSetInteriorVehicleDataRequest">SDLDidReceiveSetInteriorVehicleDataRequest</a></li> + <li><a href="#section-SDLDidReceiveSetMediaClockTimerRequest">SDLDidReceiveSetMediaClockTimerRequest</a></li> + <li><a href="#section-SDLDidReceiveShowRequest">SDLDidReceiveShowRequest</a></li> + <li><a href="#section-SDLDidReceiveShowConstantTBTRequest">SDLDidReceiveShowConstantTBTRequest</a></li> + <li><a href="#section-SDLDidReceiveSliderRequest">SDLDidReceiveSliderRequest</a></li> + <li><a href="#section-SDLDidReceiveSpeakRequest">SDLDidReceiveSpeakRequest</a></li> + <li><a href="#section-SDLDidReceiveSubscribeButtonRequest">SDLDidReceiveSubscribeButtonRequest</a></li> + <li><a href="#section-SDLDidReceiveSubscribeVehicleDataRequest">SDLDidReceiveSubscribeVehicleDataRequest</a></li> + <li><a href="#section-SDLDidReceiveSubscribeWayPointsRequest">SDLDidReceiveSubscribeWayPointsRequest</a></li> + <li><a href="#section-SDLDidReceiveSyncPDataRequest">SDLDidReceiveSyncPDataRequest</a></li> + <li><a href="#section-SDLDidReceiveSystemRequestRequest">SDLDidReceiveSystemRequestRequest</a></li> + <li><a href="#section-SDLDidReceiveUnregisterAppInterfaceRequest">SDLDidReceiveUnregisterAppInterfaceRequest</a></li> + <li><a href="#section-SDLDidReceiveUnsubscribeButtonRequest">SDLDidReceiveUnsubscribeButtonRequest</a></li> + <li><a href="#section-SDLDidReceiveUnsubscribeVehicleDataRequest">SDLDidReceiveUnsubscribeVehicleDataRequest</a></li> + <li><a href="#section-SDLDidReceiveUnsubscribeWayPointsRequest">SDLDidReceiveUnsubscribeWayPointsRequest</a></li> + <li><a href="#section-SDLDidReceiveUpdateTurnListRequest">SDLDidReceiveUpdateTurnListRequest</a></li> <li><a href="#section-SDLDidChangeDriverDistractionStateNotification">SDLDidChangeDriverDistractionStateNotification</a></li> <li><a href="#section-SDLDidChangeHMIStatusNotification">SDLDidChangeHMIStatusNotification</a></li> - <li><a href="#section-SDLDidReceiveAudioPassThruNotification">SDLDidReceiveAudioPassThruNotification</a></li> + <li><a href="#section-SDLDidReceiveAppServiceDataNotification">SDLDidReceiveAppServiceDataNotification</a></li> <li><a href="#section-SDLDidReceiveAppUnregisteredNotification">SDLDidReceiveAppUnregisteredNotification</a></li> + <li><a href="#section-SDLDidReceiveAudioPassThruNotification">SDLDidReceiveAudioPassThruNotification</a></li> <li><a href="#section-SDLDidReceiveButtonEventNotification">SDLDidReceiveButtonEventNotification</a></li> <li><a href="#section-SDLDidReceiveButtonPressNotification">SDLDidReceiveButtonPressNotification</a></li> <li><a href="#section-SDLDidReceiveCommandNotification">SDLDidReceiveCommandNotification</a></li> @@ -440,6 +531,7 @@ <li><a href="#section-SDLDidReceiveVehicleIconNotification">SDLDidReceiveVehicleIconNotification</a></li> <li><a href="#section-SDLDidChangePermissionsNotification">SDLDidChangePermissionsNotification</a></li> <li><a href="#section-SDLDidReceiveRemoteControlStatusNotification">SDLDidReceiveRemoteControlStatusNotification</a></li> + <li><a href="#section-SDLDidReceiveSystemCapabilityUpdatedNotification">SDLDidReceiveSystemCapabilityUpdatedNotification</a></li> <li><a href="#section-SDLDidReceiveSystemRequestNotification">SDLDidReceiveSystemRequestNotification</a></li> <li><a href="#section-SDLDidChangeTurnByTurnStateNotification">SDLDidChangeTurnByTurnStateNotification</a></li> <li><a href="#section-SDLDidReceiveTouchEventNotification">SDLDidReceiveTouchEventNotification</a></li> @@ -515,6 +607,86 @@ <li><a href="#section-SDLPrimaryAudioSourceFM">SDLPrimaryAudioSourceFM</a></li> <li><a href="#section-SDLPrimaryAudioSourceXM">SDLPrimaryAudioSourceXM</a></li> <li><a href="#section-SDLPrimaryAudioSourceDAB">SDLPrimaryAudioSourceDAB</a></li> + <li><a href="#section-SDLRPCFunctionNameAddCommand">SDLRPCFunctionNameAddCommand</a></li> + <li><a href="#section-SDLRPCFunctionNameAddSubMenu">SDLRPCFunctionNameAddSubMenu</a></li> + <li><a href="#section-SDLRPCFunctionNameAlert">SDLRPCFunctionNameAlert</a></li> + <li><a href="#section-SDLRPCFunctionNameAlertManeuver">SDLRPCFunctionNameAlertManeuver</a></li> + <li><a href="#section-SDLRPCFunctionNameButtonPress">SDLRPCFunctionNameButtonPress</a></li> + <li><a href="#section-SDLRPCFunctionNameChangeRegistration">SDLRPCFunctionNameChangeRegistration</a></li> + <li><a href="#section-SDLRPCFunctionNameCreateInteractionChoiceSet">SDLRPCFunctionNameCreateInteractionChoiceSet</a></li> + <li><a href="#section-SDLRPCFunctionNameDeleteCommand">SDLRPCFunctionNameDeleteCommand</a></li> + <li><a href="#section-SDLRPCFunctionNameDeleteFile">SDLRPCFunctionNameDeleteFile</a></li> + <li><a href="#section-SDLRPCFunctionNameDeleteInteractionChoiceSet">SDLRPCFunctionNameDeleteInteractionChoiceSet</a></li> + <li><a href="#section-SDLRPCFunctionNameDeleteSubMenu">SDLRPCFunctionNameDeleteSubMenu</a></li> + <li><a href="#section-SDLRPCFunctionNameDiagnosticMessage">SDLRPCFunctionNameDiagnosticMessage</a></li> + <li><a href="#section-SDLRPCFunctionNameDialNumber">SDLRPCFunctionNameDialNumber</a></li> + <li><a href="#section-SDLRPCFunctionNameEncodedSyncPData">SDLRPCFunctionNameEncodedSyncPData</a></li> + <li><a href="#section-SDLRPCFunctionNameEndAudioPassThru">SDLRPCFunctionNameEndAudioPassThru</a></li> + <li><a href="#section-SDLRPCFunctionNameGenericResponse">SDLRPCFunctionNameGenericResponse</a></li> + <li><a href="#section-SDLRPCFunctionNameGetAppServiceData">SDLRPCFunctionNameGetAppServiceData</a></li> + <li><a href="#section-SDLRPCFunctionNameGetDTCs">SDLRPCFunctionNameGetDTCs</a></li> + <li><a href="#section-SDLRPCFunctionNameGetFile">SDLRPCFunctionNameGetFile</a></li> + <li><a href="#section-SDLRPCFunctionNameGetCloudAppProperties">SDLRPCFunctionNameGetCloudAppProperties</a></li> + <li><a href="#section-SDLRPCFunctionNameGetInteriorVehicleData">SDLRPCFunctionNameGetInteriorVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameGetSystemCapability">SDLRPCFunctionNameGetSystemCapability</a></li> + <li><a href="#section-SDLRPCFunctionNameGetVehicleData">SDLRPCFunctionNameGetVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameGetWayPoints">SDLRPCFunctionNameGetWayPoints</a></li> + <li><a href="#section-SDLRPCFunctionNameListFiles">SDLRPCFunctionNameListFiles</a></li> + <li><a href="#section-SDLRPCFunctionNameOnAppInterfaceUnregistered">SDLRPCFunctionNameOnAppInterfaceUnregistered</a></li> + <li><a href="#section-SDLRPCFunctionNameOnAppServiceData">SDLRPCFunctionNameOnAppServiceData</a></li> + <li><a href="#section-SDLRPCFunctionNameOnAudioPassThru">SDLRPCFunctionNameOnAudioPassThru</a></li> + <li><a href="#section-SDLRPCFunctionNameOnButtonEvent">SDLRPCFunctionNameOnButtonEvent</a></li> + <li><a href="#section-SDLRPCFunctionNameOnButtonPress">SDLRPCFunctionNameOnButtonPress</a></li> + <li><a href="#section-SDLRPCFunctionNameOnCommand">SDLRPCFunctionNameOnCommand</a></li> + <li><a href="#section-SDLRPCFunctionNameOnDriverDistraction">SDLRPCFunctionNameOnDriverDistraction</a></li> + <li><a href="#section-SDLRPCFunctionNameOnEncodedSyncPData">SDLRPCFunctionNameOnEncodedSyncPData</a></li> + <li><a href="#section-SDLRPCFunctionNameOnHashChange">SDLRPCFunctionNameOnHashChange</a></li> + <li><a href="#section-SDLRPCFunctionNameOnHMIStatus">SDLRPCFunctionNameOnHMIStatus</a></li> + <li><a href="#section-SDLRPCFunctionNameOnInteriorVehicleData">SDLRPCFunctionNameOnInteriorVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameOnKeyboardInput">SDLRPCFunctionNameOnKeyboardInput</a></li> + <li><a href="#section-SDLRPCFunctionNameOnLanguageChange">SDLRPCFunctionNameOnLanguageChange</a></li> + <li><a href="#section-SDLRPCFunctionNameOnLockScreenStatus">SDLRPCFunctionNameOnLockScreenStatus</a></li> + <li><a href="#section-SDLRPCFunctionNameOnPermissionsChange">SDLRPCFunctionNameOnPermissionsChange</a></li> + <li><a href="#section-SDLRPCFunctionNameOnRCStatus">SDLRPCFunctionNameOnRCStatus</a></li> + <li><a href="#section-SDLRPCFunctionNameOnSyncPData">SDLRPCFunctionNameOnSyncPData</a></li> + <li><a href="#section-SDLRPCFunctionNameOnSystemCapabilityUpdated">SDLRPCFunctionNameOnSystemCapabilityUpdated</a></li> + <li><a href="#section-SDLRPCFunctionNameOnSystemRequest">SDLRPCFunctionNameOnSystemRequest</a></li> + <li><a href="#section-SDLRPCFunctionNameOnTBTClientState">SDLRPCFunctionNameOnTBTClientState</a></li> + <li><a href="#section-SDLRPCFunctionNameOnTouchEvent">SDLRPCFunctionNameOnTouchEvent</a></li> + <li><a href="#section-SDLRPCFunctionNameOnVehicleData">SDLRPCFunctionNameOnVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameOnWayPointChange">SDLRPCFunctionNameOnWayPointChange</a></li> + <li><a href="#section-SDLRPCFunctionNamePerformAppServiceInteraction">SDLRPCFunctionNamePerformAppServiceInteraction</a></li> + <li><a href="#section-SDLRPCFunctionNamePerformAudioPassThru">SDLRPCFunctionNamePerformAudioPassThru</a></li> + <li><a href="#section-SDLRPCFunctionNamePerformInteraction">SDLRPCFunctionNamePerformInteraction</a></li> + <li><a href="#section-SDLRPCFunctionNamePublishAppService">SDLRPCFunctionNamePublishAppService</a></li> + <li><a href="#section-SDLRPCFunctionNamePutFile">SDLRPCFunctionNamePutFile</a></li> + <li><a href="#section-SDLRPCFunctionNameReadDID">SDLRPCFunctionNameReadDID</a></li> + <li><a href="#section-SDLRPCFunctionNameRegisterAppInterface">SDLRPCFunctionNameRegisterAppInterface</a></li> + <li><a href="#section-SDLRPCFunctionNameReserved">SDLRPCFunctionNameReserved</a></li> + <li><a href="#section-SDLRPCFunctionNameResetGlobalProperties">SDLRPCFunctionNameResetGlobalProperties</a></li> + <li><a href="#section-SDLRPCFunctionNameScrollableMessage">SDLRPCFunctionNameScrollableMessage</a></li> + <li><a href="#section-SDLRPCFunctionNameSendHapticData">SDLRPCFunctionNameSendHapticData</a></li> + <li><a href="#section-SDLRPCFunctionNameSendLocation">SDLRPCFunctionNameSendLocation</a></li> + <li><a href="#section-SDLRPCFunctionNameSetAppIcon">SDLRPCFunctionNameSetAppIcon</a></li> + <li><a href="#section-SDLRPCFunctionNameSetCloudAppProperties">SDLRPCFunctionNameSetCloudAppProperties</a></li> + <li><a href="#section-SDLRPCFunctionNameSetDisplayLayout">SDLRPCFunctionNameSetDisplayLayout</a></li> + <li><a href="#section-SDLRPCFunctionNameSetGlobalProperties">SDLRPCFunctionNameSetGlobalProperties</a></li> + <li><a href="#section-SDLRPCFunctionNameSetInteriorVehicleData">SDLRPCFunctionNameSetInteriorVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameSetMediaClockTimer">SDLRPCFunctionNameSetMediaClockTimer</a></li> + <li><a href="#section-SDLRPCFunctionNameShow">SDLRPCFunctionNameShow</a></li> + <li><a href="#section-SDLRPCFunctionNameShowConstantTBT">SDLRPCFunctionNameShowConstantTBT</a></li> + <li><a href="#section-SDLRPCFunctionNameSlider">SDLRPCFunctionNameSlider</a></li> + <li><a href="#section-SDLRPCFunctionNameSpeak">SDLRPCFunctionNameSpeak</a></li> + <li><a href="#section-SDLRPCFunctionNameSubscribeButton">SDLRPCFunctionNameSubscribeButton</a></li> + <li><a href="#section-SDLRPCFunctionNameSubscribeVehicleData">SDLRPCFunctionNameSubscribeVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameSubscribeWayPoints">SDLRPCFunctionNameSubscribeWayPoints</a></li> + <li><a href="#section-SDLRPCFunctionNameSyncPData">SDLRPCFunctionNameSyncPData</a></li> + <li><a href="#section-SDLRPCFunctionNameSystemRequest">SDLRPCFunctionNameSystemRequest</a></li> + <li><a href="#section-SDLRPCFunctionNameUnregisterAppInterface">SDLRPCFunctionNameUnregisterAppInterface</a></li> + <li><a href="#section-SDLRPCFunctionNameUnsubscribeButton">SDLRPCFunctionNameUnsubscribeButton</a></li> + <li><a href="#section-SDLRPCFunctionNameUnsubscribeVehicleData">SDLRPCFunctionNameUnsubscribeVehicleData</a></li> + <li><a href="#section-SDLRPCFunctionNameUnsubscribeWayPoints">SDLRPCFunctionNameUnsubscribeWayPoints</a></li> + <li><a href="#section-SDLRPCFunctionNameUpdateTurnList">SDLRPCFunctionNameUpdateTurnList</a></li> <li><a href="#section-SDLRadioBandAM">SDLRadioBandAM</a></li> <li><a href="#section-SDLRadioBandFM">SDLRadioBandFM</a></li> <li><a href="#section-SDLRadioBandXM">SDLRadioBandXM</a></li> @@ -543,6 +715,7 @@ <li><a href="#section-SDLRequestTypeMedia">SDLRequestTypeMedia</a></li> <li><a href="#section-SDLRequestTypeFOTA">SDLRequestTypeFOTA</a></li> <li><a href="#section-SDLRequestTypeOEMSpecific">SDLRequestTypeOEMSpecific</a></li> + <li><a href="#section-SDLRequestTypeIconURL">SDLRequestTypeIconURL</a></li> <li><a href="#section-SDLResultSuccess">SDLResultSuccess</a></li> <li><a href="#section-SDLResultInvalidData">SDLResultInvalidData</a></li> <li><a href="#section-SDLResultCharacterLimitExceeded">SDLResultCharacterLimitExceeded</a></li> @@ -586,6 +759,11 @@ <li><a href="#section-SDLSeatMemoryActionTypeSave">SDLSeatMemoryActionTypeSave</a></li> <li><a href="#section-SDLSeatMemoryActionTypeRestore">SDLSeatMemoryActionTypeRestore</a></li> <li><a href="#section-SDLSeatMemoryActionTypeNone">SDLSeatMemoryActionTypeNone</a></li> + <li><a href="#section-SDLServiceUpdatePublished">SDLServiceUpdatePublished</a></li> + <li><a href="#section-SDLServiceUpdateRemoved">SDLServiceUpdateRemoved</a></li> + <li><a href="#section-SDLServiceUpdateActivated">SDLServiceUpdateActivated</a></li> + <li><a href="#section-SDLServiceUpdateDeactivated">SDLServiceUpdateDeactivated</a></li> + <li><a href="#section-SDLServiceUpdateManifestUpdate">SDLServiceUpdateManifestUpdate</a></li> <li><a href="#section-SDLSoftButtonTypeText">SDLSoftButtonTypeText</a></li> <li><a href="#section-SDLSoftButtonTypeImage">SDLSoftButtonTypeImage</a></li> <li><a href="#section-SDLSoftButtonTypeBoth">SDLSoftButtonTypeBoth</a></li> @@ -798,6 +976,7 @@ <li><a href="#section-SDLSystemActionDefaultAction">SDLSystemActionDefaultAction</a></li> <li><a href="#section-SDLSystemActionStealFocus">SDLSystemActionStealFocus</a></li> <li><a href="#section-SDLSystemActionKeepContext">SDLSystemActionKeepContext</a></li> + <li><a href="#section-SDLSystemCapabilityTypeAppServices">SDLSystemCapabilityTypeAppServices</a></li> <li><a href="#section-SDLSystemCapabilityTypeNavigation">SDLSystemCapabilityTypeNavigation</a></li> <li><a href="#section-SDLSystemCapabilityTypePhoneCall">SDLSystemCapabilityTypePhoneCall</a></li> <li><a href="#section-SDLSystemCapabilityTypeVideoStreaming">SDLSystemCapabilityTypeVideoStreaming</a></li> @@ -933,6 +1112,7 @@ <li><a href="#section-SDLVehicleDataTypeSteeringWheel">SDLVehicleDataTypeSteeringWheel</a></li> <li><a href="#section-SDLVehicleDataTypeElectronicParkBrakeStatus">SDLVehicleDataTypeElectronicParkBrakeStatus</a></li> <li><a href="#section-SDLVehicleDataTypeTurnSignal">SDLVehicleDataTypeTurnSignal</a></li> + <li><a href="#section-SDLVehicleDataTypeCloudAppVehicleID">SDLVehicleDataTypeCloudAppVehicleID</a></li> <li><a href="#section-SDLVentilationModeUpper">SDLVentilationModeUpper</a></li> <li><a href="#section-SDLVentilationModeLower">SDLVentilationModeLower</a></li> <li><a href="#section-SDLVentilationModeBoth">SDLVentilationModeBoth</a></li> @@ -1533,6 +1713,96 @@ + <h3 id="section-SDLAppInterfaceUnregisteredReasonProtocolViolation"> + SDLAppInterfaceUnregisteredReasonProtocolViolation + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason">SDLAppInterfaceUnregisteredReason</a></span> <span class="k">const</span> <span class="n">SDLAppInterfaceUnregisteredReasonProtocolViolation</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">protocolViolation</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason">SDLAppInterfaceUnregisteredReason</a></span></code></pre> + + + + + <h3 id="section-SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource"> + SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason">SDLAppInterfaceUnregisteredReason</a></span> <span class="k">const</span> <span class="n">SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">unsupportedHMIResource</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason">SDLAppInterfaceUnregisteredReason</a></span></code></pre> + + + + + <h3 id="section-SDLAppServiceTypeMedia"> + SDLAppServiceTypeMedia + </h3> + + <p>The app will have a service type of media.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span> <span class="n">SDLAppServiceTypeMedia</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">media</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span></code></pre> + + + + + <h3 id="section-SDLAppServiceTypeWeather"> + SDLAppServiceTypeWeather + </h3> + + <p>The app will have a service type of weather.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span> <span class="n">SDLAppServiceTypeWeather</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">weather</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span></code></pre> + + + + + <h3 id="section-SDLAppServiceTypeNavigation"> + SDLAppServiceTypeNavigation + </h3> + + <p>The app will have a service type of navigation.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span> <span class="n">SDLAppServiceTypeNavigation</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">navigation</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType">SDLAppServiceType</a></span></code></pre> + + + + <h3 id="section-SDLErrorDomainAudioStreamManager"> SDLErrorDomainAudioStreamManager </h3> @@ -3146,6 +3416,42 @@ By default the playback indicator should be PLAY_PAUSE when:</p> + <h3 id="section-SDLDirectionLeft"> + SDLDirectionLeft + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span> <span class="k">const</span> <span class="n">SDLDirectionLeft</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">left</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span></code></pre> + + + + + <h3 id="section-SDLDirectionRight"> + SDLDirectionRight + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span> <span class="k">const</span> <span class="n">SDLDirectionRight</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">right</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLDirection.h@T@SDLDirection">SDLDirection</a></span></code></pre> + + + + <h3 id="section-SDLDisplayModeDay"> SDLDisplayModeDay </h3> @@ -4366,6 +4672,60 @@ By default the playback indicator should be PLAY_PAUSE when:</p> + <h3 id="section-SDLHybridAppPreferenceMobile"> + SDLHybridAppPreferenceMobile + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span> <span class="k">const</span> <span class="n">SDLHybridAppPreferenceMobile</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">mobile</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span></code></pre> + + + + + <h3 id="section-SDLHybridAppPreferenceCloud"> + SDLHybridAppPreferenceCloud + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span> <span class="k">const</span> <span class="n">SDLHybridAppPreferenceCloud</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">cloud</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span></code></pre> + + + + + <h3 id="section-SDLHybridAppPreferenceBoth"> + SDLHybridAppPreferenceBoth + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span> <span class="k">const</span> <span class="n">SDLHybridAppPreferenceBoth</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">both</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference">SDLHybridAppPreference</a></span></code></pre> + + + + <h3 id="section-SDLIgnitionStableStatusNotStable"> SDLIgnitionStableStatusNotStable </h3> @@ -7334,6 +7694,78 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLMediaTypeMusic"> + SDLMediaTypeMusic + </h3> + + <p>The app will have a media type of music.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span> <span class="n">SDLMediaTypeMusic</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">music</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span></code></pre> + + + + + <h3 id="section-SDLMediaTypePodcast"> + SDLMediaTypePodcast + </h3> + + <p>The app will have a media type of podcast.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span> <span class="n">SDLMediaTypePodcast</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">podcast</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span></code></pre> + + + + + <h3 id="section-SDLMediaTypeAudiobook"> + SDLMediaTypeAudiobook + </h3> + + <p>The app will have a media type of audiobook.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span> <span class="n">SDLMediaTypeAudiobook</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">audiobook</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span></code></pre> + + + + + <h3 id="section-SDLMediaTypeOther"> + SDLMediaTypeOther + </h3> + + <p>The app will have a media type of other.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span> <span class="n">SDLMediaTypeOther</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">other</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType">SDLMediaType</a></span></code></pre> + + + + <h3 id="section-SDLMetadataTypeMediaTitle"> SDLMetadataTypeMediaTitle </h3> @@ -7658,6 +8090,276 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLNavigationActionTurn"> + SDLNavigationActionTurn + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionTurn</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">turn</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationActionExit"> + SDLNavigationActionExit + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionExit</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">exit</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationActionStay"> + SDLNavigationActionStay + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionStay</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">stay</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationActionMerge"> + SDLNavigationActionMerge + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionMerge</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">merge</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationActionFerry"> + SDLNavigationActionFerry + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionFerry</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">ferry</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationActionCarShuttleTrain"> + SDLNavigationActionCarShuttleTrain + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionCarShuttleTrain</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">carShuttleTrain</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationActionWaypoint"> + SDLNavigationActionWaypoint + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span> <span class="k">const</span> <span class="n">SDLNavigationActionWaypoint</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">waypoint</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction">SDLNavigationAction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionRegular"> + SDLNavigationJunctionRegular + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionRegular</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">regular</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionBifurcation"> + SDLNavigationJunctionBifurcation + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionBifurcation</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">bifurcation</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionMultiCarriageway"> + SDLNavigationJunctionMultiCarriageway + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionMultiCarriageway</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">multiCarriageway</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionRoundabout"> + SDLNavigationJunctionRoundabout + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionRoundabout</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">roundabout</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionTraversableRoundabout"> + SDLNavigationJunctionTraversableRoundabout + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionTraversableRoundabout</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">traversableRoundabout</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionJughandle"> + SDLNavigationJunctionJughandle + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionJughandle</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">jughandle</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionAllWayYield"> + SDLNavigationJunctionAllWayYield + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionAllWayYield</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">allWayYield</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + + <h3 id="section-SDLNavigationJunctionTurnAround"> + SDLNavigationJunctionTurnAround + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span> <span class="k">const</span> <span class="n">SDLNavigationJunctionTurnAround</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">turnAround</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction">SDLNavigationJunction</a></span></code></pre> + + + + <h3 id="section-SDLNotificationUserInfoObject"> SDLNotificationUserInfoObject </h3> @@ -8090,6 +8792,42 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceiveGetCloudAppPropertiesResponse"> + SDLDidReceiveGetCloudAppPropertiesResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetCloudAppPropertiesResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetCloudAppPropertiesResponse</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetAppServiceDataResponse"> + SDLDidReceiveGetAppServiceDataResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetAppServiceDataResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetAppServiceDataResponse</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceiveGetDTCsResponse"> SDLDidReceiveGetDTCsResponse </h3> @@ -8108,6 +8846,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceiveGetFileResponse"> + SDLDidReceiveGetFileResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetFileResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetFileResponse</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceiveGetInteriorVehicleDataResponse"> SDLDidReceiveGetInteriorVehicleDataResponse </h3> @@ -8198,6 +8954,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceivePerformAppServiceInteractionResponse"> + SDLDidReceivePerformAppServiceInteractionResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePerformAppServiceInteractionResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePerformAppServiceInteractionResponse</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceivePerformAudioPassThruResponse"> SDLDidReceivePerformAudioPassThruResponse </h3> @@ -8234,6 +9008,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceivePublishAppServiceResponse"> + SDLDidReceivePublishAppServiceResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePublishAppServiceResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePublishAppServiceResponse</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceivePutFileResponse"> SDLDidReceivePutFileResponse </h3> @@ -8378,6 +9170,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceiveSetCloudAppPropertiesResponse"> + SDLDidReceiveSetCloudAppPropertiesResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetCloudAppPropertiesResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetCloudAppPropertiesResponse</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceiveSetDisplayLayoutResponse"> SDLDidReceiveSetDisplayLayoutResponse </h3> @@ -8684,6 +9494,996 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceiveAddCommandRequest"> + SDLDidReceiveAddCommandRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAddCommandRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveAddCommandRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveAddSubMenuRequest"> + SDLDidReceiveAddSubMenuRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAddSubMenuRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveAddSubMenuRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveAlertRequest"> + SDLDidReceiveAlertRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAlertRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveAlertRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveAlertManeuverRequest"> + SDLDidReceiveAlertManeuverRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAlertManeuverRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveAlertManeuverRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveButtonPressRequest"> + SDLDidReceiveButtonPressRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveButtonPressRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveButtonPressRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveChangeRegistrationRequest"> + SDLDidReceiveChangeRegistrationRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveChangeRegistrationRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveChangeRegistrationRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveCreateInteractionChoiceSetRequest"> + SDLDidReceiveCreateInteractionChoiceSetRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveCreateInteractionChoiceSetRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveCreateInteractionChoiceSetRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveDeleteCommandRequest"> + SDLDidReceiveDeleteCommandRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveDeleteCommandRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveDeleteCommandRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveDeleteFileRequest"> + SDLDidReceiveDeleteFileRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveDeleteFileRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveDeleteFileRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveDeleteInteractionChoiceSetRequest"> + SDLDidReceiveDeleteInteractionChoiceSetRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveDeleteInteractionChoiceSetRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveDeleteInteractionChoiceSetRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveDeleteSubMenuRequest"> + SDLDidReceiveDeleteSubMenuRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveDeleteSubMenuRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveDeleteSubMenuRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveDiagnosticMessageRequest"> + SDLDidReceiveDiagnosticMessageRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveDiagnosticMessageRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveDiagnosticMessageRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveDialNumberRequest"> + SDLDidReceiveDialNumberRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveDialNumberRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveDialNumberRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveEncodedSyncPDataRequest"> + SDLDidReceiveEncodedSyncPDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveEncodedSyncPDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveEncodedSyncPDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveEndAudioPassThruRequest"> + SDLDidReceiveEndAudioPassThruRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveEndAudioPassThruRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveEndAudioPassThruRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetAppServiceDataRequest"> + SDLDidReceiveGetAppServiceDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetAppServiceDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetAppServiceDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetCloudAppPropertiesRequest"> + SDLDidReceiveGetCloudAppPropertiesRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetCloudAppPropertiesRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetCloudAppPropertiesRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetDTCsRequest"> + SDLDidReceiveGetDTCsRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetDTCsRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetDTCsRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetFileRequest"> + SDLDidReceiveGetFileRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetFileRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetFileRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetInteriorVehicleDataRequest"> + SDLDidReceiveGetInteriorVehicleDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetInteriorVehicleDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetInteriorVehicleDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetSystemCapabilityRequest"> + SDLDidReceiveGetSystemCapabilityRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetSystemCapabilityRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetSystemCapabilityRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetVehicleDataRequest"> + SDLDidReceiveGetVehicleDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetVehicleDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetVehicleDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveGetWayPointsRequest"> + SDLDidReceiveGetWayPointsRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveGetWayPointsRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveGetWayPointsRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveListFilesRequest"> + SDLDidReceiveListFilesRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveListFilesRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveListFilesRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceivePerformAppServiceInteractionRequest"> + SDLDidReceivePerformAppServiceInteractionRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePerformAppServiceInteractionRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePerformAppServiceInteractionRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceivePerformAudioPassThruRequest"> + SDLDidReceivePerformAudioPassThruRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePerformAudioPassThruRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePerformAudioPassThruRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceivePerformInteractionRequest"> + SDLDidReceivePerformInteractionRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePerformInteractionRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePerformInteractionRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceivePublishAppServiceRequest"> + SDLDidReceivePublishAppServiceRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePublishAppServiceRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePublishAppServiceRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceivePutFileRequest"> + SDLDidReceivePutFileRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceivePutFileRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceivePutFileRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveReadDIDRequest"> + SDLDidReceiveReadDIDRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveReadDIDRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveReadDIDRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveRegisterAppInterfaceRequest"> + SDLDidReceiveRegisterAppInterfaceRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveRegisterAppInterfaceRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveRegisterAppInterfaceRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveResetGlobalPropertiesRequest"> + SDLDidReceiveResetGlobalPropertiesRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveResetGlobalPropertiesRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveResetGlobalPropertiesRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveScrollableMessageRequest"> + SDLDidReceiveScrollableMessageRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveScrollableMessageRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveScrollableMessageRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSendHapticDataRequest"> + SDLDidReceiveSendHapticDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSendHapticDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSendHapticDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSendLocationRequest"> + SDLDidReceiveSendLocationRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSendLocationRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSendLocationRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSetAppIconRequest"> + SDLDidReceiveSetAppIconRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetAppIconRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetAppIconRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSetCloudAppPropertiesRequest"> + SDLDidReceiveSetCloudAppPropertiesRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetCloudAppPropertiesRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetCloudAppPropertiesRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSetDisplayLayoutRequest"> + SDLDidReceiveSetDisplayLayoutRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetDisplayLayoutRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetDisplayLayoutRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSetGlobalPropertiesRequest"> + SDLDidReceiveSetGlobalPropertiesRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetGlobalPropertiesRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetGlobalPropertiesRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSetInteriorVehicleDataRequest"> + SDLDidReceiveSetInteriorVehicleDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetInteriorVehicleDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetInteriorVehicleDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSetMediaClockTimerRequest"> + SDLDidReceiveSetMediaClockTimerRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSetMediaClockTimerRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSetMediaClockTimerRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveShowRequest"> + SDLDidReceiveShowRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveShowRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveShowRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveShowConstantTBTRequest"> + SDLDidReceiveShowConstantTBTRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveShowConstantTBTRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveShowConstantTBTRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSliderRequest"> + SDLDidReceiveSliderRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSliderRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSliderRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSpeakRequest"> + SDLDidReceiveSpeakRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSpeakRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSpeakRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSubscribeButtonRequest"> + SDLDidReceiveSubscribeButtonRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSubscribeButtonRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSubscribeButtonRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSubscribeVehicleDataRequest"> + SDLDidReceiveSubscribeVehicleDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSubscribeVehicleDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSubscribeVehicleDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSubscribeWayPointsRequest"> + SDLDidReceiveSubscribeWayPointsRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSubscribeWayPointsRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSubscribeWayPointsRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSyncPDataRequest"> + SDLDidReceiveSyncPDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSyncPDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSyncPDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveSystemRequestRequest"> + SDLDidReceiveSystemRequestRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSystemRequestRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveSystemRequestRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveUnregisterAppInterfaceRequest"> + SDLDidReceiveUnregisterAppInterfaceRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveUnregisterAppInterfaceRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveUnregisterAppInterfaceRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveUnsubscribeButtonRequest"> + SDLDidReceiveUnsubscribeButtonRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveUnsubscribeButtonRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveUnsubscribeButtonRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveUnsubscribeVehicleDataRequest"> + SDLDidReceiveUnsubscribeVehicleDataRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveUnsubscribeVehicleDataRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveUnsubscribeVehicleDataRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveUnsubscribeWayPointsRequest"> + SDLDidReceiveUnsubscribeWayPointsRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveUnsubscribeWayPointsRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveUnsubscribeWayPointsRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + + <h3 id="section-SDLDidReceiveUpdateTurnListRequest"> + SDLDidReceiveUpdateTurnListRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveUpdateTurnListRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">SDLDidReceiveUpdateTurnListRequest</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidChangeDriverDistractionStateNotification"> SDLDidChangeDriverDistractionStateNotification </h3> @@ -8720,8 +10520,8 @@ For example, right puddle lights and spot lights.</p> - <h3 id="section-SDLDidReceiveAudioPassThruNotification"> - SDLDidReceiveAudioPassThruNotification + <h3 id="section-SDLDidReceiveAppServiceDataNotification"> + SDLDidReceiveAppServiceDataNotification </h3> <p>Undocumented</p> @@ -8729,11 +10529,11 @@ For example, right puddle lights and spot lights.</p> <h4>Objective-C</h4> - <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAudioPassThruNotification</span></code></pre> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAppServiceDataNotification</span></code></pre> <h4>Swift</h4> - <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">SDLDidReceiveAudioPassThru</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">SDLDidReceiveAppServiceData</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> @@ -8756,6 +10556,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceiveAudioPassThruNotification"> + SDLDidReceiveAudioPassThruNotification + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveAudioPassThruNotification</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">SDLDidReceiveAudioPassThru</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceiveButtonEventNotification"> SDLDidReceiveButtonEventNotification </h3> @@ -8972,6 +10790,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLDidReceiveSystemCapabilityUpdatedNotification"> + SDLDidReceiveSystemCapabilityUpdatedNotification + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName">SDLNotificationName</a></span> <span class="k">const</span> <span class="n">SDLDidReceiveSystemCapabilityUpdatedNotification</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">SDLDidReceiveSystemCapabilityUpdated</span><span class="p">:</span> <span class="kt">NSNotification</span><span class="o">.</span><span class="kt">Name</span></code></pre> + + + + <h3 id="section-SDLDidReceiveSystemRequestNotification"> SDLDidReceiveSystemRequestNotification </h3> @@ -10327,6 +12163,1446 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLRPCFunctionNameAddCommand"> + SDLRPCFunctionNameAddCommand + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameAddCommand</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">addCommand</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameAddSubMenu"> + SDLRPCFunctionNameAddSubMenu + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameAddSubMenu</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">addSubMenu</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameAlert"> + SDLRPCFunctionNameAlert + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameAlert</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">alert</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameAlertManeuver"> + SDLRPCFunctionNameAlertManeuver + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameAlertManeuver</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">alertManeuver</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameButtonPress"> + SDLRPCFunctionNameButtonPress + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameButtonPress</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">buttonPress</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameChangeRegistration"> + SDLRPCFunctionNameChangeRegistration + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameChangeRegistration</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">changeRegistration</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameCreateInteractionChoiceSet"> + SDLRPCFunctionNameCreateInteractionChoiceSet + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameCreateInteractionChoiceSet</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">createInteractionChoiceSet</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameDeleteCommand"> + SDLRPCFunctionNameDeleteCommand + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameDeleteCommand</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">deleteCommand</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameDeleteFile"> + SDLRPCFunctionNameDeleteFile + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameDeleteFile</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">deleteFile</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameDeleteInteractionChoiceSet"> + SDLRPCFunctionNameDeleteInteractionChoiceSet + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameDeleteInteractionChoiceSet</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">deleteInteractionChoiceSet</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameDeleteSubMenu"> + SDLRPCFunctionNameDeleteSubMenu + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameDeleteSubMenu</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">deleteSubMenu</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameDiagnosticMessage"> + SDLRPCFunctionNameDiagnosticMessage + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameDiagnosticMessage</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">diagnosticMessage</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameDialNumber"> + SDLRPCFunctionNameDialNumber + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameDialNumber</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">dialNumber</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameEncodedSyncPData"> + SDLRPCFunctionNameEncodedSyncPData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameEncodedSyncPData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">encodedSyncPData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameEndAudioPassThru"> + SDLRPCFunctionNameEndAudioPassThru + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameEndAudioPassThru</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">endAudioPassThru</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGenericResponse"> + SDLRPCFunctionNameGenericResponse + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGenericResponse</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">genericResponse</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetAppServiceData"> + SDLRPCFunctionNameGetAppServiceData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetAppServiceData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getAppServiceData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetDTCs"> + SDLRPCFunctionNameGetDTCs + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetDTCs</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getDTCs</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetFile"> + SDLRPCFunctionNameGetFile + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetFile</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getFile</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetCloudAppProperties"> + SDLRPCFunctionNameGetCloudAppProperties + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetCloudAppProperties</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getCloudAppProperties</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetInteriorVehicleData"> + SDLRPCFunctionNameGetInteriorVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetInteriorVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getInteriorVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetSystemCapability"> + SDLRPCFunctionNameGetSystemCapability + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetSystemCapability</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getSystemCapability</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetVehicleData"> + SDLRPCFunctionNameGetVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameGetWayPoints"> + SDLRPCFunctionNameGetWayPoints + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameGetWayPoints</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">getWayPoints</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameListFiles"> + SDLRPCFunctionNameListFiles + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameListFiles</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">listFiles</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnAppInterfaceUnregistered"> + SDLRPCFunctionNameOnAppInterfaceUnregistered + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnAppInterfaceUnregistered</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onAppInterfaceUnregistered</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnAppServiceData"> + SDLRPCFunctionNameOnAppServiceData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnAppServiceData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onAppServiceData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnAudioPassThru"> + SDLRPCFunctionNameOnAudioPassThru + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnAudioPassThru</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onAudioPassThru</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnButtonEvent"> + SDLRPCFunctionNameOnButtonEvent + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnButtonEvent</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onButtonEvent</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnButtonPress"> + SDLRPCFunctionNameOnButtonPress + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnButtonPress</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onButtonPress</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnCommand"> + SDLRPCFunctionNameOnCommand + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnCommand</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onCommand</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnDriverDistraction"> + SDLRPCFunctionNameOnDriverDistraction + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnDriverDistraction</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onDriverDistraction</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnEncodedSyncPData"> + SDLRPCFunctionNameOnEncodedSyncPData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnEncodedSyncPData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onEncodedSyncPData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnHashChange"> + SDLRPCFunctionNameOnHashChange + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnHashChange</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onHashChange</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnHMIStatus"> + SDLRPCFunctionNameOnHMIStatus + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnHMIStatus</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onHMIStatus</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnInteriorVehicleData"> + SDLRPCFunctionNameOnInteriorVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnInteriorVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onInteriorVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnKeyboardInput"> + SDLRPCFunctionNameOnKeyboardInput + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnKeyboardInput</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onKeyboardInput</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnLanguageChange"> + SDLRPCFunctionNameOnLanguageChange + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnLanguageChange</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onLanguageChange</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnLockScreenStatus"> + SDLRPCFunctionNameOnLockScreenStatus + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnLockScreenStatus</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onLockScreenStatus</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnPermissionsChange"> + SDLRPCFunctionNameOnPermissionsChange + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnPermissionsChange</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onPermissionsChange</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnRCStatus"> + SDLRPCFunctionNameOnRCStatus + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnRCStatus</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onRCStatus</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnSyncPData"> + SDLRPCFunctionNameOnSyncPData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnSyncPData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onSyncPData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnSystemCapabilityUpdated"> + SDLRPCFunctionNameOnSystemCapabilityUpdated + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnSystemCapabilityUpdated</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onSystemCapabilityUpdated</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnSystemRequest"> + SDLRPCFunctionNameOnSystemRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnSystemRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onSystemRequest</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnTBTClientState"> + SDLRPCFunctionNameOnTBTClientState + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnTBTClientState</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onTBTClientState</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnTouchEvent"> + SDLRPCFunctionNameOnTouchEvent + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnTouchEvent</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onTouchEvent</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnVehicleData"> + SDLRPCFunctionNameOnVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameOnWayPointChange"> + SDLRPCFunctionNameOnWayPointChange + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameOnWayPointChange</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">onWayPointChange</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNamePerformAppServiceInteraction"> + SDLRPCFunctionNamePerformAppServiceInteraction + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNamePerformAppServiceInteraction</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">performAppServiceInteraction</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNamePerformAudioPassThru"> + SDLRPCFunctionNamePerformAudioPassThru + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNamePerformAudioPassThru</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">performAudioPassThru</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNamePerformInteraction"> + SDLRPCFunctionNamePerformInteraction + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNamePerformInteraction</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">performInteraction</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNamePublishAppService"> + SDLRPCFunctionNamePublishAppService + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNamePublishAppService</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">publishAppService</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNamePutFile"> + SDLRPCFunctionNamePutFile + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNamePutFile</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">putFile</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameReadDID"> + SDLRPCFunctionNameReadDID + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameReadDID</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">readDID</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameRegisterAppInterface"> + SDLRPCFunctionNameRegisterAppInterface + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameRegisterAppInterface</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">registerAppInterface</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameReserved"> + SDLRPCFunctionNameReserved + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameReserved</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">reserved</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameResetGlobalProperties"> + SDLRPCFunctionNameResetGlobalProperties + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameResetGlobalProperties</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">resetGlobalProperties</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameScrollableMessage"> + SDLRPCFunctionNameScrollableMessage + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameScrollableMessage</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">scrollableMessage</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSendHapticData"> + SDLRPCFunctionNameSendHapticData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSendHapticData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">sendHapticData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSendLocation"> + SDLRPCFunctionNameSendLocation + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSendLocation</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">sendLocation</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSetAppIcon"> + SDLRPCFunctionNameSetAppIcon + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSetAppIcon</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">setAppIcon</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSetCloudAppProperties"> + SDLRPCFunctionNameSetCloudAppProperties + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSetCloudAppProperties</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">setCloudAppProperties</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSetDisplayLayout"> + SDLRPCFunctionNameSetDisplayLayout + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSetDisplayLayout</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">setDisplayLayout</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSetGlobalProperties"> + SDLRPCFunctionNameSetGlobalProperties + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSetGlobalProperties</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">setGlobalProperties</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSetInteriorVehicleData"> + SDLRPCFunctionNameSetInteriorVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSetInteriorVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">setInteriorVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSetMediaClockTimer"> + SDLRPCFunctionNameSetMediaClockTimer + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSetMediaClockTimer</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">setMediaClockTimer</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameShow"> + SDLRPCFunctionNameShow + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameShow</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">show</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameShowConstantTBT"> + SDLRPCFunctionNameShowConstantTBT + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameShowConstantTBT</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">showConstantTBT</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSlider"> + SDLRPCFunctionNameSlider + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSlider</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">slider</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSpeak"> + SDLRPCFunctionNameSpeak + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSpeak</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">speak</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSubscribeButton"> + SDLRPCFunctionNameSubscribeButton + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSubscribeButton</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">subscribeButton</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSubscribeVehicleData"> + SDLRPCFunctionNameSubscribeVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSubscribeVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">subscribeVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSubscribeWayPoints"> + SDLRPCFunctionNameSubscribeWayPoints + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSubscribeWayPoints</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">subscribeWayPoints</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSyncPData"> + SDLRPCFunctionNameSyncPData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSyncPData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">syncPData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameSystemRequest"> + SDLRPCFunctionNameSystemRequest + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameSystemRequest</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">systemRequest</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameUnregisterAppInterface"> + SDLRPCFunctionNameUnregisterAppInterface + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameUnregisterAppInterface</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">unregisterAppInterface</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameUnsubscribeButton"> + SDLRPCFunctionNameUnsubscribeButton + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameUnsubscribeButton</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">unsubscribeButton</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameUnsubscribeVehicleData"> + SDLRPCFunctionNameUnsubscribeVehicleData + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameUnsubscribeVehicleData</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">unsubscribeVehicleData</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameUnsubscribeWayPoints"> + SDLRPCFunctionNameUnsubscribeWayPoints + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameUnsubscribeWayPoints</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">unsubscribeWayPoints</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + + <h3 id="section-SDLRPCFunctionNameUpdateTurnList"> + SDLRPCFunctionNameUpdateTurnList + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="n"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span> <span class="k">const</span> <span class="n">SDLRPCFunctionNameUpdateTurnList</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">updateTurnList</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName">SDLRPCFunctionName</a></span></code></pre> + + + + <h3 id="section-SDLRadioBandAM"> SDLRadioBandAM </h3> @@ -10831,6 +14107,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLRequestTypeIconURL"> + SDLRequestTypeIconURL + </h3> + + <p>A request for an icon url</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span> <span class="n">SDLRequestTypeIconURL</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">iconURL</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType">SDLRequestType</a></span></code></pre> + + + + <h3 id="section-SDLResultSuccess"> SDLResultSuccess </h3> @@ -11623,6 +14917,96 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLServiceUpdatePublished"> + SDLServiceUpdatePublished + </h3> + + <p>The service has just been published with the module and once activated to the primary service of its type, it will be ready for possible consumption.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">SDLServiceUpdatePublished</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">published</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span></code></pre> + + + + + <h3 id="section-SDLServiceUpdateRemoved"> + SDLServiceUpdateRemoved + </h3> + + <p>The service has just been unpublished with the module and is no longer accessible.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">SDLServiceUpdateRemoved</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">removed</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span></code></pre> + + + + + <h3 id="section-SDLServiceUpdateActivated"> + SDLServiceUpdateActivated + </h3> + + <p>The service is activated as the primary service of this type. All requests dealing with this service type will be handled by this service.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">SDLServiceUpdateActivated</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">activated</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span></code></pre> + + + + + <h3 id="section-SDLServiceUpdateDeactivated"> + SDLServiceUpdateDeactivated + </h3> + + <p>The service has been deactivated as the primary service of its type.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">SDLServiceUpdateDeactivated</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">deactivated</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span></code></pre> + + + + + <h3 id="section-SDLServiceUpdateManifestUpdate"> + SDLServiceUpdateManifestUpdate + </h3> + + <p>The service has updated its manifest. This could imply updated capabilities.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span> <span class="n">SDLServiceUpdateManifestUpdate</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">manifestUpdate</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason">SDLServiceUpdateReason</a></span></code></pre> + + + + <h3 id="section-SDLSoftButtonTypeText"> SDLSoftButtonTypeText </h3> @@ -15439,6 +18823,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLSystemCapabilityTypeAppServices"> + SDLSystemCapabilityTypeAppServices + </h3> + + <p>The app services capability</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span> <span class="n">SDLSystemCapabilityTypeAppServices</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">appServices</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType">SDLSystemCapabilityType</a></span></code></pre> + + + + <h3 id="section-SDLSystemCapabilityTypeNavigation"> SDLSystemCapabilityTypeNavigation </h3> @@ -17928,6 +21330,24 @@ For example, right puddle lights and spot lights.</p> + <h3 id="section-SDLVehicleDataTypeCloudAppVehicleID"> + SDLVehicleDataTypeCloudAppVehicleID + </h3> + + <p>The cloud application vehicle id. Used by cloud apps to identify a head unit</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">extern</span> <span class="k">const</span> <span class="n"><a href="Type Definitions.html#/c:SDLVehicleDataType.h@T@SDLVehicleDataType">SDLVehicleDataType</a></span> <span class="n">SDLVehicleDataTypeCloudAppVehicleID</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">static</span> <span class="k">let</span> <span class="nv">cloudAppVehicleID</span><span class="p">:</span> <span class="kt"><a href="Type Definitions.html#/c:SDLVehicleDataType.h@T@SDLVehicleDataType">SDLVehicleDataType</a></span></code></pre> + + + + <h3 id="section-SDLVentilationModeUpper"> SDLVentilationModeUpper </h3> diff --git a/docs/Enums.html b/docs/Enums.html index 28ae3e168..6db1f98d3 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -13,6 +13,7 @@ <li><a href="#section-SDLMenuManagerError">SDLMenuManagerError</a></li> <li><a href="#section-SDLChoiceSetManagerError">SDLChoiceSetManagerError</a></li> <li><a href="#section-SDLTransportError">SDLTransportError</a></li> + <li><a href="#section-SDLRPCStoreError">SDLRPCStoreError</a></li> <li><a href="#section-SDLLogBytesDirection">SDLLogBytesDirection</a></li> <li><a href="#section-SDLLogFlag">SDLLogFlag</a></li> <li><a href="#section-SDLLogLevel">SDLLogLevel</a></li> @@ -217,6 +218,7 @@ <span class="n">SDLChoiceSetManagerErrorPendingPresentationDeleted</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">SDLChoiceSetManagerErrorDeletionFailed</span> <span class="o">=</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="n">SDLChoiceSetManagerErrorUploadFailed</span> <span class="o">=</span> <span class="o">-</span><span class="mi">3</span><span class="p">,</span> + <span class="n">SDLChoiceSetManagerErrorFailedToCreateMenuItems</span> <span class="o">=</span> <span class="o">-</span><span class="mi">4</span> <span class="p">}</span></code></pre> @@ -245,6 +247,25 @@ + <h3 id="section-SDLRPCStoreError"> + SDLRPCStoreError + </h3> + + <p>Errors associated with store.</p> + + <a href="Enums/SDLRPCStoreError.html" class="slightly-smaller">See more</a> + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">enum</span> <span class="n">SDLRPCStoreError</span> <span class="p">{}</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">enum</span> <span class="kt">SDLRPCStoreError</span> <span class="p">:</span> <span class="kt">Int</span></code></pre> + + + + <h3 id="section-SDLLogBytesDirection"> SDLLogBytesDirection </h3> diff --git a/docs/Enums/SDLChoiceSetManagerError.html b/docs/Enums/SDLChoiceSetManagerError.html index 0e0bac2c1..1b59bb4fb 100644 --- a/docs/Enums/SDLChoiceSetManagerError.html +++ b/docs/Enums/SDLChoiceSetManagerError.html @@ -6,6 +6,7 @@ <li><a href="#section-SDLChoiceSetManagerErrorPendingPresentationDeleted">SDLChoiceSetManagerErrorPendingPresentationDeleted</a></li> <li><a href="#section-SDLChoiceSetManagerErrorDeletionFailed">SDLChoiceSetManagerErrorDeletionFailed</a></li> <li><a href="#section-SDLChoiceSetManagerErrorUploadFailed">SDLChoiceSetManagerErrorUploadFailed</a></li> + <li><a href="#section-SDLChoiceSetManagerErrorFailedToCreateMenuItems">SDLChoiceSetManagerErrorFailedToCreateMenuItems</a></li> </ul> <h3>Overview</h3> @@ -68,4 +69,22 @@ + <h3 id="section-SDLChoiceSetManagerErrorFailedToCreateMenuItems"> + SDLChoiceSetManagerErrorFailedToCreateMenuItems + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="n">SDLChoiceSetManagerErrorFailedToCreateMenuItems</span> <span class="o">=</span> <span class="o">-</span><span class="mi">4</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">case</span> <span class="n">failedToCreateMenuItems</span> <span class="o">=</span> <span class="o">-</span><span class="mi">4</span></code></pre> + + + + </section> diff --git a/docs/Enums/SDLFileManagerError.html b/docs/Enums/SDLFileManagerError.html index d94c327b9..48f9bd99b 100644 --- a/docs/Enums/SDLFileManagerError.html +++ b/docs/Enums/SDLFileManagerError.html @@ -12,6 +12,7 @@ <li><a href="#section-SDLFileManagerMultipleFileUploadTasksFailed">SDLFileManagerMultipleFileUploadTasksFailed</a></li> <li><a href="#section-SDLFileManagerMultipleFileDeleteTasksFailed">SDLFileManagerMultipleFileDeleteTasksFailed</a></li> <li><a href="#section-SDLFileManagerErrorFileDataMissing">SDLFileManagerErrorFileDataMissing</a></li> + <li><a href="#section-SDLFileManagerErrorStaticIcon">SDLFileManagerErrorStaticIcon</a></li> </ul> <h3>Overview</h3> @@ -182,4 +183,22 @@ + <h3 id="section-SDLFileManagerErrorStaticIcon"> + SDLFileManagerErrorStaticIcon + </h3> + + <p>The file manager could not find the local file.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="n">SDLFileManagerErrorStaticIcon</span> <span class="o">=</span> <span class="o">-</span><span class="mi">10</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">case</span> <span class="n">errorStaticIcon</span> <span class="o">=</span> <span class="o">-</span><span class="mi">10</span></code></pre> + + + + </section> diff --git a/docs/Enums/SDLRPCStoreError.html b/docs/Enums/SDLRPCStoreError.html new file mode 100644 index 000000000..fab5fec4d --- /dev/null +++ b/docs/Enums/SDLRPCStoreError.html @@ -0,0 +1,33 @@ +<h1>SDLRPCStoreError Enumeration Reference</h1> + +<h3>Section Contents</h3> + +<ul> + <li><a href="#section-SDLRPCStoreErrorGetInvalidObject">SDLRPCStoreErrorGetInvalidObject</a></li> +</ul> + +<h3>Overview</h3> + +<p>Errors associated with store.</p> + + +<section class="section task-group-section"> + <h3 id="section-SDLRPCStoreErrorGetInvalidObject"> + SDLRPCStoreErrorGetInvalidObject + </h3> + + <p>In dictionary stored value with unexpected type</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="n">SDLRPCStoreErrorGetInvalidObject</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="k">case</span> <span class="n">getInvalidObject</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span></code></pre> + + + + +</section> diff --git a/docs/Protocols.html b/docs/Protocols.html index 7039560a3..736adbf69 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -28,7 +28,7 @@ SDLInt </h3> - <p>A decleration that this NSNumber contains an NSInteger.</p> + <p>A declaration that this NSNumber contains an NSInteger.</p> diff --git a/docs/Protocols/SDLManagerDelegate.html b/docs/Protocols/SDLManagerDelegate.html index 01b6300bf..19a7cd560 100644 --- a/docs/Protocols/SDLManagerDelegate.html +++ b/docs/Protocols/SDLManagerDelegate.html @@ -122,7 +122,7 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Classes/SDLLifecycleConfigurationUpdate.html">SDLLifecycleConfigurationUpdate</a></span> <span class="o">*</span><span class="p">)</span> -<span class="nf">managerShouldUpdateLifecycleToLanguage</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">language</span><span class="p">;</span></code></pre> + <span class="nf">managerShouldUpdateLifecycleToLanguage</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage">SDLLanguage</a></span><span class="p">)</span><span class="nv">language</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Protocols/SDLStreamingMediaManagerDataSource.html b/docs/Protocols/SDLStreamingMediaManagerDataSource.html index fa0f01b94..afd9c595f 100644 --- a/docs/Protocols/SDLStreamingMediaManagerDataSource.html +++ b/docs/Protocols/SDLStreamingMediaManagerDataSource.html @@ -33,8 +33,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> -<span class="nf">preferredVideoFormatOrderFromHeadUnitPreferredOrder</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">headUnitPreferredOrder</span><span class="p">;</span></code></pre> + <span class="nf">preferredVideoFormatOrderFromHeadUnitPreferredOrder</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span><span class="nv">headUnitPreferredOrder</span><span class="p">;</span></code></pre> <h4>Swift</h4> @@ -62,8 +62,8 @@ <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o"><</span><span class="n"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span> <span class="o">*></span> <span class="o">*</span><span class="p">)</span> -<span class="nf">resolutionFromHeadUnitPreferredResolution</span><span class="p">:</span> - <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">headUnitPreferredResolution</span><span class="p">;</span></code></pre> + <span class="nf">resolutionFromHeadUnitPreferredResolution</span><span class="p">:</span> + <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">headUnitPreferredResolution</span><span class="p">;</span></code></pre> <h4>Swift</h4> diff --git a/docs/Type Definitions.html b/docs/Type Definitions.html index d3b788a96..42e8e44f9 100644 --- a/docs/Type Definitions.html +++ b/docs/Type Definitions.html @@ -6,6 +6,7 @@ <li><a href="#section-SDLAmbientLightStatus">SDLAmbientLightStatus</a></li> <li><a href="#section-SDLAppHMIType">SDLAppHMIType</a></li> <li><a href="#section-SDLAppInterfaceUnregisteredReason">SDLAppInterfaceUnregisteredReason</a></li> + <li><a href="#section-SDLAppServiceType">SDLAppServiceType</a></li> <li><a href="#section-SDLAudioStreamingIndicator">SDLAudioStreamingIndicator</a></li> <li><a href="#section-SDLAudioStreamingState">SDLAudioStreamingState</a></li> <li><a href="#section-SDLAudioType">SDLAudioType</a></li> @@ -21,6 +22,7 @@ <li><a href="#section-SDLDeliveryMode">SDLDeliveryMode</a></li> <li><a href="#section-SDLDeviceLevelStatus">SDLDeviceLevelStatus</a></li> <li><a href="#section-SDLDimension">SDLDimension</a></li> + <li><a href="#section-SDLDirection">SDLDirection</a></li> <li><a href="#section-SDLDisplayMode">SDLDisplayMode</a></li> <li><a href="#section-SDLDisplayType">SDLDisplayType</a></li> <li><a href="#section-SDLDistanceUnit">SDLDistanceUnit</a></li> @@ -46,6 +48,7 @@ <li><a href="#section-SDLGlobalProperty">SDLGlobalProperty</a></li> <li><a href="#section-SDLHMILevel">SDLHMILevel</a></li> <li><a href="#section-SDLHMIZoneCapabilities">SDLHMIZoneCapabilities</a></li> + <li><a href="#section-SDLHybridAppPreference">SDLHybridAppPreference</a></li> <li><a href="#section-SDLIgnitionStableStatus">SDLIgnitionStableStatus</a></li> <li><a href="#section-SDLIgnitionStatus">SDLIgnitionStatus</a></li> <li><a href="#section-SDLImageFieldName">SDLImageFieldName</a></li> @@ -68,9 +71,12 @@ <li><a href="#section-SDLMassageMode">SDLMassageMode</a></li> <li><a href="#section-SDLMassageZone">SDLMassageZone</a></li> <li><a href="#section-SDLMediaClockFormat">SDLMediaClockFormat</a></li> + <li><a href="#section-SDLMediaType">SDLMediaType</a></li> <li><a href="#section-SDLMenuCellSelectionHandler">SDLMenuCellSelectionHandler</a></li> <li><a href="#section-SDLMetadataType">SDLMetadataType</a></li> <li><a href="#section-SDLModuleType">SDLModuleType</a></li> + <li><a href="#section-SDLNavigationAction">SDLNavigationAction</a></li> + <li><a href="#section-SDLNavigationJunction">SDLNavigationJunction</a></li> <li><a href="#section-SDLNotificationName">SDLNotificationName</a></li> <li><a href="#section-SDLNotificationUserInfoKey">SDLNotificationUserInfoKey</a></li> <li><a href="#section-SDLAudioPassThruHandler">SDLAudioPassThruHandler</a></li> @@ -90,6 +96,7 @@ <li><a href="#section-SDLPredefinedLayout">SDLPredefinedLayout</a></li> <li><a href="#section-SDLPrerecordedSpeech">SDLPrerecordedSpeech</a></li> <li><a href="#section-SDLPrimaryAudioSource">SDLPrimaryAudioSource</a></li> + <li><a href="#section-SDLRPCFunctionName">SDLRPCFunctionName</a></li> <li><a href="#section-SDLRadioBand">SDLRadioBand</a></li> <li><a href="#section-SDLRadioState">SDLRadioState</a></li> <li><a href="#section-SDLRequestType">SDLRequestType</a></li> @@ -98,6 +105,7 @@ <li><a href="#section-SDLScreenManagerUpdateCompletionHandler">SDLScreenManagerUpdateCompletionHandler</a></li> <li><a href="#section-SDLPreloadChoiceCompletionHandler">SDLPreloadChoiceCompletionHandler</a></li> <li><a href="#section-SDLSeatMemoryActionType">SDLSeatMemoryActionType</a></li> + <li><a href="#section-SDLServiceUpdateReason">SDLServiceUpdateReason</a></li> <li><a href="#section-SDLSoftButtonType">SDLSoftButtonType</a></li> <li><a href="#section-SDLSpeechCapabilities">SDLSpeechCapabilities</a></li> <li><a href="#section-SDLStaticIconName">SDLStaticIconName</a></li> @@ -204,6 +212,24 @@ + <h3 id="section-SDLAppServiceType"> + SDLAppServiceType + </h3> + + <p>Enumeration listing possible app service types.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLAppServiceType</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLAppServiceType</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLAudioStreamingIndicator"> SDLAudioStreamingIndicator </h3> @@ -507,6 +533,24 @@ + <h3 id="section-SDLDirection"> + SDLDirection + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLDirection</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLDirection</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLDisplayMode"> SDLDisplayMode </h3> @@ -1072,6 +1116,24 @@ + <h3 id="section-SDLHybridAppPreference"> + SDLHybridAppPreference + </h3> + + <p>Enumeration for the user’s preference of which app type to use when both are available.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLHybridAppPreference</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLHybridAppPreference</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLIgnitionStableStatus"> SDLIgnitionStableStatus </h3> @@ -1523,6 +1585,24 @@ c = character <br></p> + <h3 id="section-SDLMediaType"> + SDLMediaType + </h3> + + <p>Enumeration listing possible media types.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLMediaType</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLMediaType</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLMenuCellSelectionHandler"> SDLMenuCellSelectionHandler </h3> @@ -1577,6 +1657,42 @@ c = character <br></p> + <h3 id="section-SDLNavigationAction"> + SDLNavigationAction + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLNavigationAction</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLNavigationAction</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + + <h3 id="section-SDLNavigationJunction"> + SDLNavigationJunction + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLNavigationJunction</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLNavigationJunction</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLNotificationName"> SDLNotificationName </h3> @@ -1884,12 +2000,12 @@ c = character <br></p> <h4>Objective-C</h4> <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="kt">void</span> <span class="p">(</span><span class="o">^</span><span class="n">SDLPermissionsChangedHandler</span><span class="p">)(</span> - <span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="p">,</span> <span class="n">NSNumber</span><span class="o"><</span><span class="n"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="o">></span> <span class="o">*></span> <span class="o">*</span><span class="n">_Nonnull</span><span class="p">,</span> + <span class="n">NSDictionary</span><span class="o"><</span><span class="n"><a href="Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName">SDLPermissionRPCName</a></span><span class="p">,</span> <span class="n">NSNumber</span> <span class="o">*></span> <span class="o">*</span><span class="n">_Nonnull</span><span class="p">,</span> <span class="n"><a href="Enums/SDLPermissionGroupStatus.html">SDLPermissionGroupStatus</a></span><span class="p">)</span></code></pre> <h4>Swift</h4> - <pre class="highlight swift"><code><span class="kd">typealias</span> <span class="kt">SDLPermissionsChangedHandler</span> <span class="o">=</span> <span class="p">([</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">NSNumber</span> <span class="o">&</span> <span class="kt"><a href="Protocols.html#/c:objc(pl)SDLBool">SDLBool</a></span><span class="p">],</span> <span class="kt"><a href="Enums/SDLPermissionGroupStatus.html">SDLPermissionGroupStatus</a></span><span class="p">)</span> <span class="o">-></span> <span class="kt">Void</span></code></pre> + <pre class="highlight swift"><code><span class="kd">typealias</span> <span class="kt">SDLPermissionsChangedHandler</span> <span class="o">=</span> <span class="p">([</span><span class="kt">String</span> <span class="p">:</span> <span class="kt">NSNumber</span><span class="p">],</span> <span class="kt"><a href="Enums/SDLPermissionGroupStatus.html">SDLPermissionGroupStatus</a></span><span class="p">)</span> <span class="o">-></span> <span class="kt">Void</span></code></pre> @@ -2013,6 +2129,24 @@ c = character <br></p> + <h3 id="section-SDLRPCFunctionName"> + SDLRPCFunctionName + </h3> + + <p>Undocumented</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLRPCFunctionName</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLRPCFunctionName</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLRadioBand"> SDLRadioBand </h3> @@ -2173,6 +2307,24 @@ c = character <br></p> + <h3 id="section-SDLServiceUpdateReason"> + SDLServiceUpdateReason + </h3> + + <p>Enumeration listing possible service update reasons.</p> + + + + <h4>Objective-C</h4> + <pre class="highlight objective_c"><code><span class="k">typedef</span> <span class="n"><a href="Type Definitions.html#/c:SDLEnum.h@T@SDLEnum">SDLEnum</a></span> <span class="n">SDLServiceUpdateReason</span></code></pre> + + + <h4>Swift</h4> + <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">SDLServiceUpdateReason</span> <span class="p">:</span> <span class="n">_ObjectiveCBridgeable</span><span class="p">,</span> <span class="kt">Hashable</span><span class="p">,</span> <span class="kt">Equatable</span><span class="p">,</span> <span class="n">_SwiftNewtypeWrapper</span><span class="p">,</span> <span class="kt">RawRepresentable</span></code></pre> + + + + <h3 id="section-SDLSoftButtonType"> SDLSoftButtonType </h3> diff --git a/docs/badge.svg b/docs/badge.svg index b5adf50d6..8dddcceb6 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -19,10 +19,10 @@ documentation </text> <text x="1095" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="250"> - 81% + 78% </text> <text x="1095" y="140" transform="scale(.1)" textLength="250"> - 81% + 78% </text> </g> </svg> diff --git a/docs/index.html b/docs/index.html index 7f4fa6a19..8da8467dc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -24,6 +24,16 @@ url: Classes/SDLAlertResponse.html - name: SDLAppInfo url: Classes/SDLAppInfo.html + - name: SDLAppServiceCapability + url: Classes/SDLAppServiceCapability.html + - name: SDLAppServiceData + url: Classes/SDLAppServiceData.html + - name: SDLAppServiceManifest + url: Classes/SDLAppServiceManifest.html + - name: SDLAppServiceRecord + url: Classes/SDLAppServiceRecord.html + - name: SDLAppServicesCapabilities + url: Classes/SDLAppServicesCapabilities.html - name: SDLArtwork url: Classes/SDLArtwork.html - name: SDLAudioControlCapabilities @@ -60,6 +70,8 @@ url: Classes/SDLClimateControlCapabilities.html - name: SDLClimateControlData url: Classes/SDLClimateControlData.html + - name: SDLCloudAppProperties + url: Classes/SDLCloudAppProperties.html - name: SDLClusterModeStatus url: Classes/SDLClusterModeStatus.html - name: SDLConfiguration @@ -124,14 +136,28 @@ url: Classes/SDLFileManagerConfiguration.html - name: SDLFuelRange url: Classes/SDLFuelRange.html + - name: SDLFunctionID + url: Classes/SDLFunctionID.html - name: SDLGPSData url: Classes/SDLGPSData.html - name: SDLGenericResponse url: Classes.html#/c:objc(cs)SDLGenericResponse + - name: SDLGetAppServiceData + url: Classes/SDLGetAppServiceData.html + - name: SDLGetAppServiceDataResponse + url: Classes/SDLGetAppServiceDataResponse.html + - name: SDLGetCloudAppProperties + url: Classes/SDLGetCloudAppProperties.html + - name: SDLGetCloudAppPropertiesResponse + url: Classes/SDLGetCloudAppPropertiesResponse.html - name: SDLGetDTCs url: Classes/SDLGetDTCs.html - name: SDLGetDTCsResponse url: Classes/SDLGetDTCsResponse.html + - name: SDLGetFile + url: Classes/SDLGetFile.html + - name: SDLGetFileResponse + url: Classes/SDLGetFileResponse.html - name: SDLGetInteriorVehicleData url: Classes/SDLGetInteriorVehicleData.html - name: SDLGetInteriorVehicleDataResponse @@ -212,6 +238,10 @@ url: Classes/SDLMassageCushionFirmness.html - name: SDLMassageModeData url: Classes/SDLMassageModeData.html + - name: SDLMediaServiceData + url: Classes/SDLMediaServiceData.html + - name: SDLMediaServiceManifest + url: Classes.html#/c:objc(cs)SDLMediaServiceManifest - name: SDLMenuCell url: Classes/SDLMenuCell.html - name: SDLMenuParams @@ -224,12 +254,20 @@ url: Classes/SDLMyKey.html - name: SDLNavigationCapability url: Classes/SDLNavigationCapability.html + - name: SDLNavigationInstruction + url: Classes/SDLNavigationInstruction.html + - name: SDLNavigationServiceData + url: Classes/SDLNavigationServiceData.html + - name: SDLNavigationServiceManifest + url: Classes/SDLNavigationServiceManifest.html - name: SDLNotificationConstants url: Classes/SDLNotificationConstants.html - name: SDLOasisAddress url: Classes/SDLOasisAddress.html - name: SDLOnAppInterfaceUnregistered url: Classes/SDLOnAppInterfaceUnregistered.html + - name: SDLOnAppServiceData + url: Classes/SDLOnAppServiceData.html - name: SDLOnAudioPassThru url: Classes.html#/c:objc(cs)SDLOnAudioPassThru - name: SDLOnButtonEvent @@ -260,6 +298,8 @@ url: Classes/SDLOnRCStatus.html - name: SDLOnSyncPData url: Classes/SDLOnSyncPData.html + - name: SDLOnSystemCapabilityUpdated + url: Classes/SDLOnSystemCapabilityUpdated.html - name: SDLOnSystemRequest url: Classes/SDLOnSystemRequest.html - name: SDLOnTBTClientState @@ -272,6 +312,10 @@ url: Classes/SDLOnWayPointChange.html - name: SDLParameterPermissions url: Classes/SDLParameterPermissions.html + - name: SDLPerformAppServiceInteraction + url: Classes/SDLPerformAppServiceInteraction.html + - name: SDLPerformAppServiceInteractionResponse + url: Classes/SDLPerformAppServiceInteractionResponse.html - name: SDLPerformAudioPassThru url: Classes/SDLPerformAudioPassThru.html - name: SDLPerformAudioPassThruResponse @@ -290,6 +334,10 @@ url: Classes/SDLPinchGesture.html - name: SDLPresetBankCapabilities url: Classes/SDLPresetBankCapabilities.html + - name: SDLPublishAppService + url: Classes/SDLPublishAppService.html + - name: SDLPublishAppServiceResponse + url: Classes/SDLPublishAppServiceResponse.html - name: SDLPutFile url: Classes/SDLPutFile.html - name: SDLPutFileResponse @@ -306,6 +354,8 @@ url: Classes/SDLRPCNotificationNotification.html - name: SDLRPCRequest url: Classes/SDLRPCRequest.html + - name: SDLRPCRequestNotification + url: Classes/SDLRPCRequestNotification.html - name: SDLRPCResponse url: Classes/SDLRPCResponse.html - name: SDLRPCResponseNotification @@ -360,6 +410,10 @@ url: Classes/SDLSetAppIcon.html - name: SDLSetAppIconResponse url: Classes.html#/c:objc(cs)SDLSetAppIconResponse + - name: SDLSetCloudAppProperties + url: Classes/SDLSetCloudAppProperties.html + - name: SDLSetCloudAppPropertiesResponse + url: Classes.html#/c:objc(cs)SDLSetCloudAppPropertiesResponse - name: SDLSetDisplayLayout url: Classes/SDLSetDisplayLayout.html - name: SDLSetDisplayLayoutResponse @@ -432,6 +486,8 @@ url: Classes/SDLSystemCapability.html - name: SDLSystemCapabilityManager url: Classes/SDLSystemCapabilityManager.html + - name: SDLSystemRequest + url: Classes/SDLSystemRequest.html - name: SDLTTSChunk url: Classes/SDLTTSChunk.html - name: SDLTemperature @@ -480,12 +536,22 @@ url: Classes/SDLVehicleDataResult.html - name: SDLVehicleType url: Classes/SDLVehicleType.html + - name: SDLVersion + url: Classes/SDLVersion.html - name: SDLVideoStreamingCapability url: Classes/SDLVideoStreamingCapability.html - name: SDLVideoStreamingFormat url: Classes/SDLVideoStreamingFormat.html - name: SDLVoiceCommand url: Classes/SDLVoiceCommand.html + - name: SDLWeatherAlert + url: Classes/SDLWeatherAlert.html + - name: SDLWeatherData + url: Classes/SDLWeatherData.html + - name: SDLWeatherServiceData + url: Classes/SDLWeatherServiceData.html + - name: SDLWeatherServiceManifest + url: Classes/SDLWeatherServiceManifest.html - name: Constants sub_nav: - name: SDLAmbientLightStatusDay @@ -542,12 +608,22 @@ url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonLanguageChange - name: SDLAppInterfaceUnregisteredReasonMasterReset url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonMasterReset + - name: SDLAppInterfaceUnregisteredReasonProtocolViolation + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonProtocolViolation - name: SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel - name: SDLAppInterfaceUnregisteredReasonTooManyRequests url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonTooManyRequests - name: SDLAppInterfaceUnregisteredReasonUSBDisconnected url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUSBDisconnected + - name: SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource + - name: SDLAppServiceTypeMedia + url: Constants.html#/c:@SDLAppServiceTypeMedia + - name: SDLAppServiceTypeNavigation + url: Constants.html#/c:@SDLAppServiceTypeNavigation + - name: SDLAppServiceTypeWeather + url: Constants.html#/c:@SDLAppServiceTypeWeather - name: SDLAppStateActive url: Constants.html#/c:@SDLAppStateActive - name: SDLAppStateInactive @@ -750,14 +826,24 @@ url: Constants.html#/c:@SDLDidChangePermissionsNotification - name: SDLDidChangeTurnByTurnStateNotification url: Constants.html#/c:@SDLDidChangeTurnByTurnStateNotification + - name: SDLDidReceiveAddCommandRequest + url: Constants.html#/c:@SDLDidReceiveAddCommandRequest - name: SDLDidReceiveAddCommandResponse url: Constants.html#/c:@SDLDidReceiveAddCommandResponse + - name: SDLDidReceiveAddSubMenuRequest + url: Constants.html#/c:@SDLDidReceiveAddSubMenuRequest - name: SDLDidReceiveAddSubMenuResponse url: Constants.html#/c:@SDLDidReceiveAddSubMenuResponse + - name: SDLDidReceiveAlertManeuverRequest + url: Constants.html#/c:@SDLDidReceiveAlertManeuverRequest - name: SDLDidReceiveAlertManeuverResponse url: Constants.html#/c:@SDLDidReceiveAlertManeuverResponse + - name: SDLDidReceiveAlertRequest + url: Constants.html#/c:@SDLDidReceiveAlertRequest - name: SDLDidReceiveAlertResponse url: Constants.html#/c:@SDLDidReceiveAlertResponse + - name: SDLDidReceiveAppServiceDataNotification + url: Constants.html#/c:@SDLDidReceiveAppServiceDataNotification - name: SDLDidReceiveAppUnregisteredNotification url: Constants.html#/c:@SDLDidReceiveAppUnregisteredNotification - name: SDLDidReceiveAudioPassThruNotification @@ -766,114 +852,230 @@ url: Constants.html#/c:@SDLDidReceiveButtonEventNotification - name: SDLDidReceiveButtonPressNotification url: Constants.html#/c:@SDLDidReceiveButtonPressNotification + - name: SDLDidReceiveButtonPressRequest + url: Constants.html#/c:@SDLDidReceiveButtonPressRequest - name: SDLDidReceiveButtonPressResponse url: Constants.html#/c:@SDLDidReceiveButtonPressResponse + - name: SDLDidReceiveChangeRegistrationRequest + url: Constants.html#/c:@SDLDidReceiveChangeRegistrationRequest - name: SDLDidReceiveChangeRegistrationResponse url: Constants.html#/c:@SDLDidReceiveChangeRegistrationResponse - name: SDLDidReceiveCommandNotification url: Constants.html#/c:@SDLDidReceiveCommandNotification + - name: SDLDidReceiveCreateInteractionChoiceSetRequest + url: Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetRequest - name: SDLDidReceiveCreateInteractionChoiceSetResponse url: Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetResponse + - name: SDLDidReceiveDeleteCommandRequest + url: Constants.html#/c:@SDLDidReceiveDeleteCommandRequest - name: SDLDidReceiveDeleteCommandResponse url: Constants.html#/c:@SDLDidReceiveDeleteCommandResponse + - name: SDLDidReceiveDeleteFileRequest + url: Constants.html#/c:@SDLDidReceiveDeleteFileRequest - name: SDLDidReceiveDeleteFileResponse url: Constants.html#/c:@SDLDidReceiveDeleteFileResponse + - name: SDLDidReceiveDeleteInteractionChoiceSetRequest + url: Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetRequest - name: SDLDidReceiveDeleteInteractionChoiceSetResponse url: Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetResponse + - name: SDLDidReceiveDeleteSubMenuRequest + url: Constants.html#/c:@SDLDidReceiveDeleteSubMenuRequest - name: SDLDidReceiveDeleteSubmenuResponse url: Constants.html#/c:@SDLDidReceiveDeleteSubmenuResponse + - name: SDLDidReceiveDiagnosticMessageRequest + url: Constants.html#/c:@SDLDidReceiveDiagnosticMessageRequest - name: SDLDidReceiveDiagnosticMessageResponse url: Constants.html#/c:@SDLDidReceiveDiagnosticMessageResponse + - name: SDLDidReceiveDialNumberRequest + url: Constants.html#/c:@SDLDidReceiveDialNumberRequest - name: SDLDidReceiveDialNumberResponse url: Constants.html#/c:@SDLDidReceiveDialNumberResponse - name: SDLDidReceiveEncodedDataNotification url: Constants.html#/c:@SDLDidReceiveEncodedDataNotification + - name: SDLDidReceiveEncodedSyncPDataRequest + url: Constants.html#/c:@SDLDidReceiveEncodedSyncPDataRequest - name: SDLDidReceiveEncodedSyncPDataResponse url: Constants.html#/c:@SDLDidReceiveEncodedSyncPDataResponse + - name: SDLDidReceiveEndAudioPassThruRequest + url: Constants.html#/c:@SDLDidReceiveEndAudioPassThruRequest - name: SDLDidReceiveEndAudioPassThruResponse url: Constants.html#/c:@SDLDidReceiveEndAudioPassThruResponse - name: SDLDidReceiveError url: Constants.html#/c:@SDLDidReceiveError - name: SDLDidReceiveGenericResponse url: Constants.html#/c:@SDLDidReceiveGenericResponse + - name: SDLDidReceiveGetAppServiceDataRequest + url: Constants.html#/c:@SDLDidReceiveGetAppServiceDataRequest + - name: SDLDidReceiveGetAppServiceDataResponse + url: Constants.html#/c:@SDLDidReceiveGetAppServiceDataResponse + - name: SDLDidReceiveGetCloudAppPropertiesRequest + url: Constants.html#/c:@SDLDidReceiveGetCloudAppPropertiesRequest + - name: SDLDidReceiveGetCloudAppPropertiesResponse + url: Constants.html#/c:@SDLDidReceiveGetCloudAppPropertiesResponse + - name: SDLDidReceiveGetDTCsRequest + url: Constants.html#/c:@SDLDidReceiveGetDTCsRequest - name: SDLDidReceiveGetDTCsResponse url: Constants.html#/c:@SDLDidReceiveGetDTCsResponse + - name: SDLDidReceiveGetFileRequest + url: Constants.html#/c:@SDLDidReceiveGetFileRequest + - name: SDLDidReceiveGetFileResponse + url: Constants.html#/c:@SDLDidReceiveGetFileResponse + - name: SDLDidReceiveGetInteriorVehicleDataRequest + url: Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataRequest - name: SDLDidReceiveGetInteriorVehicleDataResponse url: Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataResponse - name: SDLDidReceiveGetSystemCapabilitiesResponse url: Constants.html#/c:@SDLDidReceiveGetSystemCapabilitiesResponse + - name: SDLDidReceiveGetSystemCapabilityRequest + url: Constants.html#/c:@SDLDidReceiveGetSystemCapabilityRequest + - name: SDLDidReceiveGetVehicleDataRequest + url: Constants.html#/c:@SDLDidReceiveGetVehicleDataRequest - name: SDLDidReceiveGetVehicleDataResponse url: Constants.html#/c:@SDLDidReceiveGetVehicleDataResponse + - name: SDLDidReceiveGetWayPointsRequest + url: Constants.html#/c:@SDLDidReceiveGetWayPointsRequest - name: SDLDidReceiveGetWaypointsResponse url: Constants.html#/c:@SDLDidReceiveGetWaypointsResponse - name: SDLDidReceiveInteriorVehicleDataNotification url: Constants.html#/c:@SDLDidReceiveInteriorVehicleDataNotification - name: SDLDidReceiveKeyboardInputNotification url: Constants.html#/c:@SDLDidReceiveKeyboardInputNotification + - name: SDLDidReceiveListFilesRequest + url: Constants.html#/c:@SDLDidReceiveListFilesRequest - name: SDLDidReceiveListFilesResponse url: Constants.html#/c:@SDLDidReceiveListFilesResponse - name: SDLDidReceiveLockScreenIcon url: Constants.html#/c:@SDLDidReceiveLockScreenIcon - name: SDLDidReceiveNewHashNotification url: Constants.html#/c:@SDLDidReceiveNewHashNotification + - name: SDLDidReceivePerformAppServiceInteractionRequest + url: Constants.html#/c:@SDLDidReceivePerformAppServiceInteractionRequest + - name: SDLDidReceivePerformAppServiceInteractionResponse + url: Constants.html#/c:@SDLDidReceivePerformAppServiceInteractionResponse + - name: SDLDidReceivePerformAudioPassThruRequest + url: Constants.html#/c:@SDLDidReceivePerformAudioPassThruRequest - name: SDLDidReceivePerformAudioPassThruResponse url: Constants.html#/c:@SDLDidReceivePerformAudioPassThruResponse + - name: SDLDidReceivePerformInteractionRequest + url: Constants.html#/c:@SDLDidReceivePerformInteractionRequest - name: SDLDidReceivePerformInteractionResponse url: Constants.html#/c:@SDLDidReceivePerformInteractionResponse + - name: SDLDidReceivePublishAppServiceRequest + url: Constants.html#/c:@SDLDidReceivePublishAppServiceRequest + - name: SDLDidReceivePublishAppServiceResponse + url: Constants.html#/c:@SDLDidReceivePublishAppServiceResponse + - name: SDLDidReceivePutFileRequest + url: Constants.html#/c:@SDLDidReceivePutFileRequest - name: SDLDidReceivePutFileResponse url: Constants.html#/c:@SDLDidReceivePutFileResponse + - name: SDLDidReceiveReadDIDRequest + url: Constants.html#/c:@SDLDidReceiveReadDIDRequest - name: SDLDidReceiveReadDIDResponse url: Constants.html#/c:@SDLDidReceiveReadDIDResponse + - name: SDLDidReceiveRegisterAppInterfaceRequest + url: Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceRequest - name: SDLDidReceiveRegisterAppInterfaceResponse url: Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceResponse - name: SDLDidReceiveRemoteControlStatusNotification url: Constants.html#/c:@SDLDidReceiveRemoteControlStatusNotification + - name: SDLDidReceiveResetGlobalPropertiesRequest + url: Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesRequest - name: SDLDidReceiveResetGlobalPropertiesResponse url: Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesResponse + - name: SDLDidReceiveScrollableMessageRequest + url: Constants.html#/c:@SDLDidReceiveScrollableMessageRequest - name: SDLDidReceiveScrollableMessageResponse url: Constants.html#/c:@SDLDidReceiveScrollableMessageResponse + - name: SDLDidReceiveSendHapticDataRequest + url: Constants.html#/c:@SDLDidReceiveSendHapticDataRequest - name: SDLDidReceiveSendHapticDataResponse url: Constants.html#/c:@SDLDidReceiveSendHapticDataResponse + - name: SDLDidReceiveSendLocationRequest + url: Constants.html#/c:@SDLDidReceiveSendLocationRequest - name: SDLDidReceiveSendLocationResponse url: Constants.html#/c:@SDLDidReceiveSendLocationResponse + - name: SDLDidReceiveSetAppIconRequest + url: Constants.html#/c:@SDLDidReceiveSetAppIconRequest - name: SDLDidReceiveSetAppIconResponse url: Constants.html#/c:@SDLDidReceiveSetAppIconResponse + - name: SDLDidReceiveSetCloudAppPropertiesRequest + url: Constants.html#/c:@SDLDidReceiveSetCloudAppPropertiesRequest + - name: SDLDidReceiveSetCloudAppPropertiesResponse + url: Constants.html#/c:@SDLDidReceiveSetCloudAppPropertiesResponse + - name: SDLDidReceiveSetDisplayLayoutRequest + url: Constants.html#/c:@SDLDidReceiveSetDisplayLayoutRequest - name: SDLDidReceiveSetDisplayLayoutResponse url: Constants.html#/c:@SDLDidReceiveSetDisplayLayoutResponse + - name: SDLDidReceiveSetGlobalPropertiesRequest + url: Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesRequest - name: SDLDidReceiveSetGlobalPropertiesResponse url: Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesResponse + - name: SDLDidReceiveSetInteriorVehicleDataRequest + url: Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataRequest - name: SDLDidReceiveSetInteriorVehicleDataResponse url: Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataResponse + - name: SDLDidReceiveSetMediaClockTimerRequest + url: Constants.html#/c:@SDLDidReceiveSetMediaClockTimerRequest - name: SDLDidReceiveSetMediaClockTimerResponse url: Constants.html#/c:@SDLDidReceiveSetMediaClockTimerResponse + - name: SDLDidReceiveShowConstantTBTRequest + url: Constants.html#/c:@SDLDidReceiveShowConstantTBTRequest - name: SDLDidReceiveShowConstantTBTResponse url: Constants.html#/c:@SDLDidReceiveShowConstantTBTResponse + - name: SDLDidReceiveShowRequest + url: Constants.html#/c:@SDLDidReceiveShowRequest - name: SDLDidReceiveShowResponse url: Constants.html#/c:@SDLDidReceiveShowResponse + - name: SDLDidReceiveSliderRequest + url: Constants.html#/c:@SDLDidReceiveSliderRequest - name: SDLDidReceiveSliderResponse url: Constants.html#/c:@SDLDidReceiveSliderResponse + - name: SDLDidReceiveSpeakRequest + url: Constants.html#/c:@SDLDidReceiveSpeakRequest - name: SDLDidReceiveSpeakResponse url: Constants.html#/c:@SDLDidReceiveSpeakResponse + - name: SDLDidReceiveSubscribeButtonRequest + url: Constants.html#/c:@SDLDidReceiveSubscribeButtonRequest - name: SDLDidReceiveSubscribeButtonResponse url: Constants.html#/c:@SDLDidReceiveSubscribeButtonResponse + - name: SDLDidReceiveSubscribeVehicleDataRequest + url: Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataRequest - name: SDLDidReceiveSubscribeVehicleDataResponse url: Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataResponse + - name: SDLDidReceiveSubscribeWayPointsRequest + url: Constants.html#/c:@SDLDidReceiveSubscribeWayPointsRequest - name: SDLDidReceiveSubscribeWaypointsResponse url: Constants.html#/c:@SDLDidReceiveSubscribeWaypointsResponse + - name: SDLDidReceiveSyncPDataRequest + url: Constants.html#/c:@SDLDidReceiveSyncPDataRequest - name: SDLDidReceiveSyncPDataResponse url: Constants.html#/c:@SDLDidReceiveSyncPDataResponse + - name: SDLDidReceiveSystemCapabilityUpdatedNotification + url: Constants.html#/c:@SDLDidReceiveSystemCapabilityUpdatedNotification - name: SDLDidReceiveSystemRequestNotification url: Constants.html#/c:@SDLDidReceiveSystemRequestNotification + - name: SDLDidReceiveSystemRequestRequest + url: Constants.html#/c:@SDLDidReceiveSystemRequestRequest - name: SDLDidReceiveTouchEventNotification url: Constants.html#/c:@SDLDidReceiveTouchEventNotification + - name: SDLDidReceiveUnregisterAppInterfaceRequest + url: Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceRequest - name: SDLDidReceiveUnregisterAppInterfaceResponse url: Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceResponse + - name: SDLDidReceiveUnsubscribeButtonRequest + url: Constants.html#/c:@SDLDidReceiveUnsubscribeButtonRequest - name: SDLDidReceiveUnsubscribeButtonResponse url: Constants.html#/c:@SDLDidReceiveUnsubscribeButtonResponse + - name: SDLDidReceiveUnsubscribeVehicleDataRequest + url: Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataRequest - name: SDLDidReceiveUnsubscribeVehicleDataResponse url: Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataResponse + - name: SDLDidReceiveUnsubscribeWayPointsRequest + url: Constants.html#/c:@SDLDidReceiveUnsubscribeWayPointsRequest - name: SDLDidReceiveUnsubscribeWaypointsResponse url: Constants.html#/c:@SDLDidReceiveUnsubscribeWaypointsResponse + - name: SDLDidReceiveUpdateTurnListRequest + url: Constants.html#/c:@SDLDidReceiveUpdateTurnListRequest - name: SDLDidReceiveUpdateTurnListResponse url: Constants.html#/c:@SDLDidReceiveUpdateTurnListResponse - name: SDLDidReceiveVehicleDataNotification @@ -890,6 +1092,10 @@ url: Constants.html#/c:@SDLDimension3D - name: SDLDimensionNoFix url: Constants.html#/c:@SDLDimensionNoFix + - name: SDLDirectionLeft + url: Constants.html#/c:@SDLDirectionLeft + - name: SDLDirectionRight + url: Constants.html#/c:@SDLDirectionRight - name: SDLDisplayModeAuto url: Constants.html#/c:@SDLDisplayModeAuto - name: SDLDisplayModeDay @@ -1026,6 +1232,12 @@ url: Constants.html#/c:@SDLHMIZoneCapabilitiesBack - name: SDLHMIZoneCapabilitiesFront url: Constants.html#/c:@SDLHMIZoneCapabilitiesFront + - name: SDLHybridAppPreferenceBoth + url: Constants.html#/c:@SDLHybridAppPreferenceBoth + - name: SDLHybridAppPreferenceCloud + url: Constants.html#/c:@SDLHybridAppPreferenceCloud + - name: SDLHybridAppPreferenceMobile + url: Constants.html#/c:@SDLHybridAppPreferenceMobile - name: SDLIgnitionStableStatusMissingFromTransmitter url: Constants.html#/c:@SDLIgnitionStableStatusMissingFromTransmitter - name: SDLIgnitionStableStatusNotStable @@ -1354,6 +1566,14 @@ url: Constants.html#/c:@SDLMediaClockFormatClockText3 - name: SDLMediaClockFormatClockText4 url: Constants.html#/c:@SDLMediaClockFormatClockText4 + - name: SDLMediaTypeAudiobook + url: Constants.html#/c:@SDLMediaTypeAudiobook + - name: SDLMediaTypeMusic + url: Constants.html#/c:@SDLMediaTypeMusic + - name: SDLMediaTypeOther + url: Constants.html#/c:@SDLMediaTypeOther + - name: SDLMediaTypePodcast + url: Constants.html#/c:@SDLMediaTypePodcast - name: SDLMetadataTypeCurrentTemperature url: Constants.html#/c:@SDLMetadataTypeCurrentTemperature - name: SDLMetadataTypeHumidity @@ -1390,6 +1610,36 @@ url: Constants.html#/c:@SDLModuleTypeRadio - name: SDLModuleTypeSeat url: Constants.html#/c:@SDLModuleTypeSeat + - name: SDLNavigationActionCarShuttleTrain + url: Constants.html#/c:@SDLNavigationActionCarShuttleTrain + - name: SDLNavigationActionExit + url: Constants.html#/c:@SDLNavigationActionExit + - name: SDLNavigationActionFerry + url: Constants.html#/c:@SDLNavigationActionFerry + - name: SDLNavigationActionMerge + url: Constants.html#/c:@SDLNavigationActionMerge + - name: SDLNavigationActionStay + url: Constants.html#/c:@SDLNavigationActionStay + - name: SDLNavigationActionTurn + url: Constants.html#/c:@SDLNavigationActionTurn + - name: SDLNavigationActionWaypoint + url: Constants.html#/c:@SDLNavigationActionWaypoint + - name: SDLNavigationJunctionAllWayYield + url: Constants.html#/c:@SDLNavigationJunctionAllWayYield + - name: SDLNavigationJunctionBifurcation + url: Constants.html#/c:@SDLNavigationJunctionBifurcation + - name: SDLNavigationJunctionJughandle + url: Constants.html#/c:@SDLNavigationJunctionJughandle + - name: SDLNavigationJunctionMultiCarriageway + url: Constants.html#/c:@SDLNavigationJunctionMultiCarriageway + - name: SDLNavigationJunctionRegular + url: Constants.html#/c:@SDLNavigationJunctionRegular + - name: SDLNavigationJunctionRoundabout + url: Constants.html#/c:@SDLNavigationJunctionRoundabout + - name: SDLNavigationJunctionTraversableRoundabout + url: Constants.html#/c:@SDLNavigationJunctionTraversableRoundabout + - name: SDLNavigationJunctionTurnAround + url: Constants.html#/c:@SDLNavigationJunctionTurnAround - name: SDLNotificationUserInfoObject url: Constants.html#/c:@SDLNotificationUserInfoObject - name: SDLPRNDLDrive @@ -1532,6 +1782,166 @@ url: Constants.html#/c:@SDLPrimaryAudioSourceUSB2 - name: SDLPrimaryAudioSourceXM url: Constants.html#/c:@SDLPrimaryAudioSourceXM + - name: SDLRPCFunctionNameAddCommand + url: Constants.html#/c:@SDLRPCFunctionNameAddCommand + - name: SDLRPCFunctionNameAddSubMenu + url: Constants.html#/c:@SDLRPCFunctionNameAddSubMenu + - name: SDLRPCFunctionNameAlert + url: Constants.html#/c:@SDLRPCFunctionNameAlert + - name: SDLRPCFunctionNameAlertManeuver + url: Constants.html#/c:@SDLRPCFunctionNameAlertManeuver + - name: SDLRPCFunctionNameButtonPress + url: Constants.html#/c:@SDLRPCFunctionNameButtonPress + - name: SDLRPCFunctionNameChangeRegistration + url: Constants.html#/c:@SDLRPCFunctionNameChangeRegistration + - name: SDLRPCFunctionNameCreateInteractionChoiceSet + url: Constants.html#/c:@SDLRPCFunctionNameCreateInteractionChoiceSet + - name: SDLRPCFunctionNameDeleteCommand + url: Constants.html#/c:@SDLRPCFunctionNameDeleteCommand + - name: SDLRPCFunctionNameDeleteFile + url: Constants.html#/c:@SDLRPCFunctionNameDeleteFile + - name: SDLRPCFunctionNameDeleteInteractionChoiceSet + url: Constants.html#/c:@SDLRPCFunctionNameDeleteInteractionChoiceSet + - name: SDLRPCFunctionNameDeleteSubMenu + url: Constants.html#/c:@SDLRPCFunctionNameDeleteSubMenu + - name: SDLRPCFunctionNameDiagnosticMessage + url: Constants.html#/c:@SDLRPCFunctionNameDiagnosticMessage + - name: SDLRPCFunctionNameDialNumber + url: Constants.html#/c:@SDLRPCFunctionNameDialNumber + - name: SDLRPCFunctionNameEncodedSyncPData + url: Constants.html#/c:@SDLRPCFunctionNameEncodedSyncPData + - name: SDLRPCFunctionNameEndAudioPassThru + url: Constants.html#/c:@SDLRPCFunctionNameEndAudioPassThru + - name: SDLRPCFunctionNameGenericResponse + url: Constants.html#/c:@SDLRPCFunctionNameGenericResponse + - name: SDLRPCFunctionNameGetAppServiceData + url: Constants.html#/c:@SDLRPCFunctionNameGetAppServiceData + - name: SDLRPCFunctionNameGetCloudAppProperties + url: Constants.html#/c:@SDLRPCFunctionNameGetCloudAppProperties + - name: SDLRPCFunctionNameGetDTCs + url: Constants.html#/c:@SDLRPCFunctionNameGetDTCs + - name: SDLRPCFunctionNameGetFile + url: Constants.html#/c:@SDLRPCFunctionNameGetFile + - name: SDLRPCFunctionNameGetInteriorVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameGetInteriorVehicleData + - name: SDLRPCFunctionNameGetSystemCapability + url: Constants.html#/c:@SDLRPCFunctionNameGetSystemCapability + - name: SDLRPCFunctionNameGetVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameGetVehicleData + - name: SDLRPCFunctionNameGetWayPoints + url: Constants.html#/c:@SDLRPCFunctionNameGetWayPoints + - name: SDLRPCFunctionNameListFiles + url: Constants.html#/c:@SDLRPCFunctionNameListFiles + - name: SDLRPCFunctionNameOnAppInterfaceUnregistered + url: Constants.html#/c:@SDLRPCFunctionNameOnAppInterfaceUnregistered + - name: SDLRPCFunctionNameOnAppServiceData + url: Constants.html#/c:@SDLRPCFunctionNameOnAppServiceData + - name: SDLRPCFunctionNameOnAudioPassThru + url: Constants.html#/c:@SDLRPCFunctionNameOnAudioPassThru + - name: SDLRPCFunctionNameOnButtonEvent + url: Constants.html#/c:@SDLRPCFunctionNameOnButtonEvent + - name: SDLRPCFunctionNameOnButtonPress + url: Constants.html#/c:@SDLRPCFunctionNameOnButtonPress + - name: SDLRPCFunctionNameOnCommand + url: Constants.html#/c:@SDLRPCFunctionNameOnCommand + - name: SDLRPCFunctionNameOnDriverDistraction + url: Constants.html#/c:@SDLRPCFunctionNameOnDriverDistraction + - name: SDLRPCFunctionNameOnEncodedSyncPData + url: Constants.html#/c:@SDLRPCFunctionNameOnEncodedSyncPData + - name: SDLRPCFunctionNameOnHMIStatus + url: Constants.html#/c:@SDLRPCFunctionNameOnHMIStatus + - name: SDLRPCFunctionNameOnHashChange + url: Constants.html#/c:@SDLRPCFunctionNameOnHashChange + - name: SDLRPCFunctionNameOnInteriorVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameOnInteriorVehicleData + - name: SDLRPCFunctionNameOnKeyboardInput + url: Constants.html#/c:@SDLRPCFunctionNameOnKeyboardInput + - name: SDLRPCFunctionNameOnLanguageChange + url: Constants.html#/c:@SDLRPCFunctionNameOnLanguageChange + - name: SDLRPCFunctionNameOnLockScreenStatus + url: Constants.html#/c:@SDLRPCFunctionNameOnLockScreenStatus + - name: SDLRPCFunctionNameOnPermissionsChange + url: Constants.html#/c:@SDLRPCFunctionNameOnPermissionsChange + - name: SDLRPCFunctionNameOnRCStatus + url: Constants.html#/c:@SDLRPCFunctionNameOnRCStatus + - name: SDLRPCFunctionNameOnSyncPData + url: Constants.html#/c:@SDLRPCFunctionNameOnSyncPData + - name: SDLRPCFunctionNameOnSystemCapabilityUpdated + url: Constants.html#/c:@SDLRPCFunctionNameOnSystemCapabilityUpdated + - name: SDLRPCFunctionNameOnSystemRequest + url: Constants.html#/c:@SDLRPCFunctionNameOnSystemRequest + - name: SDLRPCFunctionNameOnTBTClientState + url: Constants.html#/c:@SDLRPCFunctionNameOnTBTClientState + - name: SDLRPCFunctionNameOnTouchEvent + url: Constants.html#/c:@SDLRPCFunctionNameOnTouchEvent + - name: SDLRPCFunctionNameOnVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameOnVehicleData + - name: SDLRPCFunctionNameOnWayPointChange + url: Constants.html#/c:@SDLRPCFunctionNameOnWayPointChange + - name: SDLRPCFunctionNamePerformAppServiceInteraction + url: Constants.html#/c:@SDLRPCFunctionNamePerformAppServiceInteraction + - name: SDLRPCFunctionNamePerformAudioPassThru + url: Constants.html#/c:@SDLRPCFunctionNamePerformAudioPassThru + - name: SDLRPCFunctionNamePerformInteraction + url: Constants.html#/c:@SDLRPCFunctionNamePerformInteraction + - name: SDLRPCFunctionNamePublishAppService + url: Constants.html#/c:@SDLRPCFunctionNamePublishAppService + - name: SDLRPCFunctionNamePutFile + url: Constants.html#/c:@SDLRPCFunctionNamePutFile + - name: SDLRPCFunctionNameReadDID + url: Constants.html#/c:@SDLRPCFunctionNameReadDID + - name: SDLRPCFunctionNameRegisterAppInterface + url: Constants.html#/c:@SDLRPCFunctionNameRegisterAppInterface + - name: SDLRPCFunctionNameReserved + url: Constants.html#/c:@SDLRPCFunctionNameReserved + - name: SDLRPCFunctionNameResetGlobalProperties + url: Constants.html#/c:@SDLRPCFunctionNameResetGlobalProperties + - name: SDLRPCFunctionNameScrollableMessage + url: Constants.html#/c:@SDLRPCFunctionNameScrollableMessage + - name: SDLRPCFunctionNameSendHapticData + url: Constants.html#/c:@SDLRPCFunctionNameSendHapticData + - name: SDLRPCFunctionNameSendLocation + url: Constants.html#/c:@SDLRPCFunctionNameSendLocation + - name: SDLRPCFunctionNameSetAppIcon + url: Constants.html#/c:@SDLRPCFunctionNameSetAppIcon + - name: SDLRPCFunctionNameSetCloudAppProperties + url: Constants.html#/c:@SDLRPCFunctionNameSetCloudAppProperties + - name: SDLRPCFunctionNameSetDisplayLayout + url: Constants.html#/c:@SDLRPCFunctionNameSetDisplayLayout + - name: SDLRPCFunctionNameSetGlobalProperties + url: Constants.html#/c:@SDLRPCFunctionNameSetGlobalProperties + - name: SDLRPCFunctionNameSetInteriorVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameSetInteriorVehicleData + - name: SDLRPCFunctionNameSetMediaClockTimer + url: Constants.html#/c:@SDLRPCFunctionNameSetMediaClockTimer + - name: SDLRPCFunctionNameShow + url: Constants.html#/c:@SDLRPCFunctionNameShow + - name: SDLRPCFunctionNameShowConstantTBT + url: Constants.html#/c:@SDLRPCFunctionNameShowConstantTBT + - name: SDLRPCFunctionNameSlider + url: Constants.html#/c:@SDLRPCFunctionNameSlider + - name: SDLRPCFunctionNameSpeak + url: Constants.html#/c:@SDLRPCFunctionNameSpeak + - name: SDLRPCFunctionNameSubscribeButton + url: Constants.html#/c:@SDLRPCFunctionNameSubscribeButton + - name: SDLRPCFunctionNameSubscribeVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameSubscribeVehicleData + - name: SDLRPCFunctionNameSubscribeWayPoints + url: Constants.html#/c:@SDLRPCFunctionNameSubscribeWayPoints + - name: SDLRPCFunctionNameSyncPData + url: Constants.html#/c:@SDLRPCFunctionNameSyncPData + - name: SDLRPCFunctionNameSystemRequest + url: Constants.html#/c:@SDLRPCFunctionNameSystemRequest + - name: SDLRPCFunctionNameUnregisterAppInterface + url: Constants.html#/c:@SDLRPCFunctionNameUnregisterAppInterface + - name: SDLRPCFunctionNameUnsubscribeButton + url: Constants.html#/c:@SDLRPCFunctionNameUnsubscribeButton + - name: SDLRPCFunctionNameUnsubscribeVehicleData + url: Constants.html#/c:@SDLRPCFunctionNameUnsubscribeVehicleData + - name: SDLRPCFunctionNameUnsubscribeWayPoints + url: Constants.html#/c:@SDLRPCFunctionNameUnsubscribeWayPoints + - name: SDLRPCFunctionNameUpdateTurnList + url: Constants.html#/c:@SDLRPCFunctionNameUpdateTurnList - name: SDLRadioBandAM url: Constants.html#/c:@SDLRadioBandAM - name: SDLRadioBandFM @@ -1564,6 +1974,8 @@ url: Constants.html#/c:@SDLRequestTypeFileResume - name: SDLRequestTypeHTTP url: Constants.html#/c:@SDLRequestTypeHTTP + - name: SDLRequestTypeIconURL + url: Constants.html#/c:@SDLRequestTypeIconURL - name: SDLRequestTypeLaunchApp url: Constants.html#/c:@SDLRequestTypeLaunchApp - name: SDLRequestTypeLockScreenIconURL @@ -1674,6 +2086,16 @@ url: Constants.html#/c:@SDLSeatMemoryActionTypeRestore - name: SDLSeatMemoryActionTypeSave url: Constants.html#/c:@SDLSeatMemoryActionTypeSave + - name: SDLServiceUpdateActivated + url: Constants.html#/c:@SDLServiceUpdateActivated + - name: SDLServiceUpdateDeactivated + url: Constants.html#/c:@SDLServiceUpdateDeactivated + - name: SDLServiceUpdateManifestUpdate + url: Constants.html#/c:@SDLServiceUpdateManifestUpdate + - name: SDLServiceUpdatePublished + url: Constants.html#/c:@SDLServiceUpdatePublished + - name: SDLServiceUpdateRemoved + url: Constants.html#/c:@SDLServiceUpdateRemoved - name: SDLSoftButtonTypeBoth url: Constants.html#/c:@SDLSoftButtonTypeBoth - name: SDLSoftButtonTypeImage @@ -2056,6 +2478,8 @@ url: Constants.html#/c:@SDLSystemActionKeepContext - name: SDLSystemActionStealFocus url: Constants.html#/c:@SDLSystemActionStealFocus + - name: SDLSystemCapabilityTypeAppServices + url: Constants.html#/c:@SDLSystemCapabilityTypeAppServices - name: SDLSystemCapabilityTypeNavigation url: Constants.html#/c:@SDLSystemCapabilityTypeNavigation - name: SDLSystemCapabilityTypePhoneCall @@ -2286,6 +2710,8 @@ url: Constants.html#/c:@SDLVehicleDataTypeBodyInfo - name: SDLVehicleDataTypeBraking url: Constants.html#/c:@SDLVehicleDataTypeBraking + - name: SDLVehicleDataTypeCloudAppVehicleID + url: Constants.html#/c:@SDLVehicleDataTypeCloudAppVehicleID - name: SDLVehicleDataTypeClusterModeStatus url: Constants.html#/c:@SDLVehicleDataTypeClusterModeStatus - name: SDLVehicleDataTypeDeviceStatus @@ -2460,6 +2886,8 @@ url: Enums/SDLPermissionGroupType.html - name: SDLRPCMessageType url: Enums/SDLRPCMessageType.html + - name: SDLRPCStoreError + url: Enums/SDLRPCStoreError.html - name: SDLSoftButtonManagerError url: Enums/SDLSoftButtonManagerError.html - name: SDLStreamingEncryptionFlag @@ -2504,6 +2932,8 @@ url: Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType - name: SDLAppInterfaceUnregisteredReason url: Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason + - name: SDLAppServiceType + url: Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType - name: SDLAppState url: Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLAppState - name: SDLAudioPassThruHandler @@ -2540,6 +2970,8 @@ url: Type Definitions.html#/c:SDLDeviceLevelStatus.h@T@SDLDeviceLevelStatus - name: SDLDimension url: Type Definitions.html#/c:SDLDimension.h@T@SDLDimension + - name: SDLDirection + url: Type Definitions.html#/c:SDLDirection.h@T@SDLDirection - name: SDLDisplayMode url: Type Definitions.html#/c:SDLDisplayMode.h@T@SDLDisplayMode - name: SDLDisplayType @@ -2590,6 +3022,8 @@ url: Type Definitions.html#/c:SDLHMILevel.h@T@SDLHMILevel - name: SDLHMIZoneCapabilities url: Type Definitions.html#/c:SDLHMIZoneCapabilities.h@T@SDLHMIZoneCapabilities + - name: SDLHybridAppPreference + url: Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference - name: SDLIgnitionStableStatus url: Type Definitions.html#/c:SDLIgnitionStableStatus.h@T@SDLIgnitionStableStatus - name: SDLIgnitionStatus @@ -2634,6 +3068,8 @@ url: Type Definitions.html#/c:SDLMassageZone.h@T@SDLMassageZone - name: SDLMediaClockFormat url: Type Definitions.html#/c:SDLMediaClockFormat.h@T@SDLMediaClockFormat + - name: SDLMediaType + url: Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType - name: SDLMenuCellSelectionHandler url: Type Definitions.html#/c:SDLMenuCell.h@T@SDLMenuCellSelectionHandler - name: SDLMetadataType @@ -2646,6 +3082,10 @@ url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleRequestCompletionHandler - name: SDLMultipleSequentialRequestProgressHandler url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleSequentialRequestProgressHandler + - name: SDLNavigationAction + url: Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction + - name: SDLNavigationJunction + url: Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction - name: SDLNotificationName url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName - name: SDLNotificationUserInfoKey @@ -2676,6 +3116,8 @@ url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler - name: SDLRPCCommandNotificationHandler url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCCommandNotificationHandler + - name: SDLRPCFunctionName + url: Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName - name: SDLRadioBand url: Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand - name: SDLRadioState @@ -2692,6 +3134,8 @@ url: Type Definitions.html#/c:SDLScreenManager.h@T@SDLScreenManagerUpdateCompletionHandler - name: SDLSeatMemoryActionType url: Type Definitions.html#/c:SDLSeatMemoryActionType.h@T@SDLSeatMemoryActionType + - name: SDLServiceUpdateReason + url: Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason - name: SDLSoftButtonType url: Type Definitions.html#/c:SDLSoftButtonType.h@T@SDLSoftButtonType - name: SDLSpeechCapabilities diff --git a/docs/search.json b/docs/search.json index a444a7576..f7b9e8674 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Type Definitions/SDLTouchIdentifier/.html#/c:@EA@SDLTouchIdentifier@SDLTouchIdentifierFirstFinger":{"name":"SDLTouchIdentifierFirstFinger","abstract":"<p>Undocumented</p>"},"Type Definitions/SDLTouchIdentifier/.html#/c:@EA@SDLTouchIdentifier@SDLTouchIdentifierSecondFinger":{"name":"SDLTouchIdentifierSecondFinger","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLAmbientLightStatus.h@T@SDLAmbientLightStatus":{"name":"SDLAmbientLightStatus","abstract":"<p>Reflects the status of the ambient light sensor for headlamps</p>"},"Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType":{"name":"SDLAppHMIType","abstract":"<p>Enumeration listing possible app hmi types.</p>"},"Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason":{"name":"SDLAppInterfaceUnregisteredReason","abstract":"<p>Indicates reason why app interface was unregistered. The application is being disconnected by SDL.</p>"},"Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator":{"name":"SDLAudioStreamingIndicator","abstract":"<p>Enumeration listing possible indicators of audio streaming changes</p>"},"Type Definitions.html#/c:SDLAudioStreamingState.h@T@SDLAudioStreamingState":{"name":"SDLAudioStreamingState","abstract":"<p>Describes whether or not streaming audio is currently audible to the user. Though provided in every OnHMIStatus notification, this information is only relevant for applications that declare themselves as media apps in RegisterAppInterface</p>"},"Type Definitions.html#/c:SDLAudioType.h@T@SDLAudioType":{"name":"SDLAudioType","abstract":"<p>Describes different audio type options for PerformAudioPassThru</p>"},"Type Definitions.html#/c:SDLBitsPerSample.h@T@SDLBitsPerSample":{"name":"SDLBitsPerSample","abstract":"<p>Describes different bit depth options for PerformAudioPassThru</p>"},"Type Definitions.html#/c:SDLButtonEventMode.h@T@SDLButtonEventMode":{"name":"SDLButtonEventMode","abstract":"<p>Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.</p>"},"Type Definitions.html#/c:SDLButtonName.h@T@SDLButtonName":{"name":"SDLButtonName","abstract":"<p>Defines logical buttons which, on a given SDL unit, would correspond to either physical or soft (touchscreen) buttons. These logical buttons present a standard functional abstraction which the developer can rely upon, independent of the SDL unit. For example, the developer can rely upon the OK button having the same meaning to the user across SDL platforms.</p>"},"Type Definitions.html#/c:SDLButtonPressMode.h@T@SDLButtonPressMode":{"name":"SDLButtonPressMode","abstract":"<p>Indicates whether this is a LONG or SHORT button press</p>"},"Type Definitions.html#/c:SDLCarModeStatus.h@T@SDLCarModeStatus":{"name":"SDLCarModeStatus","abstract":"<p>Describes the carmode the vehicle is in. Used in ClusterModeStatus</p>"},"Type Definitions.html#/c:SDLCharacterSet.h@T@SDLCharacterSet":{"name":"SDLCharacterSet","abstract":"<p>Character sets supported by SDL. Used to describe text field capabilities.</p>"},"Type Definitions.html#/c:SDLCompassDirection.h@T@SDLCompassDirection":{"name":"SDLCompassDirection","abstract":"<p>The list of potential compass directions. Used in GPS data</p>"},"Type Definitions.html#/c:SDLComponentVolumeStatus.h@T@SDLComponentVolumeStatus":{"name":"SDLComponentVolumeStatus","abstract":"<p>The volume status of a vehicle component. Used in SingleTireStatus and VehicleData Fuel Level</p>"},"Type Definitions.html#/c:SDLDefrostZone.h@T@SDLDefrostZone":{"name":"SDLDefrostZone","abstract":"<p>Enumeration listing possible defrost zones. Used in ClimateControlCapabilities and Data.</p>"},"Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode":{"name":"SDLDeliveryMode","abstract":"<p>Specifies the mode in which the sendLocation request is sent. Used in SendLocation.</p>"},"Type Definitions.html#/c:SDLDeviceLevelStatus.h@T@SDLDeviceLevelStatus":{"name":"SDLDeviceLevelStatus","abstract":"<p>Reflects the reported battery status of the connected device, if reported. Used in DeviceStatus.</p>"},"Type Definitions.html#/c:SDLDimension.h@T@SDLDimension":{"name":"SDLDimension","abstract":"<p>The supported dimensions of the GPS. Used in GPSData</p>"},"Type Definitions.html#/c:SDLDisplayMode.h@T@SDLDisplayMode":{"name":"SDLDisplayMode","abstract":"<p>Identifies the various display types used by SDL.</p>"},"Type Definitions.html#/c:SDLDisplayType.h@T@SDLDisplayType":{"name":"SDLDisplayType","abstract":"<p>Identifies the various display types used by SDL. Used in DisplayCapabilities.</p>"},"Type Definitions.html#/c:SDLDistanceUnit.h@T@SDLDistanceUnit":{"name":"SDLDistanceUnit","abstract":"<p>Wiper Status</p>"},"Type Definitions.html#/c:SDLDriverDistractionState.h@T@SDLDriverDistractionState":{"name":"SDLDriverDistractionState","abstract":"<p>Enumeration that describes possible states of driver distraction. Used in OnDriverDistraction.</p>"},"Type Definitions.html#/c:SDLECallConfirmationStatus.h@T@SDLECallConfirmationStatus":{"name":"SDLECallConfirmationStatus","abstract":"<p>Reflects the status of the eCall Notification. Used in ECallInfo</p>"},"Type Definitions.html#/c:SDLElectronicParkBrakeStatus.h@T@SDLElectronicParkBrakeStatus":{"name":"SDLElectronicParkBrakeStatus","abstract":"<p>Reflects the status of the Electronic Parking Brake. A Vehicle Data Type.</p>"},"Type Definitions.html#/c:SDLEmergencyEventType.h@T@SDLEmergencyEventType":{"name":"SDLEmergencyEventType","abstract":"<p>Reflects the emergency event status of the vehicle. Used in EmergencyEvent</p>"},"Type Definitions.html#/c:SDLEnum.h@T@SDLEnum":{"name":"SDLEnum","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLFileManager.h@T@SDLFileManagerStartupCompletionHandler":{"name":"SDLFileManagerStartupCompletionHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileName":{"name":"SDLFileName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadCompletionHandler":{"name":"SDLFileManagerUploadCompletionHandler","abstract":"<p>A completion handler called after a response from Core to a upload request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadCompletionHandler":{"name":"SDLFileManagerMultiUploadCompletionHandler","abstract":"<p>A completion handler called after a set of upload requests has completed.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadProgressHandler":{"name":"SDLFileManagerMultiUploadProgressHandler","abstract":"<p>In a multiple request send, a handler called after each response from Core to a upload request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerDeleteCompletionHandler":{"name":"SDLFileManagerDeleteCompletionHandler","abstract":"<p>A completion handler called after a response from Core to a delete request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiDeleteCompletionHandler":{"name":"SDLFileManagerMultiDeleteCompletionHandler","abstract":"<p>A completion handler called after a set of delete requests has completed.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerListFilesCompletionHandler":{"name":"SDLFileManagerListFilesCompletionHandler","abstract":"<p>A completion handler called after response from Core to a list files request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadArtworkCompletionHandler":{"name":"SDLFileManagerUploadArtworkCompletionHandler","abstract":"<p>A completion handler called after a response from Core to a artwork upload request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadArtworkCompletionHandler":{"name":"SDLFileManagerMultiUploadArtworkCompletionHandler","abstract":"<p>A completion handler called after a set of upload artwork requests has completed.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadArtworkProgressHandler":{"name":"SDLFileManagerMultiUploadArtworkProgressHandler","abstract":"<p>In a multiple request send, a handler called after each response from Core to an artwork upload request.</p>"},"Type Definitions.html#/c:SDLFileType.h@T@SDLFileType":{"name":"SDLFileType","abstract":"<p>Enumeration listing possible file types. Used in SDLFile, PutFile, ImageField, OnSystemRequest</p>"},"Type Definitions.html#/c:SDLFuelCutoffStatus.h@T@SDLFuelCutoffStatus":{"name":"SDLFuelCutoffStatus","abstract":"<p>Reflects the status of the Restraints Control Module fuel pump cutoff. The fuel pump is cut off typically after the vehicle has had a collision. Used in EmergencyEvent.</p>"},"Type Definitions.html#/c:SDLFuelType.h@T@SDLFuelType":{"name":"SDLFuelType","abstract":"<p>Enumeration listing possible fuel types.</p>"},"Type Definitions.html#/c:SDLGlobalProperty.h@T@SDLGlobalProperty":{"name":"SDLGlobalProperty","abstract":"<p>Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button). Used in RPCs related to ResetGlobalProperties</p>"},"Type Definitions.html#/c:SDLHMILevel.h@T@SDLHMILevel":{"name":"SDLHMILevel","abstract":"<p>Specifies current level of the HMI. An HMI level indicates the degree of user interaction possible through the HMI (e.g. TTS only, display only, VR, etc.). The HMI level varies for an application based on the type of display (i.e. Nav or non-Nav) and the user directing <q>focus</q> to other applications (e.g. phone, other mobile applications, etc.). Used in OnHMIStatus</p>"},"Type Definitions.html#/c:SDLHMIZoneCapabilities.h@T@SDLHMIZoneCapabilities":{"name":"SDLHMIZoneCapabilities","abstract":"<p>Specifies HMI Zones in the vehicle. Used in RegisterAppInterfaceResponse</p>"},"Type Definitions.html#/c:SDLIgnitionStableStatus.h@T@SDLIgnitionStableStatus":{"name":"SDLIgnitionStableStatus","abstract":"<p>Reflects the ignition switch stability. Used in BodyInformation</p>"},"Type Definitions.html#/c:SDLIgnitionStatus.h@T@SDLIgnitionStatus":{"name":"SDLIgnitionStatus","abstract":"<p>Reflects the status of ignition. Used in BodyInformation.</p>"},"Type Definitions.html#/c:SDLImageFieldName.h@T@SDLImageFieldName":{"name":"SDLImageFieldName","abstract":"<p>The name that identifies the filed. Used in DisplayCapabilities.</p>"},"Type Definitions.html#/c:SDLImageType.h@T@SDLImageType":{"name":"SDLImageType","abstract":"<p>Contains information about the type of image. Used in Image.</p>"},"Type Definitions.html#/c:SDLInteractionMode.h@T@SDLInteractionMode":{"name":"SDLInteractionMode","abstract":"<p>For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated. Used in PerformInteraction.</p>"},"Type Definitions.html#/c:SDLKeyboardDelegate.h@T@SDLKeyboardAutocompleteCompletionHandler":{"name":"SDLKeyboardAutocompleteCompletionHandler","abstract":"<p>This handler is called when you wish to update your autocomplete text in response to the user’s input</p>"},"Type Definitions.html#/c:SDLKeyboardDelegate.h@T@SDLKeyboardCharacterSetCompletionHandler":{"name":"SDLKeyboardCharacterSetCompletionHandler","abstract":"<p>This handler is called when you wish to update your keyboard’s limitedCharacterSet in response to the user’s input</p>"},"Type Definitions.html#/c:SDLKeyboardEvent.h@T@SDLKeyboardEvent":{"name":"SDLKeyboardEvent","abstract":"<p>Enumeration listing possible keyboard events. Used in OnKeyboardInput.</p>"},"Type Definitions.html#/c:SDLKeyboardLayout.h@T@SDLKeyboardLayout":{"name":"SDLKeyboardLayout","abstract":"<p>Enumeration listing possible keyboard layouts. Used in KeyboardProperties.</p>"},"Type Definitions.html#/c:SDLKeypressMode.h@T@SDLKeypressMode":{"name":"SDLKeypressMode","abstract":"<p>Enumeration listing possible keyboard events.</p>"},"Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage":{"name":"SDLLanguage","abstract":"<p>Specifies the language to be used for TTS, VR, displayed messages/menus. Used in ChangeRegistration and RegisterAppInterface.</p>"},"Type Definitions.html#/c:SDLLayoutMode.h@T@SDLLayoutMode":{"name":"SDLLayoutMode","abstract":"<p>For touchscreen interactions, the mode of how the choices are presented. Used in PerformInteraction.</p>"},"Type Definitions.html#/c:SDLLightName.h@T@SDLLightName":{"name":"SDLLightName","abstract":"<p>The name that identifies the Light</p>"},"Type Definitions.html#/c:SDLLightStatus.h@T@SDLLightStatus":{"name":"SDLLightStatus","abstract":"<p>Reflects the status of Light.</p>"},"Type Definitions.html#/c:SDLLockScreenStatus.h@T@SDLLockScreenStatus":{"name":"SDLLockScreenStatus","abstract":"<p>Describes what the status of the lock screen should be</p>"},"Type Definitions.html#/c:SDLLogConstants.h@T@SDLLogFilterBlock":{"name":"SDLLogFilterBlock","abstract":"<p>A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged.</p>"},"Type Definitions.html#/c:SDLMaintenanceModeStatus.h@T@SDLMaintenanceModeStatus":{"name":"SDLMaintenanceModeStatus","abstract":"<p>Describes the maintenence mode. Used in nothing.</p>"},"Type Definitions.html#/c:SDLManager.h@T@SDLManagerReadyBlock":{"name":"SDLManagerReadyBlock","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLMassageCushion.h@T@SDLMassageCushion":{"name":"SDLMassageCushion","abstract":"<p>The List possible cushions of a multi-contour massage seat.</p>"},"Type Definitions.html#/c:SDLMassageMode.h@T@SDLMassageMode":{"name":"SDLMassageMode","abstract":"<p>The List possible modes of a massage zone.</p>"},"Type Definitions.html#/c:SDLMassageZone.h@T@SDLMassageZone":{"name":"SDLMassageZone","abstract":"<p>List possible zones of a multi-contour massage seat.</p>"},"Type Definitions.html#/c:SDLMediaClockFormat.h@T@SDLMediaClockFormat":{"name":"SDLMediaClockFormat","abstract":"<p>Indicates the format of the time displayed on the connected SDL unit.</p>"},"Type Definitions.html#/c:SDLMenuCell.h@T@SDLMenuCellSelectionHandler":{"name":"SDLMenuCellSelectionHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType":{"name":"SDLMetadataType","abstract":"<p>Text Field metadata types. Used in Show.</p>"},"Type Definitions.html#/c:SDLModuleType.h@T@SDLModuleType":{"name":"SDLModuleType","abstract":"<p>The type of remote control data. Used in ButtonPress, GetInteriorVehicleData, and ModuleData</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName":{"name":"SDLNotificationName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationUserInfoKey":{"name":"SDLNotificationUserInfoKey","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLAudioPassThruHandler":{"name":"SDLAudioPassThruHandler","abstract":"<p>A handler used on SDLPerformAudioPassThru.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLResponseHandler":{"name":"SDLResponseHandler","abstract":"<p>A handler used on all RPC requests which fires when the response is received.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleRequestCompletionHandler":{"name":"SDLMultipleRequestCompletionHandler","abstract":"<p>A completion handler called after a sequential or simultaneous set of requests have completed sending.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleSequentialRequestProgressHandler":{"name":"SDLMultipleSequentialRequestProgressHandler","abstract":"<p>A handler called after each response to a request comes in in a multiple request send.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleAsyncRequestProgressHandler":{"name":"SDLMultipleAsyncRequestProgressHandler","abstract":"<p>A handler called after each response to a request comes in in a multiple request send.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler":{"name":"SDLRPCButtonNotificationHandler","abstract":"<p>A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCCommandNotificationHandler":{"name":"SDLRPCCommandNotificationHandler","abstract":"<p>A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur.</p>"},"Type Definitions.html#/c:SDLPRNDL.h@T@SDLPRNDL":{"name":"SDLPRNDL","abstract":"<p>The selected gear the car is in. Used in retrieving vehicle data.</p>"},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName":{"name":"SDLPermissionRPCName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionObserverIdentifier":{"name":"SDLPermissionObserverIdentifier","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler":{"name":"SDLPermissionsChangedHandler","abstract":"<p>The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change.</p>"},"Type Definitions.html#/c:SDLPermissionStatus.h@T@SDLPermissionStatus":{"name":"SDLPermissionStatus","abstract":"<p>Enumeration that describes possible permission states of a policy table entry. Used in nothing.</p>"},"Type Definitions.html#/c:SDLPowerModeQualificationStatus.h@T@SDLPowerModeQualificationStatus":{"name":"SDLPowerModeQualificationStatus","abstract":"<p>Describes the power mode qualification status. Used in ClusterModeStatus.</p>"},"Type Definitions.html#/c:SDLPowerModeStatus.h@T@SDLPowerModeStatus":{"name":"SDLPowerModeStatus","abstract":"<p>The status of the car’s power. Used in ClusterModeStatus.</p>"},"Type Definitions.html#/c:SDLPredefinedLayout.h@T@SDLPredefinedLayout":{"name":"SDLPredefinedLayout","abstract":"<p>A template layout an app uses to display information. The broad details of the layout are defined, but the details depend on the IVI system. Used in SetDisplayLayout.</p>"},"Type Definitions.html#/c:SDLPrerecordedSpeech.h@T@SDLPrerecordedSpeech":{"name":"SDLPrerecordedSpeech","abstract":"<p>Contains information about the speech capabilities on the SDL platform. Used in RegisterAppInterfaceResponse to indicate capability.</p>"},"Type Definitions.html#/c:SDLPrimaryAudioSource.h@T@SDLPrimaryAudioSource":{"name":"SDLPrimaryAudioSource","abstract":"<p>Reflects the current primary audio source of SDL (if selected). Used in DeviceStatus.</p>"},"Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand":{"name":"SDLRadioBand","abstract":"<p>Radio bands, such as AM and FM, used in RadioControlData</p>"},"Type Definitions.html#/c:SDLRadioState.h@T@SDLRadioState":{"name":"SDLRadioState","abstract":"<p>List possible states of a remote control radio module. Used in RadioControlData.</p>"},"Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType":{"name":"SDLRequestType","abstract":"<p>A type of system request. Used in SystemRequest.</p>"},"Type Definitions.html#/c:SDLResult.h@T@SDLResult":{"name":"SDLResult","abstract":"<p>Defines the possible result codes returned by SDL to the application in a response to a requested operation. Used in RPC responses</p>"},"Type Definitions.html#/c:SDLSamplingRate.h@T@SDLSamplingRate":{"name":"SDLSamplingRate","abstract":"<p>Describes different sampling rates for PerformAudioPassThru and AudioPassThruCapabilities</p>"},"Type Definitions.html#/c:SDLScreenManager.h@T@SDLScreenManagerUpdateCompletionHandler":{"name":"SDLScreenManagerUpdateCompletionHandler","abstract":"<p>The handler run when the update has completed</p>"},"Type Definitions.html#/c:SDLScreenManager.h@T@SDLPreloadChoiceCompletionHandler":{"name":"SDLPreloadChoiceCompletionHandler","abstract":"<p>Return an error with userinfo [key: SDLChoiceCell, value: NSError] if choices failed to upload</p>"},"Type Definitions.html#/c:SDLSeatMemoryActionType.h@T@SDLSeatMemoryActionType":{"name":"SDLSeatMemoryActionType","abstract":"<p>List of possible actions on Seat Meomry</p>"},"Type Definitions.html#/c:SDLSoftButtonType.h@T@SDLSoftButtonType":{"name":"SDLSoftButtonType","abstract":"<p>SoftButtonType (TEXT / IMAGE / BOTH). Used by SoftButton.</p>"},"Type Definitions.html#/c:SDLSpeechCapabilities.h@T@SDLSpeechCapabilities":{"name":"SDLSpeechCapabilities","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName":{"name":"SDLStaticIconName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLVideoStreamManagerState":{"name":"SDLVideoStreamManagerState","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLAudioStreamManagerState":{"name":"SDLAudioStreamManagerState","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLAppState":{"name":"SDLAppState","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLSupportedSeat.h@T@SDLSupportedSeat":{"name":"SDLSupportedSeat","abstract":"<p>List possible seats that is a remote controllable seat.</p>"},"Type Definitions.html#/c:SDLSystemAction.h@T@SDLSystemAction":{"name":"SDLSystemAction","abstract":"<p>Enumeration that describes system actions that can be triggered. Used in SoftButton.</p>"},"Type Definitions.html#/c:SDLSystemCapabilityManager.h@T@SDLUpdateCapabilityHandler":{"name":"SDLUpdateCapabilityHandler","abstract":"<p>A completion handler called after a request for the capability type is returned from the remote system.</p>"},"Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType":{"name":"SDLSystemCapabilityType","abstract":"<p>The type of system capability to get more information on. Used in GetSystemCapability.</p>"},"Type Definitions.html#/c:SDLSystemContext.h@T@SDLSystemContext":{"name":"SDLSystemContext","abstract":"<p>Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR). Used in OnHMIStatus</p>"},"Type Definitions.html#/c:SDLTBTState.h@T@SDLTBTState":{"name":"SDLTBTState","abstract":"<p>The turn-by-turn state, used in OnTBTClientState.</p>"},"Type Definitions.html#/c:SDLTPMS.h@T@SDLTPMS":{"name":"SDLTPMS","abstract":"<p>An enum representing values of the tire pressure monitoring system</p>"},"Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit":{"name":"SDLTemperatureUnit","abstract":"<p>The unit of temperature to display. Used in Temperature.</p>"},"Type Definitions.html#/c:SDLTextAlignment.h@T@SDLTextAlignment":{"name":"SDLTextAlignment","abstract":"<p>The list of possible alignments of text in a field. May only work on some display types. used in Show.</p>"},"Type Definitions.html#/c:SDLTextFieldName.h@T@SDLTextFieldName":{"name":"SDLTextFieldName","abstract":"<p>Names of the text fields that can appear on a SDL display. Used in TextFieldName.</p>"},"Type Definitions.html#/c:SDLTimerMode.h@T@SDLTimerMode":{"name":"SDLTimerMode","abstract":"<p>The direction of a timer. Used in nothing.</p>"},"Type Definitions/SDLTouchIdentifier.html":{"name":"SDLTouchIdentifier","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLTouchManager.h@T@SDLTouchEventHandler":{"name":"SDLTouchEventHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLTouchType.h@T@SDLTouchType":{"name":"SDLTouchType","abstract":"<p>The type of a touch in a projection application. Used in OnTouchEvent.</p>"},"Type Definitions.html#/c:SDLTriggerSource.h@T@SDLTriggerSource":{"name":"SDLTriggerSource","abstract":"<p>Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons). Used in PerformInteractionResponse and OnCommand.</p>"},"Type Definitions.html#/c:SDLTurnSignal.h@T@SDLTurnSignal":{"name":"SDLTurnSignal","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode":{"name":"SDLUpdateMode","abstract":"<p>Specifies what function should be performed on the media clock/counter. Used in SetMediaClockTimer.</p>"},"Type Definitions.html#/c:SDLVehicleDataActiveStatus.h@T@SDLVehicleDataActiveStatus":{"name":"SDLVehicleDataActiveStatus","abstract":"<p>Vehicle Data Activity Status. Used in nothing.</p>"},"Type Definitions.html#/c:SDLVehicleDataEventStatus.h@T@SDLVehicleDataEventStatus":{"name":"SDLVehicleDataEventStatus","abstract":"<p>Reflects the status of a vehicle data event; e.g. a seat belt event status. Used in retrieving vehicle data.</p>"},"Type Definitions.html#/c:SDLVehicleDataNotificationStatus.h@T@SDLVehicleDataNotificationStatus":{"name":"SDLVehicleDataNotificationStatus","abstract":"<p>Reflects the status of a vehicle data notification. Used in ECallInfo</p>"},"Type Definitions.html#/c:SDLVehicleDataResultCode.h@T@SDLVehicleDataResultCode":{"name":"SDLVehicleDataResultCode","abstract":"<p>Vehicle Data Result Code. Used in DIDResult.</p>"},"Type Definitions.html#/c:SDLVehicleDataStatus.h@T@SDLVehicleDataStatus":{"name":"SDLVehicleDataStatus","abstract":"<p>Reflects the status of a binary vehicle data item. Used in MyKey.</p>"},"Type Definitions.html#/c:SDLVehicleDataType.h@T@SDLVehicleDataType":{"name":"SDLVehicleDataType","abstract":"<p>Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData. Used in VehicleDataResult</p>"},"Type Definitions.html#/c:SDLVentilationMode.h@T@SDLVentilationMode":{"name":"SDLVentilationMode","abstract":"<p>The ventilation mode. Used in ClimateControlCapabilities</p>"},"Type Definitions.html#/c:SDLVideoStreamingCodec.h@T@SDLVideoStreamingCodec":{"name":"SDLVideoStreamingCodec","abstract":"<p>Enum for each type of video streaming codec. Used in VideoStreamingFormat.</p>"},"Type Definitions.html#/c:SDLVideoStreamingProtocol.h@T@SDLVideoStreamingProtocol":{"name":"SDLVideoStreamingProtocol","abstract":"<p>Enum for each type of video streaming protocol, used in VideoStreamingFormat</p>"},"Type Definitions.html#/c:SDLVideoStreamingState.h@T@SDLVideoStreamingState":{"name":"SDLVideoStreamingState","abstract":"<p>Enum for each type of video streaming protocol, used in VideoStreamingFormat</p>"},"Type Definitions.html#/c:SDLVoiceCommand.h@T@SDLVoiceCommandSelectionHandler":{"name":"SDLVoiceCommandSelectionHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLVrCapabilities.h@T@SDLVRCapabilities":{"name":"SDLVRCapabilities","abstract":"<p>The VR capabilities of the connected SDL platform. Used in RegisterAppInterfaceResponse.</p>"},"Type Definitions.html#/c:SDLWarningLightStatus.h@T@SDLWarningLightStatus":{"name":"SDLWarningLightStatus","abstract":"<p>Reflects the status of a cluster instrument warning light. Used in TireStatus</p>"},"Type Definitions.html#/c:SDLWayPointType.h@T@SDLWayPointType":{"name":"SDLWayPointType","abstract":"<p>The type of a navigation waypoint. Used in GetWayPoints.</p>"},"Type Definitions.html#/c:SDLWiperStatus.h@T@SDLWiperStatus":{"name":"SDLWiperStatus","abstract":"<p>The status of the windshield wipers. Used in retrieving vehicle data.</p>"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveSingleTapForView:atPoint:":{"name":"-touchManager:didReceiveSingleTapForView:atPoint:","abstract":"<p>A single tap was received</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveDoubleTapForView:atPoint:":{"name":"-touchManager:didReceiveDoubleTapForView:atPoint:","abstract":"<p>A double tap was received</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidStartInView:atPoint:":{"name":"-touchManager:panningDidStartInView:atPoint:","abstract":"<p>Panning started</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePanningFromPoint:toPoint:":{"name":"-touchManager:didReceivePanningFromPoint:toPoint:","abstract":"<p>Panning moved between points</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidEndInView:atPoint:":{"name":"-touchManager:panningDidEndInView:atPoint:","abstract":"<p>Panning ended</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningCanceledAtPoint:":{"name":"-touchManager:panningCanceledAtPoint:","abstract":"<p>Panning canceled</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidStartInView:atCenterPoint:":{"name":"-touchManager:pinchDidStartInView:atCenterPoint:","abstract":"<p>Pinch did start</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchAtCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchAtCenterPoint:withScale:","abstract":"<p>@abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchInView:atCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchInView:atCenterPoint:withScale:","abstract":"<p>Pinch moved and changed scale</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidEndInView:atCenterPoint:":{"name":"-touchManager:pinchDidEndInView:atCenterPoint:","abstract":"<p>Pinch did end</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchCanceledAtCenterPoint:":{"name":"-touchManager:pinchCanceledAtCenterPoint:","abstract":"<p>Pinch canceled</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLStreamingMediaManagerDataSource.html#/c:objc(pl)SDLStreamingMediaManagerDataSource(im)preferredVideoFormatOrderFromHeadUnitPreferredOrder:":{"name":"-preferredVideoFormatOrderFromHeadUnitPreferredOrder:","abstract":"<p>Implement to return a different preferred order of attempted format usage than the head unit’s preferred order. In nearly all cases, it’s best to simply return the head unit’s preferred order, or not implement this method (which does the same thing).</p>","parent_name":"SDLStreamingMediaManagerDataSource"},"Protocols/SDLStreamingMediaManagerDataSource.html#/c:objc(pl)SDLStreamingMediaManagerDataSource(im)resolutionFromHeadUnitPreferredResolution:":{"name":"-resolutionFromHeadUnitPreferredResolution:","abstract":"<p>Implement to return a different resolution to use for video streaming than the head unit’s requested resolution. If you return a resolution that the head unit does not like, the manager will fail to start up. In nearly all cases, it’s best to simply return the head unit’s preferred order, or not implement this method (which does the same thing), and adapt your UI to the head unit’s preferred resolution instead.</p>","parent_name":"SDLStreamingMediaManagerDataSource"},"Protocols/SDLStreamingAudioManagerType.html#/c:objc(pl)SDLStreamingAudioManagerType(py)audioConnected":{"name":"audioConnected","abstract":"<p>Whether or not the audio byte stream is currently connected</p>","parent_name":"SDLStreamingAudioManagerType"},"Protocols/SDLStreamingAudioManagerType.html#/c:objc(pl)SDLStreamingAudioManagerType(im)sendAudioData:":{"name":"-sendAudioData:","abstract":"<p>Send audio data bytes over the audio byte stream</p>","parent_name":"SDLStreamingAudioManagerType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(py)appId":{"name":"appId","abstract":"<p>The app id of the app</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)initializeWithAppId:completionHandler:":{"name":"-initializeWithAppId:completionHandler:","abstract":"<p>Initialize the SDL security library with the app’s id and a completion handler</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)stop":{"name":"-stop","abstract":"<p>Stop the security library</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)runHandshakeWithClientData:error:":{"name":"-runHandshakeWithClientData:error:","abstract":"<p>Run the SSL/TLS handshake</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)encryptData:withError:":{"name":"-encryptData:withError:","abstract":"<p>Encrypt data using SSL/TLS</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)decryptData:withError:":{"name":"-decryptData:withError:","abstract":"<p>Decrypt data using SSL/TLS</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(cm)availableMakes":{"name":"+availableMakes","abstract":"<p>The vehicle makes this security library covers</p>","parent_name":"SDLSecurityType"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)managerDidDisconnect":{"name":"-managerDidDisconnect","abstract":"<p>Called upon a disconnection from the remote system.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)hmiLevel:didChangeToLevel:":{"name":"-hmiLevel:didChangeToLevel:","abstract":"<p>Called when the HMI level state of this application changes on the remote system. This is equivalent to the application’s state changes in iOS such as foreground, background, or closed.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)audioStreamingState:didChangeToState:":{"name":"-audioStreamingState:didChangeToState:","abstract":"<p>Called when the audio streaming state of this application changes on the remote system. This refers to when streaming audio is audible to the user.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)systemContext:didChangeToContext:":{"name":"-systemContext:didChangeToContext:","abstract":"<p>Called when the system context of this application changes on the remote system. This refers to whether or not a user-initiated interaction is in progress, and if so, what it is.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)managerShouldUpdateLifecycleToLanguage:":{"name":"-managerShouldUpdateLifecycleToLanguage:","abstract":"<p>Called when the lifecycle manager detected a language mismatch. In case of a language mismatch the manager should change the apps registration by updating the lifecycle configuration to the specified language. If the app can support the specified language it should return an Object of SDLLifecycleConfigurationUpdate, otherwise it should return nil to indicate that the language is not supported.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(cm)logger":{"name":"+logger","abstract":"<p>A simple convenience initializer to create the object. This <em>should not</em> start up the logger.</p>","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)setupLogger":{"name":"-setupLogger","abstract":"<p>A call to setup the logger in whatever manner it needs to do so.</p>","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)logWithLog:formattedLog:":{"name":"-logWithLog:formattedLog:","abstract":"<p>Log a particular log using the model and the formatted log message to the target.</p>","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)teardownLogger":{"name":"-teardownLogger","abstract":"<p>The log target should be torn down. e.g. file handles should be closed</p>","parent_name":"SDLLogTarget"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)userDidSubmitInput:withEvent:":{"name":"-userDidSubmitInput:withEvent:","abstract":"<p>The keyboard session completed with some input.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)keyboardDidAbortWithReason:":{"name":"-keyboardDidAbortWithReason:","abstract":"<p>The keyboard session aborted.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)customKeyboardConfiguration":{"name":"-customKeyboardConfiguration","abstract":"<p>Implement this in order to provide a custom keyboard configuration to just this keyboard. To apply default settings to all keyboards, see SDLScreenManager.keyboardConfiguration</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)updateAutocompleteWithInput:completionHandler:":{"name":"-updateAutocompleteWithInput:completionHandler:","abstract":"<p>Implement this if you wish to update the KeyboardProperties.autoCompleteText as the user updates their input. This is called upon a KEYPRESS event.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)updateCharacterSetWithInput:completionHandler:":{"name":"-updateCharacterSetWithInput:completionHandler:","abstract":"<p>Implement this if you wish to update the limitedCharacterSet as the user updates their input. This is called upon a KEYPRESS event.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)keyboardDidSendEvent:text:":{"name":"-keyboardDidSendEvent:text:","abstract":"<p>Implement this to be notified of all events occurring on the keyboard</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLChoiceSetDelegate.html#/c:objc(pl)SDLChoiceSetDelegate(im)choiceSet:didSelectChoice:withSource:atRowIndex:":{"name":"-choiceSet:didSelectChoice:withSource:atRowIndex:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetDelegate"},"Protocols/SDLChoiceSetDelegate.html#/c:objc(pl)SDLChoiceSetDelegate(im)choiceSet:didReceiveError:":{"name":"-choiceSet:didReceiveError:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetDelegate"},"Protocols/SDLAudioStreamManagerDelegate.html#/c:objc(pl)SDLAudioStreamManagerDelegate(im)audioStreamManager:fileDidFinishPlaying:successfully:":{"name":"-audioStreamManager:fileDidFinishPlaying:successfully:","abstract":"<p>Called when a file from the SDLAudioStreamManager finishes playing</p>","parent_name":"SDLAudioStreamManagerDelegate"},"Protocols/SDLAudioStreamManagerDelegate.html#/c:objc(pl)SDLAudioStreamManagerDelegate(im)audioStreamManager:errorDidOccurForFile:error:":{"name":"-audioStreamManager:errorDidOccurForFile:error:","abstract":"<p>Called when a file from the SDLAudioStreamManager could not play</p>","parent_name":"SDLAudioStreamManagerDelegate"},"Protocols.html#/c:objc(pl)SDLInt":{"name":"SDLInt","abstract":"<p>A decleration that this NSNumber contains an NSInteger.</p>"},"Protocols.html#/c:objc(pl)SDLUInt":{"name":"SDLUInt","abstract":"<p>A declaration that this NSNumber contains an NSUInteger.</p>"},"Protocols.html#/c:objc(pl)SDLBool":{"name":"SDLBool","abstract":"<p>A declaration that this NSNumber contains a BOOL.</p>"},"Protocols.html#/c:objc(pl)SDLFloat":{"name":"SDLFloat","abstract":"<p>A declaration that this NSNumber contains a float.</p>"},"Protocols/SDLAudioStreamManagerDelegate.html":{"name":"SDLAudioStreamManagerDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLChoiceSetDelegate.html":{"name":"SDLChoiceSetDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLKeyboardDelegate.html":{"name":"SDLKeyboardDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLLogTarget.html":{"name":"SDLLogTarget","abstract":"<p>A protocol describing a place logs from SDLLogManager are logged to</p>"},"Protocols/SDLManagerDelegate.html":{"name":"SDLManagerDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLSecurityType.html":{"name":"SDLSecurityType","abstract":"<p>A protocol used by SDL Security libraries.</p>"},"Protocols/SDLStreamingAudioManagerType.html":{"name":"SDLStreamingAudioManagerType","abstract":"<p>Undocumented</p>"},"Protocols/SDLStreamingMediaManagerDataSource.html":{"name":"SDLStreamingMediaManagerDataSource","abstract":"<p>Undocumented</p>"},"Protocols/SDLTouchManagerDelegate.html":{"name":"SDLTouchManagerDelegate","abstract":"<p>Undocumented</p>"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagNone":{"name":"SDLStreamingEncryptionFlagNone","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagAuthenticateOnly":{"name":"SDLStreamingEncryptionFlagAuthenticateOnly","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagAuthenticateAndEncrypt":{"name":"SDLStreamingEncryptionFlagAuthenticateAndEncrypt","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLCarWindowRenderingType.html#/c:@E@SDLCarWindowRenderingType@SDLCarWindowRenderingTypeLayer":{"name":"SDLCarWindowRenderingTypeLayer","abstract":"<p>Undocumented</p>","parent_name":"SDLCarWindowRenderingType"},"Enums/SDLCarWindowRenderingType.html#/c:@E@SDLCarWindowRenderingType@SDLCarWindowRenderingTypeViewAfterScreenUpdates":{"name":"SDLCarWindowRenderingTypeViewAfterScreenUpdates","abstract":"<p>Undocumented</p>","parent_name":"SDLCarWindowRenderingType"},"Enums/SDLCarWindowRenderingType.html#/c:@E@SDLCarWindowRenderingType@SDLCarWindowRenderingTypeViewBeforeScreenUpdates":{"name":"SDLCarWindowRenderingTypeViewBeforeScreenUpdates","abstract":"<p>Undocumented</p>","parent_name":"SDLCarWindowRenderingType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeRequest":{"name":"SDLRPCMessageTypeRequest","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeResponse":{"name":"SDLRPCMessageTypeResponse","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeNotification":{"name":"SDLRPCMessageTypeNotification","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessageType"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusAllowed":{"name":"SDLPermissionGroupStatusAllowed","abstract":"<p>Every RPC in the group is currently allowed.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusDisallowed":{"name":"SDLPermissionGroupStatusDisallowed","abstract":"<p>Every RPC in the group is currently disallowed.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusMixed":{"name":"SDLPermissionGroupStatusMixed","abstract":"<p>Some RPCs in the group are allowed and some disallowed.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusUnknown":{"name":"SDLPermissionGroupStatusUnknown","abstract":"<p>The current status of the group is unknown.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAllAllowed":{"name":"SDLPermissionGroupTypeAllAllowed","abstract":"<p>Be notified when all of the RPC in the group are allowed, or, when they all stop being allowed in some sense, that is, when they were all allowed, and now they are not.</p>","parent_name":"SDLPermissionGroupType"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAny":{"name":"SDLPermissionGroupTypeAny","abstract":"<p>Be notified when any change in availability occurs among the group.</p>","parent_name":"SDLPermissionGroupType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeSimple":{"name":"SDLLogFormatTypeSimple","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFormatType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeDefault":{"name":"SDLLogFormatTypeDefault","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFormatType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeDetailed":{"name":"SDLLogFormatTypeDetailed","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFormatType"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelDefault":{"name":"SDLLogLevelDefault","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelOff":{"name":"SDLLogLevelOff","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelError":{"name":"SDLLogLevelError","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelWarning":{"name":"SDLLogLevelWarning","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelDebug":{"name":"SDLLogLevelDebug","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelVerbose":{"name":"SDLLogLevelVerbose","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagError":{"name":"SDLLogFlagError","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagWarning":{"name":"SDLLogFlagWarning","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagDebug":{"name":"SDLLogFlagDebug","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagVerbose":{"name":"SDLLogFlagVerbose","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogBytesDirection.html#/c:@E@SDLLogBytesDirection@SDLLogBytesDirectionTransmit":{"name":"SDLLogBytesDirectionTransmit","abstract":"<p>Undocumented</p>","parent_name":"SDLLogBytesDirection"},"Enums/SDLLogBytesDirection.html#/c:@E@SDLLogBytesDirection@SDLLogBytesDirectionReceive":{"name":"SDLLogBytesDirectionReceive","abstract":"<p>Undocumented</p>","parent_name":"SDLLogBytesDirection"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorUnknown":{"name":"SDLTransportErrorUnknown","abstract":"<p>Connection cannot be established due to a reason not listed here.</p>","parent_name":"SDLTransportError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorConnectionRefused":{"name":"SDLTransportErrorConnectionRefused","abstract":"<p>TCP connection is refused.","parent_name":"SDLTransportError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorConnectionTimedOut":{"name":"SDLTransportErrorConnectionTimedOut","abstract":"<p>TCP connection cannot be established within given time.","parent_name":"SDLTransportError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorNetworkDown":{"name":"SDLTransportErrorNetworkDown","abstract":"<p>TCP connection cannot be established since network is down.","parent_name":"SDLTransportError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorPendingPresentationDeleted":{"name":"SDLChoiceSetManagerErrorPendingPresentationDeleted","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorDeletionFailed":{"name":"SDLChoiceSetManagerErrorDeletionFailed","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorUploadFailed":{"name":"SDLChoiceSetManagerErrorUploadFailed","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLMenuManagerError.html#/c:@E@SDLMenuManagerError@SDLMenuManagerErrorRPCsFailed":{"name":"SDLMenuManagerErrorRPCsFailed","abstract":"<p>Undocumented</p>","parent_name":"SDLMenuManagerError"},"Enums/SDLSoftButtonManagerError.html#/c:@E@SDLSoftButtonManagerError@SDLSoftButtonManagerErrorPendingUpdateSuperseded":{"name":"SDLSoftButtonManagerErrorPendingUpdateSuperseded","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButtonManagerError"},"Enums/SDLTextAndGraphicManagerError.html#/c:@E@SDLTextAndGraphicManagerError@SDLTextAndGraphicManagerErrorPendingUpdateSuperseded":{"name":"SDLTextAndGraphicManagerErrorPendingUpdateSuperseded","abstract":"<p>Undocumented</p>","parent_name":"SDLTextAndGraphicManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorCannotOverwrite":{"name":"SDLFileManagerErrorCannotOverwrite","abstract":"<p>A file attempted to send, but a file with that name already exists on the remote head unit, and the file was not configured to overwrite.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorNoKnownFile":{"name":"SDLFileManagerErrorNoKnownFile","abstract":"<p>A file was attempted to be accessed but it does not exist.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToStart":{"name":"SDLFileManagerErrorUnableToStart","abstract":"<p>The file manager attempted to start but encountered an error.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToUpload":{"name":"SDLFileManagerErrorUnableToUpload","abstract":"<p>The file manager was unable to send this file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorFileDoesNotExist":{"name":"SDLFileManagerErrorFileDoesNotExist","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerUploadCanceled":{"name":"SDLFileManagerUploadCanceled","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerMultipleFileUploadTasksFailed":{"name":"SDLFileManagerMultipleFileUploadTasksFailed","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerMultipleFileDeleteTasksFailed":{"name":"SDLFileManagerMultipleFileDeleteTasksFailed","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorFileDataMissing":{"name":"SDLFileManagerErrorFileDataMissing","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRPCRequestFailed":{"name":"SDLManagerErrorRPCRequestFailed","abstract":"<p>An RPC request failed to send.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotConnected":{"name":"SDLManagerErrorNotConnected","abstract":"<p>Some action was attempted that requires a connection to the remote head unit.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotReady":{"name":"SDLManagerErrorNotReady","abstract":"<p>Some action was attempted before the ready state was reached.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorUnknownRemoteError":{"name":"SDLManagerErrorUnknownRemoteError","abstract":"<p>The remote system encountered an unknown error.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorManagersFailedToStart":{"name":"SDLManagerErrorManagersFailedToStart","abstract":"<p>One or more of the sub-managers failed to start.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationFailed":{"name":"SDLManagerErrorRegistrationFailed","abstract":"<p>Registering with the remote system failed.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationSuccessWithWarning":{"name":"SDLManagerErrorRegistrationSuccessWithWarning","abstract":"<p>Registering with the remote system was successful, but had a warning.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorCancelled":{"name":"SDLManagerErrorCancelled","abstract":"<p>Request operations were cancelled before they could be sent</p>","parent_name":"SDLManagerError"},"Enums/SDLChoiceSetLayout.html#/c:@E@SDLChoiceSetLayout@SDLChoiceSetLayoutList":{"name":"SDLChoiceSetLayoutList","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetLayout"},"Enums/SDLChoiceSetLayout.html#/c:@E@SDLChoiceSetLayout@SDLChoiceSetLayoutTiles":{"name":"SDLChoiceSetLayoutTiles","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetLayout"},"Enums/SDLAudioStreamManagerError.html#/c:@E@SDLAudioStreamManagerError@SDLAudioStreamManagerErrorNotConnected":{"name":"SDLAudioStreamManagerErrorNotConnected","abstract":"<p>Undocumented</p>","parent_name":"SDLAudioStreamManagerError"},"Enums/SDLAudioStreamManagerError.html#/c:@E@SDLAudioStreamManagerError@SDLAudioStreamManagerErrorNoQueuedAudio":{"name":"SDLAudioStreamManagerErrorNoQueuedAudio","abstract":"<p>Undocumented</p>","parent_name":"SDLAudioStreamManagerError"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatPNG":{"name":"SDLArtworkImageFormatPNG","abstract":"<p>Undocumented</p>","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatJPG":{"name":"SDLArtworkImageFormatJPG","abstract":"<p>Undocumented</p>","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html":{"name":"SDLArtworkImageFormat","abstract":"<p>Undocumented</p>"},"Enums/SDLAudioStreamManagerError.html":{"name":"SDLAudioStreamManagerError","abstract":"<p>Undocumented</p>"},"Enums/SDLChoiceSetLayout.html":{"name":"SDLChoiceSetLayout","abstract":"<p>Undocumented</p>"},"Enums/SDLManagerError.html":{"name":"SDLManagerError","abstract":"<p>Errors associated with the SDLManager class.</p>"},"Enums/SDLFileManagerError.html":{"name":"SDLFileManagerError","abstract":"<p>Errors associated with the SDLFileManager class.</p>"},"Enums/SDLTextAndGraphicManagerError.html":{"name":"SDLTextAndGraphicManagerError","abstract":"<p>Errors associated with the ScreenManager class</p>"},"Enums/SDLSoftButtonManagerError.html":{"name":"SDLSoftButtonManagerError","abstract":"<p>Errors associated with the ScreenManager class</p>"},"Enums/SDLMenuManagerError.html":{"name":"SDLMenuManagerError","abstract":"<p>Errors associated with the ScreenManager class</p>"},"Enums/SDLChoiceSetManagerError.html":{"name":"SDLChoiceSetManagerError","abstract":"<p>Undocumented</p>"},"Enums/SDLTransportError.html":{"name":"SDLTransportError","abstract":"<p>Errors associated with transport.</p>"},"Enums/SDLLogBytesDirection.html":{"name":"SDLLogBytesDirection","abstract":"<p>Undocumented</p>"},"Enums/SDLLogFlag.html":{"name":"SDLLogFlag","abstract":"<p>Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use.</p>"},"Enums/SDLLogLevel.html":{"name":"SDLLogLevel","abstract":"<p>An enum describing a level of logging.</p>"},"Enums/SDLLogFormatType.html":{"name":"SDLLogFormatType","abstract":"<p>The output format of logs; how they will appear when printed out into a string.</p>"},"Enums/SDLPermissionGroupType.html":{"name":"SDLPermissionGroupType","abstract":"<p>A permission group type which will be used to tell the system what type of changes you want to be notified about for the group.</p>"},"Enums/SDLPermissionGroupStatus.html":{"name":"SDLPermissionGroupStatus","abstract":"<p>The status of the group of RPCs permissions.</p>"},"Enums/SDLRPCMessageType.html":{"name":"SDLRPCMessageType","abstract":"<p>The type of RPC message</p>"},"Enums/SDLCarWindowRenderingType.html":{"name":"SDLCarWindowRenderingType","abstract":"<p>The type of rendering that CarWindow will perform. Depending on your app, you may need to try different ones for best performance</p>"},"Enums/SDLStreamingEncryptionFlag.html":{"name":"SDLStreamingEncryptionFlag","abstract":"<p>A flag determining how video and audio streaming should be encrypted</p>"},"Constants.html#/c:@SDLAmbientLightStatusNight":{"name":"SDLAmbientLightStatusNight","abstract":"<p>Represents a <q>night</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight1":{"name":"SDLAmbientLightStatusTwilight1","abstract":"<p>Represents a <q>twilight 1</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight2":{"name":"SDLAmbientLightStatusTwilight2","abstract":"<p>Represents a <q>twilight 2</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight3":{"name":"SDLAmbientLightStatusTwilight3","abstract":"<p>Represents a <q>twilight 3</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight4":{"name":"SDLAmbientLightStatusTwilight4","abstract":"<p>Represents a <q>twilight 4</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusDay":{"name":"SDLAmbientLightStatusDay","abstract":"<p>Represents a <q>day</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusUnknown":{"name":"SDLAmbientLightStatusUnknown","abstract":"<p>Represents an <q>unknown</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusInvalid":{"name":"SDLAmbientLightStatusInvalid","abstract":"<p>Represents a <q>invalid</q> ambient light status</p>"},"Constants.html#/c:@SDLAppHMITypeDefault":{"name":"SDLAppHMITypeDefault","abstract":"<p>The App will have default rights.</p>"},"Constants.html#/c:@SDLAppHMITypeCommunication":{"name":"SDLAppHMITypeCommunication","abstract":"<p>Communication type of App</p>"},"Constants.html#/c:@SDLAppHMITypeMedia":{"name":"SDLAppHMITypeMedia","abstract":"<p>App dealing with Media</p>"},"Constants.html#/c:@SDLAppHMITypeMessaging":{"name":"SDLAppHMITypeMessaging","abstract":"<p>Messaging App</p>"},"Constants.html#/c:@SDLAppHMITypeNavigation":{"name":"SDLAppHMITypeNavigation","abstract":"<p>Navigation App</p>"},"Constants.html#/c:@SDLAppHMITypeInformation":{"name":"SDLAppHMITypeInformation","abstract":"<p>Information App</p>"},"Constants.html#/c:@SDLAppHMITypeSocial":{"name":"SDLAppHMITypeSocial","abstract":"<p>App dealing with social media</p>"},"Constants.html#/c:@SDLAppHMITypeProjection":{"name":"SDLAppHMITypeProjection","abstract":"<p>App dealing with Mobile Projection applications</p>"},"Constants.html#/c:@SDLAppHMITypeBackgroundProcess":{"name":"SDLAppHMITypeBackgroundProcess","abstract":"<p>App designed for use in the background</p>"},"Constants.html#/c:@SDLAppHMITypeTesting":{"name":"SDLAppHMITypeTesting","abstract":"<p>App only for Testing purposes</p>"},"Constants.html#/c:@SDLAppHMITypeSystem":{"name":"SDLAppHMITypeSystem","abstract":"<p>System App</p>"},"Constants.html#/c:@SDLAppHMITypeRemoteControl":{"name":"SDLAppHMITypeRemoteControl","abstract":"<p>Remote control</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonIgnitionOff":{"name":"SDLAppInterfaceUnregisteredReasonIgnitionOff","abstract":"<p>Vehicle ignition turned off.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonBluetoothOff":{"name":"SDLAppInterfaceUnregisteredReasonBluetoothOff","abstract":"<p>Bluetooth was turned off, causing termination of a necessary Bluetooth connection.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUSBDisconnected":{"name":"SDLAppInterfaceUnregisteredReasonUSBDisconnected","abstract":"<p>USB was disconnected, causing termination of a necessary iAP connection.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel":{"name":"SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel","abstract":"<p>Application attempted SmartDeviceLink RPC request while HMILevel = NONE. App must have HMILevel other than NONE to issue RPC requests or get notifications or RPC responses.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonTooManyRequests":{"name":"SDLAppInterfaceUnregisteredReasonTooManyRequests","abstract":"<p>Either too many – or too many per unit of time – requests were made by the application.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonDriverDistractionViolation":{"name":"SDLAppInterfaceUnregisteredReasonDriverDistractionViolation","abstract":"<p>The application has issued requests which cause driver distraction rules to be violated.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonLanguageChange":{"name":"SDLAppInterfaceUnregisteredReasonLanguageChange","abstract":"<p>The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonMasterReset":{"name":"SDLAppInterfaceUnregisteredReasonMasterReset","abstract":"<p>The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonFactoryDefaults":{"name":"SDLAppInterfaceUnregisteredReasonFactoryDefaults","abstract":"<p>The user restored settings to FACTORY DEFAULTS on the SDL platform.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonAppUnauthorized":{"name":"SDLAppInterfaceUnregisteredReasonAppUnauthorized","abstract":"<p>The app is not being authorized to be connected to SDL.</p>"},"Constants.html#/c:@SDLErrorDomainAudioStreamManager":{"name":"SDLErrorDomainAudioStreamManager","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamingIndicatorPlayPause":{"name":"SDLAudioStreamingIndicatorPlayPause","abstract":"<p>Default playback indicator."},"Constants.html#/c:@SDLAudioStreamingIndicatorPlay":{"name":"SDLAudioStreamingIndicatorPlay","abstract":"<p>Indicates that a button press of the Play/Pause button starts the audio playback.</p>"},"Constants.html#/c:@SDLAudioStreamingIndicatorPause":{"name":"SDLAudioStreamingIndicatorPause","abstract":"<p>Indicates that a button press of the Play/Pause button pauses the current audio playback.</p>"},"Constants.html#/c:@SDLAudioStreamingIndicatorStop":{"name":"SDLAudioStreamingIndicatorStop","abstract":"<p>Indicates that a button press of the Play/Pause button stops the current audio playback.</p>"},"Constants.html#/c:@SDLAudioStreamingStateAudible":{"name":"SDLAudioStreamingStateAudible","abstract":"<p>Currently streaming audio, if any, is audible to user.</p>"},"Constants.html#/c:@SDLAudioStreamingStateAttenuated":{"name":"SDLAudioStreamingStateAttenuated","abstract":"<p>Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume.</p>"},"Constants.html#/c:@SDLAudioStreamingStateNotAudible":{"name":"SDLAudioStreamingStateNotAudible","abstract":"<p>Currently streaming audio, if any, is not audible to user. made via VR session.</p>"},"Constants.html#/c:@SDLAudioTypePCM":{"name":"SDLAudioTypePCM","abstract":"<p>PCM raw audio</p>"},"Constants.html#/c:@SDLBitsPerSample8Bit":{"name":"SDLBitsPerSample8Bit","abstract":"<p>8 bits per sample</p>"},"Constants.html#/c:@SDLBitsPerSample16Bit":{"name":"SDLBitsPerSample16Bit","abstract":"<p>16 bits per sample</p>"},"Constants.html#/c:@SDLButtonEventModeButtonUp":{"name":"SDLButtonEventModeButtonUp","abstract":"<p>The button was released</p>"},"Constants.html#/c:@SDLButtonEventModeButtonDown":{"name":"SDLButtonEventModeButtonDown","abstract":"<p>The button was depressed</p>"},"Constants.html#/c:@SDLButtonNameOk":{"name":"SDLButtonNameOk","abstract":"<p>Represents the button usually labeled <q>OK</q>. A typical use of this button is for the user to press it to make a selection. Prior to SDL Core 5.0 (iOS Proxy v.6.1), Ok was used for both <q>OK</q> buttons <em>AND</em> PlayPause. In 5.0, PlayPause was introduced to reduce confusion, and you should use the one you intend for your use case (usually PlayPause). Until the next proxy breaking change, however, subscribing to this button name will continue to subscribe you to PlayPause so that your code does not break. That means that if you subscribe to both Ok and PlayPause, you will receive duplicate notifications.</p>"},"Constants.html#/c:@SDLButtonNamePlayPause":{"name":"SDLButtonNamePlayPause","abstract":"<p>Represents the play/pause button for media apps. Replaces <q>OK</q> on sub-5.0 head units, compliments it on 5.0 head units and later.</p>"},"Constants.html#/c:@SDLButtonNameSeekLeft":{"name":"SDLButtonNameSeekLeft","abstract":"<p>Represents the seek-left button. A typical use of this button is for the user to scroll to the left through menu choices one menu item per press.</p>"},"Constants.html#/c:@SDLButtonNameSeekRight":{"name":"SDLButtonNameSeekRight","abstract":"<p>Represents the seek-right button. A typical use of this button is for the user to scroll to the right through menu choices one menu item per press.</p>"},"Constants.html#/c:@SDLButtonNameTuneUp":{"name":"SDLButtonNameTuneUp","abstract":"<p>Represents a turn of the tuner knob in the clockwise direction one tick.</p>"},"Constants.html#/c:@SDLButtonNameTuneDown":{"name":"SDLButtonNameTuneDown","abstract":"<p>Represents a turn of the tuner knob in the counter-clockwise direction one tick.</p>"},"Constants.html#/c:@SDLButtonNamePreset0":{"name":"SDLButtonNamePreset0","abstract":"<p>Represents the preset 0 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset1":{"name":"SDLButtonNamePreset1","abstract":"<p>Represents the preset 1 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset2":{"name":"SDLButtonNamePreset2","abstract":"<p>Represents the preset 2 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset3":{"name":"SDLButtonNamePreset3","abstract":"<p>Represents the preset 3 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset4":{"name":"SDLButtonNamePreset4","abstract":"<p>Represents the preset 4 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset5":{"name":"SDLButtonNamePreset5","abstract":"<p>Represents the preset 5 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset6":{"name":"SDLButtonNamePreset6","abstract":"<p>Represents the preset 6 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset7":{"name":"SDLButtonNamePreset7","abstract":"<p>Represents the preset 7 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset8":{"name":"SDLButtonNamePreset8","abstract":"<p>Represents the preset 8 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset9":{"name":"SDLButtonNamePreset9","abstract":"<p>Represents the preset 9 button.</p>"},"Constants.html#/c:@SDLButtonNameCustomButton":{"name":"SDLButtonNameCustomButton","abstract":"<p>Represents the Custom button.</p>"},"Constants.html#/c:@SDLButtonNameSearch":{"name":"SDLButtonNameSearch","abstract":"<p>Represents the SEARCH button.</p>"},"Constants.html#/c:@SDLButtonNameACMax":{"name":"SDLButtonNameACMax","abstract":"<p>Represents AC max button *</p>"},"Constants.html#/c:@SDLButtonNameAC":{"name":"SDLButtonNameAC","abstract":"<p>Represents AC button *</p>"},"Constants.html#/c:@SDLButtonNameRecirculate":{"name":"SDLButtonNameRecirculate","abstract":"<p>Represents a Recirculate button</p>"},"Constants.html#/c:@SDLButtonNameFanUp":{"name":"SDLButtonNameFanUp","abstract":"<p>Represents a Fan up button</p>"},"Constants.html#/c:@SDLButtonNameFanDown":{"name":"SDLButtonNameFanDown","abstract":"<p>Represents a fan down button</p>"},"Constants.html#/c:@SDLButtonNameTempUp":{"name":"SDLButtonNameTempUp","abstract":"<p>Represents a temperature up button</p>"},"Constants.html#/c:@SDLButtonNameTempDown":{"name":"SDLButtonNameTempDown","abstract":"<p>Represents a temperature down button</p>"},"Constants.html#/c:@SDLButtonNameDefrostMax":{"name":"SDLButtonNameDefrostMax","abstract":"<p>Represents a Defrost max button.</p>"},"Constants.html#/c:@SDLButtonNameDefrost":{"name":"SDLButtonNameDefrost","abstract":"<p>Represents a Defrost button.</p>"},"Constants.html#/c:@SDLButtonNameDefrostRear":{"name":"SDLButtonNameDefrostRear","abstract":"<p>Represents a Defrost rear button.</p>"},"Constants.html#/c:@SDLButtonNameUpperVent":{"name":"SDLButtonNameUpperVent","abstract":"<p>Represents a Upper Vent button.</p>"},"Constants.html#/c:@SDLButtonNameLowerVent":{"name":"SDLButtonNameLowerVent","abstract":"<p>Represents a Lower vent button.</p>"},"Constants.html#/c:@SDLButtonNameVolumeUp":{"name":"SDLButtonNameVolumeUp","abstract":"<p>Represents a volume up button.</p>"},"Constants.html#/c:@SDLButtonNameVolumeDown":{"name":"SDLButtonNameVolumeDown","abstract":"<p>Represents a volume down button.</p>"},"Constants.html#/c:@SDLButtonNameEject":{"name":"SDLButtonNameEject","abstract":"<p>Represents a Eject Button.</p>"},"Constants.html#/c:@SDLButtonNameSource":{"name":"SDLButtonNameSource","abstract":"<p>Represents a Source button.</p>"},"Constants.html#/c:@SDLButtonNameShuffle":{"name":"SDLButtonNameShuffle","abstract":"<p>Represents a SHUFFLE button.</p>"},"Constants.html#/c:@SDLButtonNameRepeat":{"name":"SDLButtonNameRepeat","abstract":"<p>Represents a Repeat button.</p>"},"Constants.html#/c:@SDLButtonPressModeLong":{"name":"SDLButtonPressModeLong","abstract":"<p>A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary.</p>"},"Constants.html#/c:@SDLButtonPressModeShort":{"name":"SDLButtonPressModeShort","abstract":"<p>A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary.</p>"},"Constants.html#/c:@SDLCarModeStatusNormal":{"name":"SDLCarModeStatusNormal","abstract":"<p>Provides carmode NORMAL to each module.</p>"},"Constants.html#/c:@SDLCarModeStatusFactory":{"name":"SDLCarModeStatusFactory","abstract":"<p>Provides carmode FACTORY to each module.</p>"},"Constants.html#/c:@SDLCarModeStatusTransport":{"name":"SDLCarModeStatusTransport","abstract":"<p>Provides carmode TRANSPORT to each module.</p>"},"Constants.html#/c:@SDLCarModeStatusCrash":{"name":"SDLCarModeStatusCrash","abstract":"<p>Provides carmode CRASH to each module.</p>"},"Constants.html#/c:@SDLCharacterSetType2":{"name":"SDLCharacterSetType2","abstract":"<p>Character Set Type 2</p>"},"Constants.html#/c:@SDLCharacterSetType5":{"name":"SDLCharacterSetType5","abstract":"<p>Character Set Type 5</p>"},"Constants.html#/c:@SDLCharacterSetCID1":{"name":"SDLCharacterSetCID1","abstract":"<p>Character Set CID1</p>"},"Constants.html#/c:@SDLCharacterSetCID2":{"name":"SDLCharacterSetCID2","abstract":"<p>Character Set CID2</p>"},"Constants.html#/c:@SDLCompassDirectionNorth":{"name":"SDLCompassDirectionNorth","abstract":"<p>Direction North</p>"},"Constants.html#/c:@SDLCompassDirectionNorthwest":{"name":"SDLCompassDirectionNorthwest","abstract":"<p>Direction Northwest</p>"},"Constants.html#/c:@SDLCompassDirectionWest":{"name":"SDLCompassDirectionWest","abstract":"<p>Direction West</p>"},"Constants.html#/c:@SDLCompassDirectionSouthwest":{"name":"SDLCompassDirectionSouthwest","abstract":"<p>Direction Southwest</p>"},"Constants.html#/c:@SDLCompassDirectionSouth":{"name":"SDLCompassDirectionSouth","abstract":"<p>Direction South</p>"},"Constants.html#/c:@SDLCompassDirectionSoutheast":{"name":"SDLCompassDirectionSoutheast","abstract":"<p>Direction Southeast</p>"},"Constants.html#/c:@SDLCompassDirectionEast":{"name":"SDLCompassDirectionEast","abstract":"<p>Direction East</p>"},"Constants.html#/c:@SDLCompassDirectionNortheast":{"name":"SDLCompassDirectionNortheast","abstract":"<p>Direction Northeast</p>"},"Constants.html#/c:@SDLComponentVolumeStatusUnknown":{"name":"SDLComponentVolumeStatusUnknown","abstract":"<p>Unknown SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusNormal":{"name":"SDLComponentVolumeStatusNormal","abstract":"<p>Normal SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusLow":{"name":"SDLComponentVolumeStatusLow","abstract":"<p>Low SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusFault":{"name":"SDLComponentVolumeStatusFault","abstract":"<p>Fault SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusAlert":{"name":"SDLComponentVolumeStatusAlert","abstract":"<p>Alert SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusNotSupported":{"name":"SDLComponentVolumeStatusNotSupported","abstract":"<p>Not supported SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLDefrostZoneFront":{"name":"SDLDefrostZoneFront","abstract":"<p>A SDLDefrostZone with the value of <em>FRONT</em></p>"},"Constants.html#/c:@SDLDefrostZoneRear":{"name":"SDLDefrostZoneRear","abstract":"<p>A SDLDefrostZone with the value of <em>REAR</em></p>"},"Constants.html#/c:@SDLDefrostZoneAll":{"name":"SDLDefrostZoneAll","abstract":"<p>A SDLDefrostZone with the value of <em>All</em></p>"},"Constants.html#/c:@SDLDefrostZoneNone":{"name":"SDLDefrostZoneNone","abstract":"<p>A SDLDefrostZone with the value of <em>None</em></p>"},"Constants.html#/c:@SDLDeliveryModePrompt":{"name":"SDLDeliveryModePrompt","abstract":"<p>User is prompted on HMI</p>"},"Constants.html#/c:@SDLDeliveryModeDestination":{"name":"SDLDeliveryModeDestination","abstract":"<p>Set the location as destination without prompting the user</p>"},"Constants.html#/c:@SDLDeliveryModeQueue":{"name":"SDLDeliveryModeQueue","abstract":"<p>Adds the current location to navigation queue</p>"},"Constants.html#/c:@SDLDeviceLevelStatusZeroBars":{"name":"SDLDeviceLevelStatusZeroBars","abstract":"<p>Device battery level is zero bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusOneBar":{"name":"SDLDeviceLevelStatusOneBar","abstract":"<p>Device battery level is one bar</p>"},"Constants.html#/c:@SDLDeviceLevelStatusTwoBars":{"name":"SDLDeviceLevelStatusTwoBars","abstract":"<p>Device battery level is two bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusThreeBars":{"name":"SDLDeviceLevelStatusThreeBars","abstract":"<p>Device battery level is three bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusFourBars":{"name":"SDLDeviceLevelStatusFourBars","abstract":"<p>Device battery level is four bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusNotProvided":{"name":"SDLDeviceLevelStatusNotProvided","abstract":"<p>Device battery level is unknown</p>"},"Constants.html#/c:@SDLDimensionNoFix":{"name":"SDLDimensionNoFix","abstract":"<p>No GPS at all</p>"},"Constants.html#/c:@SDLDimension2D":{"name":"SDLDimension2D","abstract":"<p>Longitude and latitude of the GPS</p>"},"Constants.html#/c:@SDLDimension3D":{"name":"SDLDimension3D","abstract":"<p>Longitude and latitude and altitude of the GPS</p>"},"Constants.html#/c:@SDLDisplayModeDay":{"name":"SDLDisplayModeDay","abstract":"<p>@abstract Display Mode : DAY</p>"},"Constants.html#/c:@SDLDisplayModeNight":{"name":"SDLDisplayModeNight","abstract":"<p>@abstract Display Mode : NIGHT.</p>"},"Constants.html#/c:@SDLDisplayModeAuto":{"name":"SDLDisplayModeAuto","abstract":"<p>@abstract Display Mode : AUTO.</p>"},"Constants.html#/c:@SDLDisplayTypeCID":{"name":"SDLDisplayTypeCID","abstract":"<p>This display type provides a 2-line x 20 character <q>dot matrix</q> display.</p>"},"Constants.html#/c:@SDLDisplayTypeType2":{"name":"SDLDisplayTypeType2","abstract":"<p>Display type 2</p>"},"Constants.html#/c:@SDLDisplayTypeType5":{"name":"SDLDisplayTypeType5","abstract":"<p>Display type 5</p>"},"Constants.html#/c:@SDLDisplayTypeNGN":{"name":"SDLDisplayTypeNGN","abstract":"<p>This display type provides an 8 inch touchscreen display.</p>"},"Constants.html#/c:@SDLDisplayTypeGen28DMA":{"name":"SDLDisplayTypeGen28DMA","abstract":"<p>Display type Gen 28 DMA</p>"},"Constants.html#/c:@SDLDisplayTypeGen26DMA":{"name":"SDLDisplayTypeGen26DMA","abstract":"<p>Display type Gen 26 DMA</p>"},"Constants.html#/c:@SDLDisplayTypeMFD3":{"name":"SDLDisplayTypeMFD3","abstract":"<p>Display type MFD3</p>"},"Constants.html#/c:@SDLDisplayTypeMFD4":{"name":"SDLDisplayTypeMFD4","abstract":"<p>Display type MFD4</p>"},"Constants.html#/c:@SDLDisplayTypeMFD5":{"name":"SDLDisplayTypeMFD5","abstract":"<p>Display type MFD5</p>"},"Constants.html#/c:@SDLDisplayTypeGen38Inch":{"name":"SDLDisplayTypeGen38Inch","abstract":"<p>Display type Gen 3 8-inch</p>"},"Constants.html#/c:@SDLDisplayTypeGeneric":{"name":"SDLDisplayTypeGeneric","abstract":"<p>Display type Generic</p>"},"Constants.html#/c:@SDLDistanceUnitMiles":{"name":"SDLDistanceUnitMiles","abstract":"<p>@abstract SDLDistanceUnit: <em>MILES</em></p>"},"Constants.html#/c:@SDLDistanceUnitKilometers":{"name":"SDLDistanceUnitKilometers","abstract":"<p>@abstract SDLDistanceUnit: <em>KILOMETERS</em></p>"},"Constants.html#/c:@SDLDriverDistractionStateOn":{"name":"SDLDriverDistractionStateOn","abstract":"<p>Driver distraction rules are in effect.</p>"},"Constants.html#/c:@SDLDriverDistractionStateOff":{"name":"SDLDriverDistractionStateOff","abstract":"<p>Driver distraction rules are NOT in effect.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusNormal":{"name":"SDLECallConfirmationStatusNormal","abstract":"<p>No E-Call signal triggered.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusInProgress":{"name":"SDLECallConfirmationStatusInProgress","abstract":"<p>An E-Call is being in progress.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusCancelled":{"name":"SDLECallConfirmationStatusCancelled","abstract":"<p>An E-Call was cancelled by the user.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusCompleted":{"name":"SDLECallConfirmationStatusCompleted","abstract":"<p>The E-Call sequence is completed.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusUnsuccessful":{"name":"SDLECallConfirmationStatusUnsuccessful","abstract":"<p>An E-Call could not be connected.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusConfiguredOff":{"name":"SDLECallConfirmationStatusConfiguredOff","abstract":"<p>E-Call is not configured on this vehicle.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusCompleteDTMFTimeout":{"name":"SDLECallConfirmationStatusCompleteDTMFTimeout","abstract":"<p>E-Call is considered to be complete without Emergency Operator contact.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusClosed":{"name":"SDLElectronicParkBrakeStatusClosed","abstract":"<p>Parking brake actuators have been fully applied.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusTransition":{"name":"SDLElectronicParkBrakeStatusTransition","abstract":"<p>Parking brake actuators are transitioning to either Apply/Closed or Release/Open state.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusOpen":{"name":"SDLElectronicParkBrakeStatusOpen","abstract":"<p>Parking brake actuators are released.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusDriveActive":{"name":"SDLElectronicParkBrakeStatusDriveActive","abstract":"<p>When driver pulls the Electronic Parking Brake switch while driving <q>at speed</q>.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusFault":{"name":"SDLElectronicParkBrakeStatusFault","abstract":"<p>When system has a fault or is under maintenance.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeNoEvent":{"name":"SDLEmergencyEventTypeNoEvent","abstract":"<p>No emergency event has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeFrontal":{"name":"SDLEmergencyEventTypeFrontal","abstract":"<p>Frontal collision has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeSide":{"name":"SDLEmergencyEventTypeSide","abstract":"<p>Side collision has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeRear":{"name":"SDLEmergencyEventTypeRear","abstract":"<p>Rear collision has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeRollover":{"name":"SDLEmergencyEventTypeRollover","abstract":"<p>A rollover event has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeNotSupported":{"name":"SDLEmergencyEventTypeNotSupported","abstract":"<p>The signal is not supported</p>"},"Constants.html#/c:@SDLEmergencyEventTypeFault":{"name":"SDLEmergencyEventTypeFault","abstract":"<p>Emergency status cannot be determined</p>"},"Constants.html#/c:@SDLFileTypeBMP":{"name":"SDLFileTypeBMP","abstract":"<p>file type: Bitmap (BMP)</p>"},"Constants.html#/c:@SDLFileTypeJPEG":{"name":"SDLFileTypeJPEG","abstract":"<p>file type: JPEG</p>"},"Constants.html#/c:@SDLFileTypePNG":{"name":"SDLFileTypePNG","abstract":"<p>file type: PNG</p>"},"Constants.html#/c:@SDLFileTypeWAV":{"name":"SDLFileTypeWAV","abstract":"<p>file type: WAVE (WAV)</p>"},"Constants.html#/c:@SDLFileTypeMP3":{"name":"SDLFileTypeMP3","abstract":"<p>file type: MP3</p>"},"Constants.html#/c:@SDLFileTypeAAC":{"name":"SDLFileTypeAAC","abstract":"<p>file type: AAC</p>"},"Constants.html#/c:@SDLFileTypeBinary":{"name":"SDLFileTypeBinary","abstract":"<p>file type: BINARY</p>"},"Constants.html#/c:@SDLFileTypeJSON":{"name":"SDLFileTypeJSON","abstract":"<p>file type: JSON</p>"},"Constants.html#/c:@SDLFuelCutoffStatusTerminateFuel":{"name":"SDLFuelCutoffStatusTerminateFuel","abstract":"<p>Fuel is cut off</p>"},"Constants.html#/c:@SDLFuelCutoffStatusNormalOperation":{"name":"SDLFuelCutoffStatusNormalOperation","abstract":"<p>Fuel is not cut off</p>"},"Constants.html#/c:@SDLFuelCutoffStatusFault":{"name":"SDLFuelCutoffStatusFault","abstract":"<p>Status of the fuel pump cannot be determined</p>"},"Constants.html#/c:@SDLFuelTypeGasoline":{"name":"SDLFuelTypeGasoline","abstract":"<p>Fuel type: Gasoline</p>"},"Constants.html#/c:@SDLFuelTypeDiesel":{"name":"SDLFuelTypeDiesel","abstract":"<p>Fuel type: Diesel</p>"},"Constants.html#/c:@SDLFuelTypeCNG":{"name":"SDLFuelTypeCNG","abstract":"<p>Fuel type: CNG</p>"},"Constants.html#/c:@SDLFuelTypeLPG":{"name":"SDLFuelTypeLPG","abstract":"<p>Fuel type: LPG</p>"},"Constants.html#/c:@SDLFuelTypeHydrogen":{"name":"SDLFuelTypeHydrogen","abstract":"<p>Fuel type: Hydrogen</p>"},"Constants.html#/c:@SDLFuelTypeBattery":{"name":"SDLFuelTypeBattery","abstract":"<p>Fuel type: Battery</p>"},"Constants.html#/c:@SDLGlobalPropertyHelpPrompt":{"name":"SDLGlobalPropertyHelpPrompt","abstract":"<p>The help prompt to be spoken if the user needs assistance during a user-initiated interaction.</p>"},"Constants.html#/c:@SDLGlobalPropertyTimeoutPrompt":{"name":"SDLGlobalPropertyTimeoutPrompt","abstract":"<p>The prompt to be spoken if the user-initiated interaction times out waiting for the user’s verbal input.</p>"},"Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpTitle":{"name":"SDLGlobalPropertyVoiceRecognitionHelpTitle","abstract":"<p>The title of the menu displayed when the user requests help via voice recognition.</p>"},"Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpItems":{"name":"SDLGlobalPropertyVoiceRecognitionHelpItems","abstract":"<p>Items of the menu displayed when the user requests help via voice recognition.</p>"},"Constants.html#/c:@SDLGlobalPropertyMenuName":{"name":"SDLGlobalPropertyMenuName","abstract":"<p>The name of the menu button displayed in templates</p>"},"Constants.html#/c:@SDLGlobalPropertyMenuIcon":{"name":"SDLGlobalPropertyMenuIcon","abstract":"<p>An icon on the menu button displayed in templates</p>"},"Constants.html#/c:@SDLGlobalPropertyKeyboard":{"name":"SDLGlobalPropertyKeyboard","abstract":"<p>Property related to the keyboard</p>"},"Constants.html#/c:@SDLHMILevelFull":{"name":"SDLHMILevelFull","abstract":"<p>The application has full use of the SDL HMI. The app may output via TTS, display, or streaming audio and may gather input via VR, Menu, and button presses</p>"},"Constants.html#/c:@SDLHMILevelLimited":{"name":"SDLHMILevelLimited","abstract":"<p>This HMI Level is only defined for a media application using an HMI with an 8 inch touchscreen (Nav) system. The application’s Show text is displayed and it receives button presses from media-oriented buttons (SEEKRIGHT, SEEKLEFT, TUNEUP, TUNEDOWN, PRESET_0-9)</p>"},"Constants.html#/c:@SDLHMILevelBackground":{"name":"SDLHMILevelBackground","abstract":"<p>App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations:</p>"},"Constants.html#/c:@SDLHMILevelNone":{"name":"SDLHMILevelNone","abstract":"<p>Application has been discovered by SDL, but it cannot send any requests or receive any notifications</p>"},"Constants.html#/c:@SDLHMIZoneCapabilitiesFront":{"name":"SDLHMIZoneCapabilitiesFront","abstract":"<p>Indicates HMI available for front seat passengers.</p>"},"Constants.html#/c:@SDLHMIZoneCapabilitiesBack":{"name":"SDLHMIZoneCapabilitiesBack","abstract":"<p>Indicates HMI available for rear seat passengers.</p>"},"Constants.html#/c:@SDLIgnitionStableStatusNotStable":{"name":"SDLIgnitionStableStatusNotStable","abstract":"<p>The current ignition switch status is considered not to be stable.</p>"},"Constants.html#/c:@SDLIgnitionStableStatusStable":{"name":"SDLIgnitionStableStatusStable","abstract":"<p>The current ignition switch status is considered to be stable.</p>"},"Constants.html#/c:@SDLIgnitionStableStatusMissingFromTransmitter":{"name":"SDLIgnitionStableStatusMissingFromTransmitter","abstract":"<p>The current ignition switch status is considered to be missing from the transmitter</p>"},"Constants.html#/c:@SDLIgnitionStatusUnknown":{"name":"SDLIgnitionStatusUnknown","abstract":"<p>Ignition status currently unknown</p>"},"Constants.html#/c:@SDLIgnitionStatusOff":{"name":"SDLIgnitionStatusOff","abstract":"<p>Ignition is off</p>"},"Constants.html#/c:@SDLIgnitionStatusAccessory":{"name":"SDLIgnitionStatusAccessory","abstract":"<p>Ignition is in mode accessory</p>"},"Constants.html#/c:@SDLIgnitionStatusRun":{"name":"SDLIgnitionStatusRun","abstract":"<p>Ignition is in mode run</p>"},"Constants.html#/c:@SDLIgnitionStatusStart":{"name":"SDLIgnitionStatusStart","abstract":"<p>Ignition is in mode start</p>"},"Constants.html#/c:@SDLIgnitionStatusInvalid":{"name":"SDLIgnitionStatusInvalid","abstract":"<p>Signal is invalid</p>"},"Constants.html#/c:@SDLImageFieldNameSoftButtonImage":{"name":"SDLImageFieldNameSoftButtonImage","abstract":"<p>The image field for SoftButton</p>"},"Constants.html#/c:@SDLImageFieldNameChoiceImage":{"name":"SDLImageFieldNameChoiceImage","abstract":"<p>The first image field for Choice.</p>"},"Constants.html#/c:@SDLImageFieldNameChoiceSecondaryImage":{"name":"SDLImageFieldNameChoiceSecondaryImage","abstract":"<p>The scondary image field for Choice.</p>"},"Constants.html#/c:@SDLImageFieldNameVoiceRecognitionHelpItem":{"name":"SDLImageFieldNameVoiceRecognitionHelpItem","abstract":"<p>The image field for vrHelpItem.</p>"},"Constants.html#/c:@SDLImageFieldNameTurnIcon":{"name":"SDLImageFieldNameTurnIcon","abstract":"<p>The image field for Turn.</p>"},"Constants.html#/c:@SDLImageFieldNameMenuIcon":{"name":"SDLImageFieldNameMenuIcon","abstract":"<p>The image field for the menu icon in SetGlobalProperties.</p>"},"Constants.html#/c:@SDLImageFieldNameCommandIcon":{"name":"SDLImageFieldNameCommandIcon","abstract":"<p>The image field for AddCommand."},"Constants.html#/c:@SDLImageFieldNameAppIcon":{"name":"SDLImageFieldNameAppIcon","abstract":"<p>The image field for the app icon (set by setAppIcon).</p>"},"Constants.html#/c:@SDLImageFieldNameGraphic":{"name":"SDLImageFieldNameGraphic","abstract":"<p>The primary image field for Show."},"Constants.html#/c:@SDLImageFieldNameSecondaryGraphic":{"name":"SDLImageFieldNameSecondaryGraphic","abstract":"<p>The secondary image field for Show."},"Constants.html#/c:@SDLImageFieldNameShowConstantTBTIcon":{"name":"SDLImageFieldNameShowConstantTBTIcon","abstract":"<p>The primary image field for ShowConstant TBT."},"Constants.html#/c:@SDLImageFieldNameShowConstantTBTNextTurnIcon":{"name":"SDLImageFieldNameShowConstantTBTNextTurnIcon","abstract":"<p>The secondary image field for ShowConstant TBT.</p>"},"Constants.html#/c:@SDLImageFieldNameLocationImage":{"name":"SDLImageFieldNameLocationImage","abstract":"<p>The optional image of a destination / location</p>"},"Constants.html#/c:@SDLImageTypeStatic":{"name":"SDLImageTypeStatic","abstract":"<p>Activate an icon that shipped with the IVI system by passing a hex value.</p>"},"Constants.html#/c:@SDLImageTypeDynamic":{"name":"SDLImageTypeDynamic","abstract":"<p>An icon referencing an image uploaded by the app (identifier to be sent by SDLPutFile)</p>"},"Constants.html#/c:@SDLInteractionModeManualOnly":{"name":"SDLInteractionModeManualOnly","abstract":"<p>Interaction Mode : Manual Only</p>"},"Constants.html#/c:@SDLInteractionModeVoiceRecognitionOnly":{"name":"SDLInteractionModeVoiceRecognitionOnly","abstract":"<p>Interaction Mode : VR Only</p>"},"Constants.html#/c:@SDLInteractionModeBoth":{"name":"SDLInteractionModeBoth","abstract":"<p>Interaction Mode : Manual & VR</p>"},"Constants.html#/c:@SDLKeyboardEventKeypress":{"name":"SDLKeyboardEventKeypress","abstract":"<p>The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes).</p>"},"Constants.html#/c:@SDLKeyboardEventSubmitted":{"name":"SDLKeyboardEventSubmitted","abstract":"<p>The User has finished entering text from the keyboard and submitted the entry.</p>"},"Constants.html#/c:@SDLKeyboardEventCancelled":{"name":"SDLKeyboardEventCancelled","abstract":"<p>The User has pressed the HMI-defined <q>Cancel</q> button.</p>"},"Constants.html#/c:@SDLKeyboardEventAborted":{"name":"SDLKeyboardEventAborted","abstract":"<p>The User has not finished entering text and the keyboard is aborted with the event of higher priority.</p>"},"Constants.html#/c:@SDLKeyboardEventVoice":{"name":"SDLKeyboardEventVoice","abstract":"<p>The user used voice as input for the keyboard</p>"},"Constants.html#/c:@SDLKeyboardLayoutQWERTY":{"name":"SDLKeyboardLayoutQWERTY","abstract":"<p>QWERTY layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right)</p>"},"Constants.html#/c:@SDLKeyboardLayoutQWERTZ":{"name":"SDLKeyboardLayoutQWERTZ","abstract":"<p>QWERTZ layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right)</p>"},"Constants.html#/c:@SDLKeyboardLayoutAZERTY":{"name":"SDLKeyboardLayoutAZERTY","abstract":"<p>AZERTY layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right)</p>"},"Constants.html#/c:@SDLKeypressModeSingleKeypress":{"name":"SDLKeypressModeSingleKeypress","abstract":"<p>SINGLE_KEYPRESS:<br>Each and every User`s keypress must be reported (new notification for every newly entered single symbol).</p>"},"Constants.html#/c:@SDLKeypressModeQueueKeypresses":{"name":"SDLKeypressModeQueueKeypresses","abstract":"<p>QUEUE_KEYPRESSES:<br>The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard)</p>"},"Constants.html#/c:@SDLKeypressModeResendCurrentEntry":{"name":"SDLKeypressModeResendCurrentEntry","abstract":"<p>RESEND_CURRENT_ENTRY:<br>The whole entry must be reported each and every time the User makes a new keypress<br> (new notification with all previously entered symbols and a newly entered one appended).</p>"},"Constants.html#/c:@SDLLanguageEnSa":{"name":"SDLLanguageEnSa","abstract":"<p>English_SA</p>"},"Constants.html#/c:@SDLLanguageHeIl":{"name":"SDLLanguageHeIl","abstract":"<p>Hebrew_IL</p>"},"Constants.html#/c:@SDLLanguageRoRo":{"name":"SDLLanguageRoRo","abstract":"<p>Romainian_RO</p>"},"Constants.html#/c:@SDLLanguageUkUa":{"name":"SDLLanguageUkUa","abstract":"<p>Ukrainian_UA</p>"},"Constants.html#/c:@SDLLanguageIdId":{"name":"SDLLanguageIdId","abstract":"<p>Indonesian_ID</p>"},"Constants.html#/c:@SDLLanguageViVn":{"name":"SDLLanguageViVn","abstract":"<p>Vietnamese_VN</p>"},"Constants.html#/c:@SDLLanguageMsMy":{"name":"SDLLanguageMsMy","abstract":"<p>Malay_MY</p>"},"Constants.html#/c:@SDLLanguageHiIn":{"name":"SDLLanguageHiIn","abstract":"<p>Hindi_IN</p>"},"Constants.html#/c:@SDLLanguageNlBe":{"name":"SDLLanguageNlBe","abstract":"<p>Dutch(Flemish)_BE</p>"},"Constants.html#/c:@SDLLanguageElGr":{"name":"SDLLanguageElGr","abstract":"<p>Greek_GR</p>"},"Constants.html#/c:@SDLLanguageHuHu":{"name":"SDLLanguageHuHu","abstract":"<p>Hungarian_HU</p>"},"Constants.html#/c:@SDLLanguageFiFi":{"name":"SDLLanguageFiFi","abstract":"<p>Finnish_FI</p>"},"Constants.html#/c:@SDLLanguageSkSk":{"name":"SDLLanguageSkSk","abstract":"<p>Slovak_SK</p>"},"Constants.html#/c:@SDLLanguageEnUs":{"name":"SDLLanguageEnUs","abstract":"<p>English_US</p>"},"Constants.html#/c:@SDLLanguageEnIn":{"name":"SDLLanguageEnIn","abstract":"<p>English - India</p>"},"Constants.html#/c:@SDLLanguageThTh":{"name":"SDLLanguageThTh","abstract":"<p>Thai - Thailand</p>"},"Constants.html#/c:@SDLLanguageEsMx":{"name":"SDLLanguageEsMx","abstract":"<p>Spanish - Mexico</p>"},"Constants.html#/c:@SDLLanguageFrCa":{"name":"SDLLanguageFrCa","abstract":"<p>French - Canada</p>"},"Constants.html#/c:@SDLLanguageDeDe":{"name":"SDLLanguageDeDe","abstract":"<p>German - Germany</p>"},"Constants.html#/c:@SDLLanguageEsEs":{"name":"SDLLanguageEsEs","abstract":"<p>Spanish - Spain</p>"},"Constants.html#/c:@SDLLanguageEnGb":{"name":"SDLLanguageEnGb","abstract":"<p>English - Great Britain</p>"},"Constants.html#/c:@SDLLanguageRuRu":{"name":"SDLLanguageRuRu","abstract":"<p>Russian - Russia</p>"},"Constants.html#/c:@SDLLanguageTrTr":{"name":"SDLLanguageTrTr","abstract":"<p>Turkish - Turkey</p>"},"Constants.html#/c:@SDLLanguagePlPl":{"name":"SDLLanguagePlPl","abstract":"<p>Polish - Poland</p>"},"Constants.html#/c:@SDLLanguageFrFr":{"name":"SDLLanguageFrFr","abstract":"<p>French - France</p>"},"Constants.html#/c:@SDLLanguageItIt":{"name":"SDLLanguageItIt","abstract":"<p>Italian - Italy</p>"},"Constants.html#/c:@SDLLanguageSvSe":{"name":"SDLLanguageSvSe","abstract":"<p>Swedish - Sweden</p>"},"Constants.html#/c:@SDLLanguagePtPt":{"name":"SDLLanguagePtPt","abstract":"<p>Portuguese - Portugal</p>"},"Constants.html#/c:@SDLLanguageNlNl":{"name":"SDLLanguageNlNl","abstract":"<p>Dutch (Standard) - Netherlands</p>"},"Constants.html#/c:@SDLLanguageEnAu":{"name":"SDLLanguageEnAu","abstract":"<p>English - Australia</p>"},"Constants.html#/c:@SDLLanguageZhCn":{"name":"SDLLanguageZhCn","abstract":"<p>Mandarin - China</p>"},"Constants.html#/c:@SDLLanguageZhTw":{"name":"SDLLanguageZhTw","abstract":"<p>Mandarin - Taiwan</p>"},"Constants.html#/c:@SDLLanguageJaJp":{"name":"SDLLanguageJaJp","abstract":"<p>Japanese - Japan</p>"},"Constants.html#/c:@SDLLanguageArSa":{"name":"SDLLanguageArSa","abstract":"<p>Arabic - Saudi Arabia</p>"},"Constants.html#/c:@SDLLanguageKoKr":{"name":"SDLLanguageKoKr","abstract":"<p>Korean - South Korea</p>"},"Constants.html#/c:@SDLLanguagePtBr":{"name":"SDLLanguagePtBr","abstract":"<p>Portuguese - Brazil</p>"},"Constants.html#/c:@SDLLanguageCsCz":{"name":"SDLLanguageCsCz","abstract":"<p>Czech - Czech Republic</p>"},"Constants.html#/c:@SDLLanguageDaDk":{"name":"SDLLanguageDaDk","abstract":"<p>Danish - Denmark</p>"},"Constants.html#/c:@SDLLanguageNoNo":{"name":"SDLLanguageNoNo","abstract":"<p>Norwegian - Norway</p>"},"Constants.html#/c:@SDLLayoutModeIconOnly":{"name":"SDLLayoutModeIconOnly","abstract":"<p>This mode causes the interaction to display the previous set of choices as icons.</p>"},"Constants.html#/c:@SDLLayoutModeIconWithSearch":{"name":"SDLLayoutModeIconWithSearch","abstract":"<p>This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.</p>"},"Constants.html#/c:@SDLLayoutModeListOnly":{"name":"SDLLayoutModeListOnly","abstract":"<p>This mode causes the interaction to display the previous set of choices as a list.</p>"},"Constants.html#/c:@SDLLayoutModeListWithSearch":{"name":"SDLLayoutModeListWithSearch","abstract":"<p>This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.</p>"},"Constants.html#/c:@SDLLayoutModeKeyboard":{"name":"SDLLayoutModeKeyboard","abstract":"<p>This mode causes the interaction to immediately display a keyboard entry through the HMI.</p>"},"Constants.html#/c:@SDLLightNameFrontLeftHighBeam":{"name":"SDLLightNameFrontLeftHighBeam","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_HIGH_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontRightHighBeam":{"name":"SDLLightNameFrontRightHighBeam","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_HIGH_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontLeftLowBeam":{"name":"SDLLightNameFrontLeftLowBeam","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_LOW_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontRightLowBeam":{"name":"SDLLightNameFrontRightLowBeam","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_LOW_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontLeftParkingLight":{"name":"SDLLightNameFrontLeftParkingLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_PARKING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightParkingLight":{"name":"SDLLightNameFrontRightParkingLight","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_PARKING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontLeftFogLight":{"name":"SDLLightNameFrontLeftFogLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_FOG_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightFogLight":{"name":"SDLLightNameFrontRightFogLight","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_FOG_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontLeftDaytimeRunningLight":{"name":"SDLLightNameFrontLeftDaytimeRunningLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_DAYTIME_RUNNING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightDaytimeRunningLight":{"name":"SDLLightNameFrontRightDaytimeRunningLight","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_DAYTIME_RUNNING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontLeftTurnLight":{"name":"SDLLightNameFrontLeftTurnLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightTurnLight":{"name":"SDLLightNameFrontRightTurnLight","abstract":"<p>@abstract Represents the Light with name FRONT_Right_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftFogLight":{"name":"SDLLightNameRearLeftFogLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_FOG_LIGHT.</p>"},"Constants.html#/c:@SDLLightNameRearRightFogLight":{"name":"SDLLightNameRearRightFogLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_FOG_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftTailLight":{"name":"SDLLightNameRearLeftTailLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_TAIL_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRightTailLight":{"name":"SDLLightNameRearRightTailLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_TAIL_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftBrakeLight":{"name":"SDLLightNameRearLeftBrakeLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_BRAKE_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRightBrakeLight":{"name":"SDLLightNameRearRightBrakeLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_BRAKE_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftTurnLight":{"name":"SDLLightNameRearLeftTurnLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRightTurnLight":{"name":"SDLLightNameRearRightTurnLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRegistrationPlateLight":{"name":"SDLLightNameRearRegistrationPlateLight","abstract":"<p>@abstract Represents the Light with name REAR_REGISTRATION_PLATE_LIGHT</p>"},"Constants.html#/c:@SDLLightNameHighBeams":{"name":"SDLLightNameHighBeams","abstract":"<p>@abstract Include all high beam lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameLowBeams":{"name":"SDLLightNameLowBeams","abstract":"<p>@abstract Include all low beam lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameFogLights":{"name":"SDLLightNameFogLights","abstract":"<p>@abstract Include all fog lights: front_left, front_right, rear_left and rear_right.</p>"},"Constants.html#/c:@SDLLightNameRunningLights":{"name":"SDLLightNameRunningLights","abstract":"<p>@abstract Include all daytime running lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameParkingLights":{"name":"SDLLightNameParkingLights","abstract":"<p>@abstract Include all parking lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameBrakeLights":{"name":"SDLLightNameBrakeLights","abstract":"<p>@abstract Include all brake lights: rear_left and rear_right.</p>"},"Constants.html#/c:@SDLLightNameRearReversingLights":{"name":"SDLLightNameRearReversingLights","abstract":"<p>@abstract Represents the Light with name REAR_REVERSING_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameSideMarkerLights":{"name":"SDLLightNameSideMarkerLights","abstract":"<p>@abstract Represents the Light with name SIDE_MARKER_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameLeftTurnLights":{"name":"SDLLightNameLeftTurnLights","abstract":"<p>@abstract Include all left turn signal lights: front_left, rear_left, left_side and mirror_mounted.</p>"},"Constants.html#/c:@SDLLightNameRightTurnLights":{"name":"SDLLightNameRightTurnLights","abstract":"<p>@abstract Include all right turn signal lights: front_right, rear_right, right_side and mirror_mounted.</p>"},"Constants.html#/c:@SDLLightNameHazardLights":{"name":"SDLLightNameHazardLights","abstract":"<p>@abstract Include all hazard lights: front_left, front_right, rear_left and rear_right.</p>"},"Constants.html#/c:@SDLLightNameAmbientLights":{"name":"SDLLightNameAmbientLights","abstract":"<p>@abstract Represents the Light with name AMBIENT_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameOverHeadLights":{"name":"SDLLightNameOverHeadLights","abstract":"<p>@abstract Represents the Light with name OVERHEAD_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameReadingLights":{"name":"SDLLightNameReadingLights","abstract":"<p>@abstract Represents the Light with name READING_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameTrunkLights":{"name":"SDLLightNameTrunkLights","abstract":"<p>@abstract Represents the Light with name TRUNK_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameExteriorFrontLights":{"name":"SDLLightNameExteriorFrontLights","abstract":"<p>@abstract Include exterior lights located in front of the vehicle. For example, fog lights and low beams.</p>"},"Constants.html#/c:@SDLLightNameExteriorRearLights":{"name":"SDLLightNameExteriorRearLights","abstract":"<p>@abstract Include exterior lights located at the back of the vehicle."},"Constants.html#/c:@SDLLightNameExteriorLeftLights":{"name":"SDLLightNameExteriorLeftLights","abstract":"<p>@abstract Include exterior lights located at the left side of the vehicle."},"Constants.html#/c:@SDLLightNameExteriorRightLights":{"name":"SDLLightNameExteriorRightLights","abstract":"<p>@abstract Include exterior lights located at the right side of the vehicle."},"Constants.html#/c:@SDLLightNameExteriorRearCargoLights":{"name":"SDLLightNameExteriorRearCargoLights","abstract":"<p>@abstract Cargo lamps illuminate the cargo area.</p>"},"Constants.html#/c:@SDLLightNameExteriorRearTruckBedLights":{"name":"SDLLightNameExteriorRearTruckBedLights","abstract":"<p>@abstract Truck bed lamps light up the bed of the truck.</p>"},"Constants.html#/c:@SDLLightNameExteriorRearTrailerLights":{"name":"SDLLightNameExteriorRearTrailerLights","abstract":"<p>@abstract Trailer lights are lamps mounted on a trailer hitch.</p>"},"Constants.html#/c:@SDLLightNameExteriorLeftSpotLights":{"name":"SDLLightNameExteriorLeftSpotLights","abstract":"<p>@abstract It is the spotlights mounted on the left side of a vehicle.</p>"},"Constants.html#/c:@SDLLightNameExteriorRightSpotLights":{"name":"SDLLightNameExteriorRightSpotLights","abstract":"<p>@abstract It is the spotlights mounted on the right side of a vehicle.</p>"},"Constants.html#/c:@SDLLightNameExteriorLeftPuddleLights":{"name":"SDLLightNameExteriorLeftPuddleLights","abstract":"<p>@abstract Puddle lamps illuminate the ground beside the door as the customer is opening or approaching the door.</p>"},"Constants.html#/c:@SDLLightNameExteriorRightPuddleLights":{"name":"SDLLightNameExteriorRightPuddleLights","abstract":"<p>@abstract Puddle lamps illuminate the ground beside the door as the customer is opening or approaching the door.</p>"},"Constants.html#/c:@SDLLightNameExteriorAllLights":{"name":"SDLLightNameExteriorAllLights","abstract":"<p>@abstract Include all exterior lights around the vehicle.</p>"},"Constants.html#/c:@SDLLightStatusOn":{"name":"SDLLightStatusOn","abstract":"<p>@abstract Light status currently on.</p>"},"Constants.html#/c:@SDLLightStatusOFF":{"name":"SDLLightStatusOFF","abstract":"<p>@abstract Light status currently Off.</p>"},"Constants.html#/c:@SDLLightStatusRampUp":{"name":"SDLLightStatusRampUp","abstract":"<p>@abstract Light status currently RAMP_UP.</p>"},"Constants.html#/c:@SDLLightStatusRampDown":{"name":"SDLLightStatusRampDown","abstract":"<p>@abstract Light status currently RAMP_DOWN.</p>"},"Constants.html#/c:@SDLLightStatusUnknown":{"name":"SDLLightStatusUnknown","abstract":"<p>@abstract Light status currently UNKNOWN.</p>"},"Constants.html#/c:@SDLLightStatusInvalid":{"name":"SDLLightStatusInvalid","abstract":"<p>@abstract Light status currently INVALID.</p>"},"Constants.html#/c:@SDLLockScreenStatusOff":{"name":"SDLLockScreenStatusOff","abstract":"<p>LockScreen is Not Required</p>"},"Constants.html#/c:@SDLLockScreenStatusOptional":{"name":"SDLLockScreenStatusOptional","abstract":"<p>LockScreen is Optional</p>"},"Constants.html#/c:@SDLLockScreenStatusRequired":{"name":"SDLLockScreenStatusRequired","abstract":"<p>LockScreen is Not Required</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusNormal":{"name":"SDLMaintenanceModeStatusNormal","abstract":"<p>Maintenance Mode Status : Normal</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusNear":{"name":"SDLMaintenanceModeStatusNear","abstract":"<p>Maintenance Mode Status : Near</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusActive":{"name":"SDLMaintenanceModeStatusActive","abstract":"<p>Maintenance Mode Status : Active</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusFeatureNotPresent":{"name":"SDLMaintenanceModeStatusFeatureNotPresent","abstract":"<p>Maintenance Mode Status : Feature not present</p>"},"Constants.html#/c:@SDLMassageCushionTopLumbar":{"name":"SDLMassageCushionTopLumbar","abstract":"<p>@abstract TOP LUMBAR cushions of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionMiddleLumbar":{"name":"SDLMassageCushionMiddleLumbar","abstract":"<p>@abstract MIDDLE LUMBAR cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionBottomLumbar":{"name":"SDLMassageCushionBottomLumbar","abstract":"<p>@abstract BOTTOM LUMBAR cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionBackBolsters":{"name":"SDLMassageCushionBackBolsters","abstract":"<p>@abstract BACK BOLSTERS cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionSeatBolsters":{"name":"SDLMassageCushionSeatBolsters","abstract":"<p>@abstract SEAT BOLSTERS cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageModeOff":{"name":"SDLMassageModeOff","abstract":"<p>@abstract Massage Mode Status : OFF</p>"},"Constants.html#/c:@SDLMassageModeLow":{"name":"SDLMassageModeLow","abstract":"<p>@abstract Massage Mode Status : LOW</p>"},"Constants.html#/c:@SDLMassageModeHigh":{"name":"SDLMassageModeHigh","abstract":"<p>@abstract Massage Mode Status : HIGH</p>"},"Constants.html#/c:@SDLMassageZoneLumbar":{"name":"SDLMassageZoneLumbar","abstract":"<p>@abstract The back of a multi-contour massage seat. or SEAT_BACK</p>"},"Constants.html#/c:@SDLMassageZoneSeatCushion":{"name":"SDLMassageZoneSeatCushion","abstract":"<p>@abstract The bottom a multi-contour massage seat. or SEAT_BOTTOM</p>"},"Constants.html#/c:@SDLMediaClockFormatClock1":{"name":"SDLMediaClockFormatClock1","abstract":"<p>Media clock format: Clock1</p>"},"Constants.html#/c:@SDLMediaClockFormatClock2":{"name":"SDLMediaClockFormatClock2","abstract":"<p>Media clock format: Clock2</p>"},"Constants.html#/c:@SDLMediaClockFormatClock3":{"name":"SDLMediaClockFormatClock3","abstract":"<p>Media clock format: Clock3</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText1":{"name":"SDLMediaClockFormatClockText1","abstract":"<p>Media clock format: ClockText1</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText2":{"name":"SDLMediaClockFormatClockText2","abstract":"<p>Media clock format: ClockText2</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText3":{"name":"SDLMediaClockFormatClockText3","abstract":"<p>Media clock format: ClockText3</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText4":{"name":"SDLMediaClockFormatClockText4","abstract":"<p>Media clock format: ClockText4</p>"},"Constants.html#/c:@SDLMetadataTypeMediaTitle":{"name":"SDLMetadataTypeMediaTitle","abstract":"<p>The song / media title name</p>"},"Constants.html#/c:@SDLMetadataTypeMediaArtist":{"name":"SDLMetadataTypeMediaArtist","abstract":"<p>The <q>artist</q> of the media</p>"},"Constants.html#/c:@SDLMetadataTypeMediaAlbum":{"name":"SDLMetadataTypeMediaAlbum","abstract":"<p>The <q>album</q> of the media"</p>"},"Constants.html#/c:@SDLMetadataTypeMediaYear":{"name":"SDLMetadataTypeMediaYear","abstract":"<p>The <q>year</q> that the media was created</p>"},"Constants.html#/c:@SDLMetadataTypeMediaGenre":{"name":"SDLMetadataTypeMediaGenre","abstract":"<p>The <q>genre</q> of the media</p>"},"Constants.html#/c:@SDLMetadataTypeMediaStation":{"name":"SDLMetadataTypeMediaStation","abstract":"<p>The <q>station</q> that the media is playing on</p>"},"Constants.html#/c:@SDLMetadataTypeRating":{"name":"SDLMetadataTypeRating","abstract":"<p>The <q>rating</q> given to the media</p>"},"Constants.html#/c:@SDLMetadataTypeCurrentTemperature":{"name":"SDLMetadataTypeCurrentTemperature","abstract":"<p>The current temperature of the weather information</p>"},"Constants.html#/c:@SDLMetadataTypeMaximumTemperature":{"name":"SDLMetadataTypeMaximumTemperature","abstract":"<p>The high / maximum temperature of the weather information for the current period</p>"},"Constants.html#/c:@SDLMetadataTypeMinimumTemperature":{"name":"SDLMetadataTypeMinimumTemperature","abstract":"<p>The low / minimum temperature of the weather information for the current period</p>"},"Constants.html#/c:@SDLMetadataTypeWeatherTerm":{"name":"SDLMetadataTypeWeatherTerm","abstract":"<p>A description of the weather for the current period</p>"},"Constants.html#/c:@SDLMetadataTypeHumidity":{"name":"SDLMetadataTypeHumidity","abstract":"<p>The humidity of the weather information for the current period</p>"},"Constants.html#/c:@SDLModuleTypeClimate":{"name":"SDLModuleTypeClimate","abstract":"<p>A SDLModuleType with the value of <em>CLIMATE</em></p>"},"Constants.html#/c:@SDLModuleTypeRadio":{"name":"SDLModuleTypeRadio","abstract":"<p>A SDLModuleType with the value of <em>RADIO</em></p>"},"Constants.html#/c:@SDLModuleTypeSeat":{"name":"SDLModuleTypeSeat","abstract":"<p>A SDLModuleType with the value of <em>SEAT</em></p>"},"Constants.html#/c:@SDLModuleTypeAudio":{"name":"SDLModuleTypeAudio","abstract":"<p>A SDLModuleType with the value of <em>AUDIO</em></p>"},"Constants.html#/c:@SDLModuleTypeLight":{"name":"SDLModuleTypeLight","abstract":"<p>A SDLModuleType with the value of <em>LIGHT</em></p>"},"Constants.html#/c:@SDLModuleTypeHMISettings":{"name":"SDLModuleTypeHMISettings","abstract":"<p>A SDLModuleType with the value of <em>HMI_SETTINGS</em></p>"},"Constants.html#/c:@SDLNotificationUserInfoObject":{"name":"SDLNotificationUserInfoObject","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTransportDidDisconnect":{"name":"SDLTransportDidDisconnect","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTransportDidConnect":{"name":"SDLTransportDidConnect","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTransportConnectError":{"name":"SDLTransportConnectError","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveError":{"name":"SDLDidReceiveError","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveLockScreenIcon":{"name":"SDLDidReceiveLockScreenIcon","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidBecomeReady":{"name":"SDLDidBecomeReady","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidUpdateProjectionView":{"name":"SDLDidUpdateProjectionView","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAddCommandResponse":{"name":"SDLDidReceiveAddCommandResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAddSubMenuResponse":{"name":"SDLDidReceiveAddSubMenuResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAlertResponse":{"name":"SDLDidReceiveAlertResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAlertManeuverResponse":{"name":"SDLDidReceiveAlertManeuverResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonPressResponse":{"name":"SDLDidReceiveButtonPressResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveChangeRegistrationResponse":{"name":"SDLDidReceiveChangeRegistrationResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetResponse":{"name":"SDLDidReceiveCreateInteractionChoiceSetResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteCommandResponse":{"name":"SDLDidReceiveDeleteCommandResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteFileResponse":{"name":"SDLDidReceiveDeleteFileResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetResponse":{"name":"SDLDidReceiveDeleteInteractionChoiceSetResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteSubmenuResponse":{"name":"SDLDidReceiveDeleteSubmenuResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDiagnosticMessageResponse":{"name":"SDLDidReceiveDiagnosticMessageResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDialNumberResponse":{"name":"SDLDidReceiveDialNumberResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEncodedSyncPDataResponse":{"name":"SDLDidReceiveEncodedSyncPDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEndAudioPassThruResponse":{"name":"SDLDidReceiveEndAudioPassThruResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGenericResponse":{"name":"SDLDidReceiveGenericResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetDTCsResponse":{"name":"SDLDidReceiveGetDTCsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataResponse":{"name":"SDLDidReceiveGetInteriorVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetSystemCapabilitiesResponse":{"name":"SDLDidReceiveGetSystemCapabilitiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetVehicleDataResponse":{"name":"SDLDidReceiveGetVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetWaypointsResponse":{"name":"SDLDidReceiveGetWaypointsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveListFilesResponse":{"name":"SDLDidReceiveListFilesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformAudioPassThruResponse":{"name":"SDLDidReceivePerformAudioPassThruResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformInteractionResponse":{"name":"SDLDidReceivePerformInteractionResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePutFileResponse":{"name":"SDLDidReceivePutFileResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveReadDIDResponse":{"name":"SDLDidReceiveReadDIDResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceResponse":{"name":"SDLDidReceiveRegisterAppInterfaceResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesResponse":{"name":"SDLDidReceiveResetGlobalPropertiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveScrollableMessageResponse":{"name":"SDLDidReceiveScrollableMessageResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSendHapticDataResponse":{"name":"SDLDidReceiveSendHapticDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSendLocationResponse":{"name":"SDLDidReceiveSendLocationResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetAppIconResponse":{"name":"SDLDidReceiveSetAppIconResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetDisplayLayoutResponse":{"name":"SDLDidReceiveSetDisplayLayoutResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesResponse":{"name":"SDLDidReceiveSetGlobalPropertiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataResponse":{"name":"SDLDidReceiveSetInteriorVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetMediaClockTimerResponse":{"name":"SDLDidReceiveSetMediaClockTimerResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveShowConstantTBTResponse":{"name":"SDLDidReceiveShowConstantTBTResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveShowResponse":{"name":"SDLDidReceiveShowResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSliderResponse":{"name":"SDLDidReceiveSliderResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSpeakResponse":{"name":"SDLDidReceiveSpeakResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeButtonResponse":{"name":"SDLDidReceiveSubscribeButtonResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataResponse":{"name":"SDLDidReceiveSubscribeVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeWaypointsResponse":{"name":"SDLDidReceiveSubscribeWaypointsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSyncPDataResponse":{"name":"SDLDidReceiveSyncPDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUpdateTurnListResponse":{"name":"SDLDidReceiveUpdateTurnListResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceResponse":{"name":"SDLDidReceiveUnregisterAppInterfaceResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeButtonResponse":{"name":"SDLDidReceiveUnsubscribeButtonResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataResponse":{"name":"SDLDidReceiveUnsubscribeVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeWaypointsResponse":{"name":"SDLDidReceiveUnsubscribeWaypointsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeDriverDistractionStateNotification":{"name":"SDLDidChangeDriverDistractionStateNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeHMIStatusNotification":{"name":"SDLDidChangeHMIStatusNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAudioPassThruNotification":{"name":"SDLDidReceiveAudioPassThruNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAppUnregisteredNotification":{"name":"SDLDidReceiveAppUnregisteredNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonEventNotification":{"name":"SDLDidReceiveButtonEventNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonPressNotification":{"name":"SDLDidReceiveButtonPressNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveCommandNotification":{"name":"SDLDidReceiveCommandNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEncodedDataNotification":{"name":"SDLDidReceiveEncodedDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveInteriorVehicleDataNotification":{"name":"SDLDidReceiveInteriorVehicleDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveKeyboardInputNotification":{"name":"SDLDidReceiveKeyboardInputNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeLanguageNotification":{"name":"SDLDidChangeLanguageNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeLockScreenStatusNotification":{"name":"SDLDidChangeLockScreenStatusNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveNewHashNotification":{"name":"SDLDidReceiveNewHashNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveVehicleIconNotification":{"name":"SDLDidReceiveVehicleIconNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangePermissionsNotification":{"name":"SDLDidChangePermissionsNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveRemoteControlStatusNotification":{"name":"SDLDidReceiveRemoteControlStatusNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSystemRequestNotification":{"name":"SDLDidReceiveSystemRequestNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeTurnByTurnStateNotification":{"name":"SDLDidChangeTurnByTurnStateNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveTouchEventNotification":{"name":"SDLDidReceiveTouchEventNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveVehicleDataNotification":{"name":"SDLDidReceiveVehicleDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveWaypointNotification":{"name":"SDLDidReceiveWaypointNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLPRNDLPark":{"name":"SDLPRNDLPark","abstract":"<p>Park</p>"},"Constants.html#/c:@SDLPRNDLReverse":{"name":"SDLPRNDLReverse","abstract":"<p>Reverse gear</p>"},"Constants.html#/c:@SDLPRNDLNeutral":{"name":"SDLPRNDLNeutral","abstract":"<p>No gear</p>"},"Constants.html#/c:@SDLPRNDLDrive":{"name":"SDLPRNDLDrive","abstract":"<p>@abstract: Drive gear</p>"},"Constants.html#/c:@SDLPRNDLSport":{"name":"SDLPRNDLSport","abstract":"<p>Drive Sport mode</p>"},"Constants.html#/c:@SDLPRNDLLowGear":{"name":"SDLPRNDLLowGear","abstract":"<p>1st gear hold</p>"},"Constants.html#/c:@SDLPRNDLFirst":{"name":"SDLPRNDLFirst","abstract":"<p>First gear</p>"},"Constants.html#/c:@SDLPRNDLSecond":{"name":"SDLPRNDLSecond","abstract":"<p>Second gear</p>"},"Constants.html#/c:@SDLPRNDLThird":{"name":"SDLPRNDLThird","abstract":"<p>Third gear</p>"},"Constants.html#/c:@SDLPRNDLFourth":{"name":"SDLPRNDLFourth","abstract":"<p>Fourth gear</p>"},"Constants.html#/c:@SDLPRNDLFifth":{"name":"SDLPRNDLFifth","abstract":"<p>Fifth gear</p>"},"Constants.html#/c:@SDLPRNDLSixth":{"name":"SDLPRNDLSixth","abstract":"<p>Sixth gear</p>"},"Constants.html#/c:@SDLPRNDLSeventh":{"name":"SDLPRNDLSeventh","abstract":"<p>Seventh gear</p>"},"Constants.html#/c:@SDLPRNDLEighth":{"name":"SDLPRNDLEighth","abstract":"<p>Eighth gear</p>"},"Constants.html#/c:@SDLPRNDLUnknown":{"name":"SDLPRNDLUnknown","abstract":"<p>Unknown</p>"},"Constants.html#/c:@SDLPRNDLFault":{"name":"SDLPRNDLFault","abstract":"<p>Fault</p>"},"Constants.html#/c:@SDLPermissionStatusAllowed":{"name":"SDLPermissionStatusAllowed","abstract":"<p>permission: allowed</p>"},"Constants.html#/c:@SDLPermissionStatusDisallowed":{"name":"SDLPermissionStatusDisallowed","abstract":"<p>permission: disallowed</p>"},"Constants.html#/c:@SDLPermissionStatusUserDisallowed":{"name":"SDLPermissionStatusUserDisallowed","abstract":"<p>permission: user disallowed</p>"},"Constants.html#/c:@SDLPermissionStatusUserConsentPending":{"name":"SDLPermissionStatusUserConsentPending","abstract":"<p>permission: user consent pending</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusUndefined":{"name":"SDLPowerModeQualificationStatusUndefined","abstract":"<p>An undefined status</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusEvaluationInProgress":{"name":"SDLPowerModeQualificationStatusEvaluationInProgress","abstract":"<p>An <q>evaluation in progress</q> status</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusNotDefined":{"name":"SDLPowerModeQualificationStatusNotDefined","abstract":"<p>A <q>not defined</q> status</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusOk":{"name":"SDLPowerModeQualificationStatusOk","abstract":"<p>An <q>ok</q> status</p>"},"Constants.html#/c:@SDLPowerModeStatusKeyOut":{"name":"SDLPowerModeStatusKeyOut","abstract":"<p>The key is not in the ignition, and the power is off</p>"},"Constants.html#/c:@SDLPowerModeStatusKeyRecentlyOut":{"name":"SDLPowerModeStatusKeyRecentlyOut","abstract":"<p>The key is not in the ignition and it was just recently removed</p>"},"Constants.html#/c:@SDLPowerModeStatusKeyApproved":{"name":"SDLPowerModeStatusKeyApproved","abstract":"<p>The key is not in the ignition, but an approved key is available</p>"},"Constants.html#/c:@SDLPowerModeStatusPostAccessory":{"name":"SDLPowerModeStatusPostAccessory","abstract":"<p>We are in a post-accessory power situation</p>"},"Constants.html#/c:@SDLPowerModeStatusAccessory":{"name":"SDLPowerModeStatusAccessory","abstract":"<p>The car is in accessory power mode</p>"},"Constants.html#/c:@SDLPowerModeStatusPostIgnition":{"name":"SDLPowerModeStatusPostIgnition","abstract":"<p>We are in a post-ignition power situation</p>"},"Constants.html#/c:@SDLPowerModeStatusIgnitionOn":{"name":"SDLPowerModeStatusIgnitionOn","abstract":"<p>The ignition is on but the car is not yet running</p>"},"Constants.html#/c:@SDLPowerModeStatusRunning":{"name":"SDLPowerModeStatusRunning","abstract":"<p>The ignition is on and the car is running</p>"},"Constants.html#/c:@SDLPowerModeStatusCrank":{"name":"SDLPowerModeStatusCrank","abstract":"<p>We are in a crank power situation</p>"},"Constants.html#/c:@SDLPredefinedLayoutDefault":{"name":"SDLPredefinedLayoutDefault","abstract":"<p>A default layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutMedia":{"name":"SDLPredefinedLayoutMedia","abstract":"<p>The default media layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutNonMedia":{"name":"SDLPredefinedLayoutNonMedia","abstract":"<p>The default non-media layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutOnscreenPresets":{"name":"SDLPredefinedLayoutOnscreenPresets","abstract":"<p>A media layout containing preset buttons</p>"},"Constants.html#/c:@SDLPredefinedLayoutNavigationFullscreenMap":{"name":"SDLPredefinedLayoutNavigationFullscreenMap","abstract":"<p>The default navigation layout with a fullscreen map</p>"},"Constants.html#/c:@SDLPredefinedLayoutNavigationList":{"name":"SDLPredefinedLayoutNavigationList","abstract":"<p>A list layout used for navigation apps</p>"},"Constants.html#/c:@SDLPredefinedLayoutNavigationKeyboard":{"name":"SDLPredefinedLayoutNavigationKeyboard","abstract":"<p>A keyboard layout used for navigation apps</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithText":{"name":"SDLPredefinedLayoutGraphicWithText","abstract":"<p>A layout with a single graphic on the left and text on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextWithGraphic":{"name":"SDLPredefinedLayoutTextWithGraphic","abstract":"<p>A layout with text on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTilesOnly":{"name":"SDLPredefinedLayoutTilesOnly","abstract":"<p>A layout with only softbuttons placed in a tile layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextButtonsOnly":{"name":"SDLPredefinedLayoutTextButtonsOnly","abstract":"<p>A layout with only soft buttons that only accept text</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTiles":{"name":"SDLPredefinedLayoutGraphicWithTiles","abstract":"<p>A layout with a single graphic on the left and soft buttons in a tile layout on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTilesWithGraphic":{"name":"SDLPredefinedLayoutTilesWithGraphic","abstract":"<p>A layout with soft buttons in a tile layout on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextAndSoftButtons":{"name":"SDLPredefinedLayoutGraphicWithTextAndSoftButtons","abstract":"<p>A layout with a single graphic on the left and both text and soft buttons on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextAndSoftButtonsWithGraphic":{"name":"SDLPredefinedLayoutTextAndSoftButtonsWithGraphic","abstract":"<p>A layout with both text and soft buttons on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextButtons":{"name":"SDLPredefinedLayoutGraphicWithTextButtons","abstract":"<p>A layout with a single graphic on the left and text-only soft buttons on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextButtonsWithGraphic":{"name":"SDLPredefinedLayoutTextButtonsWithGraphic","abstract":"<p>A layout with text-only soft buttons on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutLargeGraphicWithSoftButtons":{"name":"SDLPredefinedLayoutLargeGraphicWithSoftButtons","abstract":"<p>A layout with a single large graphic and soft buttons</p>"},"Constants.html#/c:@SDLPredefinedLayoutDoubleGraphicWithSoftButtons":{"name":"SDLPredefinedLayoutDoubleGraphicWithSoftButtons","abstract":"<p>A layout with two graphics and soft buttons</p>"},"Constants.html#/c:@SDLPredefinedLayoutLargeGraphicOnly":{"name":"SDLPredefinedLayoutLargeGraphicOnly","abstract":"<p>A layout with only a single large graphic</p>"},"Constants.html#/c:@SDLPrerecordedSpeechHelp":{"name":"SDLPrerecordedSpeechHelp","abstract":"<p>A prerecorded help prompt</p>"},"Constants.html#/c:@SDLPrerecordedSpeechInitial":{"name":"SDLPrerecordedSpeechInitial","abstract":"<p>A prerecorded initial prompt</p>"},"Constants.html#/c:@SDLPrerecordedSpeechListen":{"name":"SDLPrerecordedSpeechListen","abstract":"<p>A prerecorded listen prompt is available</p>"},"Constants.html#/c:@SDLPrerecordedSpeechPositive":{"name":"SDLPrerecordedSpeechPositive","abstract":"<p>A prerecorded positive indicator noise is available</p>"},"Constants.html#/c:@SDLPrerecordedSpeechNegative":{"name":"SDLPrerecordedSpeechNegative","abstract":"<p>A prerecorded negative indicator noise is available</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceNoSourceSelected":{"name":"SDLPrimaryAudioSourceNoSourceSelected","abstract":"<p>Currently no source selected</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceUSB":{"name":"SDLPrimaryAudioSourceUSB","abstract":"<p>USB is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceUSB2":{"name":"SDLPrimaryAudioSourceUSB2","abstract":"<p>USB2 is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceBluetoothStereo":{"name":"SDLPrimaryAudioSourceBluetoothStereo","abstract":"<p>Bluetooth Stereo is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceLineIn":{"name":"SDLPrimaryAudioSourceLineIn","abstract":"<p>Line in is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceIpod":{"name":"SDLPrimaryAudioSourceIpod","abstract":"<p>iPod is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceMobileApp":{"name":"SDLPrimaryAudioSourceMobileApp","abstract":"<p>Mobile app is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceCD":{"name":"SDLPrimaryAudioSourceCD","abstract":"<p>@abstract CD is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceAM":{"name":"SDLPrimaryAudioSourceAM","abstract":"<p>@abstract Radio frequency AM is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceFM":{"name":"SDLPrimaryAudioSourceFM","abstract":"<p>@abstract Radio frequency FM is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceXM":{"name":"SDLPrimaryAudioSourceXM","abstract":"<p>@abstract Radio frequency XM is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceDAB":{"name":"SDLPrimaryAudioSourceDAB","abstract":"<p>@abstract Radio frequency DAB is current source</p>"},"Constants.html#/c:@SDLRadioBandAM":{"name":"SDLRadioBandAM","abstract":"<p>Represents AM radio band</p>"},"Constants.html#/c:@SDLRadioBandFM":{"name":"SDLRadioBandFM","abstract":"<p>Represents FM radio band</p>"},"Constants.html#/c:@SDLRadioBandXM":{"name":"SDLRadioBandXM","abstract":"<p>Represents XM radio band</p>"},"Constants.html#/c:@SDLRadioStateAcquiring":{"name":"SDLRadioStateAcquiring","abstract":"<p>Represents Radio state as ACQUIRING</p>"},"Constants.html#/c:@SDLRadioStateAcquired":{"name":"SDLRadioStateAcquired","abstract":"<p>Represents Radio state as ACQUIRED</p>"},"Constants.html#/c:@SDLRadioStateMulticast":{"name":"SDLRadioStateMulticast","abstract":"<p>Represents Radio state as MULTICAST</p>"},"Constants.html#/c:@SDLRadioStateNotFound":{"name":"SDLRadioStateNotFound","abstract":"<p>Represents Radio state as NOT_FOUND</p>"},"Constants.html#/c:@SDLRequestTypeHTTP":{"name":"SDLRequestTypeHTTP","abstract":"<p>An HTTP request</p>"},"Constants.html#/c:@SDLRequestTypeFileResume":{"name":"SDLRequestTypeFileResume","abstract":"<p>A file resumption request</p>"},"Constants.html#/c:@SDLRequestTypeAuthenticationRequest":{"name":"SDLRequestTypeAuthenticationRequest","abstract":"<p>An authentication request</p>"},"Constants.html#/c:@SDLRequestTypeAuthenticationChallenge":{"name":"SDLRequestTypeAuthenticationChallenge","abstract":"<p>An authentication challenge</p>"},"Constants.html#/c:@SDLRequestTypeAuthenticationAck":{"name":"SDLRequestTypeAuthenticationAck","abstract":"<p>An authentication acknowledgment</p>"},"Constants.html#/c:@SDLRequestTypeProprietary":{"name":"SDLRequestTypeProprietary","abstract":"<p>An proprietary formatted request</p>"},"Constants.html#/c:@SDLRequestTypeQueryApps":{"name":"SDLRequestTypeQueryApps","abstract":"<p>An Query Apps request</p>"},"Constants.html#/c:@SDLRequestTypeLaunchApp":{"name":"SDLRequestTypeLaunchApp","abstract":"<p>A Launch Apps request</p>"},"Constants.html#/c:@SDLRequestTypeLockScreenIconURL":{"name":"SDLRequestTypeLockScreenIconURL","abstract":"<p>The URL for a lock screen icon</p>"},"Constants.html#/c:@SDLRequestTypeTrafficMessageChannel":{"name":"SDLRequestTypeTrafficMessageChannel","abstract":"<p>A traffic message channel request</p>"},"Constants.html#/c:@SDLRequestTypeDriverProfile":{"name":"SDLRequestTypeDriverProfile","abstract":"<p>A driver profile request</p>"},"Constants.html#/c:@SDLRequestTypeVoiceSearch":{"name":"SDLRequestTypeVoiceSearch","abstract":"<p>A voice search request</p>"},"Constants.html#/c:@SDLRequestTypeNavigation":{"name":"SDLRequestTypeNavigation","abstract":"<p>A navigation request</p>"},"Constants.html#/c:@SDLRequestTypePhone":{"name":"SDLRequestTypePhone","abstract":"<p>A phone request</p>"},"Constants.html#/c:@SDLRequestTypeClimate":{"name":"SDLRequestTypeClimate","abstract":"<p>A climate request</p>"},"Constants.html#/c:@SDLRequestTypeSettings":{"name":"SDLRequestTypeSettings","abstract":"<p>A settings request</p>"},"Constants.html#/c:@SDLRequestTypeVehicleDiagnostics":{"name":"SDLRequestTypeVehicleDiagnostics","abstract":"<p>A vehicle diagnostics request</p>"},"Constants.html#/c:@SDLRequestTypeEmergency":{"name":"SDLRequestTypeEmergency","abstract":"<p>An emergency request</p>"},"Constants.html#/c:@SDLRequestTypeMedia":{"name":"SDLRequestTypeMedia","abstract":"<p>A media request</p>"},"Constants.html#/c:@SDLRequestTypeFOTA":{"name":"SDLRequestTypeFOTA","abstract":"<p>A firmware over-the-air request</p>"},"Constants.html#/c:@SDLRequestTypeOEMSpecific":{"name":"SDLRequestTypeOEMSpecific","abstract":"<p>A request that is OEM specific using the <code>RequestSubType</code> in SystemRequest</p>"},"Constants.html#/c:@SDLResultSuccess":{"name":"SDLResultSuccess","abstract":"<p>The request succeeded</p>"},"Constants.html#/c:@SDLResultInvalidData":{"name":"SDLResultInvalidData","abstract":"<p>The request contained invalid data</p>"},"Constants.html#/c:@SDLResultCharacterLimitExceeded":{"name":"SDLResultCharacterLimitExceeded","abstract":"<p>The request had a string containing too many characters</p>"},"Constants.html#/c:@SDLResultUnsupportedRequest":{"name":"SDLResultUnsupportedRequest","abstract":"<p>The request is not supported by the IVI unit implementing SDL</p>"},"Constants.html#/c:@SDLResultOutOfMemory":{"name":"SDLResultOutOfMemory","abstract":"<p>The system could not process the request because the necessary memory couldn’t be allocated</p>"},"Constants.html#/c:@SDLResultTooManyPendingRequests":{"name":"SDLResultTooManyPendingRequests","abstract":"<p>There are too many requests pending (means that the response has not been delivered yet).</p>"},"Constants.html#/c:@SDLResultInvalidId":{"name":"SDLResultInvalidId","abstract":"<p>One of the provided IDs is not valid.</p>"},"Constants.html#/c:@SDLResultDuplicateName":{"name":"SDLResultDuplicateName","abstract":"<p>The provided name or synonym is a duplicate of some already-defined name or synonym.</p>"},"Constants.html#/c:@SDLResultTooManyApplications":{"name":"SDLResultTooManyApplications","abstract":"<p>There are already too many registered applications.</p>"},"Constants.html#/c:@SDLResultApplicationRegisteredAlready":{"name":"SDLResultApplicationRegisteredAlready","abstract":"<p>RegisterAppInterface has been called, but this app is already registered</p>"},"Constants.html#/c:@SDLResultUnsupportedVersion":{"name":"SDLResultUnsupportedVersion","abstract":"<p>The Head Unit doesn’t support the SDL version that is requested by the mobile application.</p>"},"Constants.html#/c:@SDLResultWrongLanguage":{"name":"SDLResultWrongLanguage","abstract":"<p>The requested language is currently not supported. This might be because of a mismatch of the currently active language on the head unit and the requested language.</p>"},"Constants.html#/c:@SDLResultApplicationNotRegistered":{"name":"SDLResultApplicationNotRegistered","abstract":"<p>A command can not be executed because no application has been registered with RegisterApplication.</p>"},"Constants.html#/c:@SDLResultInUse":{"name":"SDLResultInUse","abstract":"<p>The data may not be changed, because it is currently in use. For example when trying to delete a choice set that is currently involved in an interaction.</p>"},"Constants.html#/c:@SDLResultVehicleDataNotAllowed":{"name":"SDLResultVehicleDataNotAllowed","abstract":"<p>The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.</p>"},"Constants.html#/c:@SDLResultVehicleDataNotAvailable":{"name":"SDLResultVehicleDataNotAvailable","abstract":"<p>The requested vehicle data is not available on this vehicle or is not published.</p>"},"Constants.html#/c:@SDLResultRejected":{"name":"SDLResultRejected","abstract":"<p>The requested command was rejected, e.g. because the mobile app is in background and cannot perform any HMI commands, or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.</p>"},"Constants.html#/c:@SDLResultAborted":{"name":"SDLResultAborted","abstract":"<p>A command was aborted, e.g. due to user interaction (user pressed button), or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.</p>"},"Constants.html#/c:@SDLResultIgnored":{"name":"SDLResultIgnored","abstract":"<p>A command was ignored, because the intended result is already in effect. For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.</p>"},"Constants.html#/c:@SDLResultUnsupportedResource":{"name":"SDLResultUnsupportedResource","abstract":"<p>A button that was requested for subscription is not supported under the current system.</p>"},"Constants.html#/c:@SDLResultFileNotFound":{"name":"SDLResultFileNotFound","abstract":"<p>A specified file could not be found on the head unit.</p>"},"Constants.html#/c:@SDLResultGenericError":{"name":"SDLResultGenericError","abstract":"<p>Provided data is valid but something went wrong in the lower layers.</p>"},"Constants.html#/c:@SDLResultDisallowed":{"name":"SDLResultDisallowed","abstract":"<p>RPC is not authorized in local policy table.</p>"},"Constants.html#/c:@SDLResultUserDisallowed":{"name":"SDLResultUserDisallowed","abstract":"<p>RPC is included in a functional group explicitly blocked by the user.</p>"},"Constants.html#/c:@SDLResultTimedOut":{"name":"SDLResultTimedOut","abstract":"<p>Overlay reached the maximum timeout and closed.</p>"},"Constants.html#/c:@SDLResultCancelRoute":{"name":"SDLResultCancelRoute","abstract":"<p>User selected to Cancel Route.</p>"},"Constants.html#/c:@SDLResultCorruptedData":{"name":"SDLResultCorruptedData","abstract":"<p>The data sent failed to pass CRC check in receiver end.</p>"},"Constants.html#/c:@SDLResultTruncatedData":{"name":"SDLResultTruncatedData","abstract":"<p>The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available.</p>"},"Constants.html#/c:@SDLResultRetry":{"name":"SDLResultRetry","abstract":"<p>The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC.</p>"},"Constants.html#/c:@SDLResultWarnings":{"name":"SDLResultWarnings","abstract":"<p>The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.</p>"},"Constants.html#/c:@SDLResultSaved":{"name":"SDLResultSaved","abstract":"<p>The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value.</p>"},"Constants.html#/c:@SDLResultInvalidCertificate":{"name":"SDLResultInvalidCertificate","abstract":"<p>The certificate provided during authentication is invalid.</p>"},"Constants.html#/c:@SDLResultExpiredCertificate":{"name":"SDLResultExpiredCertificate","abstract":"<p>The certificate provided during authentication is expired.</p>"},"Constants.html#/c:@SDLResultResumeFailed":{"name":"SDLResultResumeFailed","abstract":"<p>The provided hash ID does not match the hash of the current set of registered data or the core could not resume the previous data.</p>"},"Constants.html#/c:@SDLResultDataNotAvailable":{"name":"SDLResultDataNotAvailable","abstract":"<p>The requested data is not available on this vehicle or is not published for the connected app.</p>"},"Constants.html#/c:@SDLResultReadOnly":{"name":"SDLResultReadOnly","abstract":"<p>The requested data is read only thus cannot be change via remote control .</p>"},"Constants.html#/c:@SDLSamplingRate8KHZ":{"name":"SDLSamplingRate8KHZ","abstract":"<p>Sampling rate of 8 kHz</p>"},"Constants.html#/c:@SDLSamplingRate16KHZ":{"name":"SDLSamplingRate16KHZ","abstract":"<p>Sampling rate of 16 kHz</p>"},"Constants.html#/c:@SDLSamplingRate22KHZ":{"name":"SDLSamplingRate22KHZ","abstract":"<p>Sampling rate of 22 kHz</p>"},"Constants.html#/c:@SDLSamplingRate44KHZ":{"name":"SDLSamplingRate44KHZ","abstract":"<p>Sampling rate of 44 kHz</p>"},"Constants.html#/c:@SDLSeatMemoryActionTypeSave":{"name":"SDLSeatMemoryActionTypeSave","abstract":"<p>@abstract Save current seat postions and settings to seat memory.</p>"},"Constants.html#/c:@SDLSeatMemoryActionTypeRestore":{"name":"SDLSeatMemoryActionTypeRestore","abstract":"<p>@abstract Restore / apply the seat memory settings to the current seat.</p>"},"Constants.html#/c:@SDLSeatMemoryActionTypeNone":{"name":"SDLSeatMemoryActionTypeNone","abstract":"<p>@abstract No action to be performed.</p>"},"Constants.html#/c:@SDLSoftButtonTypeText":{"name":"SDLSoftButtonTypeText","abstract":"<p>Text kind Softbutton</p>"},"Constants.html#/c:@SDLSoftButtonTypeImage":{"name":"SDLSoftButtonTypeImage","abstract":"<p>Image kind Softbutton</p>"},"Constants.html#/c:@SDLSoftButtonTypeBoth":{"name":"SDLSoftButtonTypeBoth","abstract":"<p>Both (Text & Image) kind Softbutton</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesText":{"name":"SDLSpeechCapabilitiesText","abstract":"<p>The SDL platform can speak text phrases.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesSAPIPhonemes":{"name":"SDLSpeechCapabilitiesSAPIPhonemes","abstract":"<p>The SDL platform can speak SAPI Phonemes.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesLHPlusPhonemes":{"name":"SDLSpeechCapabilitiesLHPlusPhonemes","abstract":"<p>The SDL platform can speak LHPlus Phonemes.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesPrerecorded":{"name":"SDLSpeechCapabilitiesPrerecorded","abstract":"<p>The SDL platform can speak Prerecorded indicators and prompts.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesSilence":{"name":"SDLSpeechCapabilitiesSilence","abstract":"<p>The SDL platform can speak Silence.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesFile":{"name":"SDLSpeechCapabilitiesFile","abstract":"<p>The SDL platform can play a file</p>"},"Constants.html#/c:@SDLStaticIconNameAcceptCall":{"name":"SDLStaticIconNameAcceptCall","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAddWaypoint":{"name":"SDLStaticIconNameAddWaypoint","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAlbum":{"name":"SDLStaticIconNameAlbum","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAmbientLighting":{"name":"SDLStaticIconNameAmbientLighting","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameArrowNorth":{"name":"SDLStaticIconNameArrowNorth","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAudioMute":{"name":"SDLStaticIconNameAudioMute","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAudiobookEpisode":{"name":"SDLStaticIconNameAudiobookEpisode","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAudiobookNarrator":{"name":"SDLStaticIconNameAudiobookNarrator","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAuxillaryAudio":{"name":"SDLStaticIconNameAuxillaryAudio","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBack":{"name":"SDLStaticIconNameBack","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity0Of5":{"name":"SDLStaticIconNameBatteryCapacity0Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity1Of5":{"name":"SDLStaticIconNameBatteryCapacity1Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity2Of5":{"name":"SDLStaticIconNameBatteryCapacity2Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity3Of5":{"name":"SDLStaticIconNameBatteryCapacity3Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity4Of5":{"name":"SDLStaticIconNameBatteryCapacity4Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity5Of5":{"name":"SDLStaticIconNameBatteryCapacity5Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBluetoothAudioSource":{"name":"SDLStaticIconNameBluetoothAudioSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBluetooth1":{"name":"SDLStaticIconNameBluetooth1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBluetooth2":{"name":"SDLStaticIconNameBluetooth2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBrowse":{"name":"SDLStaticIconNameBrowse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellPhoneInRoamingMode":{"name":"SDLStaticIconNameCellPhoneInRoamingMode","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength0Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength0Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength1Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength1Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength2Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength2Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength3Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength3Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength4Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength4Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength5Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength5Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameChangeLaneLeft":{"name":"SDLStaticIconNameChangeLaneLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameChangeLaneRight":{"name":"SDLStaticIconNameChangeLaneRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCheckBoxChecked":{"name":"SDLStaticIconNameCheckBoxChecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCheckBoxUnchecked":{"name":"SDLStaticIconNameCheckBoxUnchecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameClimate":{"name":"SDLStaticIconNameClimate","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameClock":{"name":"SDLStaticIconNameClock","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCompose":{"name":"SDLStaticIconNameCompose","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameContact":{"name":"SDLStaticIconNameContact","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameContinue":{"name":"SDLStaticIconNameContinue","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDash":{"name":"SDLStaticIconNameDash","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDate":{"name":"SDLStaticIconNameDate","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDelete":{"name":"SDLStaticIconNameDelete","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDestination":{"name":"SDLStaticIconNameDestination","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDestinationFerryAhead":{"name":"SDLStaticIconNameDestinationFerryAhead","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameEbookmark":{"name":"SDLStaticIconNameEbookmark","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameEmpty":{"name":"SDLStaticIconNameEmpty","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameEndCall":{"name":"SDLStaticIconNameEndCall","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFail":{"name":"SDLStaticIconNameFail","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFastForward30Secs":{"name":"SDLStaticIconNameFastForward30Secs","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFavoriteHeart":{"name":"SDLStaticIconNameFavoriteHeart","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFavoriteStar":{"name":"SDLStaticIconNameFavoriteStar","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFaxNumber":{"name":"SDLStaticIconNameFaxNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFilename":{"name":"SDLStaticIconNameFilename","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFilter":{"name":"SDLStaticIconNameFilter","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFolder":{"name":"SDLStaticIconNameFolder","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFuelPrices":{"name":"SDLStaticIconNameFuelPrices","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFullMap":{"name":"SDLStaticIconNameFullMap","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameGenericPhoneNumber":{"name":"SDLStaticIconNameGenericPhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameGenre":{"name":"SDLStaticIconNameGenre","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameGlobalKeyboard":{"name":"SDLStaticIconNameGlobalKeyboard","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameHighwayExitInformation":{"name":"SDLStaticIconNameHighwayExitInformation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameHomePhoneNumber":{"name":"SDLStaticIconNameHomePhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameHyperlink":{"name":"SDLStaticIconNameHyperlink","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameID3TagUnknown":{"name":"SDLStaticIconNameID3TagUnknown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameIncomingCalls":{"name":"SDLStaticIconNameIncomingCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameInformation":{"name":"SDLStaticIconNameInformation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameIPodMediaSource":{"name":"SDLStaticIconNameIPodMediaSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameJoinCalls":{"name":"SDLStaticIconNameJoinCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameKeepLeft":{"name":"SDLStaticIconNameKeepLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameKeepRight":{"name":"SDLStaticIconNameKeepRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameKey":{"name":"SDLStaticIconNameKey","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLeft":{"name":"SDLStaticIconNameLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLeftArrow":{"name":"SDLStaticIconNameLeftArrow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLeftExit":{"name":"SDLStaticIconNameLeftExit","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLineInAudioSource":{"name":"SDLStaticIconNameLineInAudioSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLocked":{"name":"SDLStaticIconNameLocked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlLeftArrow":{"name":"SDLStaticIconNameMediaControlLeftArrow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlRecording":{"name":"SDLStaticIconNameMediaControlRecording","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlRightArrow":{"name":"SDLStaticIconNameMediaControlRightArrow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlStop":{"name":"SDLStaticIconNameMediaControlStop","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMicrophone":{"name":"SDLStaticIconNameMicrophone","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMissedCalls":{"name":"SDLStaticIconNameMissedCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMobilePhoneNumber":{"name":"SDLStaticIconNameMobilePhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMoveDown":{"name":"SDLStaticIconNameMoveDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMoveUp":{"name":"SDLStaticIconNameMoveUp","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMP3TagArtist":{"name":"SDLStaticIconNameMP3TagArtist","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNavigation":{"name":"SDLStaticIconNameNavigation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNavigationCurrentDirection":{"name":"SDLStaticIconNameNavigationCurrentDirection","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNegativeRatingThumbsDown":{"name":"SDLStaticIconNameNegativeRatingThumbsDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNew":{"name":"SDLStaticIconNameNew","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOfficePhoneNumber":{"name":"SDLStaticIconNameOfficePhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOpened":{"name":"SDLStaticIconNameOpened","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOrigin":{"name":"SDLStaticIconNameOrigin","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOutgoingCalls":{"name":"SDLStaticIconNameOutgoingCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePause":{"name":"SDLStaticIconNamePause","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoneCall1":{"name":"SDLStaticIconNamePhoneCall1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoneCall2":{"name":"SDLStaticIconNamePhoneCall2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoneDevice":{"name":"SDLStaticIconNamePhoneDevice","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhonebook":{"name":"SDLStaticIconNamePhonebook","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoto":{"name":"SDLStaticIconNamePhoto","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePlay":{"name":"SDLStaticIconNamePlay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePlaylist":{"name":"SDLStaticIconNamePlaylist","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePopUp":{"name":"SDLStaticIconNamePopUp","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePositiveRatingThumbsUp":{"name":"SDLStaticIconNamePositiveRatingThumbsUp","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePower":{"name":"SDLStaticIconNamePower","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePrimaryPhone":{"name":"SDLStaticIconNamePrimaryPhone","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRadioButtonChecked":{"name":"SDLStaticIconNameRadioButtonChecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRadioButtonUnchecked":{"name":"SDLStaticIconNameRadioButtonUnchecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRecentCalls":{"name":"SDLStaticIconNameRecentCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRecentDestinations":{"name":"SDLStaticIconNameRecentDestinations","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRedo":{"name":"SDLStaticIconNameRedo","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRefresh":{"name":"SDLStaticIconNameRefresh","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRemoteDiagnosticsCheckEngine":{"name":"SDLStaticIconNameRemoteDiagnosticsCheckEngine","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRendered911Assist":{"name":"SDLStaticIconNameRendered911Assist","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRepeat":{"name":"SDLStaticIconNameRepeat","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRepeatPlay":{"name":"SDLStaticIconNameRepeatPlay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameReply":{"name":"SDLStaticIconNameReply","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRewind30Secs":{"name":"SDLStaticIconNameRewind30Secs","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRight":{"name":"SDLStaticIconNameRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRightExit":{"name":"SDLStaticIconNameRightExit","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRingtones":{"name":"SDLStaticIconNameRingtones","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand1":{"name":"SDLStaticIconNameRoundaboutLeftHand1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand2":{"name":"SDLStaticIconNameRoundaboutLeftHand2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand3":{"name":"SDLStaticIconNameRoundaboutLeftHand3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand4":{"name":"SDLStaticIconNameRoundaboutLeftHand4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand5":{"name":"SDLStaticIconNameRoundaboutLeftHand5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand6":{"name":"SDLStaticIconNameRoundaboutLeftHand6","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand7":{"name":"SDLStaticIconNameRoundaboutLeftHand7","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand1":{"name":"SDLStaticIconNameRoundaboutRightHand1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand2":{"name":"SDLStaticIconNameRoundaboutRightHand2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand3":{"name":"SDLStaticIconNameRoundaboutRightHand3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand4":{"name":"SDLStaticIconNameRoundaboutRightHand4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand5":{"name":"SDLStaticIconNameRoundaboutRightHand5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand6":{"name":"SDLStaticIconNameRoundaboutRightHand6","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand7":{"name":"SDLStaticIconNameRoundaboutRightHand7","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRSS":{"name":"SDLStaticIconNameRSS","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSettings":{"name":"SDLStaticIconNameSettings","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSharpLeft":{"name":"SDLStaticIconNameSharpLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSharpRight":{"name":"SDLStaticIconNameSharpRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameShow":{"name":"SDLStaticIconNameShow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameShufflePlay":{"name":"SDLStaticIconNameShufflePlay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSkiPlaces":{"name":"SDLStaticIconNameSkiPlaces","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSlightLeft":{"name":"SDLStaticIconNameSlightLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSlightRight":{"name":"SDLStaticIconNameSlightRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSmartphone":{"name":"SDLStaticIconNameSmartphone","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSortList":{"name":"SDLStaticIconNameSortList","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber0":{"name":"SDLStaticIconNameSpeedDialNumbersNumber0","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber1":{"name":"SDLStaticIconNameSpeedDialNumbersNumber1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber2":{"name":"SDLStaticIconNameSpeedDialNumbersNumber2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber3":{"name":"SDLStaticIconNameSpeedDialNumbersNumber3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber4":{"name":"SDLStaticIconNameSpeedDialNumbersNumber4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber5":{"name":"SDLStaticIconNameSpeedDialNumbersNumber5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber6":{"name":"SDLStaticIconNameSpeedDialNumbersNumber6","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber7":{"name":"SDLStaticIconNameSpeedDialNumbersNumber7","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber8":{"name":"SDLStaticIconNameSpeedDialNumbersNumber8","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber9":{"name":"SDLStaticIconNameSpeedDialNumbersNumber9","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSuccess":{"name":"SDLStaticIconNameSuccess","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameTrackTitle":{"name":"SDLStaticIconNameTrackTitle","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameTrafficReport":{"name":"SDLStaticIconNameTrafficReport","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameTurnList":{"name":"SDLStaticIconNameTurnList","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUTurnLeftTraffic":{"name":"SDLStaticIconNameUTurnLeftTraffic","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUTurnRightTraffic":{"name":"SDLStaticIconNameUTurnRightTraffic","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUndo":{"name":"SDLStaticIconNameUndo","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUnlocked":{"name":"SDLStaticIconNameUnlocked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUSBMediaAudioSource":{"name":"SDLStaticIconNameUSBMediaAudioSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo1":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo2":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo3":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo4":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionFailed":{"name":"SDLStaticIconNameVoiceRecognitionFailed","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionPause":{"name":"SDLStaticIconNameVoiceRecognitionPause","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionSuccessful":{"name":"SDLStaticIconNameVoiceRecognitionSuccessful","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionSystemActive":{"name":"SDLStaticIconNameVoiceRecognitionSystemActive","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionSystemListening":{"name":"SDLStaticIconNameVoiceRecognitionSystemListening","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionTryAgain":{"name":"SDLStaticIconNameVoiceRecognitionTryAgain","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameWarning":{"name":"SDLStaticIconNameWarning","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameWeather":{"name":"SDLStaticIconNameWeather","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameWifiFull":{"name":"SDLStaticIconNameWifiFull","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameZoomIn":{"name":"SDLStaticIconNameZoomIn","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameZoomOut":{"name":"SDLStaticIconNameZoomOut","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDefaultScreenSize":{"name":"SDLDefaultScreenSize","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamDidStartNotification":{"name":"SDLVideoStreamDidStartNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamDidStopNotification":{"name":"SDLVideoStreamDidStopNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamSuspendedNotification":{"name":"SDLVideoStreamSuspendedNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamDidStartNotification":{"name":"SDLAudioStreamDidStartNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamDidStopNotification":{"name":"SDLAudioStreamDidStopNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerWillPresentLockScreenViewController":{"name":"SDLLockScreenManagerWillPresentLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerDidPresentLockScreenViewController":{"name":"SDLLockScreenManagerDidPresentLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerWillDismissLockScreenViewController":{"name":"SDLLockScreenManagerWillDismissLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerDidDismissLockScreenViewController":{"name":"SDLLockScreenManagerDidDismissLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateStopped":{"name":"SDLVideoStreamManagerStateStopped","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateStarting":{"name":"SDLVideoStreamManagerStateStarting","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateReady":{"name":"SDLVideoStreamManagerStateReady","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateSuspended":{"name":"SDLVideoStreamManagerStateSuspended","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateShuttingDown":{"name":"SDLVideoStreamManagerStateShuttingDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateStopped":{"name":"SDLAudioStreamManagerStateStopped","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateStarting":{"name":"SDLAudioStreamManagerStateStarting","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateReady":{"name":"SDLAudioStreamManagerStateReady","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateShuttingDown":{"name":"SDLAudioStreamManagerStateShuttingDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAppStateInactive":{"name":"SDLAppStateInactive","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAppStateActive":{"name":"SDLAppStateActive","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLSupportedSeatDriver":{"name":"SDLSupportedSeatDriver","abstract":"<p>@abstract Save current seat postions and settings to seat memory.</p>"},"Constants.html#/c:@SDLSupportedSeatFrontPassenger":{"name":"SDLSupportedSeatFrontPassenger","abstract":"<p>@abstract Restore / apply the seat memory settings to the current seat.</p>"},"Constants.html#/c:@SDLSystemActionDefaultAction":{"name":"SDLSystemActionDefaultAction","abstract":"<p>A default soft button action</p>"},"Constants.html#/c:@SDLSystemActionStealFocus":{"name":"SDLSystemActionStealFocus","abstract":"<p>An action causing your app to steal HMI focus</p>"},"Constants.html#/c:@SDLSystemActionKeepContext":{"name":"SDLSystemActionKeepContext","abstract":"<p>An action causing you to keep context</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeNavigation":{"name":"SDLSystemCapabilityTypeNavigation","abstract":"<p>The navigation capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypePhoneCall":{"name":"SDLSystemCapabilityTypePhoneCall","abstract":"<p>The phone call capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeVideoStreaming":{"name":"SDLSystemCapabilityTypeVideoStreaming","abstract":"<p>The video streaming capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeRemoteControl":{"name":"SDLSystemCapabilityTypeRemoteControl","abstract":"<p>The remote control capability</p>"},"Constants.html#/c:@SDLSystemContextMain":{"name":"SDLSystemContextMain","abstract":"<p>No user interaction (user-initiated or app-initiated) is in progress.</p>"},"Constants.html#/c:@SDLSystemContextVoiceRecognitionSession":{"name":"SDLSystemContextVoiceRecognitionSession","abstract":"<p>VR-oriented, user-initiated or app-initiated interaction is in-progress.</p>"},"Constants.html#/c:@SDLSystemContextMenu":{"name":"SDLSystemContextMenu","abstract":"<p>Menu-oriented, user-initiated or app-initiated interaction is in-progress.</p>"},"Constants.html#/c:@SDLSystemContextHMIObscured":{"name":"SDLSystemContextHMIObscured","abstract":"<p>The app’s display HMI is currently being obscured by either a system or other app’s overlay.</p>"},"Constants.html#/c:@SDLSystemContextAlert":{"name":"SDLSystemContextAlert","abstract":"<p>Broadcast only to whichever app has an alert currently being displayed.</p>"},"Constants.html#/c:@SDLTBTStateRouteUpdateRequest":{"name":"SDLTBTStateRouteUpdateRequest","abstract":"<p>The route should be updated</p>"},"Constants.html#/c:@SDLTBTStateRouteAccepted":{"name":"SDLTBTStateRouteAccepted","abstract":"<p>The route is accepted</p>"},"Constants.html#/c:@SDLTBTStateRouteRefused":{"name":"SDLTBTStateRouteRefused","abstract":"<p>The route is refused</p>"},"Constants.html#/c:@SDLTBTStateRouteCancelled":{"name":"SDLTBTStateRouteCancelled","abstract":"<p>The route is cancelled</p>"},"Constants.html#/c:@SDLTBTStateETARequest":{"name":"SDLTBTStateETARequest","abstract":"<p>The route should update its Estimated Time of Arrival</p>"},"Constants.html#/c:@SDLTBTStateNextTurnRequest":{"name":"SDLTBTStateNextTurnRequest","abstract":"<p>The route should update its next turn</p>"},"Constants.html#/c:@SDLTBTStateRouteStatusRequest":{"name":"SDLTBTStateRouteStatusRequest","abstract":"<p>The route should update its status</p>"},"Constants.html#/c:@SDLTBTStateRouteSummaryRequest":{"name":"SDLTBTStateRouteSummaryRequest","abstract":"<p>The route update its summary</p>"},"Constants.html#/c:@SDLTBTStateTripStatusRequest":{"name":"SDLTBTStateTripStatusRequest","abstract":"<p>The route should update the trip’s status</p>"},"Constants.html#/c:@SDLTBTStateRouteUpdateRequestTimeout":{"name":"SDLTBTStateRouteUpdateRequestTimeout","abstract":"<p>The route update timed out</p>"},"Constants.html#/c:@SDLTPMSUnknown":{"name":"SDLTPMSUnknown","abstract":"<p>If set the status of the tire is not known.</p>"},"Constants.html#/c:@SDLTPMSSystemFault":{"name":"SDLTPMSSystemFault","abstract":"<p>TPMS does not function.</p>"},"Constants.html#/c:@SDLTPMSSensorFault":{"name":"SDLTPMSSensorFault","abstract":"<p>The sensor of the tire does not function.</p>"},"Constants.html#/c:@SDLTPMSLow":{"name":"SDLTPMSLow","abstract":"<p>TPMS is reporting a low tire pressure for the tire.</p>"},"Constants.html#/c:@SDLTPMSSystemActive":{"name":"SDLTPMSSystemActive","abstract":"<p>TPMS is active and the tire pressure is monitored.</p>"},"Constants.html#/c:@SDLTPMSTrain":{"name":"SDLTPMSTrain","abstract":"<p>TPMS is reporting that the tire must be trained.</p>"},"Constants.html#/c:@SDLTPMSTrainingComplete":{"name":"SDLTPMSTrainingComplete","abstract":"<p>TPMS reports the training for the tire is completed.</p>"},"Constants.html#/c:@SDLTPMSNotTrained":{"name":"SDLTPMSNotTrained","abstract":"<p>TPMS reports the tire is not trained.</p>"},"Constants.html#/c:@SDLTemperatureUnitCelsius":{"name":"SDLTemperatureUnitCelsius","abstract":"<p>Reflects the current HMI setting for temperature unit in Celsius</p>"},"Constants.html#/c:@SDLTemperatureUnitFahrenheit":{"name":"SDLTemperatureUnitFahrenheit","abstract":"<p>Reflects the current HMI setting for temperature unit in Fahrenheit</p>"},"Constants.html#/c:@SDLTextAlignmentLeft":{"name":"SDLTextAlignmentLeft","abstract":"<p>Text aligned left.</p>"},"Constants.html#/c:@SDLTextAlignmentRight":{"name":"SDLTextAlignmentRight","abstract":"<p>Text aligned right.</p>"},"Constants.html#/c:@SDLTextAlignmentCenter":{"name":"SDLTextAlignmentCenter","abstract":"<p>Text aligned centered.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField1":{"name":"SDLTextFieldNameMainField1","abstract":"<p>The first line of the first set of main fields of the persistent display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField2":{"name":"SDLTextFieldNameMainField2","abstract":"<p>The second line of the first set of main fields of the persistent display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField3":{"name":"SDLTextFieldNameMainField3","abstract":"<p>The first line of the second set of main fields of the persistent display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField4":{"name":"SDLTextFieldNameMainField4"},"Constants.html#/c:@SDLTextFieldNameStatusBar":{"name":"SDLTextFieldNameStatusBar","abstract":"<p>The status bar on the NGN display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMediaClock":{"name":"SDLTextFieldNameMediaClock","abstract":"<p>Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMediaTrack":{"name":"SDLTextFieldNameMediaTrack","abstract":"<p>The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameAlertText1":{"name":"SDLTextFieldNameAlertText1","abstract":"<p>The first line of the alert text field. Applies to SDLAlert.</p>"},"Constants.html#/c:@SDLTextFieldNameAlertText2":{"name":"SDLTextFieldNameAlertText2","abstract":"<p>The second line of the alert text field. Applies to SDLAlert.</p>"},"Constants.html#/c:@SDLTextFieldNameAlertText3":{"name":"SDLTextFieldNameAlertText3","abstract":"<p>The third line of the alert text field. Applies to SDLAlert.</p>"},"Constants.html#/c:@SDLTextFieldNameScrollableMessageBody":{"name":"SDLTextFieldNameScrollableMessageBody","abstract":"<p>Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage.</p>"},"Constants.html#/c:@SDLTextFieldNameInitialInteractionText":{"name":"SDLTextFieldNameInitialInteractionText","abstract":"<p>First line suggestion for a user response (in the case of VR enabled interaction).</p>"},"Constants.html#/c:@SDLTextFieldNameNavigationText1":{"name":"SDLTextFieldNameNavigationText1","abstract":"<p>First line of navigation text.</p>"},"Constants.html#/c:@SDLTextFieldNameNavigationText2":{"name":"SDLTextFieldNameNavigationText2","abstract":"<p>Second line of navigation text.</p>"},"Constants.html#/c:@SDLTextFieldNameETA":{"name":"SDLTextFieldNameETA","abstract":"<p>Estimated Time of Arrival time for navigation.</p>"},"Constants.html#/c:@SDLTextFieldNameTotalDistance":{"name":"SDLTextFieldNameTotalDistance","abstract":"<p>Total distance to destination for navigation.</p>"},"Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText1":{"name":"SDLTextFieldNameAudioPassThruDisplayText1","abstract":"<p>First line of text for audio pass thru.</p>"},"Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText2":{"name":"SDLTextFieldNameAudioPassThruDisplayText2","abstract":"<p>Second line of text for audio pass thru.</p>"},"Constants.html#/c:@SDLTextFieldNameSliderHeader":{"name":"SDLTextFieldNameSliderHeader","abstract":"<p>Header text for slider.</p>"},"Constants.html#/c:@SDLTextFieldNameSliderFooter":{"name":"SDLTextFieldNameSliderFooter","abstract":"<p>Footer text for slider</p>"},"Constants.html#/c:@SDLTextFieldNameMenuName":{"name":"SDLTextFieldNameMenuName","abstract":"<p>Primary text for SDLChoice</p>"},"Constants.html#/c:@SDLTextFieldNameSecondaryText":{"name":"SDLTextFieldNameSecondaryText","abstract":"<p>Secondary text for SDLChoice</p>"},"Constants.html#/c:@SDLTextFieldNameTertiaryText":{"name":"SDLTextFieldNameTertiaryText","abstract":"<p>Tertiary text for SDLChoice</p>"},"Constants.html#/c:@SDLTextFieldNameMenuTitle":{"name":"SDLTextFieldNameMenuTitle","abstract":"<p>Optional text to label an app menu button (for certain touchscreen platforms)</p>"},"Constants.html#/c:@SDLTextFieldNameLocationName":{"name":"SDLTextFieldNameLocationName","abstract":"<p>Optional name / title of intended location for SDLSendLocation</p>"},"Constants.html#/c:@SDLTextFieldNameLocationDescription":{"name":"SDLTextFieldNameLocationDescription","abstract":"<p>Optional description of intended location / establishment (if applicable) for SDLSendLocation</p>"},"Constants.html#/c:@SDLTextFieldNameAddressLines":{"name":"SDLTextFieldNameAddressLines","abstract":"<p>Optional location address (if applicable) for SDLSendLocation</p>"},"Constants.html#/c:@SDLTextFieldNamePhoneNumber":{"name":"SDLTextFieldNamePhoneNumber","abstract":"<p>Optional hone number of intended location / establishment (if applicable) for SDLSendLocation</p>"},"Constants.html#/c:@SDLTimerModeUp":{"name":"SDLTimerModeUp","abstract":"<p>The timer should count up.</p>"},"Constants.html#/c:@SDLTimerModeDown":{"name":"SDLTimerModeDown","abstract":"<p>The timer should count down.</p>"},"Constants.html#/c:@SDLTimerModeNone":{"name":"SDLTimerModeNone","abstract":"<p>The timer should not count.</p>"},"Constants.html#/c:@SDLTouchTypeBegin":{"name":"SDLTouchTypeBegin","abstract":"<p>The touch is the beginning of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTouchTypeMove":{"name":"SDLTouchTypeMove","abstract":"<p>The touch is the movement of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTouchTypeEnd":{"name":"SDLTouchTypeEnd","abstract":"<p>The touch is the ending of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTouchTypeCancel":{"name":"SDLTouchTypeCancel","abstract":"<p>The touch is the cancellation of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTriggerSourceMenu":{"name":"SDLTriggerSourceMenu","abstract":"<p>Selection made via menu</p>"},"Constants.html#/c:@SDLTriggerSourceVoiceRecognition":{"name":"SDLTriggerSourceVoiceRecognition","abstract":"<p>Selection made via Voice session</p>"},"Constants.html#/c:@SDLTriggerSourceKeyboard":{"name":"SDLTriggerSourceKeyboard","abstract":"<p>Selection made via Keyboard</p>"},"Constants.html#/c:@SDLTurnSignalOff":{"name":"SDLTurnSignalOff","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTurnSignalLeft":{"name":"SDLTurnSignalLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTurnSignalRight":{"name":"SDLTurnSignalRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTurnSignalBoth":{"name":"SDLTurnSignalBoth","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLUpdateModeCountUp":{"name":"SDLUpdateModeCountUp","abstract":"<p>Starts the media clock timer counting upward, in increments of 1 second.</p>"},"Constants.html#/c:@SDLUpdateModeCountDown":{"name":"SDLUpdateModeCountDown","abstract":"<p>Starts the media clock timer counting downward, in increments of 1 second.</p>"},"Constants.html#/c:@SDLUpdateModePause":{"name":"SDLUpdateModePause","abstract":"<p>Pauses the media clock timer.</p>"},"Constants.html#/c:@SDLUpdateModeResume":{"name":"SDLUpdateModeResume","abstract":"<p>Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN).</p>"},"Constants.html#/c:@SDLUpdateModeClear":{"name":"SDLUpdateModeClear","abstract":"<p>Clear the media clock timer.</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusInactiveNotConfirmed":{"name":"SDLVehicleDataActiveStatusInactiveNotConfirmed","abstract":"<p>Inactive not confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusInactiveConfirmed":{"name":"SDLVehicleDataActiveStatusInactiveConfirmed","abstract":"<p>Inactive confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusActiveNotConfirmed":{"name":"SDLVehicleDataActiveStatusActiveNotConfirmed","abstract":"<p>Active not confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusActiveConfirmed":{"name":"SDLVehicleDataActiveStatusActiveConfirmed","abstract":"<p>Active confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusFault":{"name":"SDLVehicleDataActiveStatusFault","abstract":"<p>Fault</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusNoEvent":{"name":"SDLVehicleDataEventStatusNoEvent","abstract":"<p>No event</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusNo":{"name":"SDLVehicleDataEventStatusNo","abstract":"<p>The event is a No status</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusYes":{"name":"SDLVehicleDataEventStatusYes","abstract":"<p>The event is a Yes status</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusNotSupported":{"name":"SDLVehicleDataEventStatusNotSupported","abstract":"<p>Vehicle data event is not supported</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusFault":{"name":"SDLVehicleDataEventStatusFault","abstract":"<p>The event is a Fault status</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusNotSupported":{"name":"SDLVehicleDataNotificationStatusNotSupported","abstract":"<p>The vehicle data notification status is not supported</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusNormal":{"name":"SDLVehicleDataNotificationStatusNormal","abstract":"<p>The vehicle data notification status is normal</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusActive":{"name":"SDLVehicleDataNotificationStatusActive","abstract":"<p>The vehicle data notification status is active</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusNotUsed":{"name":"SDLVehicleDataNotificationStatusNotUsed","abstract":"<p>The vehicle data notification status is not used</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeSuccess":{"name":"SDLVehicleDataResultCodeSuccess","abstract":"<p>Individual vehicle data item / DTC / DID request or subscription successful</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeTruncatedData":{"name":"SDLVehicleDataResultCodeTruncatedData","abstract":"<p>DTC / DID request successful, however, not all active DTCs or full contents of DID location available</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeDisallowed":{"name":"SDLVehicleDataResultCodeDisallowed","abstract":"<p>This vehicle data item is not allowed for this app by SDL</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeUserDisallowed":{"name":"SDLVehicleDataResultCodeUserDisallowed","abstract":"<p>The user has not granted access to this type of vehicle data item at this time</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeInvalidId":{"name":"SDLVehicleDataResultCodeInvalidId","abstract":"<p>The ECU ID referenced is not a valid ID on the bus / system</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeVehicleDataNotAvailable":{"name":"SDLVehicleDataResultCodeVehicleDataNotAvailable","abstract":"<p>The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeDataAlreadySubscribed":{"name":"SDLVehicleDataResultCodeDataAlreadySubscribed","abstract":"<p>The vehicle data item is already subscribed</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeDataNotSubscribed":{"name":"SDLVehicleDataResultCodeDataNotSubscribed","abstract":"<p>The vehicle data item cannot be unsubscribed because it is not currently subscribed</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeIgnored":{"name":"SDLVehicleDataResultCodeIgnored","abstract":"<p>The request for this item is ignored because it is already in progress</p>"},"Constants.html#/c:@SDLVehicleDataStatusNoDataExists":{"name":"SDLVehicleDataStatusNoDataExists","abstract":"<p>No data avaliable</p>"},"Constants.html#/c:@SDLVehicleDataStatusOff":{"name":"SDLVehicleDataStatusOff","abstract":"<p>The status is Off</p>"},"Constants.html#/c:@SDLVehicleDataStatusOn":{"name":"SDLVehicleDataStatusOn","abstract":"<p>The status is On</p>"},"Constants.html#/c:@SDLVehicleDataTypeGPS":{"name":"SDLVehicleDataTypeGPS","abstract":"<p>GPS vehicle data</p>"},"Constants.html#/c:@SDLVehicleDataTypeSpeed":{"name":"SDLVehicleDataTypeSpeed","abstract":"<p>Vehicle speed data</p>"},"Constants.html#/c:@SDLVehicleDataTypeRPM":{"name":"SDLVehicleDataTypeRPM","abstract":"<p>Vehicle RPM data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelLevel":{"name":"SDLVehicleDataTypeFuelLevel","abstract":"<p>Vehicle fuel level data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelLevelState":{"name":"SDLVehicleDataTypeFuelLevelState","abstract":"<p>Vehicle fuel level state data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelConsumption":{"name":"SDLVehicleDataTypeFuelConsumption","abstract":"<p>Vehicle fuel consumption data</p>"},"Constants.html#/c:@SDLVehicleDataTypeExternalTemperature":{"name":"SDLVehicleDataTypeExternalTemperature","abstract":"<p>Vehicle external temperature data</p>"},"Constants.html#/c:@SDLVehicleDataTypeVIN":{"name":"SDLVehicleDataTypeVIN","abstract":"<p>Vehicle VIN data</p>"},"Constants.html#/c:@SDLVehicleDataTypePRNDL":{"name":"SDLVehicleDataTypePRNDL","abstract":"<p>Vehicle PRNDL data</p>"},"Constants.html#/c:@SDLVehicleDataTypeTirePressure":{"name":"SDLVehicleDataTypeTirePressure","abstract":"<p>Vehicle tire pressure data</p>"},"Constants.html#/c:@SDLVehicleDataTypeOdometer":{"name":"SDLVehicleDataTypeOdometer","abstract":"<p>Vehicle odometer data</p>"},"Constants.html#/c:@SDLVehicleDataTypeBeltStatus":{"name":"SDLVehicleDataTypeBeltStatus","abstract":"<p>Vehicle belt status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeBodyInfo":{"name":"SDLVehicleDataTypeBodyInfo","abstract":"<p>Vehicle body info data</p>"},"Constants.html#/c:@SDLVehicleDataTypeDeviceStatus":{"name":"SDLVehicleDataTypeDeviceStatus","abstract":"<p>Vehicle device status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeECallInfo":{"name":"SDLVehicleDataTypeECallInfo","abstract":"<p>Vehicle emergency call info data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelRange":{"name":"SDLVehicleDataTypeFuelRange","abstract":"<p>Vehicle fuel range data</p>"},"Constants.html#/c:@SDLVehicleDataTypeAirbagStatus":{"name":"SDLVehicleDataTypeAirbagStatus","abstract":"<p>Vehicle airbag status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeEmergencyEvent":{"name":"SDLVehicleDataTypeEmergencyEvent","abstract":"<p>Vehicle emergency event info</p>"},"Constants.html#/c:@SDLVehicleDataTypeClusterModeStatus":{"name":"SDLVehicleDataTypeClusterModeStatus","abstract":"<p>Vehicle cluster mode status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeMyKey":{"name":"SDLVehicleDataTypeMyKey","abstract":"<p>Vehicle MyKey data</p>"},"Constants.html#/c:@SDLVehicleDataTypeBraking":{"name":"SDLVehicleDataTypeBraking","abstract":"<p>Vehicle braking data</p>"},"Constants.html#/c:@SDLVehicleDataTypeWiperStatus":{"name":"SDLVehicleDataTypeWiperStatus","abstract":"<p>Vehicle wiper status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeHeadlampStatus":{"name":"SDLVehicleDataTypeHeadlampStatus","abstract":"<p>Vehicle headlamp status</p>"},"Constants.html#/c:@SDLVehicleDataTypeBatteryVoltage":{"name":"SDLVehicleDataTypeBatteryVoltage","abstract":"<p>Vehicle battery voltage data</p>"},"Constants.html#/c:@SDLVehicleDataTypeEngineOilLife":{"name":"SDLVehicleDataTypeEngineOilLife","abstract":"<p>Vehicle engine oil life data</p>"},"Constants.html#/c:@SDLVehicleDataTypeEngineTorque":{"name":"SDLVehicleDataTypeEngineTorque","abstract":"<p>Vehicle engine torque data</p>"},"Constants.html#/c:@SDLVehicleDataTypeAccelerationPedal":{"name":"SDLVehicleDataTypeAccelerationPedal","abstract":"<p>Vehicle accleration pedal data</p>"},"Constants.html#/c:@SDLVehicleDataTypeSteeringWheel":{"name":"SDLVehicleDataTypeSteeringWheel","abstract":"<p>Vehicle steering wheel data</p>"},"Constants.html#/c:@SDLVehicleDataTypeElectronicParkBrakeStatus":{"name":"SDLVehicleDataTypeElectronicParkBrakeStatus","abstract":"<p>Vehicle electronic parking brake status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeTurnSignal":{"name":"SDLVehicleDataTypeTurnSignal","abstract":"<p>Vehicle turn signal data</p>"},"Constants.html#/c:@SDLVentilationModeUpper":{"name":"SDLVentilationModeUpper","abstract":"<p>The upper ventilation mode</p>"},"Constants.html#/c:@SDLVentilationModeLower":{"name":"SDLVentilationModeLower","abstract":"<p>The lower ventilation mode</p>"},"Constants.html#/c:@SDLVentilationModeBoth":{"name":"SDLVentilationModeBoth","abstract":"<p>The both ventilation mode</p>"},"Constants.html#/c:@SDLVentilationModeNone":{"name":"SDLVentilationModeNone","abstract":"<p>No ventilation mode</p>"},"Constants.html#/c:@SDLVideoStreamingCodecH264":{"name":"SDLVideoStreamingCodecH264","abstract":"<p>H264</p>"},"Constants.html#/c:@SDLVideoStreamingCodecH265":{"name":"SDLVideoStreamingCodecH265","abstract":"<p>H265</p>"},"Constants.html#/c:@SDLVideoStreamingCodecTheora":{"name":"SDLVideoStreamingCodecTheora","abstract":"<p>Theora</p>"},"Constants.html#/c:@SDLVideoStreamingCodecVP8":{"name":"SDLVideoStreamingCodecVP8","abstract":"<p>VP8</p>"},"Constants.html#/c:@SDLVideoStreamingCodecVP9":{"name":"SDLVideoStreamingCodecVP9","abstract":"<p>VP9</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRAW":{"name":"SDLVideoStreamingProtocolRAW","abstract":"<p>RAW</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRTP":{"name":"SDLVideoStreamingProtocolRTP","abstract":"<p>RTP</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRTSP":{"name":"SDLVideoStreamingProtocolRTSP","abstract":"<p>RTSP</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRTMP":{"name":"SDLVideoStreamingProtocolRTMP","abstract":"<p>RTMP</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolWebM":{"name":"SDLVideoStreamingProtocolWebM","abstract":"<p>WebM</p>"},"Constants.html#/c:@SDLVideoStreamingStateStreamable":{"name":"SDLVideoStreamingStateStreamable","abstract":"<p>STREAMABLE, the current app is allowed to stream video</p>"},"Constants.html#/c:@SDLVideoStreamingStateNotStreamable":{"name":"SDLVideoStreamingStateNotStreamable","abstract":"<p>NOT_STREAMABLE, the current app is not allowed to stream video</p>"},"Constants.html#/c:@SDLVRCapabilitiesText":{"name":"SDLVRCapabilitiesText","abstract":"<p>The SDL platform is capable of recognizing spoken text in the current language.</p>"},"Constants.html#/c:@SDLWarningLightStatusOff":{"name":"SDLWarningLightStatusOff","abstract":"<p>The warning light is off</p>"},"Constants.html#/c:@SDLWarningLightStatusOn":{"name":"SDLWarningLightStatusOn","abstract":"<p>The warning light is off</p>"},"Constants.html#/c:@SDLWarningLightStatusFlash":{"name":"SDLWarningLightStatusFlash","abstract":"<p>The warning light is flashing</p>"},"Constants.html#/c:@SDLWarningLightStatusNotUsed":{"name":"SDLWarningLightStatusNotUsed","abstract":"<p>The warning light is unused</p>"},"Constants.html#/c:@SDLWayPointTypeAll":{"name":"SDLWayPointTypeAll","abstract":"<p>All other waypoint types</p>"},"Constants.html#/c:@SDLWayPointTypeDestination":{"name":"SDLWayPointTypeDestination","abstract":"<p>The destination waypoint</p>"},"Constants.html#/c:@SDLWiperStatusOff":{"name":"SDLWiperStatusOff","abstract":"<p>Wiper is off</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticOff":{"name":"SDLWiperStatusAutomaticOff","abstract":"<p>Wiper is off automatically</p>"},"Constants.html#/c:@SDLWiperStatusOffMoving":{"name":"SDLWiperStatusOffMoving","abstract":"<p>Wiper is moving but off</p>"},"Constants.html#/c:@SDLWiperStatusManualIntervalOff":{"name":"SDLWiperStatusManualIntervalOff","abstract":"<p>Wiper is off due to a manual interval</p>"},"Constants.html#/c:@SDLWiperStatusManualIntervalOn":{"name":"SDLWiperStatusManualIntervalOn","abstract":"<p>Wiper is on due to a manual interval</p>"},"Constants.html#/c:@SDLWiperStatusManualLow":{"name":"SDLWiperStatusManualLow","abstract":"<p>Wiper is on low manually</p>"},"Constants.html#/c:@SDLWiperStatusManualHigh":{"name":"SDLWiperStatusManualHigh","abstract":"<p>Wiper is on high manually</p>"},"Constants.html#/c:@SDLWiperStatusManualFlick":{"name":"SDLWiperStatusManualFlick","abstract":"<p>Wiper is on for a single wipe manually</p>"},"Constants.html#/c:@SDLWiperStatusWash":{"name":"SDLWiperStatusWash","abstract":"<p>Wiper is in wash mode</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticLow":{"name":"SDLWiperStatusAutomaticLow","abstract":"<p>Wiper is on low automatically</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticHigh":{"name":"SDLWiperStatusAutomaticHigh","abstract":"<p>Wiper is on high automatically</p>"},"Constants.html#/c:@SDLWiperStatusCourtesyWipe":{"name":"SDLWiperStatusCourtesyWipe","abstract":"<p>Wiper is performing a courtesy wipe</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticAdjust":{"name":"SDLWiperStatusAutomaticAdjust","abstract":"<p>Wiper is on automatic adjust</p>"},"Constants.html#/c:@SDLWiperStatusStalled":{"name":"SDLWiperStatusStalled","abstract":"<p>Wiper is stalled</p>"},"Constants.html#/c:@SDLWiperStatusNoDataExists":{"name":"SDLWiperStatusNoDataExists","abstract":"<p>Wiper data is not available</p>"},"Constants.html#/c:@SmartDeviceLinkVersionNumber":{"name":"SmartDeviceLinkVersionNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SmartDeviceLinkVersionString":{"name":"SmartDeviceLinkVersionString","abstract":"<p>Undocumented</p>"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:":{"name":"-initWithText:image:","abstract":"<p>Undocumented</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:position:":{"name":"-initWithText:image:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)text":{"name":"text","abstract":"<p>Text to display for VR Help item</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)image":{"name":"image","abstract":"<p>Image for VR Help item</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)position":{"name":"position","abstract":"<p>Position to display item in VR Help list</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVoiceCommand.html#/c:objc(cs)SDLVoiceCommand(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>The strings the user can say to activate this voice command</p>","parent_name":"SDLVoiceCommand"},"Classes/SDLVoiceCommand.html#/c:objc(cs)SDLVoiceCommand(py)handler":{"name":"handler","abstract":"<p>The handler that will be called when the command is activated</p>","parent_name":"SDLVoiceCommand"},"Classes/SDLVoiceCommand.html#/c:objc(cs)SDLVoiceCommand(im)initWithVoiceCommands:handler:":{"name":"-initWithVoiceCommands:handler:","abstract":"<p>Undocumented</p>","parent_name":"SDLVoiceCommand"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)protocol":{"name":"protocol","abstract":"<p>Protocol type, see VideoStreamingProtocol</p>","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)codec":{"name":"codec","abstract":"<p>Codec type, see VideoStreamingCodec</p>","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(im)initWithCodec:protocol:":{"name":"-initWithCodec:protocol:","abstract":"<p>Undocumented</p>","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(im)initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:":{"name":"-initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:","abstract":"<p>Undocumented</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)preferredResolution":{"name":"preferredResolution","abstract":"<p>The preferred resolution of a video stream for decoding and rendering on HMI</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)maxBitrate":{"name":"maxBitrate","abstract":"<p>The maximum bitrate of video stream that is supported, in kbps, optional</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)supportedFormats":{"name":"supportedFormats","abstract":"<p>Detailed information on each format supported by this system, in its preferred order</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)hapticSpatialDataSupported":{"name":"hapticSpatialDataSupported","abstract":"<p>True if the system can utilize the haptic spatial data from the source being streamed.</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)make":{"name":"make","abstract":"<p>The make of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)model":{"name":"model","abstract":"<p>The model of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)modelYear":{"name":"modelYear","abstract":"<p>The model year of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)trim":{"name":"trim","abstract":"<p>The trim of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)dataType":{"name":"dataType","abstract":"<p>Defined published data element type</p>","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)resultCode":{"name":"resultCode","abstract":"<p>Published data result code</p>","parent_name":"SDLVehicleDataResult"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(im)initWithTurnList:softButtons:":{"name":"-initWithTurnList:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)turnList":{"name":"turnList","abstract":"<p>Optional, SDLTurn, 1 - 100 entries</p>","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)softButtons":{"name":"softButtons","abstract":"<p>Required, SDLSoftButton, 0 - 1 Entries</p>","parent_name":"SDLUpdateTurnList"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"<p>The result of requesting to unsubscribe to the GPSData.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"<p>The result of requesting to unsubscribe to the vehicle speed in kilometers per hour.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"<p>The result of requesting to unsubscribe to the number of revolutions per minute of the engine.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The result of requesting to unsubscribe to the fuel level in the tank (percentage)</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The result of requesting to unsubscribe to the fuel level state.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelRange":{"name":"fuelRange","abstract":"<p>The result of requesting to unsubscribe to the fuel range.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The result of requesting to unsubscribe to the instantaneous fuel consumption in microlitres.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The result of requesting to unsubscribe to the external temperature in degrees celsius.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"<p>The result of requesting to unsubscribe to the PRNDL status.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"<p>The result of requesting to unsubscribe to the tireStatus.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"<p>The result of requesting to unsubscribe to the odometer in km.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"<p>The result of requesting to unsubscribe to the status of the seat belts.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The result of requesting to unsubscribe to the body information including power modes.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The result of requesting to unsubscribe to the device status including signal and battery strength.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"<p>The result of requesting to unsubscribe to the status of the brake pedal.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The result of requesting to unsubscribe to the status of the wipers.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>The result of requesting to unsubscribe to the status of the head lamps.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The result of requesting to unsubscribe to the estimated percentage of remaining oil life of the engine.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"<p>The result of requesting to unsubscribe to the torque value for engine (in Nm) on non-diesel variants.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>The result of requesting to unsubscribe to the accelerator pedal position (percentage depressed)</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>The result of requesting to unsubscribe to the current angle of the steering wheel (in deg)</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>The result of requesting to unsubscribe to the emergency call info</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The result of requesting to unsubscribe to the airbag status</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>The result of requesting to unsubscribe to the emergency event</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"<p>The result of requesting to unsubscribe to the cluster modes</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"<p>The result of requesting to unsubscribe to the myKey status</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The result of requesting to unsubscribe to the electronic parking brake status</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)turnSignal":{"name":"turnSignal","abstract":"<p>The result of requesting to unsubscribe to the turn signal</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:","abstract":"<p>Convenience init for unsubscribing to all possible vehicle data items.</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:","abstract":"<p>Convenience init for unsubscribing to all possible vehicle data items.</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)gps":{"name":"gps","abstract":"<p>If true, unsubscribes from GPS</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)speed":{"name":"speed","abstract":"<p>If true, unsubscribes from Speed</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"<p>If true, unsubscribes from RPM</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>If true, unsubscribes from Fuel Level</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>If true, unsubscribes from Fuel Level State</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>If true, unsubscribes from Fuel Range</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>If true, unsubscribes from Instant Fuel Consumption</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>If true, unsubscribes from External Temperature</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"<p>If true, unsubscribes from PRNDL</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>If true, unsubscribes from Tire Pressure</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"<p>If true, unsubscribes from Odometer</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>If true, unsubscribes from Belt Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>If true, unsubscribes from Body Information</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>If true, unsubscribes from Device Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>If true, unsubscribes from Driver Braking</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>If true, unsubscribes from Wiper Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>If true, unsubscribes from Head Lamp Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>If true, unsubscribes from Engine Oil Life</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>If true, unsubscribes from Engine Torque</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>If true, unsubscribes from Acc Pedal Position</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>If true, unsubscribes from Steering Wheel Angle data</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>If true, unsubscribes from eCallInfo</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>If true, unsubscribes from Airbag Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>If true, unsubscribes from Emergency Event</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>If true, unsubscribes from Cluster Mode Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"<p>If true, unsubscribes from My Key</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>A boolean value. If true, unsubscribes to the Electronic Parking Brake Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>A boolean value. If true, unsubscribes to the Turn Signal</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(im)initWithButtonName:":{"name":"-initWithButtonName:","abstract":"<p>Undocumented</p>","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(py)buttonName":{"name":"buttonName","abstract":"<p>A name of the button to unsubscribe from","parent_name":"SDLUnsubscribeButton"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(im)initWithNavigationText:turnIcon:":{"name":"-initWithNavigationText:turnIcon:","abstract":"<p>Undocumented</p>","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)navigationText":{"name":"navigationText","abstract":"<p>Individual turn text. Must provide at least text or icon for a given turn</p>","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)turnIcon":{"name":"turnIcon","abstract":"<p>Individual turn icon. Must provide at least text or icon for a given turn</p>","parent_name":"SDLTurn"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventDelegate":{"name":"touchEventDelegate","abstract":"<p>Notified of processed touches such as pinches, pans, and taps</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventHandler":{"name":"touchEventHandler","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapDistanceThreshold":{"name":"tapDistanceThreshold","abstract":"<p>Distance between two taps on the screen, in the head unit’s coordinate system, used for registering double-tap callbacks.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)panDistanceThreshold":{"name":"panDistanceThreshold","abstract":"<p>Minimum distance for a pan gesture in the head unit’s coordinate system, used for registering pan callbacks.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapTimeThreshold":{"name":"tapTimeThreshold","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)movementTimeThreshold":{"name":"movementTimeThreshold","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)enableSyncedPanning":{"name":"enableSyncedPanning","abstract":"<p>If set to NO, the display link syncing will be ignored and <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)movementTimeThreshold\">movementTimeThreshold</a></code> will be used. Defaults to YES.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEnabled":{"name":"touchEnabled","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)cancelPendingTouches":{"name":"-cancelPendingTouches","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)initWithHitTester:":{"name":"-initWithHitTester:","abstract":"<p>Initialize a touch manager with a hit tester if available</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)syncFrame":{"name":"-syncFrame","abstract":"<p>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.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)pressAvailable":{"name":"pressAvailable","abstract":"<p>Whether or not long presses are available</p>","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)multiTouchAvailable":{"name":"multiTouchAvailable","abstract":"<p>Whether or not multi-touch (e.g. a pinch gesture) is available</p>","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)doublePressAvailable":{"name":"doublePressAvailable","abstract":"<p>Whether or not a double tap is available</p>","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)touchEventId":{"name":"touchEventId","abstract":"<p>A touch’s unique identifier. The application can track the current touch events by id.</p>","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)timeStamp":{"name":"timeStamp","abstract":"<p>The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds.</p>","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)coord":{"name":"coord","abstract":"<p>The touch’s coordinate</p>","parent_name":"SDLTouchEvent"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)x":{"name":"x","abstract":"<p>The x value of the touch coordinate</p>","parent_name":"SDLTouchCoord"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)y":{"name":"y","abstract":"<p>The y value of the touch coordinate</p>","parent_name":"SDLTouchCoord"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(im)initWithTouchEvent:":{"name":"-initWithTouchEvent:","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)identifier":{"name":"identifier","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)location":{"name":"location","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)timeStamp":{"name":"timeStamp","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)isFirstFinger":{"name":"isFirstFinger","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)isSecondFinger":{"name":"isSecondFinger","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)pressureTelltale":{"name":"pressureTelltale","abstract":"<p>Status of the Tire Pressure Telltale. See WarningLightStatus.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftFront":{"name":"leftFront","abstract":"<p>The status of the left front tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightFront":{"name":"rightFront","abstract":"<p>The status of the right front tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftRear":{"name":"leftRear","abstract":"<p>The status of the left rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightRear":{"name":"rightRear","abstract":"<p>The status of the right rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerLeftRear":{"name":"innerLeftRear","abstract":"<p>The status of the inner left rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerRightRear":{"name":"innerRightRear","abstract":"<p>The status of the innter right rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)name":{"name":"name","abstract":"<p>The enumeration identifying the field.</p>","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)characterSet":{"name":"characterSet","abstract":"<p>The character set that is supported in this field.</p>","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)width":{"name":"width","abstract":"<p>The number of characters in one row of this field.</p>","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)rows":{"name":"rows","abstract":"<p>The number of rows for this text field.</p>","parent_name":"SDLTextField"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(im)initWithPrimaryRGBColor:secondaryRGBColor:backgroundRGBColor:":{"name":"-initWithPrimaryRGBColor:secondaryRGBColor:backgroundRGBColor:","abstract":"<p>Undocumented</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(im)initWithPrimaryColor:secondaryColor:backgroundColor:":{"name":"-initWithPrimaryColor:secondaryColor:backgroundColor:","abstract":"<p>Undocumented</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(py)primaryColor":{"name":"primaryColor","abstract":"<p>The <q>primary</q> color. This must always be your primary brand color. If the OEM only uses one color, this will be the color. It is recommended to the OEMs that the primaryColor should change the <code>mediaClockTimer</code> bar and the highlight color of soft buttons.</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(py)secondaryColor":{"name":"secondaryColor","abstract":"<p>The <q>secondary</q> color. This may be an accent or complimentary color to your primary brand color. If the OEM uses this color, they must also use the primary color. It is recommended to the OEMs that the secondaryColor should change the background color of buttons, such as soft buttons.</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(py)backgroundColor":{"name":"backgroundColor","abstract":"<p>The background color to be used on the template. If the OEM does not support this parameter, assume on <q>dayColorScheme</q> that this will be a light color, and on <q>nightColorScheme</q> a dark color. You should do the same for your custom schemes.</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(im)initWithUnit:value:":{"name":"-initWithUnit:value:","abstract":"<p>Undocumented</p>","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(py)unit":{"name":"unit","abstract":"<p>Temperature Unit</p>","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(py)value":{"name":"value","abstract":"<p>Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL.</p>","parent_name":"SDLTemperature"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(im)initWithText:type:":{"name":"-initWithText:type:","abstract":"<p>Initialize with text and a type</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)textChunksFromString:":{"name":"+textChunksFromString:","abstract":"<p>Create TTS using text</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)sapiChunksFromString:":{"name":"+sapiChunksFromString:","abstract":"<p>Create TTS using SAPI</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)lhPlusChunksFromString:":{"name":"+lhPlusChunksFromString:","abstract":"<p>Create TTS using LH Plus</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)prerecordedChunksFromString:":{"name":"+prerecordedChunksFromString:","abstract":"<p>Create TTS using prerecorded chunks</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)silenceChunks":{"name":"+silenceChunks","abstract":"<p>Create TTS using silence</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)fileChunksWithName:":{"name":"+fileChunksWithName:","abstract":"<p>Create <q>TTS</q> to play an audio file previously uploaded to the system.</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)text":{"name":"text","abstract":"<p>Text to be spoken, a phoneme specification, or the name of a pre-recorded / pre-uploaded sound. The contents of this field are indicated by the <q>type</q> field.</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)type":{"name":"type","abstract":"<p>The type of information in the <q>text</q> field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound).</p>","parent_name":"SDLTTSChunk"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)displayCapabilities":{"name":"displayCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)hmiCapabilities":{"name":"hmiCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"<p>If returned, the platform supports on-screen SoftButtons</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"<p>If returned, the platform supports custom on-screen Presets</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)hmiZoneCapabilities":{"name":"hmiZoneCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)speechCapabilities":{"name":"speechCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)prerecordedSpeechCapabilities":{"name":"prerecordedSpeechCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)vrCapability":{"name":"vrCapability","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)audioPassThruCapabilities":{"name":"audioPassThruCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)pcmStreamCapability":{"name":"pcmStreamCapability","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)navigationCapability":{"name":"navigationCapability","abstract":"<p>If returned, the platform supports navigation</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)phoneCapability":{"name":"phoneCapability","abstract":"<p>If returned, the platform supports making phone calls</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)videoStreamingCapability":{"name":"videoStreamingCapability","abstract":"<p>If returned, the platform supports video streaming</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)remoteControlCapability":{"name":"remoteControlCapability","abstract":"<p>If returned, the platform supports remote control capabilities</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)init":{"name":"-init","abstract":"<p>Init is unavailable. Dependencies must be injected using initWithConnectionManager:</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)initWithConnectionManager:":{"name":"-initWithConnectionManager:","abstract":"<p>Creates a new system capability manager with a specified connection manager</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)stop":{"name":"-stop","abstract":"<p>Stops the manager. This method is used internally.</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)updateCapabilityType:completionHandler:":{"name":"-updateCapabilityType:completionHandler:","abstract":"<p>Retrieves a capability type from the remote system. This function must be called in order to retrieve the values of <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)navigationCapability\">navigationCapability</a></code>, <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)phoneCapability\">phoneCapability</a></code>, <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)videoStreamingCapability\">videoStreamingCapability</a></code> and <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)remoteControlCapability\">remoteControlCapability</a></code>. 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.</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithNavigationCapability:":{"name":"-initWithNavigationCapability:","abstract":"<p>Undocumented</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithPhoneCapability:":{"name":"-initWithPhoneCapability:","abstract":"<p>Undocumented</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithVideoStreamingCapability:":{"name":"-initWithVideoStreamingCapability:","abstract":"<p>Undocumented</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithRemoteControlCapability:":{"name":"-initWithRemoteControlCapability:","abstract":"<p>Undocumented</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"<p>Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included.</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)navigationCapability":{"name":"navigationCapability","abstract":"<p>Describes extended capabilities for onboard navigation system</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)phoneCapability":{"name":"phoneCapability","abstract":"<p>Describes extended capabilities of the module’s phone feature</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)videoStreamingCapability":{"name":"videoStreamingCapability","abstract":"<p>Describes extended capabilities of the module’s phone feature</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)remoteControlCapability":{"name":"remoteControlCapability","abstract":"<p>Describes extended capabilities of the module’s phone feature</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)initWithMajorVersion:minorVersion:patchVersion:":{"name":"-initWithMajorVersion:minorVersion:patchVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)majorVersion":{"name":"majorVersion","abstract":"<p>The major version indicates versions that is not-compatible to previous versions</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)minorVersion":{"name":"minorVersion","abstract":"<p>The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)patchVersion":{"name":"patchVersion","abstract":"<p>Allows backward-compatible fixes to the API without increasing the minor version of the interface</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"<p>The result of requesting to subscribe to the GPSData.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"<p>The result of requesting to subscribe to the vehicle speed in kilometers per hour.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"<p>The result of requesting to subscribe to the number of revolutions per minute of the engine.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The result of requesting to subscribe to the fuel level in the tank (percentage)</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The result of requesting to subscribe to the fuel level state.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelRange":{"name":"fuelRange","abstract":"<p>The result of requesting to subscribe to the fuel range.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The result of requesting to subscribe to the instantaneous fuel consumption in microlitres.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The result of requesting to subscribe to the external temperature in degrees celsius.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"<p>The result of requesting to subscribe to the PRNDL status.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"<p>The result of requesting to subscribe to the tireStatus.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"<p>The result of requesting to subscribe to the odometer in km.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"<p>The result of requesting to subscribe to the status of the seat belts.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The result of requesting to subscribe to the body information including power modes.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The result of requesting to subscribe to the device status including signal and battery strength.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"<p>The result of requesting to subscribe to the status of the brake pedal.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The result of requesting to subscribe to the status of the wipers.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>The result of requesting to subscribe to the status of the head lamps.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The result of requesting to subscribe to the estimated percentage of remaining oil life of the engine.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"<p>The result of requesting to subscribe to the torque value for engine (in Nm) on non-diesel variants.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>The result of requesting to subscribe to the accelerator pedal position (percentage depressed)</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>The result of requesting to subscribe to the current angle of the steering wheel (in deg)</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>The result of requesting to subscribe to the emergency call info</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The result of requesting to subscribe to the airbag status</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>The result of requesting to subscribe to the emergency event</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"<p>The result of requesting to subscribe to the cluster modes</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"<p>The result of requesting to subscribe to the myKey status</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The result of requesting to subscribe to the electronic parking brake status</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)turnSignal":{"name":"turnSignal","abstract":"<p>The result of requesting to subscribe to the turn signal</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:","abstract":"<p>Convenience init for subscribing to all possible vehicle data items.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:","abstract":"<p>Convenience init for subscribing to all possible vehicle data items.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)gps":{"name":"gps","abstract":"<p>A boolean value. If true, subscribes GPS data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)speed":{"name":"speed","abstract":"<p>A boolean value. If true, subscribes Speed data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"<p>A boolean value. If true, subscribes RPM data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>A boolean value. If true, subscribes Fuel Level data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>A boolean value. If true, subscribes Fuel Level State data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>A boolean value. If true, subscribes Fuel Range data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>A boolean value. If true, subscribes Instant Fuel Consumption data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>A boolean value. If true, subscribes External Temperature data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"<p>A boolean value. If true, subscribes PRNDL data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>A boolean value. If true, subscribes Tire Pressure status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"<p>A boolean value. If true, subscribes Odometer data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>A boolean value. If true, subscribes Belt Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>A boolean value. If true, subscribes Body Information data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>A boolean value. If true, subscribes Device Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>A boolean value. If true, subscribes Driver Braking data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>A boolean value. If true, subscribes Wiper Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>A boolean value. If true, subscribes Head Lamp Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>A boolean value. If true, subscribes to Engine Oil Life data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>A boolean value. If true, subscribes Engine Torque data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>A boolean value. If true, subscribes Acc Pedal Position data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>A boolean value. If true, subscribes Steering Wheel Angle data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>A boolean value. If true, subscribes eCall Info data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>A boolean value. If true, subscribes Airbag Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>A boolean value. If true, subscribes Emergency Event data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>A boolean value. If true, subscribes Cluster Mode Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"<p>A boolean value. If true, subscribes myKey data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>A boolean value. If true, subscribes to the electronic parking brake status.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>A boolean value. If true, subscribes to the turn signal status.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"<p>Construct a SDLSubscribeButton with a handler callback when an event occurs.</p>","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithButtonName:handler:":{"name":"-initWithButtonName:handler:","abstract":"<p>Undocumented</p>","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)handler":{"name":"handler","abstract":"<p>A handler that will let you know when the button you subscribed to is selected.</p>","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)buttonName":{"name":"buttonName","abstract":"<p>The name of the button to subscribe to","parent_name":"SDLSubscribeButton"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)touchManager":{"name":"touchManager","abstract":"<p>Touch Manager responsible for providing touch event notifications.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioManager":{"name":"audioManager","abstract":"<p>Audio Manager responsible for managing streaming audio.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)rootViewController":{"name":"rootViewController","abstract":"<p>This property is used for SDLCarWindow, the ability to stream any view controller. To start, you must set an initial view controller on <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLStreamingMediaConfiguration.html\">SDLStreamingMediaConfiguration</a></code> <code>rootViewController</code>. After streaming begins, you can replace that view controller with a new root by placing the new view controller into this property.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)focusableItemManager":{"name":"focusableItemManager","abstract":"<p>A haptic interface that can be updated to reparse views within the window you’ve provided. Send a <code><a href=\"36f8f5912051ae747ef441d6511ca4cbConstants.html#/c:@SDLDidUpdateProjectionView\">SDLDidUpdateProjectionView</a></code> notification or call the <code>updateInterfaceLayout</code> method to reparse. The <q>output</q> of this haptic interface occurs in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)touchManager\">touchManager</a></code> property where it will call the delegate.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)streamingSupported":{"name":"streamingSupported","abstract":"<p>Whether or not video streaming is supported</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoConnected":{"name":"videoConnected","abstract":"<p>Whether or not the video session is connected.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoEncrypted":{"name":"videoEncrypted","abstract":"<p>Whether or not the video session is encrypted. This may be different than the requestedEncryptionType.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioConnected":{"name":"audioConnected","abstract":"<p>Whether or not the audio session is connected.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioEncrypted":{"name":"audioEncrypted","abstract":"<p>Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoStreamingPaused":{"name":"videoStreamingPaused","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)screenSize":{"name":"screenSize","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoFormat":{"name":"videoFormat","abstract":"<p>This is the agreed upon format of video encoder that is in use, or nil if not currently connected.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)supportedFormats":{"name":"supportedFormats","abstract":"<p>A list of all supported video formats by this manager</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)pixelBufferPool":{"name":"pixelBufferPool","abstract":"<p>The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)requestedEncryptionType":{"name":"requestedEncryptionType","abstract":"<p>The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)initWithConnectionManager:configuration:":{"name":"-initWithConnectionManager:configuration:","abstract":"<p>Create a new streaming media manager for navigation and VPM apps with a specified configuration</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startWithProtocol:":{"name":"-startWithProtocol:","abstract":"<p>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 <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startAudioWithProtocol:":{"name":"-startAudioWithProtocol:","abstract":"<p>Start the audio feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startVideoWithProtocol:":{"name":"-startVideoWithProtocol:","abstract":"<p>Start the video feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stop":{"name":"-stop","abstract":"<p>Stop the manager. This method is used internally.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stopAudio":{"name":"-stopAudio","abstract":"<p>Stop the audio feature of the manager. This method is used internally.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stopVideo":{"name":"-stopVideo","abstract":"<p>Stop the video feature of the manager. This method is used internally.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:":{"name":"-sendVideoData:","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:presentationTimestamp:":{"name":"-sendVideoData:presentationTimestamp:","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendAudioData:":{"name":"-sendAudioData:","abstract":"<p>This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)securityManagers":{"name":"securityManagers","abstract":"<p>Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)maximumDesiredEncryption":{"name":"maximumDesiredEncryption","abstract":"<p>What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)customVideoEncoderSettings":{"name":"customVideoEncoderSettings","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)dataSource":{"name":"dataSource","abstract":"<p>Usable to change run time video stream setup behavior. Only use this and modify the results if you <em>really</em> know what you’re doing. The head unit defaults are generally good.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)rootViewController":{"name":"rootViewController","abstract":"<p>Set the initial view controller your video streaming content is within.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)carWindowRenderingType":{"name":"carWindowRenderingType","abstract":"<p>Declares if CarWindow will use layer rendering or view rendering. Defaults to layer rendering.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)enableForcedFramerateSync":{"name":"enableForcedFramerateSync","abstract":"<p>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 <em>must</em> be YES. If NO, <code>enableSyncedPanning</code> on SDLTouchManager will be set to NO. Defaults to YES.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)allowMultipleViewControllerOrientations":{"name":"allowMultipleViewControllerOrientations","abstract":"<p>When YES, the StreamingMediaManager will disable its internal checks that the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)rootViewController\">rootViewController</a></code> only has one <code>supportedOrientation</code>. Having multiple orientations can cause streaming issues. If you wish to disable this check, set it to YES. Defaults to NO.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)init":{"name":"-init","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:rootViewController:":{"name":"-initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:rootViewController:","abstract":"<p>Manually set all the properties to the streaming media configuration</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)initWithSecurityManagers:":{"name":"-initWithSecurityManagers:","abstract":"<p>Create a secure configuration for each of the security managers provided.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)secureConfigurationWithSecurityManagers:":{"name":"+secureConfigurationWithSecurityManagers:","abstract":"<p>Create a secure configuration for each of the security managers provided.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)insecureConfiguration":{"name":"+insecureConfiguration","abstract":"<p>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 <code>init</code>.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)autostreamingInsecureConfigurationWithInitialViewController:":{"name":"+autostreamingInsecureConfigurationWithInitialViewController:","abstract":"<p>Create a CarWindow insecure configuration with a view controller</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)autostreamingSecureConfigurationWithSecurityManagers:initialViewController:":{"name":"+autostreamingSecureConfigurationWithSecurityManagers:initialViewController:","abstract":"<p>Create a CarWindow secure configuration with a view controller and security managers</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStationIDNumber.html#/c:objc(cs)SDLStationIDNumber(im)initWithCountryCode:fccFacilityId:":{"name":"-initWithCountryCode:fccFacilityId:","abstract":"<p>Undocumented</p>","parent_name":"SDLStationIDNumber"},"Classes/SDLStationIDNumber.html#/c:objc(cs)SDLStationIDNumber(py)countryCode":{"name":"countryCode","abstract":"<p>@abstract Binary Representation of ITU Country Code. USA Code is 001.</p>","parent_name":"SDLStationIDNumber"},"Classes/SDLStationIDNumber.html#/c:objc(cs)SDLStationIDNumber(py)fccFacilityId":{"name":"fccFacilityId","abstract":"<p>@abstract Binary representation of unique facility ID assigned by the FCC","parent_name":"SDLStationIDNumber"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)initWithHours:minutes:seconds:":{"name":"-initWithHours:minutes:seconds:","abstract":"<p>Undocumented</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)hours":{"name":"hours","abstract":"<p>The hour of the media clock</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)minutes":{"name":"minutes","abstract":"<p>The minute of the media clock</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)seconds":{"name":"seconds","abstract":"<p>The second of the media clock</p>","parent_name":"SDLStartTime"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTS:":{"name":"-initWithTTS:","abstract":"<p>Undocumented</p>","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTSChunks:":{"name":"-initWithTTSChunks:","abstract":"<p>Undocumented</p>","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(py)ttsChunks":{"name":"ttsChunks","abstract":"<p>An array of TTSChunk structs which, taken together, specify the phrase to be spoken</p>","parent_name":"SDLSpeak"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)name":{"name":"name","abstract":"<p>The name of this soft button state</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)artwork":{"name":"artwork","abstract":"<p>The artwork to be used with this button or nil if it is text-only</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)text":{"name":"text","abstract":"<p>The text to be used with this button or nil if it is image-only</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)highlighted":{"name":"highlighted","abstract":"<p>Whether or not the button should be highlighted on the UI</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)systemAction":{"name":"systemAction","abstract":"<p>A special system action</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)softButton":{"name":"softButton","abstract":"<p>An SDLSoftButton describing this state</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(im)initWithStateName:text:image:":{"name":"-initWithStateName:text:image:","abstract":"<p>Create the soft button state. Either the text or artwork or both may be set.</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(im)initWithStateName:text:artwork:":{"name":"-initWithStateName:text:artwork:","abstract":"<p>Create the soft button state. Either the text or artwork or both may be set.</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)name":{"name":"name","abstract":"<p>The name of this button</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)states":{"name":"states","abstract":"<p>All states available to this button</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)currentState":{"name":"currentState","abstract":"<p>The name of the current state of this soft button</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)currentStateSoftButton":{"name":"currentStateSoftButton","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)eventHandler":{"name":"eventHandler","abstract":"<p>The handler to be called when the button is in the current state and is pressed</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)initWithName:states:initialStateName:handler:":{"name":"-initWithName:states:initialStateName:handler:","abstract":"<p>Create a multi-state (or single-state, but you should use initWithName:state: instead for that case) soft button. For example, a button that changes its image or text, such as a repeat or shuffle button.</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)initWithName:state:handler:":{"name":"-initWithName:state:handler:","abstract":"<p>Create a single-state soft button. For example, a button that brings up a Perform Interaction menu.</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)transitionToStateNamed:":{"name":"-transitionToStateNamed:","abstract":"<p>Transition the soft button to another state in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)states\">states</a></code> property. The wrapper considers all transitions valid (assuming a state with that name exists).</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)transitionToNextState":{"name":"-transitionToNextState","abstract":"<p>Transition the soft button to the next state of the array set when in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)states\">states</a></code> property</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)stateWithName:":{"name":"-stateWithName:","abstract":"<p>Return a state from the state array with a specific name.</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"<p>The button supports a short press.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"<p>The button supports a LONG press.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"<p>The button supports <q>button down</q> and <q>button up</q>.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)imageSupported":{"name":"imageSupported","abstract":"<p>The button supports referencing a static or dynamic image.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithType:text:image:highlighted:buttonId:systemAction:handler:":{"name":"-initWithType:text:image:highlighted:buttonId:systemAction:handler:","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)handler":{"name":"handler","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)type":{"name":"type","abstract":"<p>Describes whether this soft button displays only text, only an image, or both</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)text":{"name":"text","abstract":"<p>Optional text to display (if defined as TEXT or BOTH type)</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)image":{"name":"image","abstract":"<p>Optional image struct for SoftButton (if defined as IMAGE or BOTH type)</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)isHighlighted":{"name":"isHighlighted","abstract":"<p>Displays in an alternate mode, e.g. with a colored background or foreground. Depends on the IVI system.</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)softButtonID":{"name":"softButtonID","abstract":"<p>Value which is returned via OnButtonPress / OnButtonEvent</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)systemAction":{"name":"systemAction","abstract":"<p>Parameter indicating whether selecting a SoftButton shall call a specific system action. This is intended to allow Notifications to bring the callee into full / focus; or in the case of persistent overlays, the overlay can persist when a SoftButton is pressed.</p>","parent_name":"SDLSoftButton"},"Classes/SDLSliderResponse.html#/c:objc(cs)SDLSliderResponse(py)sliderPosition":{"name":"sliderPosition","abstract":"<p>The selected position of the slider.</p>","parent_name":"SDLSliderResponse"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:":{"name":"-initWithNumTicks:position:","abstract":"<p>Create an SDLSlider with only the number of ticks and position. Note that this is not enough to get a SUCCESS response. You must supply additional data. See below for required parameters.</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooter:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooter:timeout:","abstract":"<p>Create an SDLSlider with all required data and a static footer (or no footer).</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooters:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooters:timeout:","abstract":"<p>Create an SDLSlider with all required data and a dynamic footer (or no footer).</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)numTicks":{"name":"numTicks","abstract":"<p>Represents a number of selectable items on a horizontal axis</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)position":{"name":"position","abstract":"<p>An Initial position of slider control</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderHeader":{"name":"sliderHeader","abstract":"<p>A text header to display</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderFooter":{"name":"sliderFooter","abstract":"<p>A text footer to display</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)timeout":{"name":"timeout","abstract":"<p>An App defined timeout in milliseconds</p>","parent_name":"SDLSlider"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)status":{"name":"status","parent_name":"SDLSingleTireStatus"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)monitoringSystemStatus":{"name":"monitoringSystemStatus","abstract":"<p>The status of TPMS for this particular tire</p>","parent_name":"SDLSingleTireStatus"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)pressure":{"name":"pressure","abstract":"<p>The pressure value of this particular tire in kPa (kilopascals)</p>","parent_name":"SDLSingleTireStatus"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(im)initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:":{"name":"-initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText1":{"name":"navigationText1","abstract":"<p>The first line of text in a multi-line overlay screen.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText2":{"name":"navigationText2","abstract":"<p>The second line of text in a multi-line overlay screen.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)eta":{"name":"eta","abstract":"<p>Estimated Time of Arrival time at final destination</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)timeToDestination":{"name":"timeToDestination","abstract":"<p>The amount of time needed to reach the final destination</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)totalDistance":{"name":"totalDistance","abstract":"<p>The distance to the final destination</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)turnIcon":{"name":"turnIcon","abstract":"<p>An icon to show with the turn description</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)nextTurnIcon":{"name":"nextTurnIcon","abstract":"<p>An icon to show with the next turn description</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuver":{"name":"distanceToManeuver","abstract":"<p>Fraction of distance till next maneuver (starting from when AlertManeuver is triggered). Used to calculate progress bar.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuverScale":{"name":"distanceToManeuverScale","abstract":"<p>Distance till next maneuver (starting from) from previous maneuver. Used to calculate progress bar.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)maneuverComplete":{"name":"maneuverComplete","abstract":"<p>If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay. If omitted the value will be assumed as FALSE.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)softButtons":{"name":"softButtons","abstract":"<p>Three dynamic SoftButtons available (first SoftButton is fixed to <q>Turns</q>). If omitted on supported displays, the currently displayed SoftButton values will not change.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:alignment:":{"name":"-initWithMainField1:mainField2:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:":{"name":"-initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainField4Type:alignment:":{"name":"-initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainField4Type:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:":{"name":"-initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField1":{"name":"mainField1","abstract":"<p>The text displayed in a single-line display, or in the upper display","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField2":{"name":"mainField2","abstract":"<p>The text displayed on the second display line of a two-line display</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField3":{"name":"mainField3","abstract":"<p>The text displayed on the first display line of the second page</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField4":{"name":"mainField4","abstract":"<p>The text displayed on the second display line of the second page</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)alignment":{"name":"alignment","abstract":"<p>The alignment that Specifies how mainField1 and mainField2 text","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)statusBar":{"name":"statusBar","abstract":"<p>Text in the Status Bar</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaClock":{"name":"mediaClock","abstract":"<p>This property is deprecated use SetMediaClockTimer instead.","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaTrack":{"name":"mediaTrack","abstract":"<p>The text in the track field</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)graphic":{"name":"graphic","abstract":"<p>An image to be shown on supported displays</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)secondaryGraphic":{"name":"secondaryGraphic","abstract":"<p>An image to be shown on supported displays</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)softButtons":{"name":"softButtons","abstract":"<p>The the Soft buttons defined by the App</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)customPresets":{"name":"customPresets","abstract":"<p>The Custom Presets defined by the App</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)metadataTags":{"name":"metadataTags","abstract":"<p>Text Field Metadata</p>","parent_name":"SDLShow"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:":{"name":"-initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:hours:minutes:seconds:":{"name":"-initWithUpdateMode:hours:minutes:seconds:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:":{"name":"-initWithUpdateMode:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)startTime":{"name":"startTime","abstract":"<p>A Start Time with specifying hour, minute, second values</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)endTime":{"name":"endTime","abstract":"<p>An END time of type SDLStartTime, specifying hour, minute, second values</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)updateMode":{"name":"updateMode","abstract":"<p>The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME)</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)audioStreamingIndicator":{"name":"audioStreamingIndicator","abstract":"<p>The audio streaming indicator used for a play/pause button.</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetInteriorVehicleDataResponse.html#/c:objc(cs)SDLSetInteriorVehicleDataResponse(py)moduleData":{"name":"moduleData","abstract":"<p>The new module data for the requested module</p>","parent_name":"SDLSetInteriorVehicleDataResponse"},"Classes/SDLSetInteriorVehicleData.html#/c:objc(cs)SDLSetInteriorVehicleData(im)initWithModuleData:":{"name":"-initWithModuleData:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetInteriorVehicleData"},"Classes/SDLSetInteriorVehicleData.html#/c:objc(cs)SDLSetInteriorVehicleData(py)moduleData":{"name":"moduleData","abstract":"<p>The module data to set for the requested RC module.</p>","parent_name":"SDLSetInteriorVehicleData"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:":{"name":"-initWithHelpText:timeoutText:","abstract":"<p>Initialize SetGlobalProperties with help text and timeout text</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:vrHelpTitle:vrHelp:":{"name":"-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:","abstract":"<p>Initialize SetGlobalProperties with help text, timeout text, help title, and help items</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:":{"name":"-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:","abstract":"<p>Initialize SetGlobalProperties with all possible items</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)helpPrompt":{"name":"helpPrompt","abstract":"<p>Help prompt for when the user asks for help with an interface prompt</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"<p>Help prompt for when an interface prompt times out</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelpTitle":{"name":"vrHelpTitle","abstract":"<p>Sets a voice recognition Help Title</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelp":{"name":"vrHelp","abstract":"<p>Sets the items listed in the VR help screen used in an interaction started by Push to Talk</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuTitle":{"name":"menuTitle","abstract":"<p>Text for the menu button label</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuIcon":{"name":"menuIcon","abstract":"<p>Icon for the menu button</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)keyboardProperties":{"name":"keyboardProperties","abstract":"<p>On-screen keyboard (perform interaction) configuration</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"<p>The display capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<p>The button capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"<p>The soft button capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"<p>The preset bank capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithPredefinedLayout:":{"name":"-initWithPredefinedLayout:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithLayout:":{"name":"-initWithLayout:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithPredefinedLayout:dayColorScheme:nightColorScheme:":{"name":"-initWithPredefinedLayout:dayColorScheme:nightColorScheme:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)displayLayout":{"name":"displayLayout","abstract":"<p>A display layout. Predefined or dynamically created screen layout.","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)dayColorScheme":{"name":"dayColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>light</q> or <q>day</q> color scheme. The OEM may only support this theme if their head unit only has a light color scheme.</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)nightColorScheme":{"name":"nightColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>dark</q> or <q>night</q> color scheme. The OEM may only support this theme if their head unit only has a dark color scheme.</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetAppIcon"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(py)syncFileName":{"name":"syncFileName","abstract":"<p>A file reference name","parent_name":"SDLSetAppIcon"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(im)initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:":{"name":"-initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:","abstract":"<p>Undocumented</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(im)initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:":{"name":"-initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:","abstract":"<p>Undocumented</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"<p>The longitudinal coordinate of the location.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"<p>The latitudinal coordinate of the location.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationName":{"name":"locationName","abstract":"<p>Name / title of intended location</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationDescription":{"name":"locationDescription","abstract":"<p>Description of the intended location / establishment</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)addressLines":{"name":"addressLines","abstract":"<p>Location address for display purposes only</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)phoneNumber":{"name":"phoneNumber","abstract":"<p>Phone number of intended location / establishment</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationImage":{"name":"locationImage","abstract":"<p>Image / icon of intended location</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)deliveryMode":{"name":"deliveryMode","abstract":"<p>Mode in which the sendLocation request is sent</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)timeStamp":{"name":"timeStamp","abstract":"<p>Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address":{"name":"address","abstract":"<p>Address to be used for setting destination</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(im)initWithHapticRectData:":{"name":"-initWithHapticRectData:","abstract":"<p>Constructs a new SDLSendHapticData object indicated by the hapticSpatialData parameter</p>","parent_name":"SDLSendHapticData"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(py)hapticRectData":{"name":"hapticRectData","abstract":"<p>Array of spatial data structures that represent the locations of all user controls present on the HMI. This data should be updated if/when the application presents a new screen. When a request is sent, if successful, it will replace all spatial data previously sent through RPC. If an empty array is sent, the existing spatial data will be cleared</p>","parent_name":"SDLSendHapticData"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(im)initWithId:action:":{"name":"-initWithId:action:","abstract":"<p>@abstract Constructs a newly allocated SDLSeatMemoryAction object with id, label (max length 100 chars) and action type</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(im)initWithId:label:action:":{"name":"-initWithId:label:action:","abstract":"<p>@abstract Constructs a newly allocated SDLSeatMemoryAction object with id, label (max length 100 chars) and action type</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(py)id":{"name":"id","abstract":"<p>@abstract id of the action to be performed.</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(py)label":{"name":"label","abstract":"<p>@abstract label of the action to be performed.</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(py)action":{"name":"action","abstract":"<p>@abstract type of action to be performed</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Constructs a newly allocated SDLSeatControlData object with cushion and firmness</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(im)initWithId:heatingEnabled:coolingEnable:heatingLevel:coolingLevel:horizontalPostion:verticalPostion:frontVerticalPostion:backVerticalPostion:backTiltAngle:headSupportedHorizontalPostion:headSupportedVerticalPostion:massageEnabled:massageMode:massageCussionFirmness:memory:":{"name":"-initWithId:heatingEnabled:coolingEnable:heatingLevel:coolingLevel:horizontalPostion:verticalPostion:frontVerticalPostion:backVerticalPostion:backTiltAngle:headSupportedHorizontalPostion:headSupportedVerticalPostion:massageEnabled:massageMode:massageCussionFirmness:memory:","abstract":"<p>Constructs a newly allocated SDLSeatControlData object with cushion and firmness</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)id":{"name":"id","abstract":"<p>@abstract id of seat that is a remote controllable seat.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)heatingEnabled":{"name":"heatingEnabled","abstract":"<p>@abstract Whether or not heating is enabled.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)coolingEnabled":{"name":"coolingEnabled","abstract":"<p>@abstract Whether or not cooling is enabled.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)heatingLevel":{"name":"heatingLevel","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)coolingLevel":{"name":"coolingLevel","abstract":"<p>@abstract cooling level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)horizontalPosition":{"name":"horizontalPosition","abstract":"<p>@abstract horizontal Position in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)verticalPosition":{"name":"verticalPosition","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)frontVerticalPosition":{"name":"frontVerticalPosition","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)backVerticalPosition":{"name":"backVerticalPosition","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)backTiltAngle":{"name":"backTiltAngle","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)headSupportHorizontalPosition":{"name":"headSupportHorizontalPosition","abstract":"<p>@abstract head Support Horizontal Position in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)headSupportVerticalPosition":{"name":"headSupportVerticalPosition","abstract":"<p>@abstract head Support Vertical Position in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)massageEnabled":{"name":"massageEnabled","abstract":"<p>@abstract Whether or not massage is enabled.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)massageMode":{"name":"massageMode","abstract":"<p>@abstract Array of massage mode data.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)massageCushionFirmness":{"name":"massageCushionFirmness","abstract":"<p>@abstract Array of firmness of a cushion.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)memory":{"name":"memory","abstract":"<p>@abstract type of action to be performed</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Undocumented</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(im)initWithName:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:":{"name":"-initWithName:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:","abstract":"<p>Undocumented</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the light control module.","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)heatingEnabledAvailable":{"name":"heatingEnabledAvailable","abstract":"<p>@abstract Whether or not heating is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)coolingEnabledAvailable":{"name":"coolingEnabledAvailable","abstract":"<p>@abstract Whether or not cooling is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)heatingLevelAvailable":{"name":"heatingLevelAvailable","abstract":"<p>@abstract Whether or not heating level is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)coolingLevelAvailable":{"name":"coolingLevelAvailable","abstract":"<p>@abstract Whether or not cooling level is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)horizontalPositionAvailable":{"name":"horizontalPositionAvailable","abstract":"<p>@abstract Whether or not horizontal Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)verticalPositionAvailable":{"name":"verticalPositionAvailable","abstract":"<p>@abstract Whether or not vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)frontVerticalPositionAvailable":{"name":"frontVerticalPositionAvailable","abstract":"<p>@abstract Whether or not front Vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)backVerticalPositionAvailable":{"name":"backVerticalPositionAvailable","abstract":"<p>@abstract Whether or not back Vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)backTiltAngleAvailable":{"name":"backTiltAngleAvailable","abstract":"<p>@abstract Whether or not backTilt Angle Available is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)headSupportHorizontalPositionAvailable":{"name":"headSupportHorizontalPositionAvailable","abstract":"<p>@abstract Whether or not head Supports for Horizontal Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)headSupportVerticalPositionAvailable":{"name":"headSupportVerticalPositionAvailable","abstract":"<p>@abstract Whether or not head Supports for Vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)massageEnabledAvailable":{"name":"massageEnabledAvailable","abstract":"<p>@abstract Whether or not massage Enabled is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)massageModeAvailable":{"name":"massageModeAvailable","abstract":"<p>@abstract Whether or not massage Mode is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)massageCushionFirmnessAvailable":{"name":"massageCushionFirmnessAvailable","abstract":"<p>@abstract Whether or not massage Cushion Firmness is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)memoryAvailable":{"name":"memoryAvailable","abstract":"<p>@abstract Whether or not memory is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:":{"name":"-initWithMessage:","abstract":"<p>Undocumented</p>","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:timeout:softButtons:":{"name":"-initWithMessage:timeout:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)scrollableMessageBody":{"name":"scrollableMessageBody","abstract":"<p>A Body of text that can include newlines and tabs","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)timeout":{"name":"timeout","abstract":"<p>Gets/Sets an App defined timeout. Indicates how long of a timeout in milliseconds from the","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)softButtons":{"name":"softButtons","abstract":"<p>Gets/Sets App defined SoftButtons.If omitted on supported displays, only the","parent_name":"SDLScrollableMessage"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)resolution":{"name":"resolution","abstract":"<p>The resolution of the prescribed screen area</p>","parent_name":"SDLScreenParams"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)touchEventAvailable":{"name":"touchEventAvailable","abstract":"<p>Types of screen touch events available in screen area</p>","parent_name":"SDLScreenParams"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField1":{"name":"textField1","abstract":"<p>The top text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField2":{"name":"textField2","abstract":"<p>The second text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField3":{"name":"textField3","abstract":"<p>The third text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField4":{"name":"textField4","abstract":"<p>The fourth text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)mediaTrackTextField":{"name":"mediaTrackTextField","abstract":"<p>The media text field available within the media layout. Often less emphasized than textField(1-4)</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)primaryGraphic":{"name":"primaryGraphic","abstract":"<p>The primary graphic within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)secondaryGraphic":{"name":"secondaryGraphic","abstract":"<p>A secondary graphic used in some template layouts</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textAlignment":{"name":"textAlignment","abstract":"<p>What alignment textField(1-4) should use</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField1Type":{"name":"textField1Type","abstract":"<p>The type of data textField1 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField2Type":{"name":"textField2Type","abstract":"<p>The type of data textField2 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField3Type":{"name":"textField3Type","abstract":"<p>The type of data textField3 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField4Type":{"name":"textField4Type","abstract":"<p>The type of data textField4 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)softButtonObjects":{"name":"softButtonObjects","abstract":"<p>The current list of soft buttons within a template layout. Set this array to change the displayed soft buttons.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)menu":{"name":"menu","abstract":"<p>The current list of menu cells displayed in the app’s menu.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>The current list of voice commands available for the user to speak and be recognized by the IVI’s voice recognition engine.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)keyboardConfiguration":{"name":"keyboardConfiguration","abstract":"<p>The default keyboard configuration, this can be additionally customized by each SDLKeyboardDelegate.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)preloadedChoices":{"name":"preloadedChoices","abstract":"<p>Cells will be hashed by their text, image names, and VR command text. When assembling an SDLChoiceSet, you can pull objects from here, or recreate them. The preloaded versions will be used so long as their text, image names, and VR commands are the same.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)initWithConnectionManager:fileManager:":{"name":"-initWithConnectionManager:fileManager:","abstract":"<p>Initialize a screen manager</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"<p>Starts the manager and all sub-managers</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)stop":{"name":"-stop","abstract":"<p>Stops the manager.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)beginUpdates":{"name":"-beginUpdates","abstract":"<p>Delays all screen updates until endUpdatesWithCompletionHandler: is called.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)endUpdates":{"name":"-endUpdates","abstract":"<p>Update text fields with new text set into the text field properties. Pass an empty string <code>\\@""</code> to clear the text field.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)endUpdatesWithCompletionHandler:":{"name":"-endUpdatesWithCompletionHandler:","abstract":"<p>Update text fields with new text set into the text field properties. Pass an empty string <code>\\@""</code> to clear the text field.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)softButtonObjectNamed:":{"name":"-softButtonObjectNamed:","abstract":"<p>Undocumented</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)preloadChoices:withCompletionHandler:":{"name":"-preloadChoices:withCompletionHandler:","abstract":"<p>Preload cells to the head unit. This will <em>greatly</em> reduce the time taken to present a choice set. Any already matching a choice already on the head unit will be ignored. You <em>do not</em> need to wait until the completion handler is called to present a choice set containing choices being loaded. The choice set will wait until the preload completes and then immediately present.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)deleteChoices:":{"name":"-deleteChoices:","abstract":"<p>Delete loaded cells from the head unit. If the cells don’t exist on the head unit they will be ignored.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)presentChoiceSet:mode:":{"name":"-presentChoiceSet:mode:","abstract":"<p>Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you’re lazy…for real though, it’s kind of confusing to the user and isn’t recommended.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)presentSearchableChoiceSet:mode:withKeyboardDelegate:":{"name":"-presentSearchableChoiceSet:mode:withKeyboardDelegate:","abstract":"<p>Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you’re lazy…for real though, it’s kind of confusing to the user and isn’t recommended.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)presentKeyboardWithInitialText:delegate:":{"name":"-presentKeyboardWithInitialText:delegate:","abstract":"<p>Present a keyboard-only interface to the user and receive input. The user will be able to input text in the keyboard when in a non-driver distraction situation.</p>","parent_name":"SDLScreenManager"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(im)initWithStationShortName:stationIDNumber:stationLongName:stationLocation:stationMessage:":{"name":"-initWithStationShortName:stationIDNumber:stationLongName:stationLocation:stationMessage:","abstract":"<p>Undocumented</p>","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationShortName":{"name":"stationShortName","abstract":"<p>@abstract Identifies the 4-alpha-character station call sign","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationIDNumber":{"name":"stationIDNumber","abstract":"<p>@abstract Used for network Application.","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationLongName":{"name":"stationLongName","abstract":"<p>@abstract Identifies the station call sign or other identifying","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationLocation":{"name":"stationLocation","abstract":"<p>@abstract Provides the 3-dimensional geographic station location</p>","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationMessage":{"name":"stationMessage","abstract":"<p>@abstract May be used to convey textual information of general interest","parent_name":"SDLSISData"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(im)initWithProperties:":{"name":"-initWithProperties:","abstract":"<p>Undocumented</p>","parent_name":"SDLResetGlobalProperties"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(py)properties":{"name":"properties","abstract":"<p>An array of one or more GlobalProperty enumeration elements","parent_name":"SDLResetGlobalProperties"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(im)initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:":{"name":"-initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:","abstract":"<p>Undocumented</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(im)initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:seatControlCapabilities:audioControlCapabilities:hmiSettingsControlCapabilities:lightControlCapabilities:":{"name":"-initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:seatControlCapabilities:audioControlCapabilities:hmiSettingsControlCapabilities:lightControlCapabilities:","abstract":"<p>Constructs a newly allocated SDLRemoteControlCapabilities object with given parameters</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)climateControlCapabilities":{"name":"climateControlCapabilities","abstract":"<p>If included, the platform supports RC climate controls.","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities":{"name":"radioControlCapabilities","abstract":"<p>If included, the platform supports RC radio controls.","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<p>If included, the platform supports RC button controls with the included button names.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)seatControlCapabilities":{"name":"seatControlCapabilities","abstract":"<p>If included, the platform supports seat controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)audioControlCapabilities":{"name":"audioControlCapabilities","abstract":"<p>If included, the platform supports audio controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)hmiSettingsControlCapabilities":{"name":"hmiSettingsControlCapabilities","abstract":"<p>If included, the platform supports hmi setting controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)lightControlCapabilities":{"name":"lightControlCapabilities","abstract":"<p>If included, the platform supports light controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"<p>The RPC spec version supported by the connected IVI system.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)language":{"name":"language","abstract":"<p>The currently active VR+TTS language on the module. See <q>Language</q> for options.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"<p>The currently active display language on the module. See <q>Language</q> for options.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"<p>Contains information about the display for the SDL system to which the application is currently connected.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<p>Provides information about the capabilities of a SDL HMI button.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"<p>Contains information about a SoftButton’s capabilities.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"<p>If returned, the platform supports custom on-screen Presets</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiZoneCapabilities":{"name":"hmiZoneCapabilities","abstract":"<p>Specifies HMI Zones in the vehicle.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)speechCapabilities":{"name":"speechCapabilities","abstract":"<p>Contains information about TTS capabilities on the SDL platform.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)prerecordedSpeech":{"name":"prerecordedSpeech","abstract":"<p>Contains information about the speech capabilities on the SDL platform","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vrCapabilities":{"name":"vrCapabilities","abstract":"<p>The VR capabilities of the connected SDL platform.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)audioPassThruCapabilities":{"name":"audioPassThruCapabilities","abstract":"<p>Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)pcmStreamCapabilities":{"name":"pcmStreamCapabilities","abstract":"<p>Describes different audio type configurations for the audio PCM stream service, e.g. {8kHz,8-bit,PCM}</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vehicleType":{"name":"vehicleType","abstract":"<p>Specifies the connected vehicle’s type</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)supportedDiagModes":{"name":"supportedDiagModes","abstract":"<p>Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for DiagnosticMessage requests. If a mode outside this list is requested, it will be rejected.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiCapabilities":{"name":"hmiCapabilities","abstract":"<p>Specifies the availability of various SDL features.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)sdlVersion":{"name":"sdlVersion","abstract":"<p>The SmartDeviceLink Core version</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)systemSoftwareVersion":{"name":"systemSoftwareVersion","abstract":"<p>The software version of the system that implements SmartDeviceLink Core</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)iconResumed":{"name":"iconResumed","abstract":"<p>Whether or not the app’s icon already existed on the system and was resumed. That means that the icon does not need to be sent by the app.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithLifecycleConfiguration:":{"name":"-initWithLifecycleConfiguration:","abstract":"<p>Convenience init for registering the application with a lifecycle configuration.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:":{"name":"-initWithAppName:appId:languageDesired:","abstract":"<p>Convenience init for registering the application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:","abstract":"<p>Convenience init for registering the application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:","abstract":"<p>Convenience init for registering the application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme:":{"name":"-initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme:","abstract":"<p>Convenience init for registering the application with all possible options.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"<p>The version of the SDL interface</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appName":{"name":"appName","abstract":"<p>The mobile application’s name. This name is displayed in the SDL Mobile Applications menu. It also serves as the unique identifier of the application for SmartDeviceLink.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ttsName":{"name":"ttsName","abstract":"<p>TTS string for VR recognition of the mobile application name.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"<p>A String representing an abbreviated version of the mobile application’s name (if necessary) that will be displayed on the media screen.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)vrSynonyms":{"name":"vrSynonyms","abstract":"<p>Defines additional voice recognition commands</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)isMediaApplication":{"name":"isMediaApplication","abstract":"<p>Indicates if the application is a media or a non-media application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)languageDesired":{"name":"languageDesired","abstract":"<p>A Language enumeration indicating what language the application intends to use for user interaction (TTS and VR).</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hmiDisplayLanguageDesired":{"name":"hmiDisplayLanguageDesired","abstract":"<p>An enumeration indicating what language the application intends to use for user interaction (Display).</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appHMIType":{"name":"appHMIType","abstract":"<p>A list of all applicable app types stating which classifications to be given to the app.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hashID":{"name":"hashID","abstract":"<p>ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles).</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)deviceInfo":{"name":"deviceInfo","abstract":"<p>Information about the connecting device</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appID":{"name":"appID","abstract":"<p>ID used to validate app with policy table entries</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)fullAppID":{"name":"fullAppID","abstract":"<p>A full UUID appID used to validate app with policy table entries.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appInfo":{"name":"appInfo","abstract":"<p>Information about the application running</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)dayColorScheme":{"name":"dayColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>light</q> or <q>day</q> color scheme. The OEM may only support this theme if their head unit only has a light color scheme.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)nightColorScheme":{"name":"nightColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>dark</q> or <q>night</q> color scheme. The OEM may only support this theme if their head unit only has a dark color scheme.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithX:y:width:height:":{"name":"-initWithX:y:width:height:","abstract":"<p>Create a Rectangle</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithCGRect:":{"name":"-initWithCGRect:","abstract":"<p>Create a Rectangle from a CGRect</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)x":{"name":"x","abstract":"<p>The X-coordinate of the user control</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)y":{"name":"y","abstract":"<p>The Y-coordinate of the user control</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)width":{"name":"width","abstract":"<p>The width of the user control’s bounding rectangle</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)height":{"name":"height","abstract":"<p>The height of the user control’s bounding rectangle</p>","parent_name":"SDLRectangle"},"Classes/SDLReadDIDResponse.html#/c:objc(cs)SDLReadDIDResponse(py)didResult":{"name":"didResult","abstract":"<p>Array of requested DID results (with data if available).</p>","parent_name":"SDLReadDIDResponse"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(im)initWithECUName:didLocation:":{"name":"-initWithECUName:didLocation:","abstract":"<p>Undocumented</p>","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)ecuName":{"name":"ecuName","abstract":"<p>An ID of the vehicle module","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)didLocation":{"name":"didLocation","abstract":"<p>Raw data from vehicle data DID location(s)","parent_name":"SDLReadDID"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(im)initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:":{"name":"-initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(im)initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:hdRadioEnable:":{"name":"-initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:hdRadioEnable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)frequencyInteger":{"name":"frequencyInteger","abstract":"<p>The integer part of the frequency ie for 101.7 this value should be 101</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)frequencyFraction":{"name":"frequencyFraction","abstract":"<p>The fractional part of the frequency for 101.7 is 7</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)band":{"name":"band","abstract":"<p>Radio band value</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)rdsData":{"name":"rdsData","abstract":"<p>Read only parameter. See RDSData data type for details.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)availableHDs":{"name":"availableHDs","abstract":"<p>number of HD sub-channels if available</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)hdChannel":{"name":"hdChannel","abstract":"<p>Current HD sub-channel if available</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)signalStrength":{"name":"signalStrength","abstract":"<p>Signal Strength Value</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)signalChangeThreshold":{"name":"signalChangeThreshold","abstract":"<p>If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)radioEnable":{"name":"radioEnable","abstract":"<p>True if the radio is on, false is the radio is off. When the radio is disabled, no data other than radioEnable is included in a GetInteriorVehicleData response</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)state":{"name":"state","abstract":"<p>Read only parameter. See RadioState data type for details.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)hdRadioEnable":{"name":"hdRadioEnable","abstract":"<p>True if the hd radio is on, false is the radio is off</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)sisData":{"name":"sisData","abstract":"<p>Read Read-only Station Information Service (SIS) data provides basic information","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(im)initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:":{"name":"-initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(im)initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable:":{"name":"-initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>The short friendly name of the radio control module.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioEnableAvailable":{"name":"radioEnableAvailable","abstract":"<p>Availability of the control of enable/disable radio.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioBandAvailable":{"name":"radioBandAvailable","abstract":"<p>Availability of the control of radio band.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioFrequencyAvailable":{"name":"radioFrequencyAvailable","abstract":"<p>Availability of the control of radio frequency.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)hdChannelAvailable":{"name":"hdChannelAvailable","abstract":"<p>Availability of the control of HD radio channel.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)rdsDataAvailable":{"name":"rdsDataAvailable","abstract":"<p>Availability of the getting Radio Data System (RDS) data.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)availableHDsAvailable":{"name":"availableHDsAvailable","abstract":"<p>Availability of the getting the number of available HD channels.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)stateAvailable":{"name":"stateAvailable","abstract":"<p>Availability of the getting the Radio state.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)signalStrengthAvailable":{"name":"signalStrengthAvailable","abstract":"<p>Availability of the getting the signal strength.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)signalChangeThresholdAvailable":{"name":"signalChangeThresholdAvailable","abstract":"<p>Availability of the getting the signal Change Threshold</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)hdRadioEnableAvailable":{"name":"hdRadioEnableAvailable","abstract":"<p>Availability of the control of enable/disable HD radio.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)siriusXMRadioAvailable":{"name":"siriusXMRadioAvailable","abstract":"<p>Availability of sirius XM radio.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)sisDataAvailable":{"name":"sisDataAvailable","abstract":"<p>Availability of the getting HD radio Station Information Service (SIS) data.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct@store":{"name":"store","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"<p>Convenience init</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)init":{"name":"-init","abstract":"<p>Init</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)serializeAsDictionary:":{"name":"-serializeAsDictionary:","abstract":"<p>Converts struct to JSON formatted data</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(py)response":{"name":"response","abstract":"<p>The response within the userinfo dictionary</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)initWithName:object:rpcResponse:":{"name":"-initWithName:object:rpcResponse:","abstract":"<p>Create an NSNotification object caontaining an SDLRPCResponse</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)isResponseMemberOfClass:":{"name":"-isResponseMemberOfClass:","abstract":"<p>Returns whether or not the containing response is equal to a class, not including subclasses.</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)isResponseKindOfClass:":{"name":"-isResponseKindOfClass:","abstract":"<p>Returns whether or not the containing response is a kind of class, including subclasses.</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)correlationID":{"name":"correlationID","abstract":"<p>The correlation id of the corresponding SDLRPCRequest.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)success":{"name":"success","abstract":"<p>Whether or not the SDLRPCRequest was successful.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)resultCode":{"name":"resultCode","abstract":"<p>The result of the SDLRPCRequest. If the request failed, the result code contains the failure reason.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)info":{"name":"info","abstract":"<p>More detailed success or error message.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCRequest.html#/c:objc(cs)SDLRPCRequest(py)correlationID":{"name":"correlationID","abstract":"<p>A unique id assigned to message sent to Core. The Correlation ID is used to map a request to its response.</p>","parent_name":"SDLRPCRequest"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(py)notification":{"name":"notification","abstract":"<p>The notification within the userinfo dictionary</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)initWithName:object:rpcNotification:":{"name":"-initWithName:object:rpcNotification:","abstract":"<p>Create an NSNotification object caontaining an SDLRPCNotification</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)isNotificationMemberOfClass:":{"name":"-isNotificationMemberOfClass:","abstract":"<p>Returns whether or not the containing notification is equal to a class, not including subclasses.</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)isNotificationKindOfClass:":{"name":"-isNotificationKindOfClass:","abstract":"<p>Returns whether or not the containing notification is a kind of class, including subclasses.</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@function":{"name":"function","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@parameters":{"name":"parameters","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@messageType":{"name":"messageType","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Convenience init</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"<p>Convenience init</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getFunctionName":{"name":"-getFunctionName","abstract":"<p>Returns the function name.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setFunctionName:":{"name":"-setFunctionName:","abstract":"<p>Sets the function name.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getParameters:":{"name":"-getParameters:","abstract":"<p>Returns the value associated with the provided key. If the key does not exist, null is returned.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setParameters:value:":{"name":"-setParameters:value:","abstract":"<p>Sets a key-value pair using the function name as the key.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)bulkData":{"name":"bulkData","abstract":"<p>The data in the message</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)name":{"name":"name","abstract":"<p>The name of the message</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)messageType":{"name":"messageType","abstract":"<p>The type of data in the message</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(im)initWithRed:green:blue:":{"name":"-initWithRed:green:blue:","abstract":"<p>Create an SDL color object with red / green / blue values between 0-255</p>","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(im)initWithColor:":{"name":"-initWithColor:","abstract":"<p>Create an SDL color object with a UIColor object.</p>","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(py)red":{"name":"red","abstract":"<p>The red value of the RGB color","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(py)green":{"name":"green","abstract":"<p>The green value of the RGB color","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(py)blue":{"name":"blue","abstract":"<p>The blue value of the RGB color","parent_name":"SDLRGBColor"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(im)initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region:":{"name":"-initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region:","abstract":"<p>Undocumented</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programService":{"name":"programService","abstract":"<p>Program Service Name</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)radioText":{"name":"radioText","abstract":"<p>Radio Text</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)clockText":{"name":"clockText","abstract":"<p>The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programIdentification":{"name":"programIdentification","abstract":"<p>Program Identification - the call sign for the radio station</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programType":{"name":"programType","abstract":"<p>The program type - The region should be used to differentiate between EU","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)trafficProgramIdentification":{"name":"trafficProgramIdentification","abstract":"<p>Traffic Program Identification - Identifies a station that offers traffic</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)trafficAnnouncementIdentification":{"name":"trafficAnnouncementIdentification","abstract":"<p>Traffic Announcement Identification - Indicates an ongoing traffic announcement</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)region":{"name":"region","abstract":"<p>Region</p>","parent_name":"SDLRDSData"},"Classes/SDLPutFileResponse.html#/c:objc(cs)SDLPutFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"<p>Provides the total local space available in SDL Core for the registered app. If the transfer has systemFile enabled, then the value will be set to 0 automatically.</p>","parent_name":"SDLPutFileResponse"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)init":{"name":"-init","abstract":"<p>Init</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:":{"name":"-initWithFileName:fileType:","abstract":"<p>Convenience init for creating a putfile with a name and file format.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:":{"name":"-initWithFileName:fileType:persistentFile:","abstract":"<p>Convenience init for creating a putfile with a name, file format, and persistance.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:systemFile:offset:length:":{"name":"-initWithFileName:fileType:persistentFile:systemFile:offset:length:","abstract":"<p>Convenience init for creating a putfile that is part of a multiple frame payload.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:systemFile:offset:length:crc:":{"name":"-initWithFileName:fileType:persistentFile:systemFile:offset:length:crc:","abstract":"<p>Convenience init for creating a putfile that is part of a multiple frame payload.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:systemFile:offset:length:bulkData:":{"name":"-initWithFileName:fileType:persistentFile:systemFile:offset:length:bulkData:","abstract":"<p>Convenience init for creating a putfile that is part of a multiple frame payload. A CRC checksum is calculated for the bulk data.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)syncFileName":{"name":"syncFileName","abstract":"<p>File reference name</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)fileType":{"name":"fileType","abstract":"<p>A FileType value representing a selected file type</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)persistentFile":{"name":"persistentFile","abstract":"<p>A value to indicates if the file is meant to persist between sessions / ignition cycles. If set to TRUE, then the system will aim to persist this file through session / cycles. While files with this designation will have priority over others, they are subject to deletion by the system at any time. In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file. If omitted, the value will be set to false.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)systemFile":{"name":"systemFile","abstract":"<p>Indicates if the file is meant to be passed through core to elsewhere on the system. If set to TRUE, then the system will instead pass the data thru as it arrives to a predetermined area outside of core.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)offset":{"name":"offset","abstract":"<p>Offset in bytes for resuming partial data chunks.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)length":{"name":"length","abstract":"<p>Length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)crc":{"name":"crc","abstract":"<p>Additional CRC32 checksum to protect data integrity up to 512 Mbits.</p>","parent_name":"SDLPutFile"},"Classes/SDLPresetBankCapabilities.html#/c:objc(cs)SDLPresetBankCapabilities(py)onScreenPresetsAvailable":{"name":"onScreenPresetsAvailable","abstract":"<p>If Onscreen custom presets are available.</p>","parent_name":"SDLPresetBankCapabilities"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(im)initWithFirstTouch:secondTouch:":{"name":"-initWithFirstTouch:secondTouch:","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)firstTouch":{"name":"firstTouch","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)secondTouch":{"name":"secondTouch","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)distance":{"name":"distance","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)center":{"name":"center","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)isValid":{"name":"isValid","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(im)initWithDialNumber:":{"name":"-initWithDialNumber:","abstract":"<p>Undocumented</p>","parent_name":"SDLPhoneCapability"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(py)dialNumberEnabled":{"name":"dialNumberEnabled","abstract":"<p>Whether or not the DialNumber RPC is enabled.</p>","parent_name":"SDLPhoneCapability"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"<p>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 <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)stop":{"name":"-stop","abstract":"<p>Stop the manager. This method is used internally.</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)isRPCAllowed:":{"name":"-isRPCAllowed:","abstract":"<p>Determine if an individual RPC is allowed for the current HMI level</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)groupStatusOfRPCs:":{"name":"-groupStatusOfRPCs:","abstract":"<p>Determine if all RPCs are allowed for the current HMI level</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)statusOfRPCs:":{"name":"-statusOfRPCs:","abstract":"<p>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</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)addObserverForRPCs:groupType:withHandler:":{"name":"-addObserverForRPCs:groupType:withHandler:","abstract":"<p>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.</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeAllObservers":{"name":"-removeAllObservers","abstract":"<p>Remove every current observer</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeObserverForIdentifier:":{"name":"-removeObserverForIdentifier:","abstract":"<p>Remove block observers for the specified RPC</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)rpcName":{"name":"rpcName","abstract":"<p>Name of the individual RPC in the policy table.</p>","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)hmiPermissions":{"name":"hmiPermissions","abstract":"<p>HMI Permissions for the individual RPC; i.e. which HMI levels may it be used in</p>","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)parameterPermissions":{"name":"parameterPermissions","abstract":"<p>RPC parameters for the individual RPC</p>","parent_name":"SDLPermissionItem"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)choiceID":{"name":"choiceID","abstract":"<p>ID of the choice that was selected in response to PerformInteraction. Only is valid if general result is <q>success:true</q>.</p>","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)manualTextEntry":{"name":"manualTextEntry","abstract":"<p>Manually entered text selection, e.g. through keyboard. Can be returned in lieu of choiceID, depending on the trigger source.</p>","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)triggerSource":{"name":"triggerSource","abstract":"<p>A <em>SDLTriggerSource</em> object which will be shown in the HMI. Only is valid if resultCode is SUCCESS.</p>","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetId:":{"name":"-initWithInteractionChoiceSetId:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetIdList:":{"name":"-initWithInteractionChoiceSetIdList:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:":{"name":"-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:interactionLayout:":{"name":"-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:interactionLayout:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)initialText":{"name":"initialText","abstract":"<p>The Text that Displayed when the interaction begins. This text may","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)initialPrompt":{"name":"initialPrompt","abstract":"<p>An array of one or more TTSChunks that, taken together, specify","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionMode":{"name":"interactionMode","abstract":"<p>The Indicates mode that indicate how user selects interaction","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionChoiceSetIDList":{"name":"interactionChoiceSetIDList","abstract":"<p>A Vector<Integer> value representing an Array of one or more Choice","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)helpPrompt":{"name":"helpPrompt","abstract":"<p>A Vector<TTSChunk> which taken together, specify the help phrase to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"<p>An array of TTSChunks which, taken together, specify the phrase to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)timeout":{"name":"timeout","abstract":"<p>An Integer value representing the amount of time, in milliseconds,","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)vrHelp":{"name":"vrHelp","abstract":"<p>A Voice recognition Help, which is a suggested VR Help Items to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionLayout":{"name":"interactionLayout","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:":{"name":"-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:audioDataHandler:":{"name":"-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:audioDataHandler:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)initialPrompt":{"name":"initialPrompt","abstract":"<p>initial prompt which will be spoken before opening the audio pass","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioPassThruDisplayText1":{"name":"audioPassThruDisplayText1","abstract":"<p>a line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioPassThruDisplayText2":{"name":"audioPassThruDisplayText2","abstract":"<p>A line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)samplingRate":{"name":"samplingRate","abstract":"<p>A samplingRate</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)maxDuration":{"name":"maxDuration","abstract":"<p>the maximum duration of audio recording in milliseconds</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)bitsPerSample":{"name":"bitsPerSample","abstract":"<p>the quality the audio is recorded - 8 bit or 16 bit</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioType":{"name":"audioType","abstract":"<p>an audioType</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)muteAudio":{"name":"muteAudio","abstract":"<p>a Boolean value representing if the current audio source should be","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioDataHandler":{"name":"audioDataHandler","abstract":"<p>A handler that will be called whenever an <code>onAudioPassThru</code> notification is received.</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)allowed":{"name":"allowed","abstract":"<p>A set of all parameters that are permitted for this given RPC.</p>","parent_name":"SDLParameterPermissions"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"<p>A set of all parameters that are prohibited for this given RPC.</p>","parent_name":"SDLParameterPermissions"},"Classes/SDLOnWayPointChange.html#/c:objc(cs)SDLOnWayPointChange(py)waypoints":{"name":"waypoints","abstract":"<p>Location address for display purposes only</p>","parent_name":"SDLOnWayPointChange"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)gps":{"name":"gps","abstract":"<p>The car current GPS coordinates</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)speed":{"name":"speed","abstract":"<p>The vehicle speed in kilometers per hour</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)rpm":{"name":"rpm","abstract":"<p>The number of revolutions per minute of the engine.</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The fuel level in the tank (percentage)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The fuel level state</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>The estimate range in KM the vehicle can travel based on fuel level and consumption</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The instantaneous fuel consumption in microlitres</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The external temperature in degrees celsius.</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)vin":{"name":"vin","abstract":"<p>The Vehicle Identification Number</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)prndl":{"name":"prndl","abstract":"<p>The current gear shift state of the user’s vehicle</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>The current pressure warnings for the user’s vehicle</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)odometer":{"name":"odometer","abstract":"<p>Odometer reading in km</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>The status of the seat belts</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The body information including power modes</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The IVI system status including signal and battery strength</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>The status of the brake pedal</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The status of the wipers</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>Status of the head lamps</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The estimated percentage (0% - 100%) of remaining oil life of the engine</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>Torque value for engine (in Nm) on non-diesel variants</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>Accelerator pedal position (percentage depressed)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>Current angle of the steering wheel (in deg)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>Emergency Call notification and confirmation data</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The status of the air bags</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>Information related to an emergency event (and if it occurred)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>The status modes of the cluster</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)myKey":{"name":"myKey","abstract":"<p>Information related to the MyKey feature</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The status of the electronic parking brake</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>The status of the turn signal</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)type":{"name":"type","abstract":"<p>The type of touch event.</p>","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)event":{"name":"event","abstract":"<p>List of all individual touches involved in this event.</p>","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTBTClientState.html#/c:objc(cs)SDLOnTBTClientState(py)state":{"name":"state","abstract":"<p>Current State of TBT client</p>","parent_name":"SDLOnTBTClientState"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestType":{"name":"requestType","abstract":"<p>The type of system request.</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestSubType":{"name":"requestSubType","abstract":"<p>A request subType used when the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestType\">requestType</a></code> is <code>OEM_SPECIFIC</code>.</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)url":{"name":"url","abstract":"<p>Optional URL for HTTP requests. If blank, the binary data shall be forwarded to the app. If not blank, the binary data shall be forwarded to the url with a provided timeout in seconds.</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)timeout":{"name":"timeout","abstract":"<p>Optional timeout for HTTP requests Required if a URL is provided</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)fileType":{"name":"fileType","abstract":"<p>Optional file type (meant for HTTP file requests).</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)offset":{"name":"offset","abstract":"<p>Optional offset in bytes for resuming partial data chunks</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)length":{"name":"length","abstract":"<p>Optional length in bytes for resuming partial data chunks</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)URL":{"name":"URL","abstract":"<p>Undocumented</p>","parent_name":"SDLOnSyncPData"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)Timeout":{"name":"Timeout","abstract":"<p>Undocumented</p>","parent_name":"SDLOnSyncPData"},"Classes/SDLOnRCStatus.html#/c:objc(cs)SDLOnRCStatus(py)allocatedModules":{"name":"allocatedModules","abstract":"<p>@abstract Contains a list (zero or more) of module types that","parent_name":"SDLOnRCStatus"},"Classes/SDLOnRCStatus.html#/c:objc(cs)SDLOnRCStatus(py)freeModules":{"name":"freeModules","abstract":"<p>@abstract Contains a list (zero or more) of module types that are free to access for the application.</p>","parent_name":"SDLOnRCStatus"},"Classes/SDLOnRCStatus.html#/c:objc(cs)SDLOnRCStatus(py)allowed":{"name":"allowed","abstract":"<p>Issued by SDL to notify the application about remote control status change on SDL","parent_name":"SDLOnRCStatus"},"Classes/SDLOnPermissionsChange.html#/c:objc(cs)SDLOnPermissionsChange(py)permissionItem":{"name":"permissionItem","abstract":"<p>Describes change in permissions for a given set of RPCs</p>","parent_name":"SDLOnPermissionsChange"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)driverDistractionStatus":{"name":"driverDistractionStatus","abstract":"<p>Get the current driver distraction status(i.e. whether driver distraction rules are in effect, or not)</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)userSelected":{"name":"userSelected","abstract":"<p>Get user selection status for the application (has the app been selected via hmi or voice command)</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)lockScreenStatus":{"name":"lockScreenStatus","abstract":"<p>Indicates if the lockscreen should be required, optional or off</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"<p>Get HMILevel in effect for the application</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)language":{"name":"language","abstract":"<p>Current SDL voice engine (VR+TTS) language</p>","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"<p>Current display language</p>","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)event":{"name":"event","abstract":"<p>The type of keyboard input</p>","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)data":{"name":"data","abstract":"<p>The current keyboard string input from the user</p>","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnInteriorVehicleData.html#/c:objc(cs)SDLOnInteriorVehicleData(py)moduleData":{"name":"moduleData","abstract":"<p>The subscribed module data that changed</p>","parent_name":"SDLOnInteriorVehicleData"},"Classes/SDLOnHashChange.html#/c:objc(cs)SDLOnHashChange(py)hashID":{"name":"hashID","abstract":"<p>Calculated hash ID to be referenced during RegisterAppInterface request.</p>","parent_name":"SDLOnHashChange"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"<p>SDLHMILevel in effect for the application</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)audioStreamingState":{"name":"audioStreamingState","abstract":"<p>Current state of audio streaming for the application. When this parameter has a value of NOT_AUDIBLE, the application must stop streaming audio to SDL.</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)videoStreamingState":{"name":"videoStreamingState","abstract":"<p>Current availablility of video streaming for the application. When this parameter is NOT_STREAMABLE, the application must stop video streaming to SDL.</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)systemContext":{"name":"systemContext","abstract":"<p>Whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not (MAIN)</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)data":{"name":"data","abstract":"<p>Contains base64 encoded string of SyncP packets.</p>","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)URL":{"name":"URL","abstract":"<p>If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP data shall be forwarded to the provided URL.</p>","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)Timeout":{"name":"Timeout","abstract":"<p>If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP data shall be forwarded with the provided timeout in seconds.</p>","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnDriverDistraction.html#/c:objc(cs)SDLOnDriverDistraction(py)state":{"name":"state","abstract":"<p>The driver distraction state (i.e. whether driver distraction rules are in effect, or not)</p>","parent_name":"SDLOnDriverDistraction"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)cmdID":{"name":"cmdID","abstract":"<p>The command ID of the command the user selected. This is the command ID value provided by the application in the SDLAddCommand operation that created the command.</p>","parent_name":"SDLOnCommand"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)triggerSource":{"name":"triggerSource","abstract":"<p>Indicates whether command was selected via voice or via a menu selection (using the OK button).</p>","parent_name":"SDLOnCommand"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonName":{"name":"buttonName","abstract":"<p>The button’s name</p>","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"<p>Indicates whether this is a LONG or SHORT button press event</p>","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)customButtonID":{"name":"customButtonID","abstract":"<p>If ButtonName is <q>CUSTOM_BUTTON</q>, this references the integer ID passed by a custom button. (e.g. softButton ID)</p>","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonName":{"name":"buttonName","abstract":"<p>The name of the button</p>","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonEventMode":{"name":"buttonEventMode","abstract":"<p>Indicates whether this is an UP or DOWN event</p>","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)customButtonID":{"name":"customButtonID","abstract":"<p>If ButtonName is <q>CUSTOM_BUTTON</q>, this references the integer ID passed by a custom button. (e.g. softButton ID)</p>","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnAppInterfaceUnregistered.html#/c:objc(cs)SDLOnAppInterfaceUnregistered(py)reason":{"name":"reason","abstract":"<p>The reason application’s interface was terminated</p>","parent_name":"SDLOnAppInterfaceUnregistered"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(im)initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:":{"name":"-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:","abstract":"<p>Undocumented</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(im)initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:subAdministrativeArea:subLocality:":{"name":"-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:subAdministrativeArea:subLocality:","abstract":"<p>Undocumented</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryName":{"name":"countryName","abstract":"<p>Name of the country (localized)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryCode":{"name":"countryCode","abstract":"<p>countryCode of the country(ISO 3166-2)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)postalCode":{"name":"postalCode","abstract":"<p>postalCode of location (PLZ, ZIP, PIN, CAP etc.)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)administrativeArea":{"name":"administrativeArea","abstract":"<p>Portion of country (e.g. state)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subAdministrativeArea":{"name":"subAdministrativeArea","abstract":"<p>Portion of administrativeArea (e.g. county)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)locality":{"name":"locality","abstract":"<p>Hypernym for city/village</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subLocality":{"name":"subLocality","abstract":"<p>Hypernym for district</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)thoroughfare":{"name":"thoroughfare","abstract":"<p>Hypernym for street, road etc.</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subThoroughfare":{"name":"subThoroughfare","abstract":"<p>Portion of thoroughfare (e.g. house number)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allResponseNames":{"name":"+allResponseNames","abstract":"<p>All of the possible SDL RPC Response notification names</p>","parent_name":"SDLNotificationConstants"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allButtonEventNotifications":{"name":"+allButtonEventNotifications","abstract":"<p>All of the possible SDL Button event notification names</p>","parent_name":"SDLNotificationConstants"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(im)initWithSendLocation:waypoints:":{"name":"-initWithSendLocation:waypoints:","abstract":"<p>Undocumented</p>","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)sendLocationEnabled":{"name":"sendLocationEnabled","abstract":"<p>Whether or not the SendLocation RPC is enabled.</p>","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)getWayPointsEnabled":{"name":"getWayPointsEnabled","abstract":"<p>Whether or not Waypoint related RPCs are enabled.</p>","parent_name":"SDLNavigationCapability"},"Classes/SDLMyKey.html#/c:objc(cs)SDLMyKey(py)e911Override":{"name":"e911Override","abstract":"<p>Indicates whether e911 override is on. References signal <q>MyKey_e911Override_St</q>. See VehicleDataStatus.</p>","parent_name":"SDLMyKey"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithRadioControlData:":{"name":"-initWithRadioControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with radio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithClimateControlData:":{"name":"-initWithClimateControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with climate control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithAudioControlData:":{"name":"-initWithAudioControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with audio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithLightControlData:":{"name":"-initWithLightControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with light control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithHMISettingsControlData:":{"name":"-initWithHMISettingsControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with hmi settings data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithSeatControlData:":{"name":"-initWithSeatControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with seat control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)moduleType":{"name":"moduleType","abstract":"<p>The moduleType indicates which type of data should be changed and identifies which data object exists in this struct.</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)radioControlData":{"name":"radioControlData","abstract":"<p>The radio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)climateControlData":{"name":"climateControlData","abstract":"<p>The climate control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)seatControlData":{"name":"seatControlData","abstract":"<p>The seat control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)audioControlData":{"name":"audioControlData","abstract":"<p>The audio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)lightControlData":{"name":"lightControlData","abstract":"<p>The light control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)hmiSettingsControlData":{"name":"hmiSettingsControlData","abstract":"<p>The hmi control data</p>","parent_name":"SDLModuleData"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:":{"name":"-initWithTextFieldTypes:mainField2:","abstract":"<p>Constructs a newly allocated SDLMetadataType object with NSArrays</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:mainField3:mainField4:":{"name":"-initWithTextFieldTypes:mainField2:mainField3:mainField4:","abstract":"<p>Undocumented</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField1":{"name":"mainField1","abstract":"<p>The type of data contained in the <q>mainField1</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField2":{"name":"mainField2","abstract":"<p>The type of data contained in the <q>mainField2</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField3":{"name":"mainField3","abstract":"<p>The type of data contained in the <q>mainField3</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField4":{"name":"mainField4","abstract":"<p>The type of data contained in the <q>mainField4</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:":{"name":"-initWithMenuName:","abstract":"<p>Undocumented</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:parentId:position:":{"name":"-initWithMenuName:parentId:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)parentID":{"name":"parentID","abstract":"<p>The unique ID of an existing submenu to which a command will be added</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)position":{"name":"position","abstract":"<p>The position within the items of the parent Command Menu</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)menuName":{"name":"menuName","abstract":"<p>The menu name which appears in menu, representing this command</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)title":{"name":"title","abstract":"<p>The cell’s text to be displayed</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)icon":{"name":"icon","abstract":"<p>The cell’s icon to be displayed</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>The strings the user can say to activate this voice command</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)handler":{"name":"handler","abstract":"<p>The handler that will be called when the command is activated</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)subCells":{"name":"subCells","abstract":"<p>If this is non-nil, this cell will be a sub-menu button, displaying the subcells in a menu when pressed.</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(im)initWithTitle:icon:voiceCommands:handler:":{"name":"-initWithTitle:icon:voiceCommands:handler:","abstract":"<p>Create a menu cell that has no subcells.</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(im)initWithTitle:subCells:":{"name":"-initWithTitle:subCells:","abstract":"<p>Create a menu cell that has subcells and when selected will go into a deeper part of the menu</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(im)initWithTitle:icon:subCells:":{"name":"-initWithTitle:icon:subCells:","abstract":"<p>Create a menu cell that has subcells and when selected will go into a deeper part of the menu</p>","parent_name":"SDLMenuCell"},"Classes/SDLMassageModeData.html#/c:objc(cs)SDLMassageModeData(im)initWithMassageMode:massageZone:":{"name":"-initWithMassageMode:massageZone:","abstract":"<p>@abstract Constructs a newly allocated SDLMassageModeData object with massageMode and massageZone</p>","parent_name":"SDLMassageModeData"},"Classes/SDLMassageModeData.html#/c:objc(cs)SDLMassageModeData(py)massageMode":{"name":"massageMode","abstract":"<p>@abstract mode of a massage zone</p>","parent_name":"SDLMassageModeData"},"Classes/SDLMassageModeData.html#/c:objc(cs)SDLMassageModeData(py)massageZone":{"name":"massageZone","abstract":"<p>@abstract zone of a multi-contour massage seat.</p>","parent_name":"SDLMassageModeData"},"Classes/SDLMassageCushionFirmness.html#/c:objc(cs)SDLMassageCushionFirmness(im)initWithMassageCushion:firmness:":{"name":"-initWithMassageCushion:firmness:","abstract":"<p>Constructs a newly allocated SDLMassageCushionFirmness object with cushion and firmness</p>","parent_name":"SDLMassageCushionFirmness"},"Classes/SDLMassageCushionFirmness.html#/c:objc(cs)SDLMassageCushionFirmness(py)cushion":{"name":"cushion","abstract":"<p>@abstract cushion of a multi-contour massage seat.</p>","parent_name":"SDLMassageCushionFirmness"},"Classes/SDLMassageCushionFirmness.html#/c:objc(cs)SDLMassageCushionFirmness(py)firmness":{"name":"firmness","abstract":"<p>@abstract zone of a multi-contour massage seat.</p>","parent_name":"SDLMassageCushionFirmness"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)configuration":{"name":"configuration","abstract":"<p>The configuration the manager was set up with.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)hmiLevel":{"name":"hmiLevel","abstract":"<p>The current HMI level of the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)audioStreamingState":{"name":"audioStreamingState","abstract":"<p>The current audio streaming state of the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)systemContext":{"name":"systemContext","abstract":"<p>The current system context of the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)fileManager":{"name":"fileManager","abstract":"<p>The file manager to be used by the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)permissionManager":{"name":"permissionManager","abstract":"<p>The permission manager monitoring RPC permissions.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)streamManager":{"name":"streamManager","abstract":"<p>The streaming media manager to be used for starting video sessions.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)screenManager":{"name":"screenManager","abstract":"<p>The screen manager for sending UI related RPCs.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)systemCapabilityManager":{"name":"systemCapabilityManager","abstract":"<p>Centralized manager for retrieving all system capabilities.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)registerResponse":{"name":"registerResponse","abstract":"<p>The response of a register call after it has been received.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)delegate":{"name":"delegate","abstract":"<p>The manager’s delegate.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)pendingRPCTransactions":{"name":"pendingRPCTransactions","abstract":"<p>The currently pending RPC request send transactions</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)proxy":{"name":"proxy","abstract":"<p>Undocumented</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)initWithConfiguration:delegate:":{"name":"-initWithConfiguration:delegate:","abstract":"<p>Initialize the manager with a configuration. Call <code>startWithHandler</code> to begin waiting for a connection.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)startWithReadyHandler:":{"name":"-startWithReadyHandler:","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)stop":{"name":"-stop","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:":{"name":"-sendRequest:","abstract":"<p>Send an RPC request and don’t bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:withResponseHandler:":{"name":"-sendRequest:withResponseHandler:","abstract":"<p>Send an RPC request and set a completion handler that will be called with the response when the response returns.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequests:progressHandler:completionHandler:":{"name":"-sendRequests:progressHandler:completionHandler:","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendSequentialRequests:progressHandler:completionHandler:":{"name":"-sendSequentialRequests:progressHandler:completionHandler:","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)modules":{"name":"modules","abstract":"<p>Active log modules</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)targets":{"name":"targets","abstract":"<p>Active log targets</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)filters":{"name":"filters","abstract":"<p>Active log filters</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)globalLogLevel":{"name":"globalLogLevel","abstract":"<p>Any modules that do not have an explicitly specified level will by default use this log level</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)formatType":{"name":"formatType","abstract":"<p>Active log format</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)asynchronous":{"name":"asynchronous","abstract":"<p>Whether or not verbose, debug, and warning logs are logged asynchronously. If logs are performed async, then some may be missed in the event of a terminating signal such as an exception, but performance is improved and your code will not be slowed by logging.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)errorsAsynchronous":{"name":"errorsAsynchronous","abstract":"<p>Whether or not error logs are logged asynchronously. If logs are performed async, then some may be missed in the event of a terminating signal such as an exception, but performance is improved and your code will not be slowed by logging.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cpy)dateFormatter":{"name":"dateFormatter","abstract":"<p>Active date formatter</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cpy)logQueue":{"name":"logQueue","abstract":"<p>The queue asynchronously logged logs are logged on. Say that 10 times fast.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)sharedManager":{"name":"+sharedManager","abstract":"<p>The singleton object</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)setConfiguration:":{"name":"+setConfiguration:","abstract":"<p>Sets a configuration to be used by the log manager’s sharedManager. This is generally for internal use and you should set your configuration using SDLManager’s startWithConfiguration: method.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)setConfiguration:":{"name":"-setConfiguration:","abstract":"<p>Sets a configuration to be used by the log manager. This is generally for internal use and you should set your configuration using SDLManager’s startWithConfiguration: method.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logWithLevel:timestamp:file:functionName:line:queue:formatMessage:":{"name":"+logWithLevel:timestamp:file:functionName:line:queue:formatMessage:","abstract":"<p>Log to the sharedManager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logWithLevel:timestamp:file:functionName:line:queue:formatMessage:":{"name":"-logWithLevel:timestamp:file:functionName:line:queue:formatMessage:","abstract":"<p>Log to this log manager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logWithLevel:timestamp:file:functionName:line:queue:message:":{"name":"+logWithLevel:timestamp:file:functionName:line:queue:message:","abstract":"<p>Log to this sharedManager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logWithLevel:timestamp:file:functionName:line:queue:message:":{"name":"-logWithLevel:timestamp:file:functionName:line:queue:message:","abstract":"<p>Log to this log manager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logBytes:direction:timestamp:file:functionName:line:queue:":{"name":"+logBytes:direction:timestamp:file:functionName:line:queue:","abstract":"<p>Log to this sharedManager’s active log targets. This is used internally to log.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logBytes:direction:timestamp:file:functionName:line:queue:":{"name":"-logBytes:direction:timestamp:file:functionName:line:queue:","abstract":"<p>Log to this manager’s active log targets. This is used internally to log.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(py)filter":{"name":"filter","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(im)initWithCustomFilter:":{"name":"-initWithCustomFilter:","abstract":"<p>Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingString:caseSensitive:":{"name":"+filterByDisallowingString:caseSensitive:","abstract":"<p>Returns a filter that only allows logs not containing the passed string within their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingString:caseSensitive:":{"name":"+filterByAllowingString:caseSensitive:","abstract":"<p>Returns a filter that only allows logs containing the passed string within their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingRegex:":{"name":"+filterByDisallowingRegex:","abstract":"<p>Returns a filter that only allows logs not passing the passed regex against their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingRegex:":{"name":"+filterByAllowingRegex:","abstract":"<p>Returns a filter that only allows logs passing the passed regex against their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingModules:":{"name":"+filterByDisallowingModules:","abstract":"<p>Returns a filter that only allows logs not within the specified file modules to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingModules:":{"name":"+filterByAllowingModules:","abstract":"<p>Returns a filter that only allows logs of the specified file modules to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingFileNames:":{"name":"+filterByDisallowingFileNames:","abstract":"<p>Returns a filter that only allows logs not within the specified files to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingFileNames:":{"name":"+filterByAllowingFileNames:","abstract":"<p>Returns a filter that only allows logs within the specified files to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)name":{"name":"name","abstract":"<p>The name of the this module, e.g. <q>Transport</q></p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)files":{"name":"files","abstract":"<p>All of the files contained within this module. When a log is logged, the <code>__FILE__</code> (in Obj-C) or <code>#file</code> (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.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)logLevel":{"name":"logLevel","abstract":"<p>The custom level of the log. This is <code>SDLLogLevelDefault</code> (whatever the current global log level is) by default.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)init":{"name":"-init","abstract":"<p>This method is unavailable and may not be used.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)initWithName:files:level:":{"name":"-initWithName:files:level:","abstract":"<p>Returns an initialized <code>SDLLogFileModule</code> that contains a custom name, set of files, and associated log level.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)initWithName:files:":{"name":"-initWithName:files:","abstract":"<p>Returns an initialized <code>SDLLogFileModule</code> that contains a custom name and set of files. The logging level is the same as the current global logging file by using <code>SDLLogLevelDefault</code>.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(cm)moduleWithName:files:":{"name":"+moduleWithName:files:","abstract":"<p>Returns an initialized <code>SDLLogFileModule</code> that contains a custom name and set of files. The logging level is the same as the current global logging file by using <code>SDLLogLevelDefault</code>.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)containsFile:":{"name":"-containsFile:","abstract":"<p>Returns whether or not this module contains a given file.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)modules":{"name":"modules","abstract":"<p>Any custom logging modules used by the developer’s code. Defaults to none.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)targets":{"name":"targets","abstract":"<p>Where the logs will attempt to output. Defaults to Console.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)filters":{"name":"filters","abstract":"<p>What log filters will run over this session. Defaults to none.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)formatType":{"name":"formatType","abstract":"<p>How detailed of logs will be output. Defaults to Default.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)asynchronous":{"name":"asynchronous","abstract":"<p>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.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)errorsAsynchronous":{"name":"errorsAsynchronous","abstract":"<p>Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)globalLogLevel":{"name":"globalLogLevel","abstract":"<p>Any modules that do not have an explicitly specified level will by default use the global log level. Defaults to Error.","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(cm)defaultConfiguration":{"name":"+defaultConfiguration","abstract":"<p>A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(cm)debugConfiguration":{"name":"+debugConfiguration","abstract":"<p>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.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)appIcon":{"name":"appIcon","abstract":"<p>The app’s icon. This will be set by the lock screen configuration.</p>","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)vehicleIcon":{"name":"vehicleIcon","abstract":"<p>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.</p>","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)backgroundColor":{"name":"backgroundColor","abstract":"<p>The designated background color set in the lock screen configuration, or the default SDL gray-blue.</p>","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)showInOptionalState":{"name":"showInOptionalState","abstract":"<p>Whether or not the lock screen should be shown in the <q>lock screen optional</q> state. Defaults to false.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)enableAutomaticLockScreen":{"name":"enableAutomaticLockScreen","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)backgroundColor":{"name":"backgroundColor","abstract":"<p>The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)appIcon":{"name":"appIcon","abstract":"<p>Your app icon as it will appear on the lock screen.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)customViewController":{"name":"customViewController","abstract":"<p>A custom view controller that the lock screen will manage the presentation of.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)disabledConfiguration":{"name":"+disabledConfiguration","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfiguration":{"name":"+enabledConfiguration","abstract":"<p>Use this configuration for the basic default lock screen. A custom app icon will not be used.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithAppIcon:backgroundColor:":{"name":"+enabledConfigurationWithAppIcon:backgroundColor:","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithViewController:":{"name":"+enabledConfigurationWithViewController:","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)coordinate":{"name":"coordinate","abstract":"<p>Latitude/Longitude of the location</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationName":{"name":"locationName","abstract":"<p>Name of location.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)addressLines":{"name":"addressLines","abstract":"<p>Location address for display purposes only.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationDescription":{"name":"locationDescription","abstract":"<p>Description intended location / establishment.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)phoneNumber":{"name":"phoneNumber","abstract":"<p>Phone number of location / establishment.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationImage":{"name":"locationImage","abstract":"<p>Image / icon of intended location.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)searchAddress":{"name":"searchAddress","abstract":"<p>Address to be used by navigation engines for search.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"<p>Latitude of the location</p>","parent_name":"SDLLocationCoordinate"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"<p>Longitude of the location</p>","parent_name":"SDLLocationCoordinate"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)filenames":{"name":"filenames","abstract":"<p>An array of all filenames resident on the module for the given registered app. If omitted, then no files currently reside on the system.</p>","parent_name":"SDLListFilesResponse"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"<p>Provides the total local space available on the module for the registered app.</p>","parent_name":"SDLListFilesResponse"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(im)initWithId:status:":{"name":"-initWithId:status:","abstract":"<p>Constructs a newly allocated SDLLightState object with given parameters</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(im)initWithId:status:density:color:":{"name":"-initWithId:status:density:color:","abstract":"<p>Constructs a newly allocated SDLLightState object with given parameters</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(im)initWithId:lightStatus:lightDensity:lightColor:":{"name":"-initWithId:lightStatus:lightDensity:lightColor:","abstract":"<p>Constructs a newly allocated SDLLightState object with given parameters</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)id":{"name":"id","abstract":"<p>@abstract The name of a light or a group of lights</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)status":{"name":"status","abstract":"<p>@abstract Reflects the status of Light.</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)density":{"name":"density","abstract":"<p>@abstract Reflects the density of Light.</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)color":{"name":"color","abstract":"<p>@abstract Reflects the color of Light.</p>","parent_name":"SDLLightState"},"Classes/SDLLightControlData.html#/c:objc(cs)SDLLightControlData(im)initWithLightStates:":{"name":"-initWithLightStates:","abstract":"<p>Constructs a newly allocated SDLLightControlData object with lightState</p>","parent_name":"SDLLightControlData"},"Classes/SDLLightControlData.html#/c:objc(cs)SDLLightControlData(py)lightState":{"name":"lightState","abstract":"<p>@abstract An array of LightNames and their current or desired status.","parent_name":"SDLLightControlData"},"Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(im)initWithModuleName:supportedLights:":{"name":"-initWithModuleName:supportedLights:","abstract":"<p>Constructs a newly allocated SDLLightControlCapabilities object with given parameters</p>","parent_name":"SDLLightControlCapabilities"},"Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the light control module.","parent_name":"SDLLightControlCapabilities"},"Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(py)supportedLights":{"name":"supportedLights","abstract":"<p>@abstract An array of available LightCapabilities that are controllable.</p>","parent_name":"SDLLightControlCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Constructs a newly allocated SDLLightCapabilities object with the name of the light or group of lights</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(im)initWithName:densityAvailable:colorAvailable:statusAvailable:":{"name":"-initWithName:densityAvailable:colorAvailable:statusAvailable:","abstract":"<p>Constructs a newly allocated SDLLightCapabilities object with given parameters</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)name":{"name":"name","abstract":"<p>@abstract The name of a light or a group of lights</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)densityAvailable":{"name":"densityAvailable","abstract":"<p>@abstract Indicates if the light’s density can be set remotely (similar to a dimmer).</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)colorAvailable":{"name":"colorAvailable","abstract":"<p>@abstract Indicates if the light’s color can be set remotely by using the RGB color space.</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)statusAvailable":{"name":"statusAvailable","abstract":"<p>@abstract Indicates if the status (ON/OFF) can be set remotely.","parent_name":"SDLLightCapabilities"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)appName":{"name":"appName","abstract":"<p>The full name of the app to that the configuration should be updated to.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)shortAppName":{"name":"shortAppName","abstract":"<p>An abbrevited application name that will be used on the app launching screen if the full one would be truncated.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)ttsName":{"name":"ttsName","abstract":"<p>A Text to Speech String for voice recognition of the mobile application name.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)voiceRecognitionCommandNames":{"name":"voiceRecognitionCommandNames","abstract":"<p>Additional voice recognition commands. May not interfere with any other app name or global commands.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(im)initWithAppName:shortAppName:ttsName:voiceRecognitionCommandNames:":{"name":"-initWithAppName:shortAppName:ttsName:voiceRecognitionCommandNames:","abstract":"<p>Initializes and returns a newly allocated lifecycle configuration update object with the specified app data.","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)defaultConfigurationWithAppName:appId:":{"name":"+defaultConfigurationWithAppName:appId:","abstract":"<p>A production configuration that runs using IAP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)defaultConfigurationWithAppName:fullAppId:":{"name":"+defaultConfigurationWithAppName:fullAppId:","abstract":"<p>A production configuration that runs using IAP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)debugConfigurationWithAppName:appId:ipAddress:port:":{"name":"+debugConfigurationWithAppName:appId:ipAddress:port:","abstract":"<p>A debug configuration that runs using TCP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)debugConfigurationWithAppName:fullAppId:ipAddress:port:":{"name":"+debugConfigurationWithAppName:fullAppId:ipAddress:port:","abstract":"<p>A debug configuration that runs using TCP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugMode":{"name":"tcpDebugMode","abstract":"<p>Whether or not debug mode is enabled</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugIPAddress":{"name":"tcpDebugIPAddress","abstract":"<p>The ip address at which the library will look for a server</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugPort":{"name":"tcpDebugPort","abstract":"<p>The port at which the library will look for a server</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appName":{"name":"appName","abstract":"<p>The full name of the app</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appId":{"name":"appId","abstract":"<p>The app id. This must be the same as the app id received from the SDL developer portal.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)fullAppId":{"name":"fullAppId","abstract":"<p>The full app id. This must be the same as the full app id received from the SDL developer portal.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)resumeHash":{"name":"resumeHash","abstract":"<p>A hash id which should be passed to the remote system in the RegisterAppInterface</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)isMedia":{"name":"isMedia","abstract":"<p>This is an automatically set based on the app type</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appType":{"name":"appType","abstract":"<p>The application type</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)additionalAppTypes":{"name":"additionalAppTypes","abstract":"<p>Additional application types beyond <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appType\">appType</a></code></p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)language":{"name":"language","abstract":"<p>The default language to use</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)languagesSupported":{"name":"languagesSupported","abstract":"<p>An array of all the supported languages</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appIcon":{"name":"appIcon","abstract":"<p>The application icon to be used on an app launching screen</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)shortAppName":{"name":"shortAppName","abstract":"<p>An abbrevited application name that will be used on the app launching screen if the full one would be truncated</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)ttsName":{"name":"ttsName","abstract":"<p>A Text to Speech String for voice recognition of the mobile application name.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)voiceRecognitionCommandNames":{"name":"voiceRecognitionCommandNames","abstract":"<p>Additional voice recognition commands. May not interfere with any other app name or global commands.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)dayColorScheme":{"name":"dayColorScheme","abstract":"<p>The color scheme to use when the head unit is in a light / day situation.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)nightColorScheme":{"name":"nightColorScheme","abstract":"<p>The color scheme to use when the head unit is in a dark / night situation.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(im)initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:":{"name":"-initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:","abstract":"<p>Undocumented</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)language":{"name":"language","abstract":"<p>The keyboard language</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keyboardLayout":{"name":"keyboardLayout","abstract":"<p>Desired keyboard layout</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keypressMode":{"name":"keypressMode","abstract":"<p>Desired keypress mode.</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)limitedCharacterList":{"name":"limitedCharacterList","abstract":"<p>Array of keyboard characters to enable. All omitted characters will be greyed out (disabled) on the keyboard. If omitted, the entire keyboard will be enabled.</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)autoCompleteText":{"name":"autoCompleteText","abstract":"<p>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionWidth":{"name":"resolutionWidth","abstract":"<p>Resolution width</p>","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionHeight":{"name":"resolutionHeight","abstract":"<p>Resolution height</p>","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(im)initWithWidth:height:":{"name":"-initWithWidth:height:","abstract":"<p>Undocumented</p>","parent_name":"SDLImageResolution"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)name":{"name":"name","abstract":"<p>The name that identifies the field.</p>","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageTypeSupported":{"name":"imageTypeSupported","abstract":"<p>The image types that are supported in this field.</p>","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageResolution":{"name":"imageResolution","abstract":"<p>The image resolution of this field</p>","parent_name":"SDLImageField"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:ofType:":{"name":"-initWithName:ofType:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:ofType:isTemplate:":{"name":"-initWithName:ofType:isTemplate:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:isTemplate:":{"name":"-initWithName:isTemplate:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithStaticImageValue:":{"name":"-initWithStaticImageValue:","abstract":"<p>Convenience init for displaying a static image. Static images are already on-board SDL Core and can be used by providing the image’s value.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithStaticIconName:":{"name":"-initWithStaticIconName:","abstract":"<p>Convenience init for displaying a static image. Static images are already on-board SDL Core and can be used by providing the image’s value.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)value":{"name":"value","abstract":"<p>The static hex icon value or the binary image file name identifier (sent by SDLPutFile)</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)imageType":{"name":"imageType","abstract":"<p>Describes whether the image is static or dynamic</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)isTemplate":{"name":"isTemplate","abstract":"<p>Indicates that this image can be (re)colored by the HMI to best fit the current color scheme.</p>","parent_name":"SDLImage"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)lowBeamsOn":{"name":"lowBeamsOn","abstract":"<p>Low beams are on or off.</p>","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)highBeamsOn":{"name":"highBeamsOn","abstract":"<p>High beams are on or off</p>","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)ambientLightSensorStatus":{"name":"ambientLightSensorStatus","abstract":"<p>Status of the ambient light senser</p>","parent_name":"SDLHeadLampStatus"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(im)initWithId:rect:":{"name":"-initWithId:rect:","abstract":"<p>Undocumented</p>","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)id":{"name":"id","abstract":"<p>A user control spatial identifier</p>","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)rect":{"name":"rect","abstract":"<p>The position of the haptic rectangle to be highlighted. The center of this rectangle will be <q>touched</q> when a press occurs.</p>","parent_name":"SDLHapticRect"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(im)initWithDisplaymode:temperatureUnit:distanceUnit:":{"name":"-initWithDisplaymode:temperatureUnit:distanceUnit:","abstract":"<p>Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(py)displayMode":{"name":"displayMode","abstract":"<p>@abstract Display the Display Mode used HMI setting</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(py)temperatureUnit":{"name":"temperatureUnit","abstract":"<p>@abstract Display the temperature unit used HMI setting</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(py)distanceUnit":{"name":"distanceUnit","abstract":"<p>@abstract Display the distance unit used HMI setting</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(im)initWithModuleName:":{"name":"-initWithModuleName:","abstract":"<p>Constructs a newly allocated SDLHMISettingsControlCapabilities object with moduleName</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(im)initWithModuleName:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:":{"name":"-initWithModuleName:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:","abstract":"<p>Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the hmi setting module.","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)distanceUnitAvailable":{"name":"distanceUnitAvailable","abstract":"<p>@abstract Availability of the control of distance unit.</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)temperatureUnitAvailable":{"name":"temperatureUnitAvailable","abstract":"<p>@abstract Availability of the control of temperature unit.</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)displayModeUnitAvailable":{"name":"displayModeUnitAvailable","abstract":"<p>@abstract Availability of the control of HMI display mode.</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)allowed":{"name":"allowed","abstract":"<p>A set of all HMI levels that are permitted for this given RPC</p>","parent_name":"SDLHMIPermissions"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"<p>A set of all HMI levels that are prohibited for this given RPC</p>","parent_name":"SDLHMIPermissions"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)navigation":{"name":"navigation","abstract":"<p>Availability of built in Nav. True: Available, False: Not Available</p>","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)phoneCall":{"name":"phoneCall","abstract":"<p>Availability of built in phone. True: Available, False: Not Available</p>","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)videoStreaming":{"name":"videoStreaming","abstract":"<p>Availability of built in video streaming. True: Available, False: Not Available</p>","parent_name":"SDLHMICapabilities"},"Classes/SDLGetWayPointsResponse.html#/c:objc(cs)SDLGetWayPointsResponse(py)waypoints":{"name":"waypoints","abstract":"<p>Provides additional human readable info regarding the result.</p>","parent_name":"SDLGetWayPointsResponse"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(im)initWithType:":{"name":"-initWithType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetWayPoints"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(py)waypointType":{"name":"waypointType","abstract":"<p>To request for either the destination","parent_name":"SDLGetWayPoints"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)gps":{"name":"gps","abstract":"<p>The car current GPS coordinates</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)speed":{"name":"speed","abstract":"<p>The vehicle speed in kilometers per hour</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"<p>The number of revolutions per minute of the engine.</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The fuel level in the tank (percentage)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The fuel level state</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelRange":{"name":"fuelRange","abstract":"<p>The estimate range in KM the vehicle can travel based on fuel level and consumption</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The instantaneous fuel consumption in microlitres</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The external temperature in degrees celsius.</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)vin":{"name":"vin","abstract":"<p>The Vehicle Identification Number</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"<p>The current gear shift state of the user’s vehicle</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"<p>The current pressure warnings for the user’s vehicle</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"<p>Odometer reading in km</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"<p>The status of the seat belts</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The body information including power modes</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The IVI system status including signal and battery strength</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"<p>The status of the brake pedal</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The status of the wipers</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>Status of the head lamps</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The estimated percentage (0% - 100%) of remaining oil life of the engine</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"<p>Torque value for engine (in Nm) on non-diesel variants</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>Accelerator pedal position (percentage depressed)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>Current angle of the steering wheel (in deg)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>Emergency Call notification and confirmation data</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The status of the air bags</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>Information related to an emergency event (and if it occurred)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>The status modes of the cluster</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"<p>Information related to the MyKey feature</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The status of the electronic parking brake</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)turnSignal":{"name":"turnSignal","abstract":"<p>The status of the turn signal</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:vin:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:vin:wiperStatus:","abstract":"<p>Convenience init for getting data for all possible vehicle data items.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:","abstract":"<p>Convenience init for getting data for all possible vehicle data items.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)gps":{"name":"gps","abstract":"<p>A boolean value. If true, requests GPS data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)speed":{"name":"speed","abstract":"<p>A boolean value. If true, requests Speed data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)rpm":{"name":"rpm","abstract":"<p>A boolean value. If true, requests RPM data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>A boolean value. If true, requests Fuel Level data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>A boolean value. If true, requests Fuel Level State data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>A boolean value. If true, requests Fuel Range data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>A boolean value. If true, requests Instant Fuel Consumption data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>A boolean value. If true, requests External Temperature data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)vin":{"name":"vin","abstract":"<p>A boolean value. If true, requests the Vehicle Identification Number.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)prndl":{"name":"prndl","abstract":"<p>A boolean value. If true, requests PRNDL data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>A boolean value. If true, requests Tire Pressure data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)odometer":{"name":"odometer","abstract":"<p>A boolean value. If true, requests Odometer data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>A boolean value. If true, requests Belt Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>A boolean value. If true, requests Body Information data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>A boolean value. If true, requests Device Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>A boolean value. If true, requests Driver Braking data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>A boolean value. If true, requests Wiper Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>A boolean value. If true, requests Head Lamp Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>A boolean value. If true, requests Engine Oil Life data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>A boolean value. If true, requests Engine Torque data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>A boolean value. If true, requests Acc Pedal Position data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>A boolean value. If true, requests Steering Wheel Angle data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>A boolean value. If true, requests Emergency Call Info data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>A boolean value. If true, requests Air Bag Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>A boolean value. If true, requests Emergency Event (if it occurred) data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>A boolean value. If true, requests Cluster Mode Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)myKey":{"name":"myKey","abstract":"<p>A boolean value. If true, requests MyKey data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>A boolean value. If true, requests Electronic Parking Brake status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>A boolean value. If true, requests Turn Signal data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetSystemCapabilityResponse.html#/c:objc(cs)SDLGetSystemCapabilityResponse(py)systemCapability":{"name":"systemCapability","abstract":"<p>The requested system capability, of the type that was sent in the request</p>","parent_name":"SDLGetSystemCapabilityResponse"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)initWithType:":{"name":"-initWithType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"<p>They type of capability you’d like to receive in the response.</p>","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetInteriorVehicleDataResponse.html#/c:objc(cs)SDLGetInteriorVehicleDataResponse(py)moduleData":{"name":"moduleData","abstract":"<p>The requested data</p>","parent_name":"SDLGetInteriorVehicleDataResponse"},"Classes/SDLGetInteriorVehicleDataResponse.html#/c:objc(cs)SDLGetInteriorVehicleDataResponse(py)isSubscribed":{"name":"isSubscribed","abstract":"<p>It is a conditional-mandatory parameter: must be returned in case <q>subscribe</q> parameter was present in the related request.</p>","parent_name":"SDLGetInteriorVehicleDataResponse"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initWithModuleType:":{"name":"-initWithModuleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initAndSubscribeToModuleType:":{"name":"-initAndSubscribeToModuleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initAndUnsubscribeToModuleType:":{"name":"-initAndUnsubscribeToModuleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(py)moduleType":{"name":"moduleType","abstract":"<p>The type of a RC module to retrieve module data from the vehicle.</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(py)subscribe":{"name":"subscribe","abstract":"<p>If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType.","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)ecuHeader":{"name":"ecuHeader","abstract":"<p>2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf)</p>","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)dtc":{"name":"dtc","abstract":"<p>Array of all reported DTCs on module (ecuHeader contains information if list is truncated). Each DTC is represented by 4 bytes (3 bytes of data and 1 byte status as defined in VHR_Layout_Specification_DTCs.pdf).</p>","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:":{"name":"-initWithECUName:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:mask:":{"name":"-initWithECUName:mask:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(py)ecuName":{"name":"ecuName","abstract":"<p>a name of the module to receive the DTC form","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(py)dtcMask":{"name":"dtcMask","abstract":"<p>DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask Minvalue:0; Maxvalue:255</p>","parent_name":"SDLGetDTCs"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"<p>longitude degrees</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"<p>latitude degrees</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcYear":{"name":"utcYear","abstract":"<p>utc year</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMonth":{"name":"utcMonth","abstract":"<p>utc month</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcDay":{"name":"utcDay","abstract":"<p>utc day</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcHours":{"name":"utcHours","abstract":"<p>utc hours</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMinutes":{"name":"utcMinutes","abstract":"<p>utc minutes</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcSeconds":{"name":"utcSeconds","abstract":"<p>utc seconds</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)compassDirection":{"name":"compassDirection","abstract":"<p>Optional, Potential Compass Directions</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)pdop":{"name":"pdop","abstract":"<p>The 3D positional dilution of precision.</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)hdop":{"name":"hdop","abstract":"<p>The horizontal dilution of precision</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)vdop":{"name":"vdop","abstract":"<p>the vertical dilution of precision</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)actual":{"name":"actual","abstract":"<p>What the coordinates are based on</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)satellites":{"name":"satellites","abstract":"<p>The number of satellites in view</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)dimension":{"name":"dimension","abstract":"<p>The supported dimensions of the GPS</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)altitude":{"name":"altitude","abstract":"<p>Altitude in meters</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)heading":{"name":"heading","abstract":"<p>Heading based on the GPS data.</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)speed":{"name":"speed","abstract":"<p>Speed in KPH</p>","parent_name":"SDLGPSData"},"Classes/SDLFuelRange.html#/c:objc(cs)SDLFuelRange(py)type":{"name":"type","abstract":"<p>The vehicle’s fuel type</p>","parent_name":"SDLFuelRange"},"Classes/SDLFuelRange.html#/c:objc(cs)SDLFuelRange(py)range":{"name":"range","abstract":"<p>The estimate range in KM the vehicle can travel based on fuel level and consumption.</p>","parent_name":"SDLFuelRange"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(py)artworkRetryCount":{"name":"artworkRetryCount","abstract":"<p>Defines the number of times the file manager will attempt to reupload <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLArtwork.html\">SDLArtwork</a></code> files in the event of a failed upload to Core.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(py)fileRetryCount":{"name":"fileRetryCount","abstract":"<p>Defines the number of times the file manager will attempt to reupload general <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLFile.html\">SDLFile</a></code>s in the event of a failed upload to Core.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(cm)defaultConfiguration":{"name":"+defaultConfiguration","abstract":"<p>Creates a default file manager configuration.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(im)init":{"name":"-init","abstract":"<p>Use <code>defaultConfiguration</code> instead</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(im)initWithArtworkRetryCount:fileRetryCount:":{"name":"-initWithArtworkRetryCount:fileRetryCount:","abstract":"<p>Creates a file manager configuration with customized upload retry counts.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)remoteFileNames":{"name":"remoteFileNames","abstract":"<p>A set of all names of files known on the remote head unit. Known files can be used or deleted on the remote system.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)bytesAvailable":{"name":"bytesAvailable","abstract":"<p>The number of bytes still available for files for this app.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)currentState":{"name":"currentState","abstract":"<p>The state of the file manager.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)pendingTransactions":{"name":"pendingTransactions","abstract":"<p>The currently pending transactions (Upload, Delete, and List Files) in the file manager</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)suspended":{"name":"suspended","abstract":"<p>Whether or not the file manager is suspended. If suspended, the file manager can continue to queue uploads and deletes, but will not actually perform any of those until it is no longer suspended. This can be used for throttling down the file manager if other, important operations are taking place over the accessory connection.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)init":{"name":"-init","abstract":"<p>Initialize the class…or not, since this method is unavailable. Dependencies must be injected using initWithConnectionManager:</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)initWithConnectionManager:":{"name":"-initWithConnectionManager:","abstract":"<p>Creates a new file manager with a specified connection manager</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)initWithConnectionManager:configuration:":{"name":"-initWithConnectionManager:configuration:","abstract":"<p>Creates a new file manager with a specified connection manager and configuration</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"<p>The manager stars up and attempts to fetch its initial list and transfer initial files.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)stop":{"name":"-stop","abstract":"<p>Cancels all file manager operations and deletes all associated data.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)hasUploadedFile:":{"name":"-hasUploadedFile:","abstract":"<p>Check if the remote system contains a file</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFileWithName:completionHandler:":{"name":"-deleteRemoteFileWithName:completionHandler:","abstract":"<p>Delete a file stored on the remote system</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFilesWithNames:completionHandler:":{"name":"-deleteRemoteFilesWithNames:completionHandler:","abstract":"<p>Deletes an array of files on the remote file system. The files are deleted in the order in which they are added to the array, with the first file to be deleted at index 0. The delete queue is sequential, meaning that once a delete request is sent to Core, the queue waits until a response is received from Core before the next the next delete request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFile:completionHandler:":{"name":"-uploadFile:completionHandler:","abstract":"<p>Upload a file to the remote file system. If a file with the [SDLFile name] already exists, this will overwrite that file. If you do not want that to happen, check remoteFileNames before uploading, or change allowOverwrite to NO.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFiles:progressHandler:completionHandler:":{"name":"-uploadFiles:progressHandler:completionHandler:","abstract":"<p>Uploads an array of files to the remote file system. The files will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFiles:completionHandler:":{"name":"-uploadFiles:completionHandler:","abstract":"<p>Uploads an array of files to the remote file system. The files will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadArtwork:completionHandler:":{"name":"-uploadArtwork:completionHandler:","abstract":"<p>Uploads an artwork file to the remote file system and returns the name of the uploaded artwork once completed. If an artwork with the same name is already on the remote system, the artwork is not uploaded and the artwork name is simply returned.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadArtworks:completionHandler:":{"name":"-uploadArtworks:completionHandler:","abstract":"<p>Uploads an array of artworks to the remote file system. The artworks will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadArtworks:progressHandler:completionHandler:":{"name":"-uploadArtworks:progressHandler:completionHandler:","abstract":"<p>Uploads an array of artworks to the remote file system. The artworks will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(cm)temporaryFileDirectory":{"name":"+temporaryFileDirectory","abstract":"<p>A URL to the directory where temporary files are stored. When an SDLFile is created with NSData, it writes to a temporary file until the file manager finishes uploading it.</p>","parent_name":"SDLFileManager"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)persistent":{"name":"persistent","abstract":"<p>Whether or not the file should persist on disk between car ignition cycles.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)overwrite":{"name":"overwrite","abstract":"<p>Whether or not the file should overwrite an existing file on the remote disk with the same name.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)name":{"name":"name","abstract":"<p>The name the file should be stored under on the remote disk. This is how the file will be referenced in all later calls.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileURL":{"name":"fileURL","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)data":{"name":"data","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileSize":{"name":"fileSize","abstract":"<p>The size of the binary data of the SDLFile.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileType":{"name":"fileType","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)inputStream":{"name":"inputStream","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithFileURL:name:persistent:":{"name":"-initWithFileURL:name:persistent:","abstract":"<p>The designated initializer for an SDL File. The only major property that is not set using this is <q>overwrite</q>, which defaults to NO.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileAtFileURL:name:":{"name":"+persistentFileAtFileURL:name:","abstract":"<p>Create an SDL file using a local file URL.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileAtFileURL:name:":{"name":"+fileAtFileURL:name:","abstract":"<p>Create an SDL file using a local file URL.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithData:name:fileExtension:persistent:":{"name":"-initWithData:name:fileExtension:persistent:","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileWithData:name:fileExtension:":{"name":"+persistentFileWithData:name:fileExtension:","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileWithData:name:fileExtension:":{"name":"+fileWithData:name:fileExtension:","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(im)initWithChannelId:channelSetting:":{"name":"-initWithChannelId:channelSetting:","abstract":"<p>Undocumented</p>","parent_name":"SDLEqualizerSettings"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(py)channelName":{"name":"channelName","abstract":"<p>@abstract Read-only channel / frequency name","parent_name":"SDLEqualizerSettings"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(py)channelSetting":{"name":"channelSetting","abstract":"<p>@abstract Reflects the setting, from 0%-100%.</p>","parent_name":"SDLEqualizerSettings"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(py)channelId":{"name":"channelId","abstract":"<p>@abstract id of the channel.</p>","parent_name":"SDLEqualizerSettings"},"Classes/SDLEncodedSyncPData.html#/c:objc(cs)SDLEncodedSyncPData(py)data":{"name":"data","abstract":"<p>Contains base64 encoded string of SyncP packets.</p>","parent_name":"SDLEncodedSyncPData"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)emergencyEventType":{"name":"emergencyEventType","abstract":"<p>References signal <q>VedsEvntType_D_Ltchd</q>. See EmergencyEventType.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)fuelCutoffStatus":{"name":"fuelCutoffStatus","abstract":"<p>References signal <q>RCM_FuelCutoff</q>. See FuelCutoffStatus.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)rolloverEvent":{"name":"rolloverEvent","abstract":"<p>References signal <q>VedsEvntRoll_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)maximumChangeVelocity":{"name":"maximumChangeVelocity","abstract":"<p>References signal <q>VedsMaxDeltaV_D_Ltchd</q>. Change in velocity in KPH.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)multipleEvents":{"name":"multipleEvents","abstract":"<p>References signal <q>VedsMultiEvnt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallNotificationStatus":{"name":"eCallNotificationStatus","abstract":"<p>References signal <q>eCallNotification_4A</q>. See VehicleDataNotificationStatus.</p>","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)auxECallNotificationStatus":{"name":"auxECallNotificationStatus","abstract":"<p>References signal <q>eCallNotification</q>. See VehicleDataNotificationStatus.</p>","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallConfirmationStatus":{"name":"eCallConfirmationStatus","abstract":"<p>References signal <q>eCallConfirmation</q>. See ECallConfirmationStatus.</p>","parent_name":"SDLECallInfo"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)displayType":{"name":"displayType","abstract":"<p>The type of display</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)displayName":{"name":"displayName","abstract":"<p>The name of the connected display</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)textFields":{"name":"textFields","abstract":"<p>An array of SDLTextField structures, each of which describes a field in the HMI which the application can write to using operations such as <em>SDLShow</em>, <em>SDLSetMediaClockTimer</em>, etc.</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)imageFields":{"name":"imageFields","abstract":"<p>An array of SDLImageField elements</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)mediaClockFormats":{"name":"mediaClockFormats","abstract":"<p>An array of SDLMediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)graphicSupported":{"name":"graphicSupported","abstract":"<p>The display’s persistent screen supports.</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)templatesAvailable":{"name":"templatesAvailable","abstract":"<p>Number of presets the screen supports</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)screenParams":{"name":"screenParams","abstract":"<p>A set of all parameters related to a prescribed screen area (e.g. for video / touch input)</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)numCustomPresetsAvailable":{"name":"numCustomPresetsAvailable","abstract":"<p>The number of on-screen custom presets available (if any); otherwise omitted</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(im)initWithNumber:":{"name":"-initWithNumber:","abstract":"<p>Undocumented</p>","parent_name":"SDLDialNumber"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(py)number":{"name":"number","abstract":"<p>Up to 40 character string representing the phone number. All characters stripped except for ‘0’-‘9’, ‘*’, ‘#’, ‘,’, ‘;’, and ‘+’</p>","parent_name":"SDLDialNumber"},"Classes/SDLDiagnosticMessageResponse.html#/c:objc(cs)SDLDiagnosticMessageResponse(py)messageDataResult":{"name":"messageDataResult","abstract":"<p>Array of bytes comprising CAN message result.</p>","parent_name":"SDLDiagnosticMessageResponse"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(im)initWithTargetId:length:data:":{"name":"-initWithTargetId:length:data:","abstract":"<p>Undocumented</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)targetID":{"name":"targetID","abstract":"<p>Name of target ECU</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageLength":{"name":"messageLength","abstract":"<p>Length of message (in bytes)</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageData":{"name":"messageData","abstract":"<p>Array of bytes comprising CAN message.</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)voiceRecOn":{"name":"voiceRecOn","abstract":"<p>Indicates whether the voice recognition is on or off</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)btIconOn":{"name":"btIconOn","abstract":"<p>Indicates whether the bluetooth connection established</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)callActive":{"name":"callActive","abstract":"<p>Indicates whether a call is being active</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)phoneRoaming":{"name":"phoneRoaming","abstract":"<p>Indicates whether the phone is in roaming mode</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)textMsgAvailable":{"name":"textMsgAvailable","abstract":"<p>Indicates whether a textmessage is available</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)battLevelStatus":{"name":"battLevelStatus","abstract":"<p>Battery level status</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)stereoAudioOutputMuted":{"name":"stereoAudioOutputMuted","abstract":"<p>The status of the stereo audio output channel</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)monoAudioOutputMuted":{"name":"monoAudioOutputMuted","abstract":"<p>The status of the mono audio output channel</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)signalLevelStatus":{"name":"signalLevelStatus","abstract":"<p>Signal level status</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)primaryAudioSource":{"name":"primaryAudioSource","abstract":"<p>The current primary audio source of SDL (if selected).</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)eCallEventActive":{"name":"eCallEventActive","abstract":"<p>Indicates if an emergency call is active</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(cm)currentDevice":{"name":"+currentDevice","abstract":"<p>Undocumented</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)hardware":{"name":"hardware","abstract":"<p>Device model</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)firmwareRev":{"name":"firmwareRev","abstract":"<p>Device firmware version</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)os":{"name":"os","abstract":"<p>Device OS</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)osVersion":{"name":"osVersion","abstract":"<p>Device OS version</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)carrier":{"name":"carrier","abstract":"<p>Device mobile carrier</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)maxNumberRFCOMMPorts":{"name":"maxNumberRFCOMMPorts","abstract":"<p>Number of bluetooth RFCOMM ports available.</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(py)menuID":{"name":"menuID","abstract":"<p>the MenuID that identifies the SDLSubMenu to be delete","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"<p>a unique ID that identifies the Choice Set","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteFileResponse.html#/c:objc(cs)SDLDeleteFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"<p>The remaining available space for your application to store data on the remote system.</p>","parent_name":"SDLDeleteFileResponse"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(py)syncFileName":{"name":"syncFileName","abstract":"<p>a file reference name","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteCommand"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(py)cmdID":{"name":"cmdID","abstract":"<p>the Command ID that identifies the Command to be deleted from Command Menu","parent_name":"SDLDeleteCommand"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:":{"name":"-initWithHour:minute:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:":{"name":"-initWithHour:minute:second:millisecond:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:day:month:year:":{"name":"-initWithHour:minute:second:millisecond:day:month:year:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset:timezoneHourOffset:":{"name":"-initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset:timezoneHourOffset:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)millisecond":{"name":"millisecond","abstract":"<p>Milliseconds part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)second":{"name":"second","abstract":"<p>Seconds part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)minute":{"name":"minute","abstract":"<p>Minutes part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)hour":{"name":"hour","abstract":"<p>Hour part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)day":{"name":"day","abstract":"<p>Day of the month</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)month":{"name":"month","abstract":"<p>Month of the year</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)year":{"name":"year","abstract":"<p>The year in YYYY format</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneMinuteOffset":{"name":"timezoneMinuteOffset","abstract":"<p>Time zone offset in Min with regard to UTC</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneHourOffset":{"name":"timezoneHourOffset","abstract":"<p>Time zone offset in Hours with regard to UTC</p>","parent_name":"SDLDateTime"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)resultCode":{"name":"resultCode","abstract":"<p>Individual DID result code.</p>","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)didLocation":{"name":"didLocation","abstract":"<p>Location of raw data from vehicle data DID</p>","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)data":{"name":"data","abstract":"<p>Raw DID-based data returned for requested element.</p>","parent_name":"SDLDIDResult"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(im)initWithId:choiceSet:":{"name":"-initWithId:choiceSet:","abstract":"<p>Undocumented</p>","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"<p>A unique ID that identifies the Choice Set</p>","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)choiceSet":{"name":"choiceSet","abstract":"<p>Array of choices, which the user can select by menu or voice recognition</p>","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lifecycleConfig":{"name":"lifecycleConfig","abstract":"<p>The lifecycle configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lockScreenConfig":{"name":"lockScreenConfig","abstract":"<p>The lock screen configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)loggingConfig":{"name":"loggingConfig","abstract":"<p>The log configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)streamingMediaConfig":{"name":"streamingMediaConfig","abstract":"<p>The streaming media configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)fileManagerConfig":{"name":"fileManagerConfig","abstract":"<p>The file manager configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:":{"name":"-initWithLifecycle:lockScreen:logging:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:fileManager:":{"name":"-initWithLifecycle:lockScreen:logging:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:":{"name":"+configurationWithLifecycle:lockScreen:logging:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:fileManager:":{"name":"+configurationWithLifecycle:lockScreen:logging:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:streamingMedia:":{"name":"-initWithLifecycle:lockScreen:logging:streamingMedia:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:":{"name":"-initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:streamingMedia:":{"name":"+configurationWithLifecycle:lockScreen:logging:streamingMedia:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:streamingMedia:fileManager:":{"name":"+configurationWithLifecycle:lockScreen:logging:streamingMedia:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeActive":{"name":"powerModeActive","abstract":"<p>References signal <q>PowerMode_UB</q>.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeQualificationStatus":{"name":"powerModeQualificationStatus","abstract":"<p>References signal <q>PowerModeQF</q>. See PowerModeQualificationStatus.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)carModeStatus":{"name":"carModeStatus","abstract":"<p>References signal <q>CarMode</q>. See CarMode.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeStatus":{"name":"powerModeStatus","abstract":"<p>References signal <q>PowerMode</q>. See PowerMode.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(im)initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:":{"name":"-initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(im)initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable:heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:":{"name":"-initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable:heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)fanSpeed":{"name":"fanSpeed","abstract":"<p>Speed of Fan in integer</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)currentTemperature":{"name":"currentTemperature","abstract":"<p>The Current Temperature in SDLTemperature</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)desiredTemperature":{"name":"desiredTemperature","abstract":"<p>Desired Temperature in SDLTemperature</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)acEnable":{"name":"acEnable","abstract":"<p>Represents if AC is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)circulateAirEnable":{"name":"circulateAirEnable","abstract":"<p>Represents if circulation of air is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)autoModeEnable":{"name":"autoModeEnable","abstract":"<p>Represents if auto mode is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)defrostZone":{"name":"defrostZone","abstract":"<p>Represents the kind of defrost zone</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)dualModeEnable":{"name":"dualModeEnable","abstract":"<p>Represents if dual mode is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)acMaxEnable":{"name":"acMaxEnable","abstract":"<p>Represents if ac max is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)ventilationMode":{"name":"ventilationMode","abstract":"<p>Represents the kind of Ventilation zone</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedSteeringWheelEnable":{"name":"heatedSteeringWheelEnable","abstract":"<p>@abstract value false means disabled/turn off, value true means enabled/turn on.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedWindshieldEnable":{"name":"heatedWindshieldEnable","abstract":"<p>@abstract value false means disabled, value true means enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedRearWindowEnable":{"name":"heatedRearWindowEnable","abstract":"<p>@abstract value false means disabled, value true means enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedMirrorsEnable":{"name":"heatedMirrorsEnable","abstract":"<p>@abstract Value false means disabled, value true means enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(im)initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:":{"name":"-initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(im)initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:heatedSteeringWheelAvailable:heatedWindshieldAvailable:heatedRearWindowAvailable:heatedMirrorsAvailable:":{"name":"-initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:heatedSteeringWheelAvailable:heatedWindshieldAvailable:heatedRearWindowAvailable:heatedMirrorsAvailable:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)moduleName":{"name":"moduleName","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)fanSpeedAvailable":{"name":"fanSpeedAvailable","abstract":"<p>Availability of the control of fan speed.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)desiredTemperatureAvailable":{"name":"desiredTemperatureAvailable","abstract":"<p>Availability of the control of desired temperature.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)acEnableAvailable":{"name":"acEnableAvailable","abstract":"<p>Availability of the control of turn on/off AC.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)acMaxEnableAvailable":{"name":"acMaxEnableAvailable","abstract":"<p>Availability of the control of enable/disable air conditioning is ON on the maximum level.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)circulateAirEnableAvailable":{"name":"circulateAirEnableAvailable","abstract":"<p>Availability of the control of enable/disable circulate Air mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)autoModeEnableAvailable":{"name":"autoModeEnableAvailable","abstract":"<p>Availability of the control of enable/disable auto mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)dualModeEnableAvailable":{"name":"dualModeEnableAvailable","abstract":"<p>Availability of the control of enable/disable dual mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)defrostZoneAvailable":{"name":"defrostZoneAvailable","abstract":"<p>Availability of the control of defrost zones.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)defrostZone":{"name":"defrostZone","abstract":"<p>A set of all defrost zones that are controllable.</p>","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)ventilationModeAvailable":{"name":"ventilationModeAvailable","abstract":"<p>Availability of the control of air ventilation mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)ventilationMode":{"name":"ventilationMode","abstract":"<p>A set of all ventilation modes that are controllable.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedSteeringWheelAvailable":{"name":"heatedSteeringWheelAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Steering Wheel.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedWindshieldAvailable":{"name":"heatedWindshieldAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Windshield.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedRearWindowAvailable":{"name":"heatedRearWindowAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Rear Window.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedMirrorsAvailable":{"name":"heatedMirrorsAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Mirrors.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(cpy)defaultTimeout":{"name":"defaultTimeout","abstract":"<p>Set this to change the default timeout for all choice sets. If a timeout is not set on an individual choice set object (or if it is set to 0.0), then it will use this timeout instead. See <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)timeout\">timeout</a></code> for more details. If this is not set by you, it will default to 10 seconds.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(cpy)defaultLayout":{"name":"defaultLayout","abstract":"<p>Set this to change the default layout for all choice sets. If a layout is not set on an individual choice set object, then it will use this layout instead. See <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)layout\">layout</a></code> for more details. If this is not set by you, it will default to <code>SDLChoiceSetLayoutList</code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)title":{"name":"title","abstract":"<p>Maps to PerformInteraction.initialText. The title of the choice set, and/or the initial text on a keyboard prompt.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)initialPrompt":{"name":"initialPrompt","abstract":"<p>Maps to PerformInteraction.initialPrompt. The initial prompt spoken to the user at the start of an interaction.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)layout":{"name":"layout","abstract":"<p>Maps to PerformInteraction.interactionLayout. Whether the presented choices are arranged as a set of tiles or a list.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)timeout":{"name":"timeout","abstract":"<p>Maps to PerformInteraction.timeout. This applies only to a manual selection (not a voice selection, which has its timeout handled by the system). Defaults to <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(cpy)defaultTimeout\">defaultTimeout</a></code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"<p>Maps to PerformInteraction.timeoutPrompt. This text is spoken when a VR interaction times out. If this set is presented in a manual (non-voice) only interaction, this will be ignored.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)helpPrompt":{"name":"helpPrompt","abstract":"<p>Maps to PerformInteraction.helpPrompt. This is the spoken string when a user speaks <q>help</q> when the interaction is occurring.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)helpList":{"name":"helpList","abstract":"<p>Maps to PerformInteraction.vrHelp. This is a list of help text presented to the user when they are in a voice recognition interaction from your choice set of options. If this set is presented in a touch only interaction, this will be ignored.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)delegate":{"name":"delegate","abstract":"<p>The delegate of this choice set, called when the user interacts with it.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)choices":{"name":"choices","abstract":"<p>The choices to be displayed to the user within this choice set. These choices could match those already preloaded via <code>SDLScreenManager preloadChoices:withCompletionHandler:</code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(im)initWithTitle:delegate:choices:":{"name":"-initWithTitle:delegate:choices:","abstract":"<p>Initialize with a title, delegate, and choices. It will use the default timeout and layout, all other properties (such as prompts) will be <code>nil</code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(im)initWithTitle:delegate:layout:timeout:initialPromptString:timeoutPromptString:helpPromptString:vrHelpList:choices:":{"name":"-initWithTitle:delegate:layout:timeout:initialPromptString:timeoutPromptString:helpPromptString:vrHelpList:choices:","abstract":"<p>Initializer with all possible properties.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(im)initWithTitle:delegate:layout:timeout:initialPrompt:timeoutPrompt:helpPrompt:vrHelpList:choices:":{"name":"-initWithTitle:delegate:layout:timeout:initialPrompt:timeoutPrompt:helpPrompt:vrHelpList:choices:","abstract":"<p>Initializer with all possible properties.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)text":{"name":"text","abstract":"<p>Maps to Choice.menuName. The primary text of the cell. Duplicates within an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> are not permitted and will result in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> failing to initialize.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)secondaryText":{"name":"secondaryText","abstract":"<p>Maps to Choice.secondaryText. Optional secondary text of the cell, if available. Duplicates within an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> are permitted.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)tertiaryText":{"name":"tertiaryText","abstract":"<p>Maps to Choice.tertiaryText. Optional tertitary text of the cell, if available. Duplicates within an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> are permitted.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>Maps to Choice.vrCommands. Optional voice commands the user can speak to activate the cell. If not set and the head unit requires it, this will be set to the number in the list that this item appears. However, this would be a very poor experience for a user if the choice set is presented as a voice only interaction or both interaction mode. Therefore, consider not setting this only when you know the choice set will be presented as a touch only interaction.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)artwork":{"name":"artwork","abstract":"<p>Maps to Choice.image. Optional image for the cell. This will be uploaded before the cell is used when the cell is preloaded or presented for the first time.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)secondaryArtwork":{"name":"secondaryArtwork","abstract":"<p>Maps to Choice.secondaryImage. Optional secondary image for the cell. This will be uploaded before the cell is used when the cell is preloaded or presented for the first time.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)init":{"name":"-init","abstract":"<p>Initialize the cell with nothing. This is unavailable</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)initWithText:":{"name":"-initWithText:","abstract":"<p>Initialize the cell with text and nothing else.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)initWithText:artwork:voiceCommands:":{"name":"-initWithText:artwork:voiceCommands:","abstract":"<p>Initialize the cell with text, optional artwork, and optional voice commands</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)initWithText:secondaryText:tertiaryText:voiceCommands:artwork:secondaryArtwork:":{"name":"-initWithText:secondaryText:tertiaryText:voiceCommands:artwork:secondaryArtwork:","abstract":"<p>Initialize the cell with all optional items</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithId:menuName:vrCommands:":{"name":"-initWithId:menuName:vrCommands:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:":{"name":"-initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)choiceID":{"name":"choiceID","abstract":"<p>The application-scoped identifier that uniquely identifies this choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)menuName":{"name":"menuName","abstract":"<p>Text which appears in menu, representing this choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)vrCommands":{"name":"vrCommands","abstract":"<p>VR synonyms for this choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)image":{"name":"image","abstract":"<p>The image of the choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryText":{"name":"secondaryText","abstract":"<p>Secondary text to display; e.g. address of POI in a search result entry</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)tertiaryText":{"name":"tertiaryText","abstract":"<p>Tertiary text to display; e.g. distance to POI for a search result entry</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryImage":{"name":"secondaryImage","abstract":"<p>Secondary image for choice</p>","parent_name":"SDLChoice"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithLanguage:hmiDisplayLanguage:":{"name":"-initWithLanguage:hmiDisplayLanguage:","abstract":"<p>Undocumented</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:":{"name":"-initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:","abstract":"<p>Undocumented</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)language":{"name":"language","abstract":"<p>The language the app wants to change to</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"<p>HMI display language</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)appName":{"name":"appName","abstract":"<p>Request a new app name registration</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ttsName":{"name":"ttsName","abstract":"<p>Request a new TTSName registration.</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"<p>Request a new app short name registration</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)vrSynonyms":{"name":"vrSynonyms","abstract":"<p>Request a new VR synonyms registration</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLCarWindowViewController.html#/c:objc(cs)SDLCarWindowViewController(py)supportedOrientation":{"name":"supportedOrientation","abstract":"<p>The supported interface orientation you wish to use. Defaults to MaskPortrait.</p>","parent_name":"SDLCarWindowViewController"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(im)initWithButtonName:moduleType:":{"name":"-initWithButtonName:moduleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)moduleType":{"name":"moduleType","abstract":"<p>The module where the button should be pressed.</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)buttonName":{"name":"buttonName","abstract":"<p>The name of supported RC climate or radio button.</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"<p>Indicates whether this is a LONG or SHORT button press event.</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)name":{"name":"name","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"<p>A NSNumber value indicates whether the button supports a SHORT press</p>","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"<p>A NSNumber value indicates whether the button supports a LONG press</p>","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"<p>A NSNumber value indicates whether the button supports <q>button down</q> and <q>button up</q></p>","parent_name":"SDLButtonCapabilities"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)parkBrakeActive":{"name":"parkBrakeActive","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStableStatus":{"name":"ignitionStableStatus","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStatus":{"name":"ignitionStatus","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)driverDoorAjar":{"name":"driverDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)passengerDoorAjar":{"name":"passengerDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearLeftDoorAjar":{"name":"rearLeftDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearRightDoorAjar":{"name":"rearRightDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBeltDeployed":{"name":"driverBeltDeployed","abstract":"<p>References signal <q>VedsDrvBelt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBeltDeployed":{"name":"passengerBeltDeployed","abstract":"<p>References signal <q>VedsPasBelt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBuckleBelted":{"name":"passengerBuckleBelted","abstract":"<p>References signal <q>VedsRw1PasBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBuckleBelted":{"name":"driverBuckleBelted","abstract":"<p>References signal <q>VedsRw1DrvBckl_D_Ltchd</q>. See VehicleDataEventStatus</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow2BuckleBelted":{"name":"leftRow2BuckleBelted","abstract":"<p>References signal <q>VedsRw2lBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerChildDetected":{"name":"passengerChildDetected","abstract":"<p>References signal <q>VedsRw1PasChld_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow2BuckleBelted":{"name":"rightRow2BuckleBelted","abstract":"<p>References signal <q>VedsRw2rBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow2BuckleBelted":{"name":"middleRow2BuckleBelted","abstract":"<p>References signal <q>VedsRw2mBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow3BuckleBelted":{"name":"middleRow3BuckleBelted","abstract":"<p>References signal <q>VedsRw3mBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow3BuckleBelted":{"name":"leftRow3BuckleBelted","abstract":"<p>References signal <q>VedsRw3lBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow3BuckleBelted":{"name":"rightRow3BuckleBelted","abstract":"<p>References signal <q>VedsRw3rBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRearInflatableBelted":{"name":"leftRearInflatableBelted","abstract":"<p>References signal <q>VedsRw2lRib_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRearInflatableBelted":{"name":"rightRearInflatableBelted","abstract":"<p>References signal <q>VedsRw2rRib_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BeltDeployed":{"name":"middleRow1BeltDeployed","abstract":"<p>References signal <q>VedsRw1mBelt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BuckleBelted":{"name":"middleRow1BuckleBelted","abstract":"<p>References signal <q>VedsRw1mBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(py)delegate":{"name":"delegate","abstract":"<p>The delegate describing when files are done playing or any errors that occur</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(py)playing":{"name":"playing","abstract":"<p>Whether or not we are currently playing audio</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(py)queue":{"name":"queue","abstract":"<p>The queue of audio files that will be played in sequence</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)init":{"name":"-init","abstract":"<p>Init should only occur with dependencies. use <code>initWithManager:</code></p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)initWithManager:":{"name":"-initWithManager:","abstract":"<p>Create an audio stream manager with a reference to the parent stream manager.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)pushWithFileURL:":{"name":"-pushWithFileURL:","abstract":"<p>Push a new file URL onto the queue after converting it into the correct PCM format for streaming binary data. Call <code>playNextWhenReady</code> to start playing the next completed pushed file.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)playNextWhenReady":{"name":"-playNextWhenReady","abstract":"<p>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.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)stop":{"name":"-stop","abstract":"<p>Stop playing the queue after the current item completes and clear the queue. If nothing is playing, the queue will be cleared.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)samplingRate":{"name":"samplingRate","abstract":"<p>The sampling rate for AudioPassThru</p>","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)bitsPerSample":{"name":"bitsPerSample","abstract":"<p>The sample depth in bit for AudioPassThru</p>","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)audioType":{"name":"audioType","abstract":"<p>The audiotype for AudioPassThru</p>","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(im)initWithSource:keepContext:volume:equalizerSettings:":{"name":"-initWithSource:keepContext:volume:equalizerSettings:","abstract":"<p>Constructs a newly allocated SDLAudioControlData object with given parameters</p>","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)source":{"name":"source","abstract":"<p>@abstract In a getter response or a notification,","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)keepContext":{"name":"keepContext","abstract":"<p>@abstract This parameter shall not be present in any getter responses or notifications.","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)volume":{"name":"volume","abstract":"<p>@abstract Reflects the volume of audio, from 0%-100%.</p>","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)equalizerSettings":{"name":"equalizerSettings","abstract":"<p>@abstract Defines the list of supported channels (band) and their current/desired settings on HMI</p>","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(im)initWithModuleName:":{"name":"-initWithModuleName:","abstract":"<p>Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars)</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(im)initWithModuleName:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID:":{"name":"-initWithModuleName:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID:","abstract":"<p>Constructs a newly allocated SDLAudioControlCapabilities object with given parameters</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the audio control module.","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)sourceAvailable":{"name":"sourceAvailable","abstract":"<p>@abstract Availability of the control of audio source.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)keepContextAvailable":{"name":"keepContextAvailable","abstract":"<p>Availability of the keepContext parameter.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)volumeAvailable":{"name":"volumeAvailable","abstract":"<p>@abstract Availability of the control of audio volume.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)equalizerAvailable":{"name":"equalizerAvailable","abstract":"<p>@abstract Availability of the control of Equalizer Settings.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)equalizerMaxChannelId":{"name":"equalizerMaxChannelId","abstract":"<p>@abstract Must be included if equalizerAvailable=true,","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(py)isTemplate":{"name":"isTemplate","abstract":"<p>Describes whether or not the image is a template that can be (re)colored by the SDL HMI. To make the artwork a template, set the <code>UIImage</code>s rendering mode to <code>UIImageRenderingModeAlwaysTemplate</code>. In order for templates to work successfully, the icon must be one solid color with a clear background. The artwork should be created using the PNG image format.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithImage:name:asImageFormat:":{"name":"+artworkWithImage:name:asImageFormat:","abstract":"<p>Convenience helper to create an ephemeral artwork from an image.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithImage:asImageFormat:":{"name":"+artworkWithImage:asImageFormat:","abstract":"<p>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.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)persistentArtworkWithImage:name:asImageFormat:":{"name":"+persistentArtworkWithImage:name:asImageFormat:","abstract":"<p>Convenience helper to create a persistent artwork from an image.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)persistentArtworkWithImage:asImageFormat:":{"name":"+persistentArtworkWithImage:asImageFormat:","abstract":"<p>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.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithImage:name:persistent:asImageFormat:":{"name":"-initWithImage:name:persistent:asImageFormat:","abstract":"<p>Create a file for transmission to the remote system from a UIImage.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithImage:persistent:asImageFormat:":{"name":"-initWithImage:persistent:asImageFormat:","abstract":"<p>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.</p>","parent_name":"SDLArtwork"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(cm)currentAppInfo":{"name":"+currentAppInfo","abstract":"<p>Undocumented</p>","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appDisplayName":{"name":"appDisplayName","abstract":"<p>The name displayed for the mobile application on the mobile device (can differ from the app name set in the initial RAI request).</p>","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appBundleID":{"name":"appBundleID","abstract":"<p>The AppBundleID of an iOS application or package name of the Android application. This supports App Launch strategies for each platform.</p>","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appVersion":{"name":"appVersion","abstract":"<p>Represents the build version number of this particular mobile app.</p>","parent_name":"SDLAppInfo"},"Classes/SDLAlertResponse.html#/c:objc(cs)SDLAlertResponse(py)tryAgainTime":{"name":"tryAgainTime","abstract":"<p>Undocumented</p>","parent_name":"SDLAlertResponse"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTS:softButtons:":{"name":"-initWithTTS:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTSChunks:softButtons:":{"name":"-initWithTTSChunks:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)ttsChunks":{"name":"ttsChunks","abstract":"<p>An array of text chunks.</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)softButtons":{"name":"softButtons","abstract":"<p>An arry of soft buttons. If omitted on supported displays, only the system defined <q>Close</q> SoftButton shall be displayed.</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:duration:":{"name":"-initWithAlertText1:alertText2:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:":{"name":"-initWithAlertText1:alertText2:alertText3:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:softButtons:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:playTone:":{"name":"-initWithTTS:playTone:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:alertText1:alertText2:playTone:duration:":{"name":"-initWithTTS:alertText1:alertText2:playTone:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:alertText1:alertText2:alertText3:playTone:duration:":{"name":"-initWithTTS:alertText1:alertText2:alertText3:playTone:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:playTone:":{"name":"-initWithTTSChunks:playTone:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:":{"name":"-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:":{"name":"-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText1":{"name":"alertText1","abstract":"<p>The String to be displayed in the first field of the display during the Alert</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText2":{"name":"alertText2","abstract":"<p>The String to be displayed in the second field of the display during the Alert</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText3":{"name":"alertText3","abstract":"<p>the String to be displayed in the third field of the display during the Alert","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)ttsChunks":{"name":"ttsChunks","abstract":"<p>An array which, taken together, specify what is to be spoken to the user</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)duration":{"name":"duration","abstract":"<p>The duration of the displayed portion of the alert, in milliseconds.</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)playTone":{"name":"playTone","abstract":"<p>Whether the alert tone should be played before the TTS (if any) is spoken.</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)progressIndicator":{"name":"progressIndicator","abstract":"<p>If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc.</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)softButtons":{"name":"softButtons","abstract":"<p>App defined SoftButtons.</p>","parent_name":"SDLAlert"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverAirbagDeployed":{"name":"driverAirbagDeployed","abstract":"<p>References signal <q>VedsDrvBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverSideAirbagDeployed":{"name":"driverSideAirbagDeployed","abstract":"<p>References signal <q>VedsDrvSideBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverCurtainAirbagDeployed":{"name":"driverCurtainAirbagDeployed","abstract":"<p>References signal <q>VedsDrvCrtnBag_D_Ltchd</q>. See VehicleDataEventStatus</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerAirbagDeployed":{"name":"passengerAirbagDeployed","abstract":"<p>References signal <q>VedsPasBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerCurtainAirbagDeployed":{"name":"passengerCurtainAirbagDeployed","abstract":"<p>References signal <q>VedsPasCrtnBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverKneeAirbagDeployed":{"name":"driverKneeAirbagDeployed","abstract":"<p>References signal <q>VedsKneeDrvBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerSideAirbagDeployed":{"name":"passengerSideAirbagDeployed","abstract":"<p>References signal <q>VedsPasSideBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerKneeAirbagDeployed":{"name":"passengerKneeAirbagDeployed","abstract":"<p>References signal <q>VedsKneePasBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:":{"name":"-initWithId:menuName:","abstract":"<p>Undocumented</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:position:":{"name":"-initWithId:menuName:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:menuIcon:position:":{"name":"-initWithId:menuName:menuIcon:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuID":{"name":"menuID","abstract":"<p>a Menu ID that identifies a sub menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)position":{"name":"position","abstract":"<p>a position of menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuName":{"name":"menuName","abstract":"<p>a menuName which is displayed representing this submenu item","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuIcon":{"name":"menuIcon","abstract":"<p>An image that is displayed alongside this submenu item</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"<p>Constructs a SDLAddCommand with a handler callback when an event occurs.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:handler:":{"name":"-initWithId:vrCommands:handler:","abstract":"<p>Convenience init for creating a voice command menu item.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:handler:":{"name":"-initWithId:vrCommands:menuName:handler:","abstract":"<p>Convenience init for creating a menu item with text.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:":{"name":"-initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:","abstract":"<p>Convenience init for creating a menu item with text and a custom icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:iconIsTemplate:handler:":{"name":"-initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:iconIsTemplate:handler:","abstract":"<p>Convenience init for creating a menu item with text and a custom icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:parentId:position:icon:handler:":{"name":"-initWithId:vrCommands:menuName:parentId:position:icon:handler:","abstract":"<p>Convenience init for creating a menu item with text and a custom icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)handler":{"name":"handler","abstract":"<p>A handler that will let you know when the button you created is subscribed.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdID":{"name":"cmdID","abstract":"<p>A unique id that identifies the command.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)menuParams":{"name":"menuParams","abstract":"<p>A <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLMenuParams.html\">SDLMenuParams</a></code> pointer which defines the command and how it is added to the command menu.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)vrCommands":{"name":"vrCommands","abstract":"<p>An array of strings to be used as VR synonyms for this command.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdIcon":{"name":"cmdIcon","abstract":"<p>Image struct containing a static or dynamic icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html":{"name":"SDLAddCommand","abstract":"<p>This class will add a command to the application’s Command Menu</p>"},"Classes.html#/c:objc(cs)SDLAddCommandResponse":{"name":"SDLAddCommandResponse","abstract":"<p>Response to <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLAddCommand.html\">SDLAddCommand</a></code></p>"},"Classes/SDLAddSubMenu.html":{"name":"SDLAddSubMenu","abstract":"<p>Add a SDLSubMenu to the Command Menu"},"Classes.html#/c:objc(cs)SDLAddSubMenuResponse":{"name":"SDLAddSubMenuResponse","abstract":"<p>Response to <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLAddSubMenu.html\">SDLAddSubMenu</a></code></p>"},"Classes/SDLAirbagStatus.html":{"name":"SDLAirbagStatus","abstract":"<p>A vehicle data status struct for airbags</p>"},"Classes/SDLAlert.html":{"name":"SDLAlert","abstract":"<p>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.</p>"},"Classes/SDLAlertManeuver.html":{"name":"SDLAlertManeuver","abstract":"<p>Shows a SDLShowConstantTBT message with an optional voice command. This message is shown as an overlay over the display’s base screen.</p>"},"Classes.html#/c:objc(cs)SDLAlertManeuverResponse":{"name":"SDLAlertManeuverResponse","abstract":"<p>Response to SDLAlertManeuver</p>"},"Classes/SDLAlertResponse.html":{"name":"SDLAlertResponse","abstract":"<p>Response to SDLAlert</p>"},"Classes/SDLAppInfo.html":{"name":"SDLAppInfo","abstract":"<p>A struct used in register app interface. Contains detailed information about the registered application.</p>"},"Classes/SDLArtwork.html":{"name":"SDLArtwork","abstract":"<p>Undocumented</p>"},"Classes/SDLAudioControlCapabilities.html":{"name":"SDLAudioControlCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLAudioControlData.html":{"name":"SDLAudioControlData","abstract":"<p>Undocumented</p>"},"Classes/SDLAudioPassThruCapabilities.html":{"name":"SDLAudioPassThruCapabilities","abstract":"<p>Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}</p>"},"Classes/SDLAudioStreamManager.html":{"name":"SDLAudioStreamManager","abstract":"<p>Undocumented</p>"},"Classes/SDLBeltStatus.html":{"name":"SDLBeltStatus","abstract":"<p>Vehicle data struct for the seat belt status</p>"},"Classes/SDLBodyInformation.html":{"name":"SDLBodyInformation","abstract":"<p>The body information including power modes.</p>"},"Classes/SDLButtonCapabilities.html":{"name":"SDLButtonCapabilities","abstract":"<p>Provides information about the capabilities of a SDL HMI button.</p>"},"Classes/SDLButtonPress.html":{"name":"SDLButtonPress","abstract":"<p>This RPC allows a remote control type mobile application to simulate a hardware button press event.</p>"},"Classes.html#/c:objc(cs)SDLButtonPressResponse":{"name":"SDLButtonPressResponse","abstract":"<p>Response to SDLButtonPress</p>"},"Classes/SDLCarWindowViewController.html":{"name":"SDLCarWindowViewController","abstract":"<p>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.</p>"},"Classes/SDLChangeRegistration.html":{"name":"SDLChangeRegistration","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLChangeRegistrationResponse":{"name":"SDLChangeRegistrationResponse","abstract":"<p>Response to SDLChangeRegistrations</p>"},"Classes/SDLChoice.html":{"name":"SDLChoice","abstract":"<p>A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction.</p>"},"Classes/SDLChoiceCell.html":{"name":"SDLChoiceCell","abstract":"<p>Undocumented</p>"},"Classes/SDLChoiceSet.html":{"name":"SDLChoiceSet","abstract":"<p>Undocumented</p>"},"Classes/SDLClimateControlCapabilities.html":{"name":"SDLClimateControlCapabilities","abstract":"<p>Contains information about a climate control module’s capabilities.</p>"},"Classes/SDLClimateControlData.html":{"name":"SDLClimateControlData","abstract":"<p>The current information for the Climate Remote Control Module</p>"},"Classes/SDLClusterModeStatus.html":{"name":"SDLClusterModeStatus","abstract":"<p>A vehicle data struct for the cluster mode and power status</p>"},"Classes/SDLConfiguration.html":{"name":"SDLConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLCreateInteractionChoiceSet.html":{"name":"SDLCreateInteractionChoiceSet","abstract":"<p>Creates a Choice Set which can be used in subsequent <em>SDLPerformInteraction</em> Operations.</p>"},"Classes.html#/c:objc(cs)SDLCreateInteractionChoiceSetResponse":{"name":"SDLCreateInteractionChoiceSetResponse","abstract":"<p>Response to SDLCreateInteractionChoiceSet has been called</p>"},"Classes/SDLDIDResult.html":{"name":"SDLDIDResult","abstract":"<p>A vehicle data struct</p>"},"Classes/SDLDateTime.html":{"name":"SDLDateTime","abstract":"<p>A struct referenced in SendLocation for an absolute date</p>"},"Classes/SDLDeleteCommand.html":{"name":"SDLDeleteCommand","abstract":"<p>Removes a command from the Command Menu"},"Classes.html#/c:objc(cs)SDLDeleteCommandResponse":{"name":"SDLDeleteCommandResponse","abstract":"<p>Response to SDLDeleteCommand</p>"},"Classes/SDLDeleteFile.html":{"name":"SDLDeleteFile","abstract":"<p>Used to delete a file resident on the SDL module in the app’s local cache."},"Classes/SDLDeleteFileResponse.html":{"name":"SDLDeleteFileResponse","abstract":"<p>Response to SDLDeleteFile</p>"},"Classes/SDLDeleteInteractionChoiceSet.html":{"name":"SDLDeleteInteractionChoiceSet","abstract":"<p>Deletes an existing Choice Set identified by the parameter"},"Classes.html#/c:objc(cs)SDLDeleteInteractionChoiceSetResponse":{"name":"SDLDeleteInteractionChoiceSetResponse","abstract":"<p>SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called</p>"},"Classes/SDLDeleteSubMenu.html":{"name":"SDLDeleteSubMenu","abstract":"<p>Deletes a submenu from the Command Menu"},"Classes.html#/c:objc(cs)SDLDeleteSubMenuResponse":{"name":"SDLDeleteSubMenuResponse","abstract":"<p>Response to SDLDeleteSubMenu</p>"},"Classes/SDLDeviceInfo.html":{"name":"SDLDeviceInfo","abstract":"<p>Various information about connecting device. Referenced in RegisterAppInterface</p>"},"Classes/SDLDeviceStatus.html":{"name":"SDLDeviceStatus","abstract":"<p>Describes the status related to a connected mobile device or SDL and if or how it is represented in the vehicle.</p>"},"Classes/SDLDiagnosticMessage.html":{"name":"SDLDiagnosticMessage","abstract":"<p>Non periodic vehicle diagnostic request</p>"},"Classes/SDLDiagnosticMessageResponse.html":{"name":"SDLDiagnosticMessageResponse","abstract":"<p>Response to SDLDiagnosticMessage</p>"},"Classes/SDLDialNumber.html":{"name":"SDLDialNumber","abstract":"<p>This RPC is used to tell the head unit to use bluetooth to dial a phone number using the phone.</p>"},"Classes.html#/c:objc(cs)SDLDialNumberResponse":{"name":"SDLDialNumberResponse","abstract":"<p>The response to SDLDialNumber</p>"},"Classes/SDLDisplayCapabilities.html":{"name":"SDLDisplayCapabilities","abstract":"<p>Contains information about the display for the SDL system to which the application is currently connected.</p>"},"Classes/SDLECallInfo.html":{"name":"SDLECallInfo","abstract":"<p>A vehicle data struct for emergency call information</p>"},"Classes/SDLEmergencyEvent.html":{"name":"SDLEmergencyEvent","abstract":"<p>A vehicle data struct for an emergency event</p>"},"Classes/SDLEncodedSyncPData.html":{"name":"SDLEncodedSyncPData","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLEncodedSyncPDataResponse":{"name":"SDLEncodedSyncPDataResponse","abstract":"<p>The response to SDLEncodedSyncPData</p>"},"Classes.html#/c:objc(cs)SDLEndAudioPassThru":{"name":"SDLEndAudioPassThru","abstract":"<p>When this request is invoked, the audio capture stops</p>"},"Classes.html#/c:objc(cs)SDLEndAudioPassThruResponse":{"name":"SDLEndAudioPassThruResponse","abstract":"<p>Response to SDLEndAudioPassThru</p>"},"Classes/SDLEqualizerSettings.html":{"name":"SDLEqualizerSettings","abstract":"<p>Defines the each Equalizer channel settings.</p>"},"Classes/SDLFile.html":{"name":"SDLFile","abstract":"<p>Undocumented</p>"},"Classes/SDLFileManager.html":{"name":"SDLFileManager","abstract":"<p>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.</p>"},"Classes/SDLFileManagerConfiguration.html":{"name":"SDLFileManagerConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLFuelRange.html":{"name":"SDLFuelRange","abstract":"<p>Describes the distance a vehicle can travel with the current level of fuel.</p>"},"Classes/SDLGPSData.html":{"name":"SDLGPSData","abstract":"<p>Describes the GPS data. Not all data will be available on all carlines.</p>"},"Classes.html#/c:objc(cs)SDLGenericResponse":{"name":"SDLGenericResponse","abstract":"<p>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.</p>"},"Classes/SDLGetDTCs.html":{"name":"SDLGetDTCs","abstract":"<p>This RPC allows to request diagnostic module trouble codes from a certain"},"Classes/SDLGetDTCsResponse.html":{"name":"SDLGetDTCsResponse","abstract":"<p>Response to SDLGetDTCs</p>"},"Classes/SDLGetInteriorVehicleData.html":{"name":"SDLGetInteriorVehicleData","abstract":"<p>Reads the current status value of specified remote control module (type)."},"Classes/SDLGetInteriorVehicleDataResponse.html":{"name":"SDLGetInteriorVehicleDataResponse","abstract":"<p>A response to SDLGetInteriorVehicleData</p>"},"Classes/SDLGetSystemCapability.html":{"name":"SDLGetSystemCapability","abstract":"<p>Undocumented</p>"},"Classes/SDLGetSystemCapabilityResponse.html":{"name":"SDLGetSystemCapabilityResponse","abstract":"<p>Response to SDLGetSystemCapability</p>"},"Classes/SDLGetVehicleData.html":{"name":"SDLGetVehicleData","abstract":"<p>Requests current values of specific published vehicle data items.</p>"},"Classes/SDLGetVehicleDataResponse.html":{"name":"SDLGetVehicleDataResponse","abstract":"<p>Response to SDLGetVehicleData</p>"},"Classes/SDLGetWayPoints.html":{"name":"SDLGetWayPoints","abstract":"<p>Undocumented</p>"},"Classes/SDLGetWayPointsResponse.html":{"name":"SDLGetWayPointsResponse","abstract":"<p>Response to SDLGetWayPoints</p>"},"Classes/SDLHMICapabilities.html":{"name":"SDLHMICapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLHMIPermissions.html":{"name":"SDLHMIPermissions","abstract":"<p>Defining sets of HMI levels, which are permitted or prohibited for a given RPC.</p>"},"Classes/SDLHMISettingsControlCapabilities.html":{"name":"SDLHMISettingsControlCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLHMISettingsControlData.html":{"name":"SDLHMISettingsControlData","abstract":"<p>Corresponds to <q>HMI_SETTINGS</q> ModuleType</p>"},"Classes/SDLHapticRect.html":{"name":"SDLHapticRect","abstract":"<p>Defines spatial for each user control object for video streaming application</p>"},"Classes/SDLHeadLampStatus.html":{"name":"SDLHeadLampStatus","abstract":"<p>Vehicle data struct for status of head lamps</p>"},"Classes/SDLImage.html":{"name":"SDLImage","abstract":"<p>Specifies which image shall be used e.g. in SDLAlerts or on SDLSoftbuttons provided the display supports it.</p>"},"Classes/SDLImageField.html":{"name":"SDLImageField","abstract":"<p>A struct used in DisplayCapabilities describing the capability of an image field</p>"},"Classes/SDLImageResolution.html":{"name":"SDLImageResolution","abstract":"<p>The resolution of an image</p>"},"Classes/SDLKeyboardProperties.html":{"name":"SDLKeyboardProperties","abstract":"<p>Configuration of on-screen keyboard (if available)</p>"},"Classes/SDLLifecycleConfiguration.html":{"name":"SDLLifecycleConfiguration","abstract":"<p>Configuration options for SDLManager</p>"},"Classes/SDLLifecycleConfigurationUpdate.html":{"name":"SDLLifecycleConfigurationUpdate","abstract":"<p>Configuration update options for SDLManager. This class can be used to update the lifecycle configuration in"},"Classes/SDLLightCapabilities.html":{"name":"SDLLightCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLLightControlCapabilities.html":{"name":"SDLLightControlCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLLightControlData.html":{"name":"SDLLightControlData","abstract":"<p>Undocumented</p>"},"Classes/SDLLightState.html":{"name":"SDLLightState","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLListFiles":{"name":"SDLListFiles","abstract":"<p>Requests the current list of resident filenames for the registered app. Not"},"Classes/SDLListFilesResponse.html":{"name":"SDLListFilesResponse","abstract":"<p>Response to SDLListFiles</p>"},"Classes/SDLLocationCoordinate.html":{"name":"SDLLocationCoordinate","abstract":"<p>Describes a coordinate on earth</p>"},"Classes/SDLLocationDetails.html":{"name":"SDLLocationDetails","abstract":"<p>Describes a location, including its coordinate, name, etc. Used in WayPoints.</p>"},"Classes/SDLLockScreenConfiguration.html":{"name":"SDLLockScreenConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLLockScreenViewController.html":{"name":"SDLLockScreenViewController","abstract":"<p>Undocumented</p>"},"Classes/SDLLogConfiguration.html":{"name":"SDLLogConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLLogFileModule.html":{"name":"SDLLogFileModule","abstract":"<p>Undocumented</p>"},"Classes/SDLLogFilter.html":{"name":"SDLLogFilter","abstract":"<p>Undocumented</p>"},"Classes/SDLLogManager.html":{"name":"SDLLogManager","abstract":"<p>This is the central manager of logging. A developer should not have to interact with this class, it is exclusively used internally.</p>"},"Classes.html#/c:objc(cs)SDLLogTargetAppleSystemLog":{"name":"SDLLogTargetAppleSystemLog","abstract":"<p>The Apple System Log target is an iOS 2.0+ compatible log target that logs to both the Console and to the System Log.</p>"},"Classes.html#/c:objc(cs)SDLLogTargetFile":{"name":"SDLLogTargetFile","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLLogTargetOSLog":{"name":"SDLLogTargetOSLog","abstract":"<p>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). </p>"},"Classes/SDLManager.html":{"name":"SDLManager","abstract":"<p>Undocumented</p>"},"Classes/SDLMassageCushionFirmness.html":{"name":"SDLMassageCushionFirmness","abstract":"<p>The intensity or firmness of a cushion.</p>"},"Classes/SDLMassageModeData.html":{"name":"SDLMassageModeData","abstract":"<p>Specify the mode of a massage zone.</p>"},"Classes/SDLMenuCell.html":{"name":"SDLMenuCell","abstract":"<p>Undocumented</p>"},"Classes/SDLMenuParams.html":{"name":"SDLMenuParams","abstract":"<p>Used when adding a sub menu to an application menu or existing sub menu.</p>"},"Classes/SDLMetadataTags.html":{"name":"SDLMetadataTags","abstract":"<p>Undocumented</p>"},"Classes/SDLModuleData.html":{"name":"SDLModuleData","abstract":"<p>Describes a remote control module’s data</p>"},"Classes/SDLMyKey.html":{"name":"SDLMyKey","abstract":"<p>Vehicle Data struct</p>"},"Classes/SDLNavigationCapability.html":{"name":"SDLNavigationCapability","abstract":"<p>Extended capabilities for an onboard navigation system</p>"},"Classes/SDLNotificationConstants.html":{"name":"SDLNotificationConstants","abstract":"<p>Undocumented</p>"},"Classes/SDLOasisAddress.html":{"name":"SDLOasisAddress","abstract":"<p>Struct used in SendLocation describing an address</p>"},"Classes/SDLOnAppInterfaceUnregistered.html":{"name":"SDLOnAppInterfaceUnregistered","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLOnAudioPassThru":{"name":"SDLOnAudioPassThru","abstract":"<p>Binary data is in binary part of hybrid msg.</p>"},"Classes/SDLOnButtonEvent.html":{"name":"SDLOnButtonEvent","abstract":"<p>Notifies application that user has depressed or released a button to which"},"Classes/SDLOnButtonPress.html":{"name":"SDLOnButtonPress","abstract":"<p>Notifies application of button press events for buttons to which the application is subscribed. SDL supports two button press events defined as follows:</p>"},"Classes/SDLOnCommand.html":{"name":"SDLOnCommand","abstract":"<p>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.</p>"},"Classes/SDLOnDriverDistraction.html":{"name":"SDLOnDriverDistraction","abstract":"<p>Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or not).</p>"},"Classes/SDLOnEncodedSyncPData.html":{"name":"SDLOnEncodedSyncPData","abstract":"<p>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 ***</p>"},"Classes/SDLOnHMIStatus.html":{"name":"SDLOnHMIStatus"},"Classes/SDLOnHashChange.html":{"name":"SDLOnHashChange","abstract":"<p>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.</p>"},"Classes/SDLOnInteriorVehicleData.html":{"name":"SDLOnInteriorVehicleData","abstract":"<p>Notifications when subscribed vehicle data changes.</p>"},"Classes/SDLOnKeyboardInput.html":{"name":"SDLOnKeyboardInput","abstract":"<p>Sent when a keyboard presented by a PerformInteraction has a keyboard input.</p>"},"Classes/SDLOnLanguageChange.html":{"name":"SDLOnLanguageChange","abstract":"<p>Provides information to what language the SDL HMI language was changed</p>"},"Classes/SDLOnLockScreenStatus.html":{"name":"SDLOnLockScreenStatus","abstract":"<p>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.</p>"},"Classes/SDLOnPermissionsChange.html":{"name":"SDLOnPermissionsChange","abstract":"<p>Provides update to app of which sets of functions are available</p>"},"Classes/SDLOnRCStatus.html":{"name":"SDLOnRCStatus","abstract":"<p>OnRCStatus notifications to all registered mobile applications and the HMI whenever"},"Classes/SDLOnSyncPData.html":{"name":"SDLOnSyncPData","abstract":"<p>DEPRECATED</p>"},"Classes/SDLOnSystemRequest.html":{"name":"SDLOnSystemRequest","abstract":"<p>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)</p>"},"Classes/SDLOnTBTClientState.html":{"name":"SDLOnTBTClientState","abstract":"<p>Provides applications with notifications specific to the current TBT client status on the module</p>"},"Classes/SDLOnTouchEvent.html":{"name":"SDLOnTouchEvent","abstract":"<p>Notifies about touch events on the screen’s prescribed area during video streaming</p>"},"Classes/SDLOnVehicleData.html":{"name":"SDLOnVehicleData","abstract":"<p>Callback for the periodic and non periodic vehicle data read function.</p>"},"Classes/SDLOnWayPointChange.html":{"name":"SDLOnWayPointChange","abstract":"<p>Notification which provides the entire LocationDetails when there is a change to any waypoints or destination.</p>"},"Classes/SDLParameterPermissions.html":{"name":"SDLParameterPermissions","abstract":"<p>Defining sets of parameters, which are permitted or prohibited for a given RPC.</p>"},"Classes/SDLPerformAudioPassThru.html":{"name":"SDLPerformAudioPassThru","abstract":"<p>This will open an audio pass thru session. By doing so the app can receive"},"Classes.html#/c:objc(cs)SDLPerformAudioPassThruResponse":{"name":"SDLPerformAudioPassThruResponse","abstract":"<p>Response to SDLPerformAudioPassThru</p>"},"Classes/SDLPerformInteraction.html":{"name":"SDLPerformInteraction","abstract":"<p>Performs an application-initiated interaction in which the user can select a"},"Classes/SDLPerformInteractionResponse.html":{"name":"SDLPerformInteractionResponse","abstract":"<p>PerformInteraction Response is sent, when SDLPerformInteraction has been called</p>"},"Classes/SDLPermissionItem.html":{"name":"SDLPermissionItem","abstract":"<p>Undocumented</p>"},"Classes/SDLPermissionManager.html":{"name":"SDLPermissionManager","abstract":"<p>Undocumented</p>"},"Classes/SDLPhoneCapability.html":{"name":"SDLPhoneCapability","abstract":"<p>Extended capabilities of the module’s phone feature</p>"},"Classes/SDLPinchGesture.html":{"name":"SDLPinchGesture","abstract":"<p>Undocumented</p>"},"Classes/SDLPresetBankCapabilities.html":{"name":"SDLPresetBankCapabilities","abstract":"<p>Contains information about on-screen preset capabilities.</p>"},"Classes/SDLPutFile.html":{"name":"SDLPutFile","abstract":"<p>Used to push a binary data onto the SDL module from a mobile device, such as icons and album art.</p>"},"Classes/SDLPutFileResponse.html":{"name":"SDLPutFileResponse","abstract":"<p>Response to SDLPutFile</p>"},"Classes/SDLRDSData.html":{"name":"SDLRDSData","abstract":"<p>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.</p>"},"Classes/SDLRGBColor.html":{"name":"SDLRGBColor","abstract":"<p>Undocumented</p>"},"Classes/SDLRPCMessage.html":{"name":"SDLRPCMessage","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLRPCNotification":{"name":"SDLRPCNotification","abstract":"<p>An RPC sent from the head unit to the app about some data change, such as a button was pressed</p>"},"Classes/SDLRPCNotificationNotification.html":{"name":"SDLRPCNotificationNotification","abstract":"<p>An NSNotification object that makes retrieving internal SDLRPCNotification data easier</p>"},"Classes/SDLRPCRequest.html":{"name":"SDLRPCRequest","abstract":"<p>Undocumented</p>"},"Classes/SDLRPCResponse.html":{"name":"SDLRPCResponse","abstract":"<p>Undocumented</p>"},"Classes/SDLRPCResponseNotification.html":{"name":"SDLRPCResponseNotification","abstract":"<p>An NSNotification object that makes retrieving internal SDLRPCResponse data easier</p>"},"Classes/SDLRPCStruct.html":{"name":"SDLRPCStruct","abstract":"<p>Undocumented</p>"},"Classes/SDLRadioControlCapabilities.html":{"name":"SDLRadioControlCapabilities","abstract":"<p>Contains information about a radio control module’s capabilities.</p>"},"Classes/SDLRadioControlData.html":{"name":"SDLRadioControlData","abstract":"<p>Include information (both read-only and changeable data) about a remote control radio module.</p>"},"Classes/SDLReadDID.html":{"name":"SDLReadDID","abstract":"<p>Non periodic vehicle data read request. This is an RPC to get diagnostics"},"Classes/SDLReadDIDResponse.html":{"name":"SDLReadDIDResponse","abstract":"<p>A response to ReadDID</p>"},"Classes/SDLRectangle.html":{"name":"SDLRectangle","abstract":"<p>A struct describing a rectangle</p>"},"Classes/SDLRegisterAppInterface.html":{"name":"SDLRegisterAppInterface","abstract":"<p>Registers the application’s interface with SDL. The <code>RegisterAppInterface</code> RPC declares the properties of the app, 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 <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses.html#/c:objc(cs)SDLUnregisterAppInterface\">SDLUnregisterAppInterface</a></code> method, or by SDL sending an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLOnAppInterfaceUnregistered.html\">SDLOnAppInterfaceUnregistered</a></code> notification, or by loss of the underlying transport connection, or closing of the underlying message transmission protocol RPC session.</p>"},"Classes/SDLRegisterAppInterfaceResponse.html":{"name":"SDLRegisterAppInterfaceResponse","abstract":"<p>Response to SDLRegisterAppInterface</p>"},"Classes/SDLRemoteControlCapabilities.html":{"name":"SDLRemoteControlCapabilities","abstract":"<p>Capabilities of the remote control feature</p>"},"Classes/SDLResetGlobalProperties.html":{"name":"SDLResetGlobalProperties","abstract":"<p>Resets the passed global properties to their default values as defined by"},"Classes.html#/c:objc(cs)SDLResetGlobalPropertiesResponse":{"name":"SDLResetGlobalPropertiesResponse","abstract":"<p>Response to ResetGlobalProperties</p>"},"Classes/SDLSISData.html":{"name":"SDLSISData","abstract":"<p>HD radio Station Information Service (SIS) data.</p>"},"Classes/SDLScreenManager.html":{"name":"SDLScreenManager","abstract":"<p>Undocumented</p>"},"Classes/SDLScreenParams.html":{"name":"SDLScreenParams","abstract":"<p>A struct in DisplayCapabilities describing parameters related to a video / touch input area</p>"},"Classes/SDLScrollableMessage.html":{"name":"SDLScrollableMessage","abstract":"<p>Creates a full screen overlay containing a large block of formatted text that"},"Classes.html#/c:objc(cs)SDLScrollableMessageResponse":{"name":"SDLScrollableMessageResponse","abstract":"<p>Response to SDLScrollableMessage</p>"},"Classes/SDLSeatControlCapabilities.html":{"name":"SDLSeatControlCapabilities","abstract":"<p>Include information about a seat control capabilities.</p>"},"Classes/SDLSeatControlData.html":{"name":"SDLSeatControlData","abstract":"<p>Seat control data corresponds to <q>SEAT</q> ModuleType.</p>"},"Classes/SDLSeatMemoryAction.html":{"name":"SDLSeatMemoryAction","abstract":"<p>Specify the action to be performed.</p>"},"Classes/SDLSendHapticData.html":{"name":"SDLSendHapticData","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLSendHapticDataResponse":{"name":"SDLSendHapticDataResponse","abstract":"<p>Response to SDLSendHapticData</p>"},"Classes/SDLSendLocation.html":{"name":"SDLSendLocation","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLSendLocationResponse":{"name":"SDLSendLocationResponse","abstract":"<p>Response to SDLSendLocation</p>"},"Classes/SDLSetAppIcon.html":{"name":"SDLSetAppIcon","abstract":"<p>Used to set existing local file on SDL as the app’s icon. Not supported on"},"Classes.html#/c:objc(cs)SDLSetAppIconResponse":{"name":"SDLSetAppIconResponse","abstract":"<p>Response to SDLSetAppIcon</p>"},"Classes/SDLSetDisplayLayout.html":{"name":"SDLSetDisplayLayout","abstract":"<p>Used to set an alternate display layout. If not sent, default screen for"},"Classes/SDLSetDisplayLayoutResponse.html":{"name":"SDLSetDisplayLayoutResponse","abstract":"<p>Response to SDLSetDisplayLayout</p>"},"Classes/SDLSetGlobalProperties.html":{"name":"SDLSetGlobalProperties","abstract":"<p>Sets global property values</p>"},"Classes.html#/c:objc(cs)SDLSetGlobalPropertiesResponse":{"name":"SDLSetGlobalPropertiesResponse","abstract":"<p>Response to SDLSetGlobalProperties</p>"},"Classes/SDLSetInteriorVehicleData.html":{"name":"SDLSetInteriorVehicleData","abstract":"<p>This RPC allows a remote control type mobile application to"},"Classes/SDLSetInteriorVehicleDataResponse.html":{"name":"SDLSetInteriorVehicleDataResponse","abstract":"<p>Response to SDLSetInteriorVehicleData</p>"},"Classes/SDLSetMediaClockTimer.html":{"name":"SDLSetMediaClockTimer","abstract":"<p>Sets the media clock/timer value and the update method (e.g.count-up,"},"Classes.html#/c:objc(cs)SDLSetMediaClockTimerResponse":{"name":"SDLSetMediaClockTimerResponse","abstract":"<p>Response to SDLSetMediaClockTimer</p>"},"Classes/SDLShow.html":{"name":"SDLShow","abstract":"<p>Updates the application’s display text area, regardless of whether or not"},"Classes/SDLShowConstantTBT.html":{"name":"SDLShowConstantTBT","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLShowConstantTBTResponse":{"name":"SDLShowConstantTBTResponse","abstract":"<p>Response to SDLShowConstantTBT</p>"},"Classes.html#/c:objc(cs)SDLShowResponse":{"name":"SDLShowResponse","abstract":"<p>Response to SDLShow</p>"},"Classes/SDLSingleTireStatus.html":{"name":"SDLSingleTireStatus","abstract":"<p>Tire pressure status of a single tire.</p>"},"Classes/SDLSlider.html":{"name":"SDLSlider","abstract":"<p>Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider</p>"},"Classes/SDLSliderResponse.html":{"name":"SDLSliderResponse","abstract":"<p>Response to SDLSlider</p>"},"Classes/SDLSoftButton.html":{"name":"SDLSoftButton","abstract":"<p>Describes an on-screen button which may be presented in various contexts, e.g. templates or alerts</p>"},"Classes/SDLSoftButtonCapabilities.html":{"name":"SDLSoftButtonCapabilities","abstract":"<p>Contains information about a SoftButton’s capabilities.</p>"},"Classes/SDLSoftButtonObject.html":{"name":"SDLSoftButtonObject","abstract":"<p>A soft button wrapper object that is capable of storing and switching between states</p>"},"Classes/SDLSoftButtonState.html":{"name":"SDLSoftButtonState","abstract":"<p>Undocumented</p>"},"Classes/SDLSpeak.html":{"name":"SDLSpeak","abstract":"<p>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 <q>speech-sculpted</q> phrase.</p>"},"Classes.html#/c:objc(cs)SDLSpeakResponse":{"name":"SDLSpeakResponse","abstract":"<p>Response to SDLSpeak</p>"},"Classes/SDLStartTime.html":{"name":"SDLStartTime","abstract":"<p>Describes the hour, minute and second values used to set the media clock.</p>"},"Classes/SDLStationIDNumber.html":{"name":"SDLStationIDNumber","abstract":"<p>Describes the hour, minute and second values used to set the media clock.</p>"},"Classes/SDLStreamingMediaConfiguration.html":{"name":"SDLStreamingMediaConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLStreamingMediaManager.html":{"name":"SDLStreamingMediaManager","abstract":"<p>Undocumented</p>"},"Classes/SDLSubscribeButton.html":{"name":"SDLSubscribeButton","abstract":"<p>Establishes a subscription to button notifications for HMI buttons. Buttons"},"Classes.html#/c:objc(cs)SDLSubscribeButtonResponse":{"name":"SDLSubscribeButtonResponse","abstract":"<p>Response to SDLSubscribeButton</p>"},"Classes/SDLSubscribeVehicleData.html":{"name":"SDLSubscribeVehicleData","abstract":"<p>Subscribes to specific published vehicle data items. The data will be only sent if it has changed. The application will be notified by the <code>onVehicleData</code> notification whenever new data is available. The update rate is dependent on sensors, vehicle architecture and vehicle type.</p>"},"Classes/SDLSubscribeVehicleDataResponse.html":{"name":"SDLSubscribeVehicleDataResponse","abstract":"<p>Response to SDLSubscribeVehicleData</p>"},"Classes.html#/c:objc(cs)SDLSubscribeWayPoints":{"name":"SDLSubscribeWayPoints","abstract":"<p>A SDLSubscribeWaypoints can be sent to subscribe"},"Classes.html#/c:objc(cs)SDLSubscribeWayPointsResponse":{"name":"SDLSubscribeWayPointsResponse","abstract":"<p>Response to SubscribeWayPoints</p>"},"Classes/SDLSyncMsgVersion.html":{"name":"SDLSyncMsgVersion","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLSyncPData":{"name":"SDLSyncPData","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLSyncPDataResponse":{"name":"SDLSyncPDataResponse","abstract":"<p>Response to SyncPData</p>"},"Classes/SDLSystemCapability.html":{"name":"SDLSystemCapability","abstract":"<p>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 <q>navigationCapability</q> should exist.</p>"},"Classes/SDLSystemCapabilityManager.html":{"name":"SDLSystemCapabilityManager","abstract":"<p>Undocumented</p>"},"Classes/SDLTTSChunk.html":{"name":"SDLTTSChunk","abstract":"<p>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).</p>"},"Classes/SDLTemperature.html":{"name":"SDLTemperature","abstract":"<p>Struct using in Remote Control representing a temperature.</p>"},"Classes/SDLTemplateColorScheme.html":{"name":"SDLTemplateColorScheme","abstract":"<p>Undocumented</p>"},"Classes/SDLTextField.html":{"name":"SDLTextField","abstract":"<p>Struct defining the characteristics of a displayed field on the HMI.</p>"},"Classes/SDLTireStatus.html":{"name":"SDLTireStatus","abstract":"<p>Struct used in Vehicle Data; the status and pressure of the tires.</p>"},"Classes/SDLTouch.html":{"name":"SDLTouch","abstract":"<p>Undocumented</p>"},"Classes/SDLTouchCoord.html":{"name":"SDLTouchCoord","abstract":"<p>The coordinate of a touch, used in a touch event</p>"},"Classes/SDLTouchEvent.html":{"name":"SDLTouchEvent","abstract":"<p>A touch which occurred on the IVI system during projection</p>"},"Classes/SDLTouchEventCapabilities.html":{"name":"SDLTouchEventCapabilities","abstract":"<p>The capabilities of touches during projection applications</p>"},"Classes/SDLTouchManager.html":{"name":"SDLTouchManager","abstract":"<p>Undocumented</p>"},"Classes/SDLTurn.html":{"name":"SDLTurn","abstract":"<p>A struct used in UpdateTurnList for Turn-by-Turn navigation applications</p>"},"Classes.html#/c:objc(cs)SDLUnregisterAppInterface":{"name":"SDLUnregisterAppInterface","abstract":"<p>Terminates an application’s interface registration. This causes SDL® to"},"Classes.html#/c:objc(cs)SDLUnregisterAppInterfaceResponse":{"name":"SDLUnregisterAppInterfaceResponse","abstract":"<p>Response to UnregisterAppInterface</p>"},"Classes/SDLUnsubscribeButton.html":{"name":"SDLUnsubscribeButton","abstract":"<p>Deletes a subscription to button notifications for the specified button. For"},"Classes.html#/c:objc(cs)SDLUnsubscribeButtonResponse":{"name":"SDLUnsubscribeButtonResponse","abstract":"<p>Response to UnsubscribeButton</p>"},"Classes/SDLUnsubscribeVehicleData.html":{"name":"SDLUnsubscribeVehicleData","abstract":"<p>This function is used to unsubscribe the notifications from the"},"Classes/SDLUnsubscribeVehicleDataResponse.html":{"name":"SDLUnsubscribeVehicleDataResponse","abstract":"<p>Response to UnsubscribeVehicleData</p>"},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPoints":{"name":"SDLUnsubscribeWayPoints","abstract":"<p>Request to unsubscribe from navigation WayPoints and Destination</p>"},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPointsResponse":{"name":"SDLUnsubscribeWayPointsResponse","abstract":"<p>Response to UnsubscribeWayPoints</p>"},"Classes/SDLUpdateTurnList.html":{"name":"SDLUpdateTurnList","abstract":"<p>Updates the list of next maneuvers, which can be requested by the user pressing the softbutton<br></p>"},"Classes.html#/c:objc(cs)SDLUpdateTurnListResponse":{"name":"SDLUpdateTurnListResponse","abstract":"<p>Response to UpdateTurnList</p>"},"Classes/SDLVehicleDataResult.html":{"name":"SDLVehicleDataResult","abstract":"<p>Individual published data request result</p>"},"Classes/SDLVehicleType.html":{"name":"SDLVehicleType","abstract":"<p>Describes the type of vehicle the mobile phone is connected with.</p>"},"Classes/SDLVideoStreamingCapability.html":{"name":"SDLVideoStreamingCapability","abstract":"<p>Contains information about this system’s video streaming capabilities</p>"},"Classes/SDLVideoStreamingFormat.html":{"name":"SDLVideoStreamingFormat","abstract":"<p>An available format for video streaming in projection applications</p>"},"Classes/SDLVoiceCommand.html":{"name":"SDLVoiceCommand","abstract":"<p>Undocumented</p>"},"Classes/SDLVRHelpItem.html":{"name":"SDLVRHelpItem","abstract":"<p>A help item for voice commands, used locally in interaction lists and globally</p>"},"Categories/NSString(SDLEnum).html#/c:objc(cs)NSString(im)isEqualToEnum:":{"name":"-isEqualToEnum:","abstract":"<p>Returns whether or not two enums are equal.</p>","parent_name":"NSString(SDLEnum)"},"Categories/NSString(SDLEnum).html":{"name":"NSString(SDLEnum)","abstract":"<p>Undocumented</p>"},"Categories.html":{"name":"Categories","abstract":"<p>The following categories are available globally.</p>"},"Classes.html":{"name":"Classes","abstract":"<p>The following classes are available globally.</p>"},"Constants.html":{"name":"Constants","abstract":"<p>The following constants are available globally.</p>"},"Enums.html":{"name":"Enumerations","abstract":"<p>The following enumerations are available globally.</p>"},"Protocols.html":{"name":"Protocols","abstract":"<p>The following protocols are available globally.</p>"},"Type Definitions.html":{"name":"Type Definitions","abstract":"<p>The following type definitions are available globally.</p>"}}
\ No newline at end of file +{"Type Definitions/SDLTouchIdentifier/.html#/c:@EA@SDLTouchIdentifier@SDLTouchIdentifierFirstFinger":{"name":"SDLTouchIdentifierFirstFinger","abstract":"<p>Undocumented</p>"},"Type Definitions/SDLTouchIdentifier/.html#/c:@EA@SDLTouchIdentifier@SDLTouchIdentifierSecondFinger":{"name":"SDLTouchIdentifierSecondFinger","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLAmbientLightStatus.h@T@SDLAmbientLightStatus":{"name":"SDLAmbientLightStatus","abstract":"<p>Reflects the status of the ambient light sensor for headlamps</p>"},"Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType":{"name":"SDLAppHMIType","abstract":"<p>Enumeration listing possible app hmi types.</p>"},"Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason":{"name":"SDLAppInterfaceUnregisteredReason","abstract":"<p>Indicates reason why app interface was unregistered. The application is being disconnected by SDL.</p>"},"Type Definitions.html#/c:SDLAppServiceType.h@T@SDLAppServiceType":{"name":"SDLAppServiceType","abstract":"<p>Enumeration listing possible app service types.</p>"},"Type Definitions.html#/c:SDLAudioStreamingIndicator.h@T@SDLAudioStreamingIndicator":{"name":"SDLAudioStreamingIndicator","abstract":"<p>Enumeration listing possible indicators of audio streaming changes</p>"},"Type Definitions.html#/c:SDLAudioStreamingState.h@T@SDLAudioStreamingState":{"name":"SDLAudioStreamingState","abstract":"<p>Describes whether or not streaming audio is currently audible to the user. Though provided in every OnHMIStatus notification, this information is only relevant for applications that declare themselves as media apps in RegisterAppInterface</p>"},"Type Definitions.html#/c:SDLAudioType.h@T@SDLAudioType":{"name":"SDLAudioType","abstract":"<p>Describes different audio type options for PerformAudioPassThru</p>"},"Type Definitions.html#/c:SDLBitsPerSample.h@T@SDLBitsPerSample":{"name":"SDLBitsPerSample","abstract":"<p>Describes different bit depth options for PerformAudioPassThru</p>"},"Type Definitions.html#/c:SDLButtonEventMode.h@T@SDLButtonEventMode":{"name":"SDLButtonEventMode","abstract":"<p>Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.</p>"},"Type Definitions.html#/c:SDLButtonName.h@T@SDLButtonName":{"name":"SDLButtonName","abstract":"<p>Defines logical buttons which, on a given SDL unit, would correspond to either physical or soft (touchscreen) buttons. These logical buttons present a standard functional abstraction which the developer can rely upon, independent of the SDL unit. For example, the developer can rely upon the OK button having the same meaning to the user across SDL platforms.</p>"},"Type Definitions.html#/c:SDLButtonPressMode.h@T@SDLButtonPressMode":{"name":"SDLButtonPressMode","abstract":"<p>Indicates whether this is a LONG or SHORT button press</p>"},"Type Definitions.html#/c:SDLCarModeStatus.h@T@SDLCarModeStatus":{"name":"SDLCarModeStatus","abstract":"<p>Describes the carmode the vehicle is in. Used in ClusterModeStatus</p>"},"Type Definitions.html#/c:SDLCharacterSet.h@T@SDLCharacterSet":{"name":"SDLCharacterSet","abstract":"<p>Character sets supported by SDL. Used to describe text field capabilities.</p>"},"Type Definitions.html#/c:SDLCompassDirection.h@T@SDLCompassDirection":{"name":"SDLCompassDirection","abstract":"<p>The list of potential compass directions. Used in GPS data</p>"},"Type Definitions.html#/c:SDLComponentVolumeStatus.h@T@SDLComponentVolumeStatus":{"name":"SDLComponentVolumeStatus","abstract":"<p>The volume status of a vehicle component. Used in SingleTireStatus and VehicleData Fuel Level</p>"},"Type Definitions.html#/c:SDLDefrostZone.h@T@SDLDefrostZone":{"name":"SDLDefrostZone","abstract":"<p>Enumeration listing possible defrost zones. Used in ClimateControlCapabilities and Data.</p>"},"Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode":{"name":"SDLDeliveryMode","abstract":"<p>Specifies the mode in which the sendLocation request is sent. Used in SendLocation.</p>"},"Type Definitions.html#/c:SDLDeviceLevelStatus.h@T@SDLDeviceLevelStatus":{"name":"SDLDeviceLevelStatus","abstract":"<p>Reflects the reported battery status of the connected device, if reported. Used in DeviceStatus.</p>"},"Type Definitions.html#/c:SDLDimension.h@T@SDLDimension":{"name":"SDLDimension","abstract":"<p>The supported dimensions of the GPS. Used in GPSData</p>"},"Type Definitions.html#/c:SDLDirection.h@T@SDLDirection":{"name":"SDLDirection","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLDisplayMode.h@T@SDLDisplayMode":{"name":"SDLDisplayMode","abstract":"<p>Identifies the various display types used by SDL.</p>"},"Type Definitions.html#/c:SDLDisplayType.h@T@SDLDisplayType":{"name":"SDLDisplayType","abstract":"<p>Identifies the various display types used by SDL. Used in DisplayCapabilities.</p>"},"Type Definitions.html#/c:SDLDistanceUnit.h@T@SDLDistanceUnit":{"name":"SDLDistanceUnit","abstract":"<p>Wiper Status</p>"},"Type Definitions.html#/c:SDLDriverDistractionState.h@T@SDLDriverDistractionState":{"name":"SDLDriverDistractionState","abstract":"<p>Enumeration that describes possible states of driver distraction. Used in OnDriverDistraction.</p>"},"Type Definitions.html#/c:SDLECallConfirmationStatus.h@T@SDLECallConfirmationStatus":{"name":"SDLECallConfirmationStatus","abstract":"<p>Reflects the status of the eCall Notification. Used in ECallInfo</p>"},"Type Definitions.html#/c:SDLElectronicParkBrakeStatus.h@T@SDLElectronicParkBrakeStatus":{"name":"SDLElectronicParkBrakeStatus","abstract":"<p>Reflects the status of the Electronic Parking Brake. A Vehicle Data Type.</p>"},"Type Definitions.html#/c:SDLEmergencyEventType.h@T@SDLEmergencyEventType":{"name":"SDLEmergencyEventType","abstract":"<p>Reflects the emergency event status of the vehicle. Used in EmergencyEvent</p>"},"Type Definitions.html#/c:SDLEnum.h@T@SDLEnum":{"name":"SDLEnum","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLFileManager.h@T@SDLFileManagerStartupCompletionHandler":{"name":"SDLFileManagerStartupCompletionHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileName":{"name":"SDLFileName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadCompletionHandler":{"name":"SDLFileManagerUploadCompletionHandler","abstract":"<p>A completion handler called after a response from Core to a upload request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadCompletionHandler":{"name":"SDLFileManagerMultiUploadCompletionHandler","abstract":"<p>A completion handler called after a set of upload requests has completed.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadProgressHandler":{"name":"SDLFileManagerMultiUploadProgressHandler","abstract":"<p>In a multiple request send, a handler called after each response from Core to a upload request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerDeleteCompletionHandler":{"name":"SDLFileManagerDeleteCompletionHandler","abstract":"<p>A completion handler called after a response from Core to a delete request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiDeleteCompletionHandler":{"name":"SDLFileManagerMultiDeleteCompletionHandler","abstract":"<p>A completion handler called after a set of delete requests has completed.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerListFilesCompletionHandler":{"name":"SDLFileManagerListFilesCompletionHandler","abstract":"<p>A completion handler called after response from Core to a list files request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadArtworkCompletionHandler":{"name":"SDLFileManagerUploadArtworkCompletionHandler","abstract":"<p>A completion handler called after a response from Core to a artwork upload request.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadArtworkCompletionHandler":{"name":"SDLFileManagerMultiUploadArtworkCompletionHandler","abstract":"<p>A completion handler called after a set of upload artwork requests has completed.</p>"},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadArtworkProgressHandler":{"name":"SDLFileManagerMultiUploadArtworkProgressHandler","abstract":"<p>In a multiple request send, a handler called after each response from Core to an artwork upload request.</p>"},"Type Definitions.html#/c:SDLFileType.h@T@SDLFileType":{"name":"SDLFileType","abstract":"<p>Enumeration listing possible file types. Used in SDLFile, PutFile, ImageField, OnSystemRequest</p>"},"Type Definitions.html#/c:SDLFuelCutoffStatus.h@T@SDLFuelCutoffStatus":{"name":"SDLFuelCutoffStatus","abstract":"<p>Reflects the status of the Restraints Control Module fuel pump cutoff. The fuel pump is cut off typically after the vehicle has had a collision. Used in EmergencyEvent.</p>"},"Type Definitions.html#/c:SDLFuelType.h@T@SDLFuelType":{"name":"SDLFuelType","abstract":"<p>Enumeration listing possible fuel types.</p>"},"Type Definitions.html#/c:SDLGlobalProperty.h@T@SDLGlobalProperty":{"name":"SDLGlobalProperty","abstract":"<p>Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button). Used in RPCs related to ResetGlobalProperties</p>"},"Type Definitions.html#/c:SDLHMILevel.h@T@SDLHMILevel":{"name":"SDLHMILevel","abstract":"<p>Specifies current level of the HMI. An HMI level indicates the degree of user interaction possible through the HMI (e.g. TTS only, display only, VR, etc.). The HMI level varies for an application based on the type of display (i.e. Nav or non-Nav) and the user directing <q>focus</q> to other applications (e.g. phone, other mobile applications, etc.). Used in OnHMIStatus</p>"},"Type Definitions.html#/c:SDLHMIZoneCapabilities.h@T@SDLHMIZoneCapabilities":{"name":"SDLHMIZoneCapabilities","abstract":"<p>Specifies HMI Zones in the vehicle. Used in RegisterAppInterfaceResponse</p>"},"Type Definitions.html#/c:SDLHybridAppPreference.h@T@SDLHybridAppPreference":{"name":"SDLHybridAppPreference","abstract":"<p>Enumeration for the user’s preference of which app type to use when both are available.</p>"},"Type Definitions.html#/c:SDLIgnitionStableStatus.h@T@SDLIgnitionStableStatus":{"name":"SDLIgnitionStableStatus","abstract":"<p>Reflects the ignition switch stability. Used in BodyInformation</p>"},"Type Definitions.html#/c:SDLIgnitionStatus.h@T@SDLIgnitionStatus":{"name":"SDLIgnitionStatus","abstract":"<p>Reflects the status of ignition. Used in BodyInformation.</p>"},"Type Definitions.html#/c:SDLImageFieldName.h@T@SDLImageFieldName":{"name":"SDLImageFieldName","abstract":"<p>The name that identifies the filed. Used in DisplayCapabilities.</p>"},"Type Definitions.html#/c:SDLImageType.h@T@SDLImageType":{"name":"SDLImageType","abstract":"<p>Contains information about the type of image. Used in Image.</p>"},"Type Definitions.html#/c:SDLInteractionMode.h@T@SDLInteractionMode":{"name":"SDLInteractionMode","abstract":"<p>For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated. Used in PerformInteraction.</p>"},"Type Definitions.html#/c:SDLKeyboardDelegate.h@T@SDLKeyboardAutocompleteCompletionHandler":{"name":"SDLKeyboardAutocompleteCompletionHandler","abstract":"<p>This handler is called when you wish to update your autocomplete text in response to the user’s input</p>"},"Type Definitions.html#/c:SDLKeyboardDelegate.h@T@SDLKeyboardCharacterSetCompletionHandler":{"name":"SDLKeyboardCharacterSetCompletionHandler","abstract":"<p>This handler is called when you wish to update your keyboard’s limitedCharacterSet in response to the user’s input</p>"},"Type Definitions.html#/c:SDLKeyboardEvent.h@T@SDLKeyboardEvent":{"name":"SDLKeyboardEvent","abstract":"<p>Enumeration listing possible keyboard events. Used in OnKeyboardInput.</p>"},"Type Definitions.html#/c:SDLKeyboardLayout.h@T@SDLKeyboardLayout":{"name":"SDLKeyboardLayout","abstract":"<p>Enumeration listing possible keyboard layouts. Used in KeyboardProperties.</p>"},"Type Definitions.html#/c:SDLKeypressMode.h@T@SDLKeypressMode":{"name":"SDLKeypressMode","abstract":"<p>Enumeration listing possible keyboard events.</p>"},"Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage":{"name":"SDLLanguage","abstract":"<p>Specifies the language to be used for TTS, VR, displayed messages/menus. Used in ChangeRegistration and RegisterAppInterface.</p>"},"Type Definitions.html#/c:SDLLayoutMode.h@T@SDLLayoutMode":{"name":"SDLLayoutMode","abstract":"<p>For touchscreen interactions, the mode of how the choices are presented. Used in PerformInteraction.</p>"},"Type Definitions.html#/c:SDLLightName.h@T@SDLLightName":{"name":"SDLLightName","abstract":"<p>The name that identifies the Light</p>"},"Type Definitions.html#/c:SDLLightStatus.h@T@SDLLightStatus":{"name":"SDLLightStatus","abstract":"<p>Reflects the status of Light.</p>"},"Type Definitions.html#/c:SDLLockScreenStatus.h@T@SDLLockScreenStatus":{"name":"SDLLockScreenStatus","abstract":"<p>Describes what the status of the lock screen should be</p>"},"Type Definitions.html#/c:SDLLogConstants.h@T@SDLLogFilterBlock":{"name":"SDLLogFilterBlock","abstract":"<p>A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged.</p>"},"Type Definitions.html#/c:SDLMaintenanceModeStatus.h@T@SDLMaintenanceModeStatus":{"name":"SDLMaintenanceModeStatus","abstract":"<p>Describes the maintenence mode. Used in nothing.</p>"},"Type Definitions.html#/c:SDLManager.h@T@SDLManagerReadyBlock":{"name":"SDLManagerReadyBlock","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLMassageCushion.h@T@SDLMassageCushion":{"name":"SDLMassageCushion","abstract":"<p>The List possible cushions of a multi-contour massage seat.</p>"},"Type Definitions.html#/c:SDLMassageMode.h@T@SDLMassageMode":{"name":"SDLMassageMode","abstract":"<p>The List possible modes of a massage zone.</p>"},"Type Definitions.html#/c:SDLMassageZone.h@T@SDLMassageZone":{"name":"SDLMassageZone","abstract":"<p>List possible zones of a multi-contour massage seat.</p>"},"Type Definitions.html#/c:SDLMediaClockFormat.h@T@SDLMediaClockFormat":{"name":"SDLMediaClockFormat","abstract":"<p>Indicates the format of the time displayed on the connected SDL unit.</p>"},"Type Definitions.html#/c:SDLMediaType.h@T@SDLMediaType":{"name":"SDLMediaType","abstract":"<p>Enumeration listing possible media types.</p>"},"Type Definitions.html#/c:SDLMenuCell.h@T@SDLMenuCellSelectionHandler":{"name":"SDLMenuCellSelectionHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType":{"name":"SDLMetadataType","abstract":"<p>Text Field metadata types. Used in Show.</p>"},"Type Definitions.html#/c:SDLModuleType.h@T@SDLModuleType":{"name":"SDLModuleType","abstract":"<p>The type of remote control data. Used in ButtonPress, GetInteriorVehicleData, and ModuleData</p>"},"Type Definitions.html#/c:SDLNavigationAction.h@T@SDLNavigationAction":{"name":"SDLNavigationAction","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLNavigationJunction.h@T@SDLNavigationJunction":{"name":"SDLNavigationJunction","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName":{"name":"SDLNotificationName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationUserInfoKey":{"name":"SDLNotificationUserInfoKey","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLAudioPassThruHandler":{"name":"SDLAudioPassThruHandler","abstract":"<p>A handler used on SDLPerformAudioPassThru.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLResponseHandler":{"name":"SDLResponseHandler","abstract":"<p>A handler used on all RPC requests which fires when the response is received.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleRequestCompletionHandler":{"name":"SDLMultipleRequestCompletionHandler","abstract":"<p>A completion handler called after a sequential or simultaneous set of requests have completed sending.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleSequentialRequestProgressHandler":{"name":"SDLMultipleSequentialRequestProgressHandler","abstract":"<p>A handler called after each response to a request comes in in a multiple request send.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLMultipleAsyncRequestProgressHandler":{"name":"SDLMultipleAsyncRequestProgressHandler","abstract":"<p>A handler called after each response to a request comes in in a multiple request send.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler":{"name":"SDLRPCButtonNotificationHandler","abstract":"<p>A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur.</p>"},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCCommandNotificationHandler":{"name":"SDLRPCCommandNotificationHandler","abstract":"<p>A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur.</p>"},"Type Definitions.html#/c:SDLPRNDL.h@T@SDLPRNDL":{"name":"SDLPRNDL","abstract":"<p>The selected gear the car is in. Used in retrieving vehicle data.</p>"},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName":{"name":"SDLPermissionRPCName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionObserverIdentifier":{"name":"SDLPermissionObserverIdentifier","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler":{"name":"SDLPermissionsChangedHandler","abstract":"<p>The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change.</p>"},"Type Definitions.html#/c:SDLPermissionStatus.h@T@SDLPermissionStatus":{"name":"SDLPermissionStatus","abstract":"<p>Enumeration that describes possible permission states of a policy table entry. Used in nothing.</p>"},"Type Definitions.html#/c:SDLPowerModeQualificationStatus.h@T@SDLPowerModeQualificationStatus":{"name":"SDLPowerModeQualificationStatus","abstract":"<p>Describes the power mode qualification status. Used in ClusterModeStatus.</p>"},"Type Definitions.html#/c:SDLPowerModeStatus.h@T@SDLPowerModeStatus":{"name":"SDLPowerModeStatus","abstract":"<p>The status of the car’s power. Used in ClusterModeStatus.</p>"},"Type Definitions.html#/c:SDLPredefinedLayout.h@T@SDLPredefinedLayout":{"name":"SDLPredefinedLayout","abstract":"<p>A template layout an app uses to display information. The broad details of the layout are defined, but the details depend on the IVI system. Used in SetDisplayLayout.</p>"},"Type Definitions.html#/c:SDLPrerecordedSpeech.h@T@SDLPrerecordedSpeech":{"name":"SDLPrerecordedSpeech","abstract":"<p>Contains information about the speech capabilities on the SDL platform. Used in RegisterAppInterfaceResponse to indicate capability.</p>"},"Type Definitions.html#/c:SDLPrimaryAudioSource.h@T@SDLPrimaryAudioSource":{"name":"SDLPrimaryAudioSource","abstract":"<p>Reflects the current primary audio source of SDL (if selected). Used in DeviceStatus.</p>"},"Type Definitions.html#/c:SDLRPCFunctionNames.h@T@SDLRPCFunctionName":{"name":"SDLRPCFunctionName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand":{"name":"SDLRadioBand","abstract":"<p>Radio bands, such as AM and FM, used in RadioControlData</p>"},"Type Definitions.html#/c:SDLRadioState.h@T@SDLRadioState":{"name":"SDLRadioState","abstract":"<p>List possible states of a remote control radio module. Used in RadioControlData.</p>"},"Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType":{"name":"SDLRequestType","abstract":"<p>A type of system request. Used in SystemRequest.</p>"},"Type Definitions.html#/c:SDLResult.h@T@SDLResult":{"name":"SDLResult","abstract":"<p>Defines the possible result codes returned by SDL to the application in a response to a requested operation. Used in RPC responses</p>"},"Type Definitions.html#/c:SDLSamplingRate.h@T@SDLSamplingRate":{"name":"SDLSamplingRate","abstract":"<p>Describes different sampling rates for PerformAudioPassThru and AudioPassThruCapabilities</p>"},"Type Definitions.html#/c:SDLScreenManager.h@T@SDLScreenManagerUpdateCompletionHandler":{"name":"SDLScreenManagerUpdateCompletionHandler","abstract":"<p>The handler run when the update has completed</p>"},"Type Definitions.html#/c:SDLScreenManager.h@T@SDLPreloadChoiceCompletionHandler":{"name":"SDLPreloadChoiceCompletionHandler","abstract":"<p>Return an error with userinfo [key: SDLChoiceCell, value: NSError] if choices failed to upload</p>"},"Type Definitions.html#/c:SDLSeatMemoryActionType.h@T@SDLSeatMemoryActionType":{"name":"SDLSeatMemoryActionType","abstract":"<p>List of possible actions on Seat Meomry</p>"},"Type Definitions.html#/c:SDLServiceUpdateReason.h@T@SDLServiceUpdateReason":{"name":"SDLServiceUpdateReason","abstract":"<p>Enumeration listing possible service update reasons.</p>"},"Type Definitions.html#/c:SDLSoftButtonType.h@T@SDLSoftButtonType":{"name":"SDLSoftButtonType","abstract":"<p>SoftButtonType (TEXT / IMAGE / BOTH). Used by SoftButton.</p>"},"Type Definitions.html#/c:SDLSpeechCapabilities.h@T@SDLSpeechCapabilities":{"name":"SDLSpeechCapabilities","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStaticIconName.h@T@SDLStaticIconName":{"name":"SDLStaticIconName","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLVideoStreamManagerState":{"name":"SDLVideoStreamManagerState","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLAudioStreamManagerState":{"name":"SDLAudioStreamManagerState","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLStreamingMediaManagerConstants.h@T@SDLAppState":{"name":"SDLAppState","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLSupportedSeat.h@T@SDLSupportedSeat":{"name":"SDLSupportedSeat","abstract":"<p>List possible seats that is a remote controllable seat.</p>"},"Type Definitions.html#/c:SDLSystemAction.h@T@SDLSystemAction":{"name":"SDLSystemAction","abstract":"<p>Enumeration that describes system actions that can be triggered. Used in SoftButton.</p>"},"Type Definitions.html#/c:SDLSystemCapabilityManager.h@T@SDLUpdateCapabilityHandler":{"name":"SDLUpdateCapabilityHandler","abstract":"<p>A completion handler called after a request for the capability type is returned from the remote system.</p>"},"Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType":{"name":"SDLSystemCapabilityType","abstract":"<p>The type of system capability to get more information on. Used in GetSystemCapability.</p>"},"Type Definitions.html#/c:SDLSystemContext.h@T@SDLSystemContext":{"name":"SDLSystemContext","abstract":"<p>Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR). Used in OnHMIStatus</p>"},"Type Definitions.html#/c:SDLTBTState.h@T@SDLTBTState":{"name":"SDLTBTState","abstract":"<p>The turn-by-turn state, used in OnTBTClientState.</p>"},"Type Definitions.html#/c:SDLTPMS.h@T@SDLTPMS":{"name":"SDLTPMS","abstract":"<p>An enum representing values of the tire pressure monitoring system</p>"},"Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit":{"name":"SDLTemperatureUnit","abstract":"<p>The unit of temperature to display. Used in Temperature.</p>"},"Type Definitions.html#/c:SDLTextAlignment.h@T@SDLTextAlignment":{"name":"SDLTextAlignment","abstract":"<p>The list of possible alignments of text in a field. May only work on some display types. used in Show.</p>"},"Type Definitions.html#/c:SDLTextFieldName.h@T@SDLTextFieldName":{"name":"SDLTextFieldName","abstract":"<p>Names of the text fields that can appear on a SDL display. Used in TextFieldName.</p>"},"Type Definitions.html#/c:SDLTimerMode.h@T@SDLTimerMode":{"name":"SDLTimerMode","abstract":"<p>The direction of a timer. Used in nothing.</p>"},"Type Definitions/SDLTouchIdentifier.html":{"name":"SDLTouchIdentifier","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLTouchManager.h@T@SDLTouchEventHandler":{"name":"SDLTouchEventHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLTouchType.h@T@SDLTouchType":{"name":"SDLTouchType","abstract":"<p>The type of a touch in a projection application. Used in OnTouchEvent.</p>"},"Type Definitions.html#/c:SDLTriggerSource.h@T@SDLTriggerSource":{"name":"SDLTriggerSource","abstract":"<p>Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons). Used in PerformInteractionResponse and OnCommand.</p>"},"Type Definitions.html#/c:SDLTurnSignal.h@T@SDLTurnSignal":{"name":"SDLTurnSignal","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode":{"name":"SDLUpdateMode","abstract":"<p>Specifies what function should be performed on the media clock/counter. Used in SetMediaClockTimer.</p>"},"Type Definitions.html#/c:SDLVehicleDataActiveStatus.h@T@SDLVehicleDataActiveStatus":{"name":"SDLVehicleDataActiveStatus","abstract":"<p>Vehicle Data Activity Status. Used in nothing.</p>"},"Type Definitions.html#/c:SDLVehicleDataEventStatus.h@T@SDLVehicleDataEventStatus":{"name":"SDLVehicleDataEventStatus","abstract":"<p>Reflects the status of a vehicle data event; e.g. a seat belt event status. Used in retrieving vehicle data.</p>"},"Type Definitions.html#/c:SDLVehicleDataNotificationStatus.h@T@SDLVehicleDataNotificationStatus":{"name":"SDLVehicleDataNotificationStatus","abstract":"<p>Reflects the status of a vehicle data notification. Used in ECallInfo</p>"},"Type Definitions.html#/c:SDLVehicleDataResultCode.h@T@SDLVehicleDataResultCode":{"name":"SDLVehicleDataResultCode","abstract":"<p>Vehicle Data Result Code. Used in DIDResult.</p>"},"Type Definitions.html#/c:SDLVehicleDataStatus.h@T@SDLVehicleDataStatus":{"name":"SDLVehicleDataStatus","abstract":"<p>Reflects the status of a binary vehicle data item. Used in MyKey.</p>"},"Type Definitions.html#/c:SDLVehicleDataType.h@T@SDLVehicleDataType":{"name":"SDLVehicleDataType","abstract":"<p>Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData. Used in VehicleDataResult</p>"},"Type Definitions.html#/c:SDLVentilationMode.h@T@SDLVentilationMode":{"name":"SDLVentilationMode","abstract":"<p>The ventilation mode. Used in ClimateControlCapabilities</p>"},"Type Definitions.html#/c:SDLVideoStreamingCodec.h@T@SDLVideoStreamingCodec":{"name":"SDLVideoStreamingCodec","abstract":"<p>Enum for each type of video streaming codec. Used in VideoStreamingFormat.</p>"},"Type Definitions.html#/c:SDLVideoStreamingProtocol.h@T@SDLVideoStreamingProtocol":{"name":"SDLVideoStreamingProtocol","abstract":"<p>Enum for each type of video streaming protocol, used in VideoStreamingFormat</p>"},"Type Definitions.html#/c:SDLVideoStreamingState.h@T@SDLVideoStreamingState":{"name":"SDLVideoStreamingState","abstract":"<p>Enum for each type of video streaming protocol, used in VideoStreamingFormat</p>"},"Type Definitions.html#/c:SDLVoiceCommand.h@T@SDLVoiceCommandSelectionHandler":{"name":"SDLVoiceCommandSelectionHandler","abstract":"<p>Undocumented</p>"},"Type Definitions.html#/c:SDLVrCapabilities.h@T@SDLVRCapabilities":{"name":"SDLVRCapabilities","abstract":"<p>The VR capabilities of the connected SDL platform. Used in RegisterAppInterfaceResponse.</p>"},"Type Definitions.html#/c:SDLWarningLightStatus.h@T@SDLWarningLightStatus":{"name":"SDLWarningLightStatus","abstract":"<p>Reflects the status of a cluster instrument warning light. Used in TireStatus</p>"},"Type Definitions.html#/c:SDLWayPointType.h@T@SDLWayPointType":{"name":"SDLWayPointType","abstract":"<p>The type of a navigation waypoint. Used in GetWayPoints.</p>"},"Type Definitions.html#/c:SDLWiperStatus.h@T@SDLWiperStatus":{"name":"SDLWiperStatus","abstract":"<p>The status of the windshield wipers. Used in retrieving vehicle data.</p>"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveSingleTapForView:atPoint:":{"name":"-touchManager:didReceiveSingleTapForView:atPoint:","abstract":"<p>A single tap was received</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveDoubleTapForView:atPoint:":{"name":"-touchManager:didReceiveDoubleTapForView:atPoint:","abstract":"<p>A double tap was received</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidStartInView:atPoint:":{"name":"-touchManager:panningDidStartInView:atPoint:","abstract":"<p>Panning started</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePanningFromPoint:toPoint:":{"name":"-touchManager:didReceivePanningFromPoint:toPoint:","abstract":"<p>Panning moved between points</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidEndInView:atPoint:":{"name":"-touchManager:panningDidEndInView:atPoint:","abstract":"<p>Panning ended</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningCanceledAtPoint:":{"name":"-touchManager:panningCanceledAtPoint:","abstract":"<p>Panning canceled</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidStartInView:atCenterPoint:":{"name":"-touchManager:pinchDidStartInView:atCenterPoint:","abstract":"<p>Pinch did start</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchAtCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchAtCenterPoint:withScale:","abstract":"<p>@abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchInView:atCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchInView:atCenterPoint:withScale:","abstract":"<p>Pinch moved and changed scale</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidEndInView:atCenterPoint:":{"name":"-touchManager:pinchDidEndInView:atCenterPoint:","abstract":"<p>Pinch did end</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchCanceledAtCenterPoint:":{"name":"-touchManager:pinchCanceledAtCenterPoint:","abstract":"<p>Pinch canceled</p>","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLStreamingMediaManagerDataSource.html#/c:objc(pl)SDLStreamingMediaManagerDataSource(im)preferredVideoFormatOrderFromHeadUnitPreferredOrder:":{"name":"-preferredVideoFormatOrderFromHeadUnitPreferredOrder:","abstract":"<p>Implement to return a different preferred order of attempted format usage than the head unit’s preferred order. In nearly all cases, it’s best to simply return the head unit’s preferred order, or not implement this method (which does the same thing).</p>","parent_name":"SDLStreamingMediaManagerDataSource"},"Protocols/SDLStreamingMediaManagerDataSource.html#/c:objc(pl)SDLStreamingMediaManagerDataSource(im)resolutionFromHeadUnitPreferredResolution:":{"name":"-resolutionFromHeadUnitPreferredResolution:","abstract":"<p>Implement to return a different resolution to use for video streaming than the head unit’s requested resolution. If you return a resolution that the head unit does not like, the manager will fail to start up. In nearly all cases, it’s best to simply return the head unit’s preferred order, or not implement this method (which does the same thing), and adapt your UI to the head unit’s preferred resolution instead.</p>","parent_name":"SDLStreamingMediaManagerDataSource"},"Protocols/SDLStreamingAudioManagerType.html#/c:objc(pl)SDLStreamingAudioManagerType(py)audioConnected":{"name":"audioConnected","abstract":"<p>Whether or not the audio byte stream is currently connected</p>","parent_name":"SDLStreamingAudioManagerType"},"Protocols/SDLStreamingAudioManagerType.html#/c:objc(pl)SDLStreamingAudioManagerType(im)sendAudioData:":{"name":"-sendAudioData:","abstract":"<p>Send audio data bytes over the audio byte stream</p>","parent_name":"SDLStreamingAudioManagerType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(py)appId":{"name":"appId","abstract":"<p>The app id of the app</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)initializeWithAppId:completionHandler:":{"name":"-initializeWithAppId:completionHandler:","abstract":"<p>Initialize the SDL security library with the app’s id and a completion handler</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)stop":{"name":"-stop","abstract":"<p>Stop the security library</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)runHandshakeWithClientData:error:":{"name":"-runHandshakeWithClientData:error:","abstract":"<p>Run the SSL/TLS handshake</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)encryptData:withError:":{"name":"-encryptData:withError:","abstract":"<p>Encrypt data using SSL/TLS</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)decryptData:withError:":{"name":"-decryptData:withError:","abstract":"<p>Decrypt data using SSL/TLS</p>","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(cm)availableMakes":{"name":"+availableMakes","abstract":"<p>The vehicle makes this security library covers</p>","parent_name":"SDLSecurityType"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)managerDidDisconnect":{"name":"-managerDidDisconnect","abstract":"<p>Called upon a disconnection from the remote system.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)hmiLevel:didChangeToLevel:":{"name":"-hmiLevel:didChangeToLevel:","abstract":"<p>Called when the HMI level state of this application changes on the remote system. This is equivalent to the application’s state changes in iOS such as foreground, background, or closed.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)audioStreamingState:didChangeToState:":{"name":"-audioStreamingState:didChangeToState:","abstract":"<p>Called when the audio streaming state of this application changes on the remote system. This refers to when streaming audio is audible to the user.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)systemContext:didChangeToContext:":{"name":"-systemContext:didChangeToContext:","abstract":"<p>Called when the system context of this application changes on the remote system. This refers to whether or not a user-initiated interaction is in progress, and if so, what it is.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)managerShouldUpdateLifecycleToLanguage:":{"name":"-managerShouldUpdateLifecycleToLanguage:","abstract":"<p>Called when the lifecycle manager detected a language mismatch. In case of a language mismatch the manager should change the apps registration by updating the lifecycle configuration to the specified language. If the app can support the specified language it should return an Object of SDLLifecycleConfigurationUpdate, otherwise it should return nil to indicate that the language is not supported.</p>","parent_name":"SDLManagerDelegate"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(cm)logger":{"name":"+logger","abstract":"<p>A simple convenience initializer to create the object. This <em>should not</em> start up the logger.</p>","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)setupLogger":{"name":"-setupLogger","abstract":"<p>A call to setup the logger in whatever manner it needs to do so.</p>","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)logWithLog:formattedLog:":{"name":"-logWithLog:formattedLog:","abstract":"<p>Log a particular log using the model and the formatted log message to the target.</p>","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)teardownLogger":{"name":"-teardownLogger","abstract":"<p>The log target should be torn down. e.g. file handles should be closed</p>","parent_name":"SDLLogTarget"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)userDidSubmitInput:withEvent:":{"name":"-userDidSubmitInput:withEvent:","abstract":"<p>The keyboard session completed with some input.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)keyboardDidAbortWithReason:":{"name":"-keyboardDidAbortWithReason:","abstract":"<p>The keyboard session aborted.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)customKeyboardConfiguration":{"name":"-customKeyboardConfiguration","abstract":"<p>Implement this in order to provide a custom keyboard configuration to just this keyboard. To apply default settings to all keyboards, see SDLScreenManager.keyboardConfiguration</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)updateAutocompleteWithInput:completionHandler:":{"name":"-updateAutocompleteWithInput:completionHandler:","abstract":"<p>Implement this if you wish to update the KeyboardProperties.autoCompleteText as the user updates their input. This is called upon a KEYPRESS event.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)updateCharacterSetWithInput:completionHandler:":{"name":"-updateCharacterSetWithInput:completionHandler:","abstract":"<p>Implement this if you wish to update the limitedCharacterSet as the user updates their input. This is called upon a KEYPRESS event.</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLKeyboardDelegate.html#/c:objc(pl)SDLKeyboardDelegate(im)keyboardDidSendEvent:text:":{"name":"-keyboardDidSendEvent:text:","abstract":"<p>Implement this to be notified of all events occurring on the keyboard</p>","parent_name":"SDLKeyboardDelegate"},"Protocols/SDLChoiceSetDelegate.html#/c:objc(pl)SDLChoiceSetDelegate(im)choiceSet:didSelectChoice:withSource:atRowIndex:":{"name":"-choiceSet:didSelectChoice:withSource:atRowIndex:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetDelegate"},"Protocols/SDLChoiceSetDelegate.html#/c:objc(pl)SDLChoiceSetDelegate(im)choiceSet:didReceiveError:":{"name":"-choiceSet:didReceiveError:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetDelegate"},"Protocols/SDLAudioStreamManagerDelegate.html#/c:objc(pl)SDLAudioStreamManagerDelegate(im)audioStreamManager:fileDidFinishPlaying:successfully:":{"name":"-audioStreamManager:fileDidFinishPlaying:successfully:","abstract":"<p>Called when a file from the SDLAudioStreamManager finishes playing</p>","parent_name":"SDLAudioStreamManagerDelegate"},"Protocols/SDLAudioStreamManagerDelegate.html#/c:objc(pl)SDLAudioStreamManagerDelegate(im)audioStreamManager:errorDidOccurForFile:error:":{"name":"-audioStreamManager:errorDidOccurForFile:error:","abstract":"<p>Called when a file from the SDLAudioStreamManager could not play</p>","parent_name":"SDLAudioStreamManagerDelegate"},"Protocols.html#/c:objc(pl)SDLInt":{"name":"SDLInt","abstract":"<p>A declaration that this NSNumber contains an NSInteger.</p>"},"Protocols.html#/c:objc(pl)SDLUInt":{"name":"SDLUInt","abstract":"<p>A declaration that this NSNumber contains an NSUInteger.</p>"},"Protocols.html#/c:objc(pl)SDLBool":{"name":"SDLBool","abstract":"<p>A declaration that this NSNumber contains a BOOL.</p>"},"Protocols.html#/c:objc(pl)SDLFloat":{"name":"SDLFloat","abstract":"<p>A declaration that this NSNumber contains a float.</p>"},"Protocols/SDLAudioStreamManagerDelegate.html":{"name":"SDLAudioStreamManagerDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLChoiceSetDelegate.html":{"name":"SDLChoiceSetDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLKeyboardDelegate.html":{"name":"SDLKeyboardDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLLogTarget.html":{"name":"SDLLogTarget","abstract":"<p>A protocol describing a place logs from SDLLogManager are logged to</p>"},"Protocols/SDLManagerDelegate.html":{"name":"SDLManagerDelegate","abstract":"<p>Undocumented</p>"},"Protocols/SDLSecurityType.html":{"name":"SDLSecurityType","abstract":"<p>A protocol used by SDL Security libraries.</p>"},"Protocols/SDLStreamingAudioManagerType.html":{"name":"SDLStreamingAudioManagerType","abstract":"<p>Undocumented</p>"},"Protocols/SDLStreamingMediaManagerDataSource.html":{"name":"SDLStreamingMediaManagerDataSource","abstract":"<p>Undocumented</p>"},"Protocols/SDLTouchManagerDelegate.html":{"name":"SDLTouchManagerDelegate","abstract":"<p>Undocumented</p>"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagNone":{"name":"SDLStreamingEncryptionFlagNone","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagAuthenticateOnly":{"name":"SDLStreamingEncryptionFlagAuthenticateOnly","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagAuthenticateAndEncrypt":{"name":"SDLStreamingEncryptionFlagAuthenticateAndEncrypt","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLCarWindowRenderingType.html#/c:@E@SDLCarWindowRenderingType@SDLCarWindowRenderingTypeLayer":{"name":"SDLCarWindowRenderingTypeLayer","abstract":"<p>Undocumented</p>","parent_name":"SDLCarWindowRenderingType"},"Enums/SDLCarWindowRenderingType.html#/c:@E@SDLCarWindowRenderingType@SDLCarWindowRenderingTypeViewAfterScreenUpdates":{"name":"SDLCarWindowRenderingTypeViewAfterScreenUpdates","abstract":"<p>Undocumented</p>","parent_name":"SDLCarWindowRenderingType"},"Enums/SDLCarWindowRenderingType.html#/c:@E@SDLCarWindowRenderingType@SDLCarWindowRenderingTypeViewBeforeScreenUpdates":{"name":"SDLCarWindowRenderingTypeViewBeforeScreenUpdates","abstract":"<p>Undocumented</p>","parent_name":"SDLCarWindowRenderingType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeRequest":{"name":"SDLRPCMessageTypeRequest","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeResponse":{"name":"SDLRPCMessageTypeResponse","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeNotification":{"name":"SDLRPCMessageTypeNotification","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessageType"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusAllowed":{"name":"SDLPermissionGroupStatusAllowed","abstract":"<p>Every RPC in the group is currently allowed.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusDisallowed":{"name":"SDLPermissionGroupStatusDisallowed","abstract":"<p>Every RPC in the group is currently disallowed.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusMixed":{"name":"SDLPermissionGroupStatusMixed","abstract":"<p>Some RPCs in the group are allowed and some disallowed.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusUnknown":{"name":"SDLPermissionGroupStatusUnknown","abstract":"<p>The current status of the group is unknown.</p>","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAllAllowed":{"name":"SDLPermissionGroupTypeAllAllowed","abstract":"<p>Be notified when all of the RPC in the group are allowed, or, when they all stop being allowed in some sense, that is, when they were all allowed, and now they are not.</p>","parent_name":"SDLPermissionGroupType"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAny":{"name":"SDLPermissionGroupTypeAny","abstract":"<p>Be notified when any change in availability occurs among the group.</p>","parent_name":"SDLPermissionGroupType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeSimple":{"name":"SDLLogFormatTypeSimple","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFormatType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeDefault":{"name":"SDLLogFormatTypeDefault","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFormatType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeDetailed":{"name":"SDLLogFormatTypeDetailed","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFormatType"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelDefault":{"name":"SDLLogLevelDefault","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelOff":{"name":"SDLLogLevelOff","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelError":{"name":"SDLLogLevelError","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelWarning":{"name":"SDLLogLevelWarning","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelDebug":{"name":"SDLLogLevelDebug","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelVerbose":{"name":"SDLLogLevelVerbose","abstract":"<p>Undocumented</p>","parent_name":"SDLLogLevel"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagError":{"name":"SDLLogFlagError","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagWarning":{"name":"SDLLogFlagWarning","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagDebug":{"name":"SDLLogFlagDebug","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagVerbose":{"name":"SDLLogFlagVerbose","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFlag"},"Enums/SDLLogBytesDirection.html#/c:@E@SDLLogBytesDirection@SDLLogBytesDirectionTransmit":{"name":"SDLLogBytesDirectionTransmit","abstract":"<p>Undocumented</p>","parent_name":"SDLLogBytesDirection"},"Enums/SDLLogBytesDirection.html#/c:@E@SDLLogBytesDirection@SDLLogBytesDirectionReceive":{"name":"SDLLogBytesDirectionReceive","abstract":"<p>Undocumented</p>","parent_name":"SDLLogBytesDirection"},"Enums/SDLRPCStoreError.html#/c:@E@SDLRPCStoreError@SDLRPCStoreErrorGetInvalidObject":{"name":"SDLRPCStoreErrorGetInvalidObject","abstract":"<p>In dictionary stored value with unexpected type</p>","parent_name":"SDLRPCStoreError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorUnknown":{"name":"SDLTransportErrorUnknown","abstract":"<p>Connection cannot be established due to a reason not listed here.</p>","parent_name":"SDLTransportError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorConnectionRefused":{"name":"SDLTransportErrorConnectionRefused","abstract":"<p>TCP connection is refused.","parent_name":"SDLTransportError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorConnectionTimedOut":{"name":"SDLTransportErrorConnectionTimedOut","abstract":"<p>TCP connection cannot be established within given time.","parent_name":"SDLTransportError"},"Enums/SDLTransportError.html#/c:@E@SDLTransportError@SDLTransportErrorNetworkDown":{"name":"SDLTransportErrorNetworkDown","abstract":"<p>TCP connection cannot be established since network is down.","parent_name":"SDLTransportError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorPendingPresentationDeleted":{"name":"SDLChoiceSetManagerErrorPendingPresentationDeleted","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorDeletionFailed":{"name":"SDLChoiceSetManagerErrorDeletionFailed","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorUploadFailed":{"name":"SDLChoiceSetManagerErrorUploadFailed","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLChoiceSetManagerError.html#/c:@E@SDLChoiceSetManagerError@SDLChoiceSetManagerErrorFailedToCreateMenuItems":{"name":"SDLChoiceSetManagerErrorFailedToCreateMenuItems","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetManagerError"},"Enums/SDLMenuManagerError.html#/c:@E@SDLMenuManagerError@SDLMenuManagerErrorRPCsFailed":{"name":"SDLMenuManagerErrorRPCsFailed","abstract":"<p>Undocumented</p>","parent_name":"SDLMenuManagerError"},"Enums/SDLSoftButtonManagerError.html#/c:@E@SDLSoftButtonManagerError@SDLSoftButtonManagerErrorPendingUpdateSuperseded":{"name":"SDLSoftButtonManagerErrorPendingUpdateSuperseded","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButtonManagerError"},"Enums/SDLTextAndGraphicManagerError.html#/c:@E@SDLTextAndGraphicManagerError@SDLTextAndGraphicManagerErrorPendingUpdateSuperseded":{"name":"SDLTextAndGraphicManagerErrorPendingUpdateSuperseded","abstract":"<p>Undocumented</p>","parent_name":"SDLTextAndGraphicManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorCannotOverwrite":{"name":"SDLFileManagerErrorCannotOverwrite","abstract":"<p>A file attempted to send, but a file with that name already exists on the remote head unit, and the file was not configured to overwrite.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorNoKnownFile":{"name":"SDLFileManagerErrorNoKnownFile","abstract":"<p>A file was attempted to be accessed but it does not exist.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToStart":{"name":"SDLFileManagerErrorUnableToStart","abstract":"<p>The file manager attempted to start but encountered an error.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToUpload":{"name":"SDLFileManagerErrorUnableToUpload","abstract":"<p>The file manager was unable to send this file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorFileDoesNotExist":{"name":"SDLFileManagerErrorFileDoesNotExist","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerUploadCanceled":{"name":"SDLFileManagerUploadCanceled","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerMultipleFileUploadTasksFailed":{"name":"SDLFileManagerMultipleFileUploadTasksFailed","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerMultipleFileDeleteTasksFailed":{"name":"SDLFileManagerMultipleFileDeleteTasksFailed","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorFileDataMissing":{"name":"SDLFileManagerErrorFileDataMissing","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorStaticIcon":{"name":"SDLFileManagerErrorStaticIcon","abstract":"<p>The file manager could not find the local file.</p>","parent_name":"SDLFileManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRPCRequestFailed":{"name":"SDLManagerErrorRPCRequestFailed","abstract":"<p>An RPC request failed to send.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotConnected":{"name":"SDLManagerErrorNotConnected","abstract":"<p>Some action was attempted that requires a connection to the remote head unit.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotReady":{"name":"SDLManagerErrorNotReady","abstract":"<p>Some action was attempted before the ready state was reached.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorUnknownRemoteError":{"name":"SDLManagerErrorUnknownRemoteError","abstract":"<p>The remote system encountered an unknown error.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorManagersFailedToStart":{"name":"SDLManagerErrorManagersFailedToStart","abstract":"<p>One or more of the sub-managers failed to start.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationFailed":{"name":"SDLManagerErrorRegistrationFailed","abstract":"<p>Registering with the remote system failed.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationSuccessWithWarning":{"name":"SDLManagerErrorRegistrationSuccessWithWarning","abstract":"<p>Registering with the remote system was successful, but had a warning.</p>","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorCancelled":{"name":"SDLManagerErrorCancelled","abstract":"<p>Request operations were cancelled before they could be sent</p>","parent_name":"SDLManagerError"},"Enums/SDLChoiceSetLayout.html#/c:@E@SDLChoiceSetLayout@SDLChoiceSetLayoutList":{"name":"SDLChoiceSetLayoutList","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetLayout"},"Enums/SDLChoiceSetLayout.html#/c:@E@SDLChoiceSetLayout@SDLChoiceSetLayoutTiles":{"name":"SDLChoiceSetLayoutTiles","abstract":"<p>Undocumented</p>","parent_name":"SDLChoiceSetLayout"},"Enums/SDLAudioStreamManagerError.html#/c:@E@SDLAudioStreamManagerError@SDLAudioStreamManagerErrorNotConnected":{"name":"SDLAudioStreamManagerErrorNotConnected","abstract":"<p>Undocumented</p>","parent_name":"SDLAudioStreamManagerError"},"Enums/SDLAudioStreamManagerError.html#/c:@E@SDLAudioStreamManagerError@SDLAudioStreamManagerErrorNoQueuedAudio":{"name":"SDLAudioStreamManagerErrorNoQueuedAudio","abstract":"<p>Undocumented</p>","parent_name":"SDLAudioStreamManagerError"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatPNG":{"name":"SDLArtworkImageFormatPNG","abstract":"<p>Undocumented</p>","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatJPG":{"name":"SDLArtworkImageFormatJPG","abstract":"<p>Undocumented</p>","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html":{"name":"SDLArtworkImageFormat","abstract":"<p>Undocumented</p>"},"Enums/SDLAudioStreamManagerError.html":{"name":"SDLAudioStreamManagerError","abstract":"<p>Undocumented</p>"},"Enums/SDLChoiceSetLayout.html":{"name":"SDLChoiceSetLayout","abstract":"<p>Undocumented</p>"},"Enums/SDLManagerError.html":{"name":"SDLManagerError","abstract":"<p>Errors associated with the SDLManager class.</p>"},"Enums/SDLFileManagerError.html":{"name":"SDLFileManagerError","abstract":"<p>Errors associated with the SDLFileManager class.</p>"},"Enums/SDLTextAndGraphicManagerError.html":{"name":"SDLTextAndGraphicManagerError","abstract":"<p>Errors associated with the ScreenManager class</p>"},"Enums/SDLSoftButtonManagerError.html":{"name":"SDLSoftButtonManagerError","abstract":"<p>Errors associated with the ScreenManager class</p>"},"Enums/SDLMenuManagerError.html":{"name":"SDLMenuManagerError","abstract":"<p>Errors associated with the ScreenManager class</p>"},"Enums/SDLChoiceSetManagerError.html":{"name":"SDLChoiceSetManagerError","abstract":"<p>Undocumented</p>"},"Enums/SDLTransportError.html":{"name":"SDLTransportError","abstract":"<p>Errors associated with transport.</p>"},"Enums/SDLRPCStoreError.html":{"name":"SDLRPCStoreError","abstract":"<p>Errors associated with store.</p>"},"Enums/SDLLogBytesDirection.html":{"name":"SDLLogBytesDirection","abstract":"<p>Undocumented</p>"},"Enums/SDLLogFlag.html":{"name":"SDLLogFlag","abstract":"<p>Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use.</p>"},"Enums/SDLLogLevel.html":{"name":"SDLLogLevel","abstract":"<p>An enum describing a level of logging.</p>"},"Enums/SDLLogFormatType.html":{"name":"SDLLogFormatType","abstract":"<p>The output format of logs; how they will appear when printed out into a string.</p>"},"Enums/SDLPermissionGroupType.html":{"name":"SDLPermissionGroupType","abstract":"<p>A permission group type which will be used to tell the system what type of changes you want to be notified about for the group.</p>"},"Enums/SDLPermissionGroupStatus.html":{"name":"SDLPermissionGroupStatus","abstract":"<p>The status of the group of RPCs permissions.</p>"},"Enums/SDLRPCMessageType.html":{"name":"SDLRPCMessageType","abstract":"<p>The type of RPC message</p>"},"Enums/SDLCarWindowRenderingType.html":{"name":"SDLCarWindowRenderingType","abstract":"<p>The type of rendering that CarWindow will perform. Depending on your app, you may need to try different ones for best performance</p>"},"Enums/SDLStreamingEncryptionFlag.html":{"name":"SDLStreamingEncryptionFlag","abstract":"<p>A flag determining how video and audio streaming should be encrypted</p>"},"Constants.html#/c:@SDLAmbientLightStatusNight":{"name":"SDLAmbientLightStatusNight","abstract":"<p>Represents a <q>night</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight1":{"name":"SDLAmbientLightStatusTwilight1","abstract":"<p>Represents a <q>twilight 1</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight2":{"name":"SDLAmbientLightStatusTwilight2","abstract":"<p>Represents a <q>twilight 2</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight3":{"name":"SDLAmbientLightStatusTwilight3","abstract":"<p>Represents a <q>twilight 3</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusTwilight4":{"name":"SDLAmbientLightStatusTwilight4","abstract":"<p>Represents a <q>twilight 4</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusDay":{"name":"SDLAmbientLightStatusDay","abstract":"<p>Represents a <q>day</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusUnknown":{"name":"SDLAmbientLightStatusUnknown","abstract":"<p>Represents an <q>unknown</q> ambient light status</p>"},"Constants.html#/c:@SDLAmbientLightStatusInvalid":{"name":"SDLAmbientLightStatusInvalid","abstract":"<p>Represents a <q>invalid</q> ambient light status</p>"},"Constants.html#/c:@SDLAppHMITypeDefault":{"name":"SDLAppHMITypeDefault","abstract":"<p>The App will have default rights.</p>"},"Constants.html#/c:@SDLAppHMITypeCommunication":{"name":"SDLAppHMITypeCommunication","abstract":"<p>Communication type of App</p>"},"Constants.html#/c:@SDLAppHMITypeMedia":{"name":"SDLAppHMITypeMedia","abstract":"<p>App dealing with Media</p>"},"Constants.html#/c:@SDLAppHMITypeMessaging":{"name":"SDLAppHMITypeMessaging","abstract":"<p>Messaging App</p>"},"Constants.html#/c:@SDLAppHMITypeNavigation":{"name":"SDLAppHMITypeNavigation","abstract":"<p>Navigation App</p>"},"Constants.html#/c:@SDLAppHMITypeInformation":{"name":"SDLAppHMITypeInformation","abstract":"<p>Information App</p>"},"Constants.html#/c:@SDLAppHMITypeSocial":{"name":"SDLAppHMITypeSocial","abstract":"<p>App dealing with social media</p>"},"Constants.html#/c:@SDLAppHMITypeProjection":{"name":"SDLAppHMITypeProjection","abstract":"<p>App dealing with Mobile Projection applications</p>"},"Constants.html#/c:@SDLAppHMITypeBackgroundProcess":{"name":"SDLAppHMITypeBackgroundProcess","abstract":"<p>App designed for use in the background</p>"},"Constants.html#/c:@SDLAppHMITypeTesting":{"name":"SDLAppHMITypeTesting","abstract":"<p>App only for Testing purposes</p>"},"Constants.html#/c:@SDLAppHMITypeSystem":{"name":"SDLAppHMITypeSystem","abstract":"<p>System App</p>"},"Constants.html#/c:@SDLAppHMITypeRemoteControl":{"name":"SDLAppHMITypeRemoteControl","abstract":"<p>Remote control</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonIgnitionOff":{"name":"SDLAppInterfaceUnregisteredReasonIgnitionOff","abstract":"<p>Vehicle ignition turned off.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonBluetoothOff":{"name":"SDLAppInterfaceUnregisteredReasonBluetoothOff","abstract":"<p>Bluetooth was turned off, causing termination of a necessary Bluetooth connection.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUSBDisconnected":{"name":"SDLAppInterfaceUnregisteredReasonUSBDisconnected","abstract":"<p>USB was disconnected, causing termination of a necessary iAP connection.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel":{"name":"SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel","abstract":"<p>Application attempted SmartDeviceLink RPC request while HMILevel = NONE. App must have HMILevel other than NONE to issue RPC requests or get notifications or RPC responses.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonTooManyRequests":{"name":"SDLAppInterfaceUnregisteredReasonTooManyRequests","abstract":"<p>Either too many – or too many per unit of time – requests were made by the application.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonDriverDistractionViolation":{"name":"SDLAppInterfaceUnregisteredReasonDriverDistractionViolation","abstract":"<p>The application has issued requests which cause driver distraction rules to be violated.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonLanguageChange":{"name":"SDLAppInterfaceUnregisteredReasonLanguageChange","abstract":"<p>The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonMasterReset":{"name":"SDLAppInterfaceUnregisteredReasonMasterReset","abstract":"<p>The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonFactoryDefaults":{"name":"SDLAppInterfaceUnregisteredReasonFactoryDefaults","abstract":"<p>The user restored settings to FACTORY DEFAULTS on the SDL platform.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonAppUnauthorized":{"name":"SDLAppInterfaceUnregisteredReasonAppUnauthorized","abstract":"<p>The app is not being authorized to be connected to SDL.</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonProtocolViolation":{"name":"SDLAppInterfaceUnregisteredReasonProtocolViolation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource":{"name":"SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAppServiceTypeMedia":{"name":"SDLAppServiceTypeMedia","abstract":"<p>The app will have a service type of media.</p>"},"Constants.html#/c:@SDLAppServiceTypeWeather":{"name":"SDLAppServiceTypeWeather","abstract":"<p>The app will have a service type of weather.</p>"},"Constants.html#/c:@SDLAppServiceTypeNavigation":{"name":"SDLAppServiceTypeNavigation","abstract":"<p>The app will have a service type of navigation.</p>"},"Constants.html#/c:@SDLErrorDomainAudioStreamManager":{"name":"SDLErrorDomainAudioStreamManager","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamingIndicatorPlayPause":{"name":"SDLAudioStreamingIndicatorPlayPause","abstract":"<p>Default playback indicator."},"Constants.html#/c:@SDLAudioStreamingIndicatorPlay":{"name":"SDLAudioStreamingIndicatorPlay","abstract":"<p>Indicates that a button press of the Play/Pause button starts the audio playback.</p>"},"Constants.html#/c:@SDLAudioStreamingIndicatorPause":{"name":"SDLAudioStreamingIndicatorPause","abstract":"<p>Indicates that a button press of the Play/Pause button pauses the current audio playback.</p>"},"Constants.html#/c:@SDLAudioStreamingIndicatorStop":{"name":"SDLAudioStreamingIndicatorStop","abstract":"<p>Indicates that a button press of the Play/Pause button stops the current audio playback.</p>"},"Constants.html#/c:@SDLAudioStreamingStateAudible":{"name":"SDLAudioStreamingStateAudible","abstract":"<p>Currently streaming audio, if any, is audible to user.</p>"},"Constants.html#/c:@SDLAudioStreamingStateAttenuated":{"name":"SDLAudioStreamingStateAttenuated","abstract":"<p>Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume.</p>"},"Constants.html#/c:@SDLAudioStreamingStateNotAudible":{"name":"SDLAudioStreamingStateNotAudible","abstract":"<p>Currently streaming audio, if any, is not audible to user. made via VR session.</p>"},"Constants.html#/c:@SDLAudioTypePCM":{"name":"SDLAudioTypePCM","abstract":"<p>PCM raw audio</p>"},"Constants.html#/c:@SDLBitsPerSample8Bit":{"name":"SDLBitsPerSample8Bit","abstract":"<p>8 bits per sample</p>"},"Constants.html#/c:@SDLBitsPerSample16Bit":{"name":"SDLBitsPerSample16Bit","abstract":"<p>16 bits per sample</p>"},"Constants.html#/c:@SDLButtonEventModeButtonUp":{"name":"SDLButtonEventModeButtonUp","abstract":"<p>The button was released</p>"},"Constants.html#/c:@SDLButtonEventModeButtonDown":{"name":"SDLButtonEventModeButtonDown","abstract":"<p>The button was depressed</p>"},"Constants.html#/c:@SDLButtonNameOk":{"name":"SDLButtonNameOk","abstract":"<p>Represents the button usually labeled <q>OK</q>. A typical use of this button is for the user to press it to make a selection. Prior to SDL Core 5.0 (iOS Proxy v.6.1), Ok was used for both <q>OK</q> buttons <em>AND</em> PlayPause. In 5.0, PlayPause was introduced to reduce confusion, and you should use the one you intend for your use case (usually PlayPause). Until the next proxy breaking change, however, subscribing to this button name will continue to subscribe you to PlayPause so that your code does not break. That means that if you subscribe to both Ok and PlayPause, you will receive duplicate notifications.</p>"},"Constants.html#/c:@SDLButtonNamePlayPause":{"name":"SDLButtonNamePlayPause","abstract":"<p>Represents the play/pause button for media apps. Replaces <q>OK</q> on sub-5.0 head units, compliments it on 5.0 head units and later.</p>"},"Constants.html#/c:@SDLButtonNameSeekLeft":{"name":"SDLButtonNameSeekLeft","abstract":"<p>Represents the seek-left button. A typical use of this button is for the user to scroll to the left through menu choices one menu item per press.</p>"},"Constants.html#/c:@SDLButtonNameSeekRight":{"name":"SDLButtonNameSeekRight","abstract":"<p>Represents the seek-right button. A typical use of this button is for the user to scroll to the right through menu choices one menu item per press.</p>"},"Constants.html#/c:@SDLButtonNameTuneUp":{"name":"SDLButtonNameTuneUp","abstract":"<p>Represents a turn of the tuner knob in the clockwise direction one tick.</p>"},"Constants.html#/c:@SDLButtonNameTuneDown":{"name":"SDLButtonNameTuneDown","abstract":"<p>Represents a turn of the tuner knob in the counter-clockwise direction one tick.</p>"},"Constants.html#/c:@SDLButtonNamePreset0":{"name":"SDLButtonNamePreset0","abstract":"<p>Represents the preset 0 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset1":{"name":"SDLButtonNamePreset1","abstract":"<p>Represents the preset 1 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset2":{"name":"SDLButtonNamePreset2","abstract":"<p>Represents the preset 2 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset3":{"name":"SDLButtonNamePreset3","abstract":"<p>Represents the preset 3 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset4":{"name":"SDLButtonNamePreset4","abstract":"<p>Represents the preset 4 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset5":{"name":"SDLButtonNamePreset5","abstract":"<p>Represents the preset 5 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset6":{"name":"SDLButtonNamePreset6","abstract":"<p>Represents the preset 6 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset7":{"name":"SDLButtonNamePreset7","abstract":"<p>Represents the preset 7 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset8":{"name":"SDLButtonNamePreset8","abstract":"<p>Represents the preset 8 button.</p>"},"Constants.html#/c:@SDLButtonNamePreset9":{"name":"SDLButtonNamePreset9","abstract":"<p>Represents the preset 9 button.</p>"},"Constants.html#/c:@SDLButtonNameCustomButton":{"name":"SDLButtonNameCustomButton","abstract":"<p>Represents the Custom button.</p>"},"Constants.html#/c:@SDLButtonNameSearch":{"name":"SDLButtonNameSearch","abstract":"<p>Represents the SEARCH button.</p>"},"Constants.html#/c:@SDLButtonNameACMax":{"name":"SDLButtonNameACMax","abstract":"<p>Represents AC max button *</p>"},"Constants.html#/c:@SDLButtonNameAC":{"name":"SDLButtonNameAC","abstract":"<p>Represents AC button *</p>"},"Constants.html#/c:@SDLButtonNameRecirculate":{"name":"SDLButtonNameRecirculate","abstract":"<p>Represents a Recirculate button</p>"},"Constants.html#/c:@SDLButtonNameFanUp":{"name":"SDLButtonNameFanUp","abstract":"<p>Represents a Fan up button</p>"},"Constants.html#/c:@SDLButtonNameFanDown":{"name":"SDLButtonNameFanDown","abstract":"<p>Represents a fan down button</p>"},"Constants.html#/c:@SDLButtonNameTempUp":{"name":"SDLButtonNameTempUp","abstract":"<p>Represents a temperature up button</p>"},"Constants.html#/c:@SDLButtonNameTempDown":{"name":"SDLButtonNameTempDown","abstract":"<p>Represents a temperature down button</p>"},"Constants.html#/c:@SDLButtonNameDefrostMax":{"name":"SDLButtonNameDefrostMax","abstract":"<p>Represents a Defrost max button.</p>"},"Constants.html#/c:@SDLButtonNameDefrost":{"name":"SDLButtonNameDefrost","abstract":"<p>Represents a Defrost button.</p>"},"Constants.html#/c:@SDLButtonNameDefrostRear":{"name":"SDLButtonNameDefrostRear","abstract":"<p>Represents a Defrost rear button.</p>"},"Constants.html#/c:@SDLButtonNameUpperVent":{"name":"SDLButtonNameUpperVent","abstract":"<p>Represents a Upper Vent button.</p>"},"Constants.html#/c:@SDLButtonNameLowerVent":{"name":"SDLButtonNameLowerVent","abstract":"<p>Represents a Lower vent button.</p>"},"Constants.html#/c:@SDLButtonNameVolumeUp":{"name":"SDLButtonNameVolumeUp","abstract":"<p>Represents a volume up button.</p>"},"Constants.html#/c:@SDLButtonNameVolumeDown":{"name":"SDLButtonNameVolumeDown","abstract":"<p>Represents a volume down button.</p>"},"Constants.html#/c:@SDLButtonNameEject":{"name":"SDLButtonNameEject","abstract":"<p>Represents a Eject Button.</p>"},"Constants.html#/c:@SDLButtonNameSource":{"name":"SDLButtonNameSource","abstract":"<p>Represents a Source button.</p>"},"Constants.html#/c:@SDLButtonNameShuffle":{"name":"SDLButtonNameShuffle","abstract":"<p>Represents a SHUFFLE button.</p>"},"Constants.html#/c:@SDLButtonNameRepeat":{"name":"SDLButtonNameRepeat","abstract":"<p>Represents a Repeat button.</p>"},"Constants.html#/c:@SDLButtonPressModeLong":{"name":"SDLButtonPressModeLong","abstract":"<p>A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary.</p>"},"Constants.html#/c:@SDLButtonPressModeShort":{"name":"SDLButtonPressModeShort","abstract":"<p>A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary.</p>"},"Constants.html#/c:@SDLCarModeStatusNormal":{"name":"SDLCarModeStatusNormal","abstract":"<p>Provides carmode NORMAL to each module.</p>"},"Constants.html#/c:@SDLCarModeStatusFactory":{"name":"SDLCarModeStatusFactory","abstract":"<p>Provides carmode FACTORY to each module.</p>"},"Constants.html#/c:@SDLCarModeStatusTransport":{"name":"SDLCarModeStatusTransport","abstract":"<p>Provides carmode TRANSPORT to each module.</p>"},"Constants.html#/c:@SDLCarModeStatusCrash":{"name":"SDLCarModeStatusCrash","abstract":"<p>Provides carmode CRASH to each module.</p>"},"Constants.html#/c:@SDLCharacterSetType2":{"name":"SDLCharacterSetType2","abstract":"<p>Character Set Type 2</p>"},"Constants.html#/c:@SDLCharacterSetType5":{"name":"SDLCharacterSetType5","abstract":"<p>Character Set Type 5</p>"},"Constants.html#/c:@SDLCharacterSetCID1":{"name":"SDLCharacterSetCID1","abstract":"<p>Character Set CID1</p>"},"Constants.html#/c:@SDLCharacterSetCID2":{"name":"SDLCharacterSetCID2","abstract":"<p>Character Set CID2</p>"},"Constants.html#/c:@SDLCompassDirectionNorth":{"name":"SDLCompassDirectionNorth","abstract":"<p>Direction North</p>"},"Constants.html#/c:@SDLCompassDirectionNorthwest":{"name":"SDLCompassDirectionNorthwest","abstract":"<p>Direction Northwest</p>"},"Constants.html#/c:@SDLCompassDirectionWest":{"name":"SDLCompassDirectionWest","abstract":"<p>Direction West</p>"},"Constants.html#/c:@SDLCompassDirectionSouthwest":{"name":"SDLCompassDirectionSouthwest","abstract":"<p>Direction Southwest</p>"},"Constants.html#/c:@SDLCompassDirectionSouth":{"name":"SDLCompassDirectionSouth","abstract":"<p>Direction South</p>"},"Constants.html#/c:@SDLCompassDirectionSoutheast":{"name":"SDLCompassDirectionSoutheast","abstract":"<p>Direction Southeast</p>"},"Constants.html#/c:@SDLCompassDirectionEast":{"name":"SDLCompassDirectionEast","abstract":"<p>Direction East</p>"},"Constants.html#/c:@SDLCompassDirectionNortheast":{"name":"SDLCompassDirectionNortheast","abstract":"<p>Direction Northeast</p>"},"Constants.html#/c:@SDLComponentVolumeStatusUnknown":{"name":"SDLComponentVolumeStatusUnknown","abstract":"<p>Unknown SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusNormal":{"name":"SDLComponentVolumeStatusNormal","abstract":"<p>Normal SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusLow":{"name":"SDLComponentVolumeStatusLow","abstract":"<p>Low SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusFault":{"name":"SDLComponentVolumeStatusFault","abstract":"<p>Fault SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusAlert":{"name":"SDLComponentVolumeStatusAlert","abstract":"<p>Alert SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLComponentVolumeStatusNotSupported":{"name":"SDLComponentVolumeStatusNotSupported","abstract":"<p>Not supported SDLComponentVolumeStatus</p>"},"Constants.html#/c:@SDLDefrostZoneFront":{"name":"SDLDefrostZoneFront","abstract":"<p>A SDLDefrostZone with the value of <em>FRONT</em></p>"},"Constants.html#/c:@SDLDefrostZoneRear":{"name":"SDLDefrostZoneRear","abstract":"<p>A SDLDefrostZone with the value of <em>REAR</em></p>"},"Constants.html#/c:@SDLDefrostZoneAll":{"name":"SDLDefrostZoneAll","abstract":"<p>A SDLDefrostZone with the value of <em>All</em></p>"},"Constants.html#/c:@SDLDefrostZoneNone":{"name":"SDLDefrostZoneNone","abstract":"<p>A SDLDefrostZone with the value of <em>None</em></p>"},"Constants.html#/c:@SDLDeliveryModePrompt":{"name":"SDLDeliveryModePrompt","abstract":"<p>User is prompted on HMI</p>"},"Constants.html#/c:@SDLDeliveryModeDestination":{"name":"SDLDeliveryModeDestination","abstract":"<p>Set the location as destination without prompting the user</p>"},"Constants.html#/c:@SDLDeliveryModeQueue":{"name":"SDLDeliveryModeQueue","abstract":"<p>Adds the current location to navigation queue</p>"},"Constants.html#/c:@SDLDeviceLevelStatusZeroBars":{"name":"SDLDeviceLevelStatusZeroBars","abstract":"<p>Device battery level is zero bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusOneBar":{"name":"SDLDeviceLevelStatusOneBar","abstract":"<p>Device battery level is one bar</p>"},"Constants.html#/c:@SDLDeviceLevelStatusTwoBars":{"name":"SDLDeviceLevelStatusTwoBars","abstract":"<p>Device battery level is two bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusThreeBars":{"name":"SDLDeviceLevelStatusThreeBars","abstract":"<p>Device battery level is three bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusFourBars":{"name":"SDLDeviceLevelStatusFourBars","abstract":"<p>Device battery level is four bars</p>"},"Constants.html#/c:@SDLDeviceLevelStatusNotProvided":{"name":"SDLDeviceLevelStatusNotProvided","abstract":"<p>Device battery level is unknown</p>"},"Constants.html#/c:@SDLDimensionNoFix":{"name":"SDLDimensionNoFix","abstract":"<p>No GPS at all</p>"},"Constants.html#/c:@SDLDimension2D":{"name":"SDLDimension2D","abstract":"<p>Longitude and latitude of the GPS</p>"},"Constants.html#/c:@SDLDimension3D":{"name":"SDLDimension3D","abstract":"<p>Longitude and latitude and altitude of the GPS</p>"},"Constants.html#/c:@SDLDirectionLeft":{"name":"SDLDirectionLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDirectionRight":{"name":"SDLDirectionRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDisplayModeDay":{"name":"SDLDisplayModeDay","abstract":"<p>@abstract Display Mode : DAY</p>"},"Constants.html#/c:@SDLDisplayModeNight":{"name":"SDLDisplayModeNight","abstract":"<p>@abstract Display Mode : NIGHT.</p>"},"Constants.html#/c:@SDLDisplayModeAuto":{"name":"SDLDisplayModeAuto","abstract":"<p>@abstract Display Mode : AUTO.</p>"},"Constants.html#/c:@SDLDisplayTypeCID":{"name":"SDLDisplayTypeCID","abstract":"<p>This display type provides a 2-line x 20 character <q>dot matrix</q> display.</p>"},"Constants.html#/c:@SDLDisplayTypeType2":{"name":"SDLDisplayTypeType2","abstract":"<p>Display type 2</p>"},"Constants.html#/c:@SDLDisplayTypeType5":{"name":"SDLDisplayTypeType5","abstract":"<p>Display type 5</p>"},"Constants.html#/c:@SDLDisplayTypeNGN":{"name":"SDLDisplayTypeNGN","abstract":"<p>This display type provides an 8 inch touchscreen display.</p>"},"Constants.html#/c:@SDLDisplayTypeGen28DMA":{"name":"SDLDisplayTypeGen28DMA","abstract":"<p>Display type Gen 28 DMA</p>"},"Constants.html#/c:@SDLDisplayTypeGen26DMA":{"name":"SDLDisplayTypeGen26DMA","abstract":"<p>Display type Gen 26 DMA</p>"},"Constants.html#/c:@SDLDisplayTypeMFD3":{"name":"SDLDisplayTypeMFD3","abstract":"<p>Display type MFD3</p>"},"Constants.html#/c:@SDLDisplayTypeMFD4":{"name":"SDLDisplayTypeMFD4","abstract":"<p>Display type MFD4</p>"},"Constants.html#/c:@SDLDisplayTypeMFD5":{"name":"SDLDisplayTypeMFD5","abstract":"<p>Display type MFD5</p>"},"Constants.html#/c:@SDLDisplayTypeGen38Inch":{"name":"SDLDisplayTypeGen38Inch","abstract":"<p>Display type Gen 3 8-inch</p>"},"Constants.html#/c:@SDLDisplayTypeGeneric":{"name":"SDLDisplayTypeGeneric","abstract":"<p>Display type Generic</p>"},"Constants.html#/c:@SDLDistanceUnitMiles":{"name":"SDLDistanceUnitMiles","abstract":"<p>@abstract SDLDistanceUnit: <em>MILES</em></p>"},"Constants.html#/c:@SDLDistanceUnitKilometers":{"name":"SDLDistanceUnitKilometers","abstract":"<p>@abstract SDLDistanceUnit: <em>KILOMETERS</em></p>"},"Constants.html#/c:@SDLDriverDistractionStateOn":{"name":"SDLDriverDistractionStateOn","abstract":"<p>Driver distraction rules are in effect.</p>"},"Constants.html#/c:@SDLDriverDistractionStateOff":{"name":"SDLDriverDistractionStateOff","abstract":"<p>Driver distraction rules are NOT in effect.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusNormal":{"name":"SDLECallConfirmationStatusNormal","abstract":"<p>No E-Call signal triggered.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusInProgress":{"name":"SDLECallConfirmationStatusInProgress","abstract":"<p>An E-Call is being in progress.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusCancelled":{"name":"SDLECallConfirmationStatusCancelled","abstract":"<p>An E-Call was cancelled by the user.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusCompleted":{"name":"SDLECallConfirmationStatusCompleted","abstract":"<p>The E-Call sequence is completed.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusUnsuccessful":{"name":"SDLECallConfirmationStatusUnsuccessful","abstract":"<p>An E-Call could not be connected.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusConfiguredOff":{"name":"SDLECallConfirmationStatusConfiguredOff","abstract":"<p>E-Call is not configured on this vehicle.</p>"},"Constants.html#/c:@SDLECallConfirmationStatusCompleteDTMFTimeout":{"name":"SDLECallConfirmationStatusCompleteDTMFTimeout","abstract":"<p>E-Call is considered to be complete without Emergency Operator contact.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusClosed":{"name":"SDLElectronicParkBrakeStatusClosed","abstract":"<p>Parking brake actuators have been fully applied.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusTransition":{"name":"SDLElectronicParkBrakeStatusTransition","abstract":"<p>Parking brake actuators are transitioning to either Apply/Closed or Release/Open state.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusOpen":{"name":"SDLElectronicParkBrakeStatusOpen","abstract":"<p>Parking brake actuators are released.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusDriveActive":{"name":"SDLElectronicParkBrakeStatusDriveActive","abstract":"<p>When driver pulls the Electronic Parking Brake switch while driving <q>at speed</q>.</p>"},"Constants.html#/c:@SDLElectronicParkBrakeStatusFault":{"name":"SDLElectronicParkBrakeStatusFault","abstract":"<p>When system has a fault or is under maintenance.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeNoEvent":{"name":"SDLEmergencyEventTypeNoEvent","abstract":"<p>No emergency event has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeFrontal":{"name":"SDLEmergencyEventTypeFrontal","abstract":"<p>Frontal collision has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeSide":{"name":"SDLEmergencyEventTypeSide","abstract":"<p>Side collision has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeRear":{"name":"SDLEmergencyEventTypeRear","abstract":"<p>Rear collision has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeRollover":{"name":"SDLEmergencyEventTypeRollover","abstract":"<p>A rollover event has happened.</p>"},"Constants.html#/c:@SDLEmergencyEventTypeNotSupported":{"name":"SDLEmergencyEventTypeNotSupported","abstract":"<p>The signal is not supported</p>"},"Constants.html#/c:@SDLEmergencyEventTypeFault":{"name":"SDLEmergencyEventTypeFault","abstract":"<p>Emergency status cannot be determined</p>"},"Constants.html#/c:@SDLFileTypeBMP":{"name":"SDLFileTypeBMP","abstract":"<p>file type: Bitmap (BMP)</p>"},"Constants.html#/c:@SDLFileTypeJPEG":{"name":"SDLFileTypeJPEG","abstract":"<p>file type: JPEG</p>"},"Constants.html#/c:@SDLFileTypePNG":{"name":"SDLFileTypePNG","abstract":"<p>file type: PNG</p>"},"Constants.html#/c:@SDLFileTypeWAV":{"name":"SDLFileTypeWAV","abstract":"<p>file type: WAVE (WAV)</p>"},"Constants.html#/c:@SDLFileTypeMP3":{"name":"SDLFileTypeMP3","abstract":"<p>file type: MP3</p>"},"Constants.html#/c:@SDLFileTypeAAC":{"name":"SDLFileTypeAAC","abstract":"<p>file type: AAC</p>"},"Constants.html#/c:@SDLFileTypeBinary":{"name":"SDLFileTypeBinary","abstract":"<p>file type: BINARY</p>"},"Constants.html#/c:@SDLFileTypeJSON":{"name":"SDLFileTypeJSON","abstract":"<p>file type: JSON</p>"},"Constants.html#/c:@SDLFuelCutoffStatusTerminateFuel":{"name":"SDLFuelCutoffStatusTerminateFuel","abstract":"<p>Fuel is cut off</p>"},"Constants.html#/c:@SDLFuelCutoffStatusNormalOperation":{"name":"SDLFuelCutoffStatusNormalOperation","abstract":"<p>Fuel is not cut off</p>"},"Constants.html#/c:@SDLFuelCutoffStatusFault":{"name":"SDLFuelCutoffStatusFault","abstract":"<p>Status of the fuel pump cannot be determined</p>"},"Constants.html#/c:@SDLFuelTypeGasoline":{"name":"SDLFuelTypeGasoline","abstract":"<p>Fuel type: Gasoline</p>"},"Constants.html#/c:@SDLFuelTypeDiesel":{"name":"SDLFuelTypeDiesel","abstract":"<p>Fuel type: Diesel</p>"},"Constants.html#/c:@SDLFuelTypeCNG":{"name":"SDLFuelTypeCNG","abstract":"<p>Fuel type: CNG</p>"},"Constants.html#/c:@SDLFuelTypeLPG":{"name":"SDLFuelTypeLPG","abstract":"<p>Fuel type: LPG</p>"},"Constants.html#/c:@SDLFuelTypeHydrogen":{"name":"SDLFuelTypeHydrogen","abstract":"<p>Fuel type: Hydrogen</p>"},"Constants.html#/c:@SDLFuelTypeBattery":{"name":"SDLFuelTypeBattery","abstract":"<p>Fuel type: Battery</p>"},"Constants.html#/c:@SDLGlobalPropertyHelpPrompt":{"name":"SDLGlobalPropertyHelpPrompt","abstract":"<p>The help prompt to be spoken if the user needs assistance during a user-initiated interaction.</p>"},"Constants.html#/c:@SDLGlobalPropertyTimeoutPrompt":{"name":"SDLGlobalPropertyTimeoutPrompt","abstract":"<p>The prompt to be spoken if the user-initiated interaction times out waiting for the user’s verbal input.</p>"},"Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpTitle":{"name":"SDLGlobalPropertyVoiceRecognitionHelpTitle","abstract":"<p>The title of the menu displayed when the user requests help via voice recognition.</p>"},"Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpItems":{"name":"SDLGlobalPropertyVoiceRecognitionHelpItems","abstract":"<p>Items of the menu displayed when the user requests help via voice recognition.</p>"},"Constants.html#/c:@SDLGlobalPropertyMenuName":{"name":"SDLGlobalPropertyMenuName","abstract":"<p>The name of the menu button displayed in templates</p>"},"Constants.html#/c:@SDLGlobalPropertyMenuIcon":{"name":"SDLGlobalPropertyMenuIcon","abstract":"<p>An icon on the menu button displayed in templates</p>"},"Constants.html#/c:@SDLGlobalPropertyKeyboard":{"name":"SDLGlobalPropertyKeyboard","abstract":"<p>Property related to the keyboard</p>"},"Constants.html#/c:@SDLHMILevelFull":{"name":"SDLHMILevelFull","abstract":"<p>The application has full use of the SDL HMI. The app may output via TTS, display, or streaming audio and may gather input via VR, Menu, and button presses</p>"},"Constants.html#/c:@SDLHMILevelLimited":{"name":"SDLHMILevelLimited","abstract":"<p>This HMI Level is only defined for a media application using an HMI with an 8 inch touchscreen (Nav) system. The application’s Show text is displayed and it receives button presses from media-oriented buttons (SEEKRIGHT, SEEKLEFT, TUNEUP, TUNEDOWN, PRESET_0-9)</p>"},"Constants.html#/c:@SDLHMILevelBackground":{"name":"SDLHMILevelBackground","abstract":"<p>App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations:</p>"},"Constants.html#/c:@SDLHMILevelNone":{"name":"SDLHMILevelNone","abstract":"<p>Application has been discovered by SDL, but it cannot send any requests or receive any notifications</p>"},"Constants.html#/c:@SDLHMIZoneCapabilitiesFront":{"name":"SDLHMIZoneCapabilitiesFront","abstract":"<p>Indicates HMI available for front seat passengers.</p>"},"Constants.html#/c:@SDLHMIZoneCapabilitiesBack":{"name":"SDLHMIZoneCapabilitiesBack","abstract":"<p>Indicates HMI available for rear seat passengers.</p>"},"Constants.html#/c:@SDLHybridAppPreferenceMobile":{"name":"SDLHybridAppPreferenceMobile","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLHybridAppPreferenceCloud":{"name":"SDLHybridAppPreferenceCloud","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLHybridAppPreferenceBoth":{"name":"SDLHybridAppPreferenceBoth","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLIgnitionStableStatusNotStable":{"name":"SDLIgnitionStableStatusNotStable","abstract":"<p>The current ignition switch status is considered not to be stable.</p>"},"Constants.html#/c:@SDLIgnitionStableStatusStable":{"name":"SDLIgnitionStableStatusStable","abstract":"<p>The current ignition switch status is considered to be stable.</p>"},"Constants.html#/c:@SDLIgnitionStableStatusMissingFromTransmitter":{"name":"SDLIgnitionStableStatusMissingFromTransmitter","abstract":"<p>The current ignition switch status is considered to be missing from the transmitter</p>"},"Constants.html#/c:@SDLIgnitionStatusUnknown":{"name":"SDLIgnitionStatusUnknown","abstract":"<p>Ignition status currently unknown</p>"},"Constants.html#/c:@SDLIgnitionStatusOff":{"name":"SDLIgnitionStatusOff","abstract":"<p>Ignition is off</p>"},"Constants.html#/c:@SDLIgnitionStatusAccessory":{"name":"SDLIgnitionStatusAccessory","abstract":"<p>Ignition is in mode accessory</p>"},"Constants.html#/c:@SDLIgnitionStatusRun":{"name":"SDLIgnitionStatusRun","abstract":"<p>Ignition is in mode run</p>"},"Constants.html#/c:@SDLIgnitionStatusStart":{"name":"SDLIgnitionStatusStart","abstract":"<p>Ignition is in mode start</p>"},"Constants.html#/c:@SDLIgnitionStatusInvalid":{"name":"SDLIgnitionStatusInvalid","abstract":"<p>Signal is invalid</p>"},"Constants.html#/c:@SDLImageFieldNameSoftButtonImage":{"name":"SDLImageFieldNameSoftButtonImage","abstract":"<p>The image field for SoftButton</p>"},"Constants.html#/c:@SDLImageFieldNameChoiceImage":{"name":"SDLImageFieldNameChoiceImage","abstract":"<p>The first image field for Choice.</p>"},"Constants.html#/c:@SDLImageFieldNameChoiceSecondaryImage":{"name":"SDLImageFieldNameChoiceSecondaryImage","abstract":"<p>The scondary image field for Choice.</p>"},"Constants.html#/c:@SDLImageFieldNameVoiceRecognitionHelpItem":{"name":"SDLImageFieldNameVoiceRecognitionHelpItem","abstract":"<p>The image field for vrHelpItem.</p>"},"Constants.html#/c:@SDLImageFieldNameTurnIcon":{"name":"SDLImageFieldNameTurnIcon","abstract":"<p>The image field for Turn.</p>"},"Constants.html#/c:@SDLImageFieldNameMenuIcon":{"name":"SDLImageFieldNameMenuIcon","abstract":"<p>The image field for the menu icon in SetGlobalProperties.</p>"},"Constants.html#/c:@SDLImageFieldNameCommandIcon":{"name":"SDLImageFieldNameCommandIcon","abstract":"<p>The image field for AddCommand."},"Constants.html#/c:@SDLImageFieldNameAppIcon":{"name":"SDLImageFieldNameAppIcon","abstract":"<p>The image field for the app icon (set by setAppIcon).</p>"},"Constants.html#/c:@SDLImageFieldNameGraphic":{"name":"SDLImageFieldNameGraphic","abstract":"<p>The primary image field for Show."},"Constants.html#/c:@SDLImageFieldNameSecondaryGraphic":{"name":"SDLImageFieldNameSecondaryGraphic","abstract":"<p>The secondary image field for Show."},"Constants.html#/c:@SDLImageFieldNameShowConstantTBTIcon":{"name":"SDLImageFieldNameShowConstantTBTIcon","abstract":"<p>The primary image field for ShowConstant TBT."},"Constants.html#/c:@SDLImageFieldNameShowConstantTBTNextTurnIcon":{"name":"SDLImageFieldNameShowConstantTBTNextTurnIcon","abstract":"<p>The secondary image field for ShowConstant TBT.</p>"},"Constants.html#/c:@SDLImageFieldNameLocationImage":{"name":"SDLImageFieldNameLocationImage","abstract":"<p>The optional image of a destination / location</p>"},"Constants.html#/c:@SDLImageTypeStatic":{"name":"SDLImageTypeStatic","abstract":"<p>Activate an icon that shipped with the IVI system by passing a hex value.</p>"},"Constants.html#/c:@SDLImageTypeDynamic":{"name":"SDLImageTypeDynamic","abstract":"<p>An icon referencing an image uploaded by the app (identifier to be sent by SDLPutFile)</p>"},"Constants.html#/c:@SDLInteractionModeManualOnly":{"name":"SDLInteractionModeManualOnly","abstract":"<p>Interaction Mode : Manual Only</p>"},"Constants.html#/c:@SDLInteractionModeVoiceRecognitionOnly":{"name":"SDLInteractionModeVoiceRecognitionOnly","abstract":"<p>Interaction Mode : VR Only</p>"},"Constants.html#/c:@SDLInteractionModeBoth":{"name":"SDLInteractionModeBoth","abstract":"<p>Interaction Mode : Manual & VR</p>"},"Constants.html#/c:@SDLKeyboardEventKeypress":{"name":"SDLKeyboardEventKeypress","abstract":"<p>The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes).</p>"},"Constants.html#/c:@SDLKeyboardEventSubmitted":{"name":"SDLKeyboardEventSubmitted","abstract":"<p>The User has finished entering text from the keyboard and submitted the entry.</p>"},"Constants.html#/c:@SDLKeyboardEventCancelled":{"name":"SDLKeyboardEventCancelled","abstract":"<p>The User has pressed the HMI-defined <q>Cancel</q> button.</p>"},"Constants.html#/c:@SDLKeyboardEventAborted":{"name":"SDLKeyboardEventAborted","abstract":"<p>The User has not finished entering text and the keyboard is aborted with the event of higher priority.</p>"},"Constants.html#/c:@SDLKeyboardEventVoice":{"name":"SDLKeyboardEventVoice","abstract":"<p>The user used voice as input for the keyboard</p>"},"Constants.html#/c:@SDLKeyboardLayoutQWERTY":{"name":"SDLKeyboardLayoutQWERTY","abstract":"<p>QWERTY layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right)</p>"},"Constants.html#/c:@SDLKeyboardLayoutQWERTZ":{"name":"SDLKeyboardLayoutQWERTZ","abstract":"<p>QWERTZ layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right)</p>"},"Constants.html#/c:@SDLKeyboardLayoutAZERTY":{"name":"SDLKeyboardLayoutAZERTY","abstract":"<p>AZERTY layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right)</p>"},"Constants.html#/c:@SDLKeypressModeSingleKeypress":{"name":"SDLKeypressModeSingleKeypress","abstract":"<p>SINGLE_KEYPRESS:<br>Each and every User`s keypress must be reported (new notification for every newly entered single symbol).</p>"},"Constants.html#/c:@SDLKeypressModeQueueKeypresses":{"name":"SDLKeypressModeQueueKeypresses","abstract":"<p>QUEUE_KEYPRESSES:<br>The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard)</p>"},"Constants.html#/c:@SDLKeypressModeResendCurrentEntry":{"name":"SDLKeypressModeResendCurrentEntry","abstract":"<p>RESEND_CURRENT_ENTRY:<br>The whole entry must be reported each and every time the User makes a new keypress<br> (new notification with all previously entered symbols and a newly entered one appended).</p>"},"Constants.html#/c:@SDLLanguageEnSa":{"name":"SDLLanguageEnSa","abstract":"<p>English_SA</p>"},"Constants.html#/c:@SDLLanguageHeIl":{"name":"SDLLanguageHeIl","abstract":"<p>Hebrew_IL</p>"},"Constants.html#/c:@SDLLanguageRoRo":{"name":"SDLLanguageRoRo","abstract":"<p>Romainian_RO</p>"},"Constants.html#/c:@SDLLanguageUkUa":{"name":"SDLLanguageUkUa","abstract":"<p>Ukrainian_UA</p>"},"Constants.html#/c:@SDLLanguageIdId":{"name":"SDLLanguageIdId","abstract":"<p>Indonesian_ID</p>"},"Constants.html#/c:@SDLLanguageViVn":{"name":"SDLLanguageViVn","abstract":"<p>Vietnamese_VN</p>"},"Constants.html#/c:@SDLLanguageMsMy":{"name":"SDLLanguageMsMy","abstract":"<p>Malay_MY</p>"},"Constants.html#/c:@SDLLanguageHiIn":{"name":"SDLLanguageHiIn","abstract":"<p>Hindi_IN</p>"},"Constants.html#/c:@SDLLanguageNlBe":{"name":"SDLLanguageNlBe","abstract":"<p>Dutch(Flemish)_BE</p>"},"Constants.html#/c:@SDLLanguageElGr":{"name":"SDLLanguageElGr","abstract":"<p>Greek_GR</p>"},"Constants.html#/c:@SDLLanguageHuHu":{"name":"SDLLanguageHuHu","abstract":"<p>Hungarian_HU</p>"},"Constants.html#/c:@SDLLanguageFiFi":{"name":"SDLLanguageFiFi","abstract":"<p>Finnish_FI</p>"},"Constants.html#/c:@SDLLanguageSkSk":{"name":"SDLLanguageSkSk","abstract":"<p>Slovak_SK</p>"},"Constants.html#/c:@SDLLanguageEnUs":{"name":"SDLLanguageEnUs","abstract":"<p>English_US</p>"},"Constants.html#/c:@SDLLanguageEnIn":{"name":"SDLLanguageEnIn","abstract":"<p>English - India</p>"},"Constants.html#/c:@SDLLanguageThTh":{"name":"SDLLanguageThTh","abstract":"<p>Thai - Thailand</p>"},"Constants.html#/c:@SDLLanguageEsMx":{"name":"SDLLanguageEsMx","abstract":"<p>Spanish - Mexico</p>"},"Constants.html#/c:@SDLLanguageFrCa":{"name":"SDLLanguageFrCa","abstract":"<p>French - Canada</p>"},"Constants.html#/c:@SDLLanguageDeDe":{"name":"SDLLanguageDeDe","abstract":"<p>German - Germany</p>"},"Constants.html#/c:@SDLLanguageEsEs":{"name":"SDLLanguageEsEs","abstract":"<p>Spanish - Spain</p>"},"Constants.html#/c:@SDLLanguageEnGb":{"name":"SDLLanguageEnGb","abstract":"<p>English - Great Britain</p>"},"Constants.html#/c:@SDLLanguageRuRu":{"name":"SDLLanguageRuRu","abstract":"<p>Russian - Russia</p>"},"Constants.html#/c:@SDLLanguageTrTr":{"name":"SDLLanguageTrTr","abstract":"<p>Turkish - Turkey</p>"},"Constants.html#/c:@SDLLanguagePlPl":{"name":"SDLLanguagePlPl","abstract":"<p>Polish - Poland</p>"},"Constants.html#/c:@SDLLanguageFrFr":{"name":"SDLLanguageFrFr","abstract":"<p>French - France</p>"},"Constants.html#/c:@SDLLanguageItIt":{"name":"SDLLanguageItIt","abstract":"<p>Italian - Italy</p>"},"Constants.html#/c:@SDLLanguageSvSe":{"name":"SDLLanguageSvSe","abstract":"<p>Swedish - Sweden</p>"},"Constants.html#/c:@SDLLanguagePtPt":{"name":"SDLLanguagePtPt","abstract":"<p>Portuguese - Portugal</p>"},"Constants.html#/c:@SDLLanguageNlNl":{"name":"SDLLanguageNlNl","abstract":"<p>Dutch (Standard) - Netherlands</p>"},"Constants.html#/c:@SDLLanguageEnAu":{"name":"SDLLanguageEnAu","abstract":"<p>English - Australia</p>"},"Constants.html#/c:@SDLLanguageZhCn":{"name":"SDLLanguageZhCn","abstract":"<p>Mandarin - China</p>"},"Constants.html#/c:@SDLLanguageZhTw":{"name":"SDLLanguageZhTw","abstract":"<p>Mandarin - Taiwan</p>"},"Constants.html#/c:@SDLLanguageJaJp":{"name":"SDLLanguageJaJp","abstract":"<p>Japanese - Japan</p>"},"Constants.html#/c:@SDLLanguageArSa":{"name":"SDLLanguageArSa","abstract":"<p>Arabic - Saudi Arabia</p>"},"Constants.html#/c:@SDLLanguageKoKr":{"name":"SDLLanguageKoKr","abstract":"<p>Korean - South Korea</p>"},"Constants.html#/c:@SDLLanguagePtBr":{"name":"SDLLanguagePtBr","abstract":"<p>Portuguese - Brazil</p>"},"Constants.html#/c:@SDLLanguageCsCz":{"name":"SDLLanguageCsCz","abstract":"<p>Czech - Czech Republic</p>"},"Constants.html#/c:@SDLLanguageDaDk":{"name":"SDLLanguageDaDk","abstract":"<p>Danish - Denmark</p>"},"Constants.html#/c:@SDLLanguageNoNo":{"name":"SDLLanguageNoNo","abstract":"<p>Norwegian - Norway</p>"},"Constants.html#/c:@SDLLayoutModeIconOnly":{"name":"SDLLayoutModeIconOnly","abstract":"<p>This mode causes the interaction to display the previous set of choices as icons.</p>"},"Constants.html#/c:@SDLLayoutModeIconWithSearch":{"name":"SDLLayoutModeIconWithSearch","abstract":"<p>This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.</p>"},"Constants.html#/c:@SDLLayoutModeListOnly":{"name":"SDLLayoutModeListOnly","abstract":"<p>This mode causes the interaction to display the previous set of choices as a list.</p>"},"Constants.html#/c:@SDLLayoutModeListWithSearch":{"name":"SDLLayoutModeListWithSearch","abstract":"<p>This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.</p>"},"Constants.html#/c:@SDLLayoutModeKeyboard":{"name":"SDLLayoutModeKeyboard","abstract":"<p>This mode causes the interaction to immediately display a keyboard entry through the HMI.</p>"},"Constants.html#/c:@SDLLightNameFrontLeftHighBeam":{"name":"SDLLightNameFrontLeftHighBeam","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_HIGH_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontRightHighBeam":{"name":"SDLLightNameFrontRightHighBeam","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_HIGH_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontLeftLowBeam":{"name":"SDLLightNameFrontLeftLowBeam","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_LOW_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontRightLowBeam":{"name":"SDLLightNameFrontRightLowBeam","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_LOW_BEAM.</p>"},"Constants.html#/c:@SDLLightNameFrontLeftParkingLight":{"name":"SDLLightNameFrontLeftParkingLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_PARKING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightParkingLight":{"name":"SDLLightNameFrontRightParkingLight","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_PARKING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontLeftFogLight":{"name":"SDLLightNameFrontLeftFogLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_FOG_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightFogLight":{"name":"SDLLightNameFrontRightFogLight","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_FOG_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontLeftDaytimeRunningLight":{"name":"SDLLightNameFrontLeftDaytimeRunningLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_DAYTIME_RUNNING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightDaytimeRunningLight":{"name":"SDLLightNameFrontRightDaytimeRunningLight","abstract":"<p>@abstract Represents the Light with name FRONT_RIGHT_DAYTIME_RUNNING_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontLeftTurnLight":{"name":"SDLLightNameFrontLeftTurnLight","abstract":"<p>@abstract Represents the Light with name FRONT_LEFT_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameFrontRightTurnLight":{"name":"SDLLightNameFrontRightTurnLight","abstract":"<p>@abstract Represents the Light with name FRONT_Right_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftFogLight":{"name":"SDLLightNameRearLeftFogLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_FOG_LIGHT.</p>"},"Constants.html#/c:@SDLLightNameRearRightFogLight":{"name":"SDLLightNameRearRightFogLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_FOG_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftTailLight":{"name":"SDLLightNameRearLeftTailLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_TAIL_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRightTailLight":{"name":"SDLLightNameRearRightTailLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_TAIL_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftBrakeLight":{"name":"SDLLightNameRearLeftBrakeLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_BRAKE_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRightBrakeLight":{"name":"SDLLightNameRearRightBrakeLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_BRAKE_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearLeftTurnLight":{"name":"SDLLightNameRearLeftTurnLight","abstract":"<p>@abstract Represents the Light with name REAR_LEFT_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRightTurnLight":{"name":"SDLLightNameRearRightTurnLight","abstract":"<p>@abstract Represents the Light with name REAR_RIGHT_TURN_LIGHT</p>"},"Constants.html#/c:@SDLLightNameRearRegistrationPlateLight":{"name":"SDLLightNameRearRegistrationPlateLight","abstract":"<p>@abstract Represents the Light with name REAR_REGISTRATION_PLATE_LIGHT</p>"},"Constants.html#/c:@SDLLightNameHighBeams":{"name":"SDLLightNameHighBeams","abstract":"<p>@abstract Include all high beam lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameLowBeams":{"name":"SDLLightNameLowBeams","abstract":"<p>@abstract Include all low beam lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameFogLights":{"name":"SDLLightNameFogLights","abstract":"<p>@abstract Include all fog lights: front_left, front_right, rear_left and rear_right.</p>"},"Constants.html#/c:@SDLLightNameRunningLights":{"name":"SDLLightNameRunningLights","abstract":"<p>@abstract Include all daytime running lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameParkingLights":{"name":"SDLLightNameParkingLights","abstract":"<p>@abstract Include all parking lights: front_left and front_right.</p>"},"Constants.html#/c:@SDLLightNameBrakeLights":{"name":"SDLLightNameBrakeLights","abstract":"<p>@abstract Include all brake lights: rear_left and rear_right.</p>"},"Constants.html#/c:@SDLLightNameRearReversingLights":{"name":"SDLLightNameRearReversingLights","abstract":"<p>@abstract Represents the Light with name REAR_REVERSING_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameSideMarkerLights":{"name":"SDLLightNameSideMarkerLights","abstract":"<p>@abstract Represents the Light with name SIDE_MARKER_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameLeftTurnLights":{"name":"SDLLightNameLeftTurnLights","abstract":"<p>@abstract Include all left turn signal lights: front_left, rear_left, left_side and mirror_mounted.</p>"},"Constants.html#/c:@SDLLightNameRightTurnLights":{"name":"SDLLightNameRightTurnLights","abstract":"<p>@abstract Include all right turn signal lights: front_right, rear_right, right_side and mirror_mounted.</p>"},"Constants.html#/c:@SDLLightNameHazardLights":{"name":"SDLLightNameHazardLights","abstract":"<p>@abstract Include all hazard lights: front_left, front_right, rear_left and rear_right.</p>"},"Constants.html#/c:@SDLLightNameAmbientLights":{"name":"SDLLightNameAmbientLights","abstract":"<p>@abstract Represents the Light with name AMBIENT_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameOverHeadLights":{"name":"SDLLightNameOverHeadLights","abstract":"<p>@abstract Represents the Light with name OVERHEAD_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameReadingLights":{"name":"SDLLightNameReadingLights","abstract":"<p>@abstract Represents the Light with name READING_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameTrunkLights":{"name":"SDLLightNameTrunkLights","abstract":"<p>@abstract Represents the Light with name TRUNK_LIGHTS</p>"},"Constants.html#/c:@SDLLightNameExteriorFrontLights":{"name":"SDLLightNameExteriorFrontLights","abstract":"<p>@abstract Include exterior lights located in front of the vehicle. For example, fog lights and low beams.</p>"},"Constants.html#/c:@SDLLightNameExteriorRearLights":{"name":"SDLLightNameExteriorRearLights","abstract":"<p>@abstract Include exterior lights located at the back of the vehicle."},"Constants.html#/c:@SDLLightNameExteriorLeftLights":{"name":"SDLLightNameExteriorLeftLights","abstract":"<p>@abstract Include exterior lights located at the left side of the vehicle."},"Constants.html#/c:@SDLLightNameExteriorRightLights":{"name":"SDLLightNameExteriorRightLights","abstract":"<p>@abstract Include exterior lights located at the right side of the vehicle."},"Constants.html#/c:@SDLLightNameExteriorRearCargoLights":{"name":"SDLLightNameExteriorRearCargoLights","abstract":"<p>@abstract Cargo lamps illuminate the cargo area.</p>"},"Constants.html#/c:@SDLLightNameExteriorRearTruckBedLights":{"name":"SDLLightNameExteriorRearTruckBedLights","abstract":"<p>@abstract Truck bed lamps light up the bed of the truck.</p>"},"Constants.html#/c:@SDLLightNameExteriorRearTrailerLights":{"name":"SDLLightNameExteriorRearTrailerLights","abstract":"<p>@abstract Trailer lights are lamps mounted on a trailer hitch.</p>"},"Constants.html#/c:@SDLLightNameExteriorLeftSpotLights":{"name":"SDLLightNameExteriorLeftSpotLights","abstract":"<p>@abstract It is the spotlights mounted on the left side of a vehicle.</p>"},"Constants.html#/c:@SDLLightNameExteriorRightSpotLights":{"name":"SDLLightNameExteriorRightSpotLights","abstract":"<p>@abstract It is the spotlights mounted on the right side of a vehicle.</p>"},"Constants.html#/c:@SDLLightNameExteriorLeftPuddleLights":{"name":"SDLLightNameExteriorLeftPuddleLights","abstract":"<p>@abstract Puddle lamps illuminate the ground beside the door as the customer is opening or approaching the door.</p>"},"Constants.html#/c:@SDLLightNameExteriorRightPuddleLights":{"name":"SDLLightNameExteriorRightPuddleLights","abstract":"<p>@abstract Puddle lamps illuminate the ground beside the door as the customer is opening or approaching the door.</p>"},"Constants.html#/c:@SDLLightNameExteriorAllLights":{"name":"SDLLightNameExteriorAllLights","abstract":"<p>@abstract Include all exterior lights around the vehicle.</p>"},"Constants.html#/c:@SDLLightStatusOn":{"name":"SDLLightStatusOn","abstract":"<p>@abstract Light status currently on.</p>"},"Constants.html#/c:@SDLLightStatusOFF":{"name":"SDLLightStatusOFF","abstract":"<p>@abstract Light status currently Off.</p>"},"Constants.html#/c:@SDLLightStatusRampUp":{"name":"SDLLightStatusRampUp","abstract":"<p>@abstract Light status currently RAMP_UP.</p>"},"Constants.html#/c:@SDLLightStatusRampDown":{"name":"SDLLightStatusRampDown","abstract":"<p>@abstract Light status currently RAMP_DOWN.</p>"},"Constants.html#/c:@SDLLightStatusUnknown":{"name":"SDLLightStatusUnknown","abstract":"<p>@abstract Light status currently UNKNOWN.</p>"},"Constants.html#/c:@SDLLightStatusInvalid":{"name":"SDLLightStatusInvalid","abstract":"<p>@abstract Light status currently INVALID.</p>"},"Constants.html#/c:@SDLLockScreenStatusOff":{"name":"SDLLockScreenStatusOff","abstract":"<p>LockScreen is Not Required</p>"},"Constants.html#/c:@SDLLockScreenStatusOptional":{"name":"SDLLockScreenStatusOptional","abstract":"<p>LockScreen is Optional</p>"},"Constants.html#/c:@SDLLockScreenStatusRequired":{"name":"SDLLockScreenStatusRequired","abstract":"<p>LockScreen is Not Required</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusNormal":{"name":"SDLMaintenanceModeStatusNormal","abstract":"<p>Maintenance Mode Status : Normal</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusNear":{"name":"SDLMaintenanceModeStatusNear","abstract":"<p>Maintenance Mode Status : Near</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusActive":{"name":"SDLMaintenanceModeStatusActive","abstract":"<p>Maintenance Mode Status : Active</p>"},"Constants.html#/c:@SDLMaintenanceModeStatusFeatureNotPresent":{"name":"SDLMaintenanceModeStatusFeatureNotPresent","abstract":"<p>Maintenance Mode Status : Feature not present</p>"},"Constants.html#/c:@SDLMassageCushionTopLumbar":{"name":"SDLMassageCushionTopLumbar","abstract":"<p>@abstract TOP LUMBAR cushions of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionMiddleLumbar":{"name":"SDLMassageCushionMiddleLumbar","abstract":"<p>@abstract MIDDLE LUMBAR cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionBottomLumbar":{"name":"SDLMassageCushionBottomLumbar","abstract":"<p>@abstract BOTTOM LUMBAR cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionBackBolsters":{"name":"SDLMassageCushionBackBolsters","abstract":"<p>@abstract BACK BOLSTERS cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageCushionSeatBolsters":{"name":"SDLMassageCushionSeatBolsters","abstract":"<p>@abstract SEAT BOLSTERS cushion of a multi-contour massage seat</p>"},"Constants.html#/c:@SDLMassageModeOff":{"name":"SDLMassageModeOff","abstract":"<p>@abstract Massage Mode Status : OFF</p>"},"Constants.html#/c:@SDLMassageModeLow":{"name":"SDLMassageModeLow","abstract":"<p>@abstract Massage Mode Status : LOW</p>"},"Constants.html#/c:@SDLMassageModeHigh":{"name":"SDLMassageModeHigh","abstract":"<p>@abstract Massage Mode Status : HIGH</p>"},"Constants.html#/c:@SDLMassageZoneLumbar":{"name":"SDLMassageZoneLumbar","abstract":"<p>@abstract The back of a multi-contour massage seat. or SEAT_BACK</p>"},"Constants.html#/c:@SDLMassageZoneSeatCushion":{"name":"SDLMassageZoneSeatCushion","abstract":"<p>@abstract The bottom a multi-contour massage seat. or SEAT_BOTTOM</p>"},"Constants.html#/c:@SDLMediaClockFormatClock1":{"name":"SDLMediaClockFormatClock1","abstract":"<p>Media clock format: Clock1</p>"},"Constants.html#/c:@SDLMediaClockFormatClock2":{"name":"SDLMediaClockFormatClock2","abstract":"<p>Media clock format: Clock2</p>"},"Constants.html#/c:@SDLMediaClockFormatClock3":{"name":"SDLMediaClockFormatClock3","abstract":"<p>Media clock format: Clock3</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText1":{"name":"SDLMediaClockFormatClockText1","abstract":"<p>Media clock format: ClockText1</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText2":{"name":"SDLMediaClockFormatClockText2","abstract":"<p>Media clock format: ClockText2</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText3":{"name":"SDLMediaClockFormatClockText3","abstract":"<p>Media clock format: ClockText3</p>"},"Constants.html#/c:@SDLMediaClockFormatClockText4":{"name":"SDLMediaClockFormatClockText4","abstract":"<p>Media clock format: ClockText4</p>"},"Constants.html#/c:@SDLMediaTypeMusic":{"name":"SDLMediaTypeMusic","abstract":"<p>The app will have a media type of music.</p>"},"Constants.html#/c:@SDLMediaTypePodcast":{"name":"SDLMediaTypePodcast","abstract":"<p>The app will have a media type of podcast.</p>"},"Constants.html#/c:@SDLMediaTypeAudiobook":{"name":"SDLMediaTypeAudiobook","abstract":"<p>The app will have a media type of audiobook.</p>"},"Constants.html#/c:@SDLMediaTypeOther":{"name":"SDLMediaTypeOther","abstract":"<p>The app will have a media type of other.</p>"},"Constants.html#/c:@SDLMetadataTypeMediaTitle":{"name":"SDLMetadataTypeMediaTitle","abstract":"<p>The song / media title name</p>"},"Constants.html#/c:@SDLMetadataTypeMediaArtist":{"name":"SDLMetadataTypeMediaArtist","abstract":"<p>The <q>artist</q> of the media</p>"},"Constants.html#/c:@SDLMetadataTypeMediaAlbum":{"name":"SDLMetadataTypeMediaAlbum","abstract":"<p>The <q>album</q> of the media"</p>"},"Constants.html#/c:@SDLMetadataTypeMediaYear":{"name":"SDLMetadataTypeMediaYear","abstract":"<p>The <q>year</q> that the media was created</p>"},"Constants.html#/c:@SDLMetadataTypeMediaGenre":{"name":"SDLMetadataTypeMediaGenre","abstract":"<p>The <q>genre</q> of the media</p>"},"Constants.html#/c:@SDLMetadataTypeMediaStation":{"name":"SDLMetadataTypeMediaStation","abstract":"<p>The <q>station</q> that the media is playing on</p>"},"Constants.html#/c:@SDLMetadataTypeRating":{"name":"SDLMetadataTypeRating","abstract":"<p>The <q>rating</q> given to the media</p>"},"Constants.html#/c:@SDLMetadataTypeCurrentTemperature":{"name":"SDLMetadataTypeCurrentTemperature","abstract":"<p>The current temperature of the weather information</p>"},"Constants.html#/c:@SDLMetadataTypeMaximumTemperature":{"name":"SDLMetadataTypeMaximumTemperature","abstract":"<p>The high / maximum temperature of the weather information for the current period</p>"},"Constants.html#/c:@SDLMetadataTypeMinimumTemperature":{"name":"SDLMetadataTypeMinimumTemperature","abstract":"<p>The low / minimum temperature of the weather information for the current period</p>"},"Constants.html#/c:@SDLMetadataTypeWeatherTerm":{"name":"SDLMetadataTypeWeatherTerm","abstract":"<p>A description of the weather for the current period</p>"},"Constants.html#/c:@SDLMetadataTypeHumidity":{"name":"SDLMetadataTypeHumidity","abstract":"<p>The humidity of the weather information for the current period</p>"},"Constants.html#/c:@SDLModuleTypeClimate":{"name":"SDLModuleTypeClimate","abstract":"<p>A SDLModuleType with the value of <em>CLIMATE</em></p>"},"Constants.html#/c:@SDLModuleTypeRadio":{"name":"SDLModuleTypeRadio","abstract":"<p>A SDLModuleType with the value of <em>RADIO</em></p>"},"Constants.html#/c:@SDLModuleTypeSeat":{"name":"SDLModuleTypeSeat","abstract":"<p>A SDLModuleType with the value of <em>SEAT</em></p>"},"Constants.html#/c:@SDLModuleTypeAudio":{"name":"SDLModuleTypeAudio","abstract":"<p>A SDLModuleType with the value of <em>AUDIO</em></p>"},"Constants.html#/c:@SDLModuleTypeLight":{"name":"SDLModuleTypeLight","abstract":"<p>A SDLModuleType with the value of <em>LIGHT</em></p>"},"Constants.html#/c:@SDLModuleTypeHMISettings":{"name":"SDLModuleTypeHMISettings","abstract":"<p>A SDLModuleType with the value of <em>HMI_SETTINGS</em></p>"},"Constants.html#/c:@SDLNavigationActionTurn":{"name":"SDLNavigationActionTurn","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationActionExit":{"name":"SDLNavigationActionExit","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationActionStay":{"name":"SDLNavigationActionStay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationActionMerge":{"name":"SDLNavigationActionMerge","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationActionFerry":{"name":"SDLNavigationActionFerry","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationActionCarShuttleTrain":{"name":"SDLNavigationActionCarShuttleTrain","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationActionWaypoint":{"name":"SDLNavigationActionWaypoint","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionRegular":{"name":"SDLNavigationJunctionRegular","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionBifurcation":{"name":"SDLNavigationJunctionBifurcation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionMultiCarriageway":{"name":"SDLNavigationJunctionMultiCarriageway","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionRoundabout":{"name":"SDLNavigationJunctionRoundabout","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionTraversableRoundabout":{"name":"SDLNavigationJunctionTraversableRoundabout","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionJughandle":{"name":"SDLNavigationJunctionJughandle","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionAllWayYield":{"name":"SDLNavigationJunctionAllWayYield","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNavigationJunctionTurnAround":{"name":"SDLNavigationJunctionTurnAround","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLNotificationUserInfoObject":{"name":"SDLNotificationUserInfoObject","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTransportDidDisconnect":{"name":"SDLTransportDidDisconnect","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTransportDidConnect":{"name":"SDLTransportDidConnect","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTransportConnectError":{"name":"SDLTransportConnectError","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveError":{"name":"SDLDidReceiveError","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveLockScreenIcon":{"name":"SDLDidReceiveLockScreenIcon","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidBecomeReady":{"name":"SDLDidBecomeReady","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidUpdateProjectionView":{"name":"SDLDidUpdateProjectionView","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAddCommandResponse":{"name":"SDLDidReceiveAddCommandResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAddSubMenuResponse":{"name":"SDLDidReceiveAddSubMenuResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAlertResponse":{"name":"SDLDidReceiveAlertResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAlertManeuverResponse":{"name":"SDLDidReceiveAlertManeuverResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonPressResponse":{"name":"SDLDidReceiveButtonPressResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveChangeRegistrationResponse":{"name":"SDLDidReceiveChangeRegistrationResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetResponse":{"name":"SDLDidReceiveCreateInteractionChoiceSetResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteCommandResponse":{"name":"SDLDidReceiveDeleteCommandResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteFileResponse":{"name":"SDLDidReceiveDeleteFileResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetResponse":{"name":"SDLDidReceiveDeleteInteractionChoiceSetResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteSubmenuResponse":{"name":"SDLDidReceiveDeleteSubmenuResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDiagnosticMessageResponse":{"name":"SDLDidReceiveDiagnosticMessageResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDialNumberResponse":{"name":"SDLDidReceiveDialNumberResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEncodedSyncPDataResponse":{"name":"SDLDidReceiveEncodedSyncPDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEndAudioPassThruResponse":{"name":"SDLDidReceiveEndAudioPassThruResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGenericResponse":{"name":"SDLDidReceiveGenericResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetCloudAppPropertiesResponse":{"name":"SDLDidReceiveGetCloudAppPropertiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetAppServiceDataResponse":{"name":"SDLDidReceiveGetAppServiceDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetDTCsResponse":{"name":"SDLDidReceiveGetDTCsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetFileResponse":{"name":"SDLDidReceiveGetFileResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataResponse":{"name":"SDLDidReceiveGetInteriorVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetSystemCapabilitiesResponse":{"name":"SDLDidReceiveGetSystemCapabilitiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetVehicleDataResponse":{"name":"SDLDidReceiveGetVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetWaypointsResponse":{"name":"SDLDidReceiveGetWaypointsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveListFilesResponse":{"name":"SDLDidReceiveListFilesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformAppServiceInteractionResponse":{"name":"SDLDidReceivePerformAppServiceInteractionResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformAudioPassThruResponse":{"name":"SDLDidReceivePerformAudioPassThruResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformInteractionResponse":{"name":"SDLDidReceivePerformInteractionResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePublishAppServiceResponse":{"name":"SDLDidReceivePublishAppServiceResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePutFileResponse":{"name":"SDLDidReceivePutFileResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveReadDIDResponse":{"name":"SDLDidReceiveReadDIDResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceResponse":{"name":"SDLDidReceiveRegisterAppInterfaceResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesResponse":{"name":"SDLDidReceiveResetGlobalPropertiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveScrollableMessageResponse":{"name":"SDLDidReceiveScrollableMessageResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSendHapticDataResponse":{"name":"SDLDidReceiveSendHapticDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSendLocationResponse":{"name":"SDLDidReceiveSendLocationResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetAppIconResponse":{"name":"SDLDidReceiveSetAppIconResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetCloudAppPropertiesResponse":{"name":"SDLDidReceiveSetCloudAppPropertiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetDisplayLayoutResponse":{"name":"SDLDidReceiveSetDisplayLayoutResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesResponse":{"name":"SDLDidReceiveSetGlobalPropertiesResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataResponse":{"name":"SDLDidReceiveSetInteriorVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetMediaClockTimerResponse":{"name":"SDLDidReceiveSetMediaClockTimerResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveShowConstantTBTResponse":{"name":"SDLDidReceiveShowConstantTBTResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveShowResponse":{"name":"SDLDidReceiveShowResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSliderResponse":{"name":"SDLDidReceiveSliderResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSpeakResponse":{"name":"SDLDidReceiveSpeakResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeButtonResponse":{"name":"SDLDidReceiveSubscribeButtonResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataResponse":{"name":"SDLDidReceiveSubscribeVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeWaypointsResponse":{"name":"SDLDidReceiveSubscribeWaypointsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSyncPDataResponse":{"name":"SDLDidReceiveSyncPDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUpdateTurnListResponse":{"name":"SDLDidReceiveUpdateTurnListResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceResponse":{"name":"SDLDidReceiveUnregisterAppInterfaceResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeButtonResponse":{"name":"SDLDidReceiveUnsubscribeButtonResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataResponse":{"name":"SDLDidReceiveUnsubscribeVehicleDataResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeWaypointsResponse":{"name":"SDLDidReceiveUnsubscribeWaypointsResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAddCommandRequest":{"name":"SDLDidReceiveAddCommandRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAddSubMenuRequest":{"name":"SDLDidReceiveAddSubMenuRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAlertRequest":{"name":"SDLDidReceiveAlertRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAlertManeuverRequest":{"name":"SDLDidReceiveAlertManeuverRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonPressRequest":{"name":"SDLDidReceiveButtonPressRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveChangeRegistrationRequest":{"name":"SDLDidReceiveChangeRegistrationRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetRequest":{"name":"SDLDidReceiveCreateInteractionChoiceSetRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteCommandRequest":{"name":"SDLDidReceiveDeleteCommandRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteFileRequest":{"name":"SDLDidReceiveDeleteFileRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetRequest":{"name":"SDLDidReceiveDeleteInteractionChoiceSetRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDeleteSubMenuRequest":{"name":"SDLDidReceiveDeleteSubMenuRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDiagnosticMessageRequest":{"name":"SDLDidReceiveDiagnosticMessageRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveDialNumberRequest":{"name":"SDLDidReceiveDialNumberRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEncodedSyncPDataRequest":{"name":"SDLDidReceiveEncodedSyncPDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEndAudioPassThruRequest":{"name":"SDLDidReceiveEndAudioPassThruRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetAppServiceDataRequest":{"name":"SDLDidReceiveGetAppServiceDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetCloudAppPropertiesRequest":{"name":"SDLDidReceiveGetCloudAppPropertiesRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetDTCsRequest":{"name":"SDLDidReceiveGetDTCsRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetFileRequest":{"name":"SDLDidReceiveGetFileRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataRequest":{"name":"SDLDidReceiveGetInteriorVehicleDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetSystemCapabilityRequest":{"name":"SDLDidReceiveGetSystemCapabilityRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetVehicleDataRequest":{"name":"SDLDidReceiveGetVehicleDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveGetWayPointsRequest":{"name":"SDLDidReceiveGetWayPointsRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveListFilesRequest":{"name":"SDLDidReceiveListFilesRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformAppServiceInteractionRequest":{"name":"SDLDidReceivePerformAppServiceInteractionRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformAudioPassThruRequest":{"name":"SDLDidReceivePerformAudioPassThruRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePerformInteractionRequest":{"name":"SDLDidReceivePerformInteractionRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePublishAppServiceRequest":{"name":"SDLDidReceivePublishAppServiceRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceivePutFileRequest":{"name":"SDLDidReceivePutFileRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveReadDIDRequest":{"name":"SDLDidReceiveReadDIDRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceRequest":{"name":"SDLDidReceiveRegisterAppInterfaceRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesRequest":{"name":"SDLDidReceiveResetGlobalPropertiesRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveScrollableMessageRequest":{"name":"SDLDidReceiveScrollableMessageRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSendHapticDataRequest":{"name":"SDLDidReceiveSendHapticDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSendLocationRequest":{"name":"SDLDidReceiveSendLocationRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetAppIconRequest":{"name":"SDLDidReceiveSetAppIconRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetCloudAppPropertiesRequest":{"name":"SDLDidReceiveSetCloudAppPropertiesRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetDisplayLayoutRequest":{"name":"SDLDidReceiveSetDisplayLayoutRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesRequest":{"name":"SDLDidReceiveSetGlobalPropertiesRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataRequest":{"name":"SDLDidReceiveSetInteriorVehicleDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSetMediaClockTimerRequest":{"name":"SDLDidReceiveSetMediaClockTimerRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveShowRequest":{"name":"SDLDidReceiveShowRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveShowConstantTBTRequest":{"name":"SDLDidReceiveShowConstantTBTRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSliderRequest":{"name":"SDLDidReceiveSliderRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSpeakRequest":{"name":"SDLDidReceiveSpeakRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeButtonRequest":{"name":"SDLDidReceiveSubscribeButtonRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataRequest":{"name":"SDLDidReceiveSubscribeVehicleDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSubscribeWayPointsRequest":{"name":"SDLDidReceiveSubscribeWayPointsRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSyncPDataRequest":{"name":"SDLDidReceiveSyncPDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSystemRequestRequest":{"name":"SDLDidReceiveSystemRequestRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceRequest":{"name":"SDLDidReceiveUnregisterAppInterfaceRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeButtonRequest":{"name":"SDLDidReceiveUnsubscribeButtonRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataRequest":{"name":"SDLDidReceiveUnsubscribeVehicleDataRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUnsubscribeWayPointsRequest":{"name":"SDLDidReceiveUnsubscribeWayPointsRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveUpdateTurnListRequest":{"name":"SDLDidReceiveUpdateTurnListRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeDriverDistractionStateNotification":{"name":"SDLDidChangeDriverDistractionStateNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeHMIStatusNotification":{"name":"SDLDidChangeHMIStatusNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAppServiceDataNotification":{"name":"SDLDidReceiveAppServiceDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAppUnregisteredNotification":{"name":"SDLDidReceiveAppUnregisteredNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveAudioPassThruNotification":{"name":"SDLDidReceiveAudioPassThruNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonEventNotification":{"name":"SDLDidReceiveButtonEventNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveButtonPressNotification":{"name":"SDLDidReceiveButtonPressNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveCommandNotification":{"name":"SDLDidReceiveCommandNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveEncodedDataNotification":{"name":"SDLDidReceiveEncodedDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveInteriorVehicleDataNotification":{"name":"SDLDidReceiveInteriorVehicleDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveKeyboardInputNotification":{"name":"SDLDidReceiveKeyboardInputNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeLanguageNotification":{"name":"SDLDidChangeLanguageNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeLockScreenStatusNotification":{"name":"SDLDidChangeLockScreenStatusNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveNewHashNotification":{"name":"SDLDidReceiveNewHashNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveVehicleIconNotification":{"name":"SDLDidReceiveVehicleIconNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangePermissionsNotification":{"name":"SDLDidChangePermissionsNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveRemoteControlStatusNotification":{"name":"SDLDidReceiveRemoteControlStatusNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSystemCapabilityUpdatedNotification":{"name":"SDLDidReceiveSystemCapabilityUpdatedNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveSystemRequestNotification":{"name":"SDLDidReceiveSystemRequestNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidChangeTurnByTurnStateNotification":{"name":"SDLDidChangeTurnByTurnStateNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveTouchEventNotification":{"name":"SDLDidReceiveTouchEventNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveVehicleDataNotification":{"name":"SDLDidReceiveVehicleDataNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDidReceiveWaypointNotification":{"name":"SDLDidReceiveWaypointNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLPRNDLPark":{"name":"SDLPRNDLPark","abstract":"<p>Park</p>"},"Constants.html#/c:@SDLPRNDLReverse":{"name":"SDLPRNDLReverse","abstract":"<p>Reverse gear</p>"},"Constants.html#/c:@SDLPRNDLNeutral":{"name":"SDLPRNDLNeutral","abstract":"<p>No gear</p>"},"Constants.html#/c:@SDLPRNDLDrive":{"name":"SDLPRNDLDrive","abstract":"<p>@abstract: Drive gear</p>"},"Constants.html#/c:@SDLPRNDLSport":{"name":"SDLPRNDLSport","abstract":"<p>Drive Sport mode</p>"},"Constants.html#/c:@SDLPRNDLLowGear":{"name":"SDLPRNDLLowGear","abstract":"<p>1st gear hold</p>"},"Constants.html#/c:@SDLPRNDLFirst":{"name":"SDLPRNDLFirst","abstract":"<p>First gear</p>"},"Constants.html#/c:@SDLPRNDLSecond":{"name":"SDLPRNDLSecond","abstract":"<p>Second gear</p>"},"Constants.html#/c:@SDLPRNDLThird":{"name":"SDLPRNDLThird","abstract":"<p>Third gear</p>"},"Constants.html#/c:@SDLPRNDLFourth":{"name":"SDLPRNDLFourth","abstract":"<p>Fourth gear</p>"},"Constants.html#/c:@SDLPRNDLFifth":{"name":"SDLPRNDLFifth","abstract":"<p>Fifth gear</p>"},"Constants.html#/c:@SDLPRNDLSixth":{"name":"SDLPRNDLSixth","abstract":"<p>Sixth gear</p>"},"Constants.html#/c:@SDLPRNDLSeventh":{"name":"SDLPRNDLSeventh","abstract":"<p>Seventh gear</p>"},"Constants.html#/c:@SDLPRNDLEighth":{"name":"SDLPRNDLEighth","abstract":"<p>Eighth gear</p>"},"Constants.html#/c:@SDLPRNDLUnknown":{"name":"SDLPRNDLUnknown","abstract":"<p>Unknown</p>"},"Constants.html#/c:@SDLPRNDLFault":{"name":"SDLPRNDLFault","abstract":"<p>Fault</p>"},"Constants.html#/c:@SDLPermissionStatusAllowed":{"name":"SDLPermissionStatusAllowed","abstract":"<p>permission: allowed</p>"},"Constants.html#/c:@SDLPermissionStatusDisallowed":{"name":"SDLPermissionStatusDisallowed","abstract":"<p>permission: disallowed</p>"},"Constants.html#/c:@SDLPermissionStatusUserDisallowed":{"name":"SDLPermissionStatusUserDisallowed","abstract":"<p>permission: user disallowed</p>"},"Constants.html#/c:@SDLPermissionStatusUserConsentPending":{"name":"SDLPermissionStatusUserConsentPending","abstract":"<p>permission: user consent pending</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusUndefined":{"name":"SDLPowerModeQualificationStatusUndefined","abstract":"<p>An undefined status</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusEvaluationInProgress":{"name":"SDLPowerModeQualificationStatusEvaluationInProgress","abstract":"<p>An <q>evaluation in progress</q> status</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusNotDefined":{"name":"SDLPowerModeQualificationStatusNotDefined","abstract":"<p>A <q>not defined</q> status</p>"},"Constants.html#/c:@SDLPowerModeQualificationStatusOk":{"name":"SDLPowerModeQualificationStatusOk","abstract":"<p>An <q>ok</q> status</p>"},"Constants.html#/c:@SDLPowerModeStatusKeyOut":{"name":"SDLPowerModeStatusKeyOut","abstract":"<p>The key is not in the ignition, and the power is off</p>"},"Constants.html#/c:@SDLPowerModeStatusKeyRecentlyOut":{"name":"SDLPowerModeStatusKeyRecentlyOut","abstract":"<p>The key is not in the ignition and it was just recently removed</p>"},"Constants.html#/c:@SDLPowerModeStatusKeyApproved":{"name":"SDLPowerModeStatusKeyApproved","abstract":"<p>The key is not in the ignition, but an approved key is available</p>"},"Constants.html#/c:@SDLPowerModeStatusPostAccessory":{"name":"SDLPowerModeStatusPostAccessory","abstract":"<p>We are in a post-accessory power situation</p>"},"Constants.html#/c:@SDLPowerModeStatusAccessory":{"name":"SDLPowerModeStatusAccessory","abstract":"<p>The car is in accessory power mode</p>"},"Constants.html#/c:@SDLPowerModeStatusPostIgnition":{"name":"SDLPowerModeStatusPostIgnition","abstract":"<p>We are in a post-ignition power situation</p>"},"Constants.html#/c:@SDLPowerModeStatusIgnitionOn":{"name":"SDLPowerModeStatusIgnitionOn","abstract":"<p>The ignition is on but the car is not yet running</p>"},"Constants.html#/c:@SDLPowerModeStatusRunning":{"name":"SDLPowerModeStatusRunning","abstract":"<p>The ignition is on and the car is running</p>"},"Constants.html#/c:@SDLPowerModeStatusCrank":{"name":"SDLPowerModeStatusCrank","abstract":"<p>We are in a crank power situation</p>"},"Constants.html#/c:@SDLPredefinedLayoutDefault":{"name":"SDLPredefinedLayoutDefault","abstract":"<p>A default layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutMedia":{"name":"SDLPredefinedLayoutMedia","abstract":"<p>The default media layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutNonMedia":{"name":"SDLPredefinedLayoutNonMedia","abstract":"<p>The default non-media layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutOnscreenPresets":{"name":"SDLPredefinedLayoutOnscreenPresets","abstract":"<p>A media layout containing preset buttons</p>"},"Constants.html#/c:@SDLPredefinedLayoutNavigationFullscreenMap":{"name":"SDLPredefinedLayoutNavigationFullscreenMap","abstract":"<p>The default navigation layout with a fullscreen map</p>"},"Constants.html#/c:@SDLPredefinedLayoutNavigationList":{"name":"SDLPredefinedLayoutNavigationList","abstract":"<p>A list layout used for navigation apps</p>"},"Constants.html#/c:@SDLPredefinedLayoutNavigationKeyboard":{"name":"SDLPredefinedLayoutNavigationKeyboard","abstract":"<p>A keyboard layout used for navigation apps</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithText":{"name":"SDLPredefinedLayoutGraphicWithText","abstract":"<p>A layout with a single graphic on the left and text on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextWithGraphic":{"name":"SDLPredefinedLayoutTextWithGraphic","abstract":"<p>A layout with text on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTilesOnly":{"name":"SDLPredefinedLayoutTilesOnly","abstract":"<p>A layout with only softbuttons placed in a tile layout</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextButtonsOnly":{"name":"SDLPredefinedLayoutTextButtonsOnly","abstract":"<p>A layout with only soft buttons that only accept text</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTiles":{"name":"SDLPredefinedLayoutGraphicWithTiles","abstract":"<p>A layout with a single graphic on the left and soft buttons in a tile layout on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTilesWithGraphic":{"name":"SDLPredefinedLayoutTilesWithGraphic","abstract":"<p>A layout with soft buttons in a tile layout on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextAndSoftButtons":{"name":"SDLPredefinedLayoutGraphicWithTextAndSoftButtons","abstract":"<p>A layout with a single graphic on the left and both text and soft buttons on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextAndSoftButtonsWithGraphic":{"name":"SDLPredefinedLayoutTextAndSoftButtonsWithGraphic","abstract":"<p>A layout with both text and soft buttons on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextButtons":{"name":"SDLPredefinedLayoutGraphicWithTextButtons","abstract":"<p>A layout with a single graphic on the left and text-only soft buttons on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutTextButtonsWithGraphic":{"name":"SDLPredefinedLayoutTextButtonsWithGraphic","abstract":"<p>A layout with text-only soft buttons on the left and a single graphic on the right</p>"},"Constants.html#/c:@SDLPredefinedLayoutLargeGraphicWithSoftButtons":{"name":"SDLPredefinedLayoutLargeGraphicWithSoftButtons","abstract":"<p>A layout with a single large graphic and soft buttons</p>"},"Constants.html#/c:@SDLPredefinedLayoutDoubleGraphicWithSoftButtons":{"name":"SDLPredefinedLayoutDoubleGraphicWithSoftButtons","abstract":"<p>A layout with two graphics and soft buttons</p>"},"Constants.html#/c:@SDLPredefinedLayoutLargeGraphicOnly":{"name":"SDLPredefinedLayoutLargeGraphicOnly","abstract":"<p>A layout with only a single large graphic</p>"},"Constants.html#/c:@SDLPrerecordedSpeechHelp":{"name":"SDLPrerecordedSpeechHelp","abstract":"<p>A prerecorded help prompt</p>"},"Constants.html#/c:@SDLPrerecordedSpeechInitial":{"name":"SDLPrerecordedSpeechInitial","abstract":"<p>A prerecorded initial prompt</p>"},"Constants.html#/c:@SDLPrerecordedSpeechListen":{"name":"SDLPrerecordedSpeechListen","abstract":"<p>A prerecorded listen prompt is available</p>"},"Constants.html#/c:@SDLPrerecordedSpeechPositive":{"name":"SDLPrerecordedSpeechPositive","abstract":"<p>A prerecorded positive indicator noise is available</p>"},"Constants.html#/c:@SDLPrerecordedSpeechNegative":{"name":"SDLPrerecordedSpeechNegative","abstract":"<p>A prerecorded negative indicator noise is available</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceNoSourceSelected":{"name":"SDLPrimaryAudioSourceNoSourceSelected","abstract":"<p>Currently no source selected</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceUSB":{"name":"SDLPrimaryAudioSourceUSB","abstract":"<p>USB is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceUSB2":{"name":"SDLPrimaryAudioSourceUSB2","abstract":"<p>USB2 is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceBluetoothStereo":{"name":"SDLPrimaryAudioSourceBluetoothStereo","abstract":"<p>Bluetooth Stereo is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceLineIn":{"name":"SDLPrimaryAudioSourceLineIn","abstract":"<p>Line in is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceIpod":{"name":"SDLPrimaryAudioSourceIpod","abstract":"<p>iPod is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceMobileApp":{"name":"SDLPrimaryAudioSourceMobileApp","abstract":"<p>Mobile app is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceCD":{"name":"SDLPrimaryAudioSourceCD","abstract":"<p>@abstract CD is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceAM":{"name":"SDLPrimaryAudioSourceAM","abstract":"<p>@abstract Radio frequency AM is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceFM":{"name":"SDLPrimaryAudioSourceFM","abstract":"<p>@abstract Radio frequency FM is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceXM":{"name":"SDLPrimaryAudioSourceXM","abstract":"<p>@abstract Radio frequency XM is current source</p>"},"Constants.html#/c:@SDLPrimaryAudioSourceDAB":{"name":"SDLPrimaryAudioSourceDAB","abstract":"<p>@abstract Radio frequency DAB is current source</p>"},"Constants.html#/c:@SDLRPCFunctionNameAddCommand":{"name":"SDLRPCFunctionNameAddCommand","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameAddSubMenu":{"name":"SDLRPCFunctionNameAddSubMenu","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameAlert":{"name":"SDLRPCFunctionNameAlert","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameAlertManeuver":{"name":"SDLRPCFunctionNameAlertManeuver","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameButtonPress":{"name":"SDLRPCFunctionNameButtonPress","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameChangeRegistration":{"name":"SDLRPCFunctionNameChangeRegistration","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameCreateInteractionChoiceSet":{"name":"SDLRPCFunctionNameCreateInteractionChoiceSet","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameDeleteCommand":{"name":"SDLRPCFunctionNameDeleteCommand","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameDeleteFile":{"name":"SDLRPCFunctionNameDeleteFile","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameDeleteInteractionChoiceSet":{"name":"SDLRPCFunctionNameDeleteInteractionChoiceSet","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameDeleteSubMenu":{"name":"SDLRPCFunctionNameDeleteSubMenu","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameDiagnosticMessage":{"name":"SDLRPCFunctionNameDiagnosticMessage","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameDialNumber":{"name":"SDLRPCFunctionNameDialNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameEncodedSyncPData":{"name":"SDLRPCFunctionNameEncodedSyncPData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameEndAudioPassThru":{"name":"SDLRPCFunctionNameEndAudioPassThru","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGenericResponse":{"name":"SDLRPCFunctionNameGenericResponse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetAppServiceData":{"name":"SDLRPCFunctionNameGetAppServiceData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetDTCs":{"name":"SDLRPCFunctionNameGetDTCs","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetFile":{"name":"SDLRPCFunctionNameGetFile","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetCloudAppProperties":{"name":"SDLRPCFunctionNameGetCloudAppProperties","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetInteriorVehicleData":{"name":"SDLRPCFunctionNameGetInteriorVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetSystemCapability":{"name":"SDLRPCFunctionNameGetSystemCapability","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetVehicleData":{"name":"SDLRPCFunctionNameGetVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameGetWayPoints":{"name":"SDLRPCFunctionNameGetWayPoints","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameListFiles":{"name":"SDLRPCFunctionNameListFiles","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnAppInterfaceUnregistered":{"name":"SDLRPCFunctionNameOnAppInterfaceUnregistered","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnAppServiceData":{"name":"SDLRPCFunctionNameOnAppServiceData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnAudioPassThru":{"name":"SDLRPCFunctionNameOnAudioPassThru","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnButtonEvent":{"name":"SDLRPCFunctionNameOnButtonEvent","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnButtonPress":{"name":"SDLRPCFunctionNameOnButtonPress","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnCommand":{"name":"SDLRPCFunctionNameOnCommand","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnDriverDistraction":{"name":"SDLRPCFunctionNameOnDriverDistraction","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnEncodedSyncPData":{"name":"SDLRPCFunctionNameOnEncodedSyncPData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnHashChange":{"name":"SDLRPCFunctionNameOnHashChange","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnHMIStatus":{"name":"SDLRPCFunctionNameOnHMIStatus","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnInteriorVehicleData":{"name":"SDLRPCFunctionNameOnInteriorVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnKeyboardInput":{"name":"SDLRPCFunctionNameOnKeyboardInput","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnLanguageChange":{"name":"SDLRPCFunctionNameOnLanguageChange","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnLockScreenStatus":{"name":"SDLRPCFunctionNameOnLockScreenStatus","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnPermissionsChange":{"name":"SDLRPCFunctionNameOnPermissionsChange","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnRCStatus":{"name":"SDLRPCFunctionNameOnRCStatus","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnSyncPData":{"name":"SDLRPCFunctionNameOnSyncPData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnSystemCapabilityUpdated":{"name":"SDLRPCFunctionNameOnSystemCapabilityUpdated","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnSystemRequest":{"name":"SDLRPCFunctionNameOnSystemRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnTBTClientState":{"name":"SDLRPCFunctionNameOnTBTClientState","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnTouchEvent":{"name":"SDLRPCFunctionNameOnTouchEvent","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnVehicleData":{"name":"SDLRPCFunctionNameOnVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameOnWayPointChange":{"name":"SDLRPCFunctionNameOnWayPointChange","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNamePerformAppServiceInteraction":{"name":"SDLRPCFunctionNamePerformAppServiceInteraction","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNamePerformAudioPassThru":{"name":"SDLRPCFunctionNamePerformAudioPassThru","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNamePerformInteraction":{"name":"SDLRPCFunctionNamePerformInteraction","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNamePublishAppService":{"name":"SDLRPCFunctionNamePublishAppService","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNamePutFile":{"name":"SDLRPCFunctionNamePutFile","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameReadDID":{"name":"SDLRPCFunctionNameReadDID","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameRegisterAppInterface":{"name":"SDLRPCFunctionNameRegisterAppInterface","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameReserved":{"name":"SDLRPCFunctionNameReserved","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameResetGlobalProperties":{"name":"SDLRPCFunctionNameResetGlobalProperties","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameScrollableMessage":{"name":"SDLRPCFunctionNameScrollableMessage","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSendHapticData":{"name":"SDLRPCFunctionNameSendHapticData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSendLocation":{"name":"SDLRPCFunctionNameSendLocation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSetAppIcon":{"name":"SDLRPCFunctionNameSetAppIcon","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSetCloudAppProperties":{"name":"SDLRPCFunctionNameSetCloudAppProperties","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSetDisplayLayout":{"name":"SDLRPCFunctionNameSetDisplayLayout","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSetGlobalProperties":{"name":"SDLRPCFunctionNameSetGlobalProperties","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSetInteriorVehicleData":{"name":"SDLRPCFunctionNameSetInteriorVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSetMediaClockTimer":{"name":"SDLRPCFunctionNameSetMediaClockTimer","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameShow":{"name":"SDLRPCFunctionNameShow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameShowConstantTBT":{"name":"SDLRPCFunctionNameShowConstantTBT","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSlider":{"name":"SDLRPCFunctionNameSlider","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSpeak":{"name":"SDLRPCFunctionNameSpeak","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSubscribeButton":{"name":"SDLRPCFunctionNameSubscribeButton","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSubscribeVehicleData":{"name":"SDLRPCFunctionNameSubscribeVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSubscribeWayPoints":{"name":"SDLRPCFunctionNameSubscribeWayPoints","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSyncPData":{"name":"SDLRPCFunctionNameSyncPData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameSystemRequest":{"name":"SDLRPCFunctionNameSystemRequest","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameUnregisterAppInterface":{"name":"SDLRPCFunctionNameUnregisterAppInterface","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameUnsubscribeButton":{"name":"SDLRPCFunctionNameUnsubscribeButton","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameUnsubscribeVehicleData":{"name":"SDLRPCFunctionNameUnsubscribeVehicleData","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameUnsubscribeWayPoints":{"name":"SDLRPCFunctionNameUnsubscribeWayPoints","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRPCFunctionNameUpdateTurnList":{"name":"SDLRPCFunctionNameUpdateTurnList","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLRadioBandAM":{"name":"SDLRadioBandAM","abstract":"<p>Represents AM radio band</p>"},"Constants.html#/c:@SDLRadioBandFM":{"name":"SDLRadioBandFM","abstract":"<p>Represents FM radio band</p>"},"Constants.html#/c:@SDLRadioBandXM":{"name":"SDLRadioBandXM","abstract":"<p>Represents XM radio band</p>"},"Constants.html#/c:@SDLRadioStateAcquiring":{"name":"SDLRadioStateAcquiring","abstract":"<p>Represents Radio state as ACQUIRING</p>"},"Constants.html#/c:@SDLRadioStateAcquired":{"name":"SDLRadioStateAcquired","abstract":"<p>Represents Radio state as ACQUIRED</p>"},"Constants.html#/c:@SDLRadioStateMulticast":{"name":"SDLRadioStateMulticast","abstract":"<p>Represents Radio state as MULTICAST</p>"},"Constants.html#/c:@SDLRadioStateNotFound":{"name":"SDLRadioStateNotFound","abstract":"<p>Represents Radio state as NOT_FOUND</p>"},"Constants.html#/c:@SDLRequestTypeHTTP":{"name":"SDLRequestTypeHTTP","abstract":"<p>An HTTP request</p>"},"Constants.html#/c:@SDLRequestTypeFileResume":{"name":"SDLRequestTypeFileResume","abstract":"<p>A file resumption request</p>"},"Constants.html#/c:@SDLRequestTypeAuthenticationRequest":{"name":"SDLRequestTypeAuthenticationRequest","abstract":"<p>An authentication request</p>"},"Constants.html#/c:@SDLRequestTypeAuthenticationChallenge":{"name":"SDLRequestTypeAuthenticationChallenge","abstract":"<p>An authentication challenge</p>"},"Constants.html#/c:@SDLRequestTypeAuthenticationAck":{"name":"SDLRequestTypeAuthenticationAck","abstract":"<p>An authentication acknowledgment</p>"},"Constants.html#/c:@SDLRequestTypeProprietary":{"name":"SDLRequestTypeProprietary","abstract":"<p>An proprietary formatted request</p>"},"Constants.html#/c:@SDLRequestTypeQueryApps":{"name":"SDLRequestTypeQueryApps","abstract":"<p>An Query Apps request</p>"},"Constants.html#/c:@SDLRequestTypeLaunchApp":{"name":"SDLRequestTypeLaunchApp","abstract":"<p>A Launch Apps request</p>"},"Constants.html#/c:@SDLRequestTypeLockScreenIconURL":{"name":"SDLRequestTypeLockScreenIconURL","abstract":"<p>The URL for a lock screen icon</p>"},"Constants.html#/c:@SDLRequestTypeTrafficMessageChannel":{"name":"SDLRequestTypeTrafficMessageChannel","abstract":"<p>A traffic message channel request</p>"},"Constants.html#/c:@SDLRequestTypeDriverProfile":{"name":"SDLRequestTypeDriverProfile","abstract":"<p>A driver profile request</p>"},"Constants.html#/c:@SDLRequestTypeVoiceSearch":{"name":"SDLRequestTypeVoiceSearch","abstract":"<p>A voice search request</p>"},"Constants.html#/c:@SDLRequestTypeNavigation":{"name":"SDLRequestTypeNavigation","abstract":"<p>A navigation request</p>"},"Constants.html#/c:@SDLRequestTypePhone":{"name":"SDLRequestTypePhone","abstract":"<p>A phone request</p>"},"Constants.html#/c:@SDLRequestTypeClimate":{"name":"SDLRequestTypeClimate","abstract":"<p>A climate request</p>"},"Constants.html#/c:@SDLRequestTypeSettings":{"name":"SDLRequestTypeSettings","abstract":"<p>A settings request</p>"},"Constants.html#/c:@SDLRequestTypeVehicleDiagnostics":{"name":"SDLRequestTypeVehicleDiagnostics","abstract":"<p>A vehicle diagnostics request</p>"},"Constants.html#/c:@SDLRequestTypeEmergency":{"name":"SDLRequestTypeEmergency","abstract":"<p>An emergency request</p>"},"Constants.html#/c:@SDLRequestTypeMedia":{"name":"SDLRequestTypeMedia","abstract":"<p>A media request</p>"},"Constants.html#/c:@SDLRequestTypeFOTA":{"name":"SDLRequestTypeFOTA","abstract":"<p>A firmware over-the-air request</p>"},"Constants.html#/c:@SDLRequestTypeOEMSpecific":{"name":"SDLRequestTypeOEMSpecific","abstract":"<p>A request that is OEM specific using the <code>RequestSubType</code> in SystemRequest</p>"},"Constants.html#/c:@SDLRequestTypeIconURL":{"name":"SDLRequestTypeIconURL","abstract":"<p>A request for an icon url</p>"},"Constants.html#/c:@SDLResultSuccess":{"name":"SDLResultSuccess","abstract":"<p>The request succeeded</p>"},"Constants.html#/c:@SDLResultInvalidData":{"name":"SDLResultInvalidData","abstract":"<p>The request contained invalid data</p>"},"Constants.html#/c:@SDLResultCharacterLimitExceeded":{"name":"SDLResultCharacterLimitExceeded","abstract":"<p>The request had a string containing too many characters</p>"},"Constants.html#/c:@SDLResultUnsupportedRequest":{"name":"SDLResultUnsupportedRequest","abstract":"<p>The request is not supported by the IVI unit implementing SDL</p>"},"Constants.html#/c:@SDLResultOutOfMemory":{"name":"SDLResultOutOfMemory","abstract":"<p>The system could not process the request because the necessary memory couldn’t be allocated</p>"},"Constants.html#/c:@SDLResultTooManyPendingRequests":{"name":"SDLResultTooManyPendingRequests","abstract":"<p>There are too many requests pending (means that the response has not been delivered yet).</p>"},"Constants.html#/c:@SDLResultInvalidId":{"name":"SDLResultInvalidId","abstract":"<p>One of the provided IDs is not valid.</p>"},"Constants.html#/c:@SDLResultDuplicateName":{"name":"SDLResultDuplicateName","abstract":"<p>The provided name or synonym is a duplicate of some already-defined name or synonym.</p>"},"Constants.html#/c:@SDLResultTooManyApplications":{"name":"SDLResultTooManyApplications","abstract":"<p>There are already too many registered applications.</p>"},"Constants.html#/c:@SDLResultApplicationRegisteredAlready":{"name":"SDLResultApplicationRegisteredAlready","abstract":"<p>RegisterAppInterface has been called, but this app is already registered</p>"},"Constants.html#/c:@SDLResultUnsupportedVersion":{"name":"SDLResultUnsupportedVersion","abstract":"<p>The Head Unit doesn’t support the SDL version that is requested by the mobile application.</p>"},"Constants.html#/c:@SDLResultWrongLanguage":{"name":"SDLResultWrongLanguage","abstract":"<p>The requested language is currently not supported. This might be because of a mismatch of the currently active language on the head unit and the requested language.</p>"},"Constants.html#/c:@SDLResultApplicationNotRegistered":{"name":"SDLResultApplicationNotRegistered","abstract":"<p>A command can not be executed because no application has been registered with RegisterApplication.</p>"},"Constants.html#/c:@SDLResultInUse":{"name":"SDLResultInUse","abstract":"<p>The data may not be changed, because it is currently in use. For example when trying to delete a choice set that is currently involved in an interaction.</p>"},"Constants.html#/c:@SDLResultVehicleDataNotAllowed":{"name":"SDLResultVehicleDataNotAllowed","abstract":"<p>The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.</p>"},"Constants.html#/c:@SDLResultVehicleDataNotAvailable":{"name":"SDLResultVehicleDataNotAvailable","abstract":"<p>The requested vehicle data is not available on this vehicle or is not published.</p>"},"Constants.html#/c:@SDLResultRejected":{"name":"SDLResultRejected","abstract":"<p>The requested command was rejected, e.g. because the mobile app is in background and cannot perform any HMI commands, or an HMI command (e.g. Speak) is rejected because a higher priority HMI command (e.g. Alert) is playing.</p>"},"Constants.html#/c:@SDLResultAborted":{"name":"SDLResultAborted","abstract":"<p>A command was aborted, e.g. due to user interaction (user pressed button), or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.</p>"},"Constants.html#/c:@SDLResultIgnored":{"name":"SDLResultIgnored","abstract":"<p>A command was ignored, because the intended result is already in effect. For example, SetMediaClockTimer was used to pause the media clock although the clock is paused already.</p>"},"Constants.html#/c:@SDLResultUnsupportedResource":{"name":"SDLResultUnsupportedResource","abstract":"<p>A button that was requested for subscription is not supported under the current system.</p>"},"Constants.html#/c:@SDLResultFileNotFound":{"name":"SDLResultFileNotFound","abstract":"<p>A specified file could not be found on the head unit.</p>"},"Constants.html#/c:@SDLResultGenericError":{"name":"SDLResultGenericError","abstract":"<p>Provided data is valid but something went wrong in the lower layers.</p>"},"Constants.html#/c:@SDLResultDisallowed":{"name":"SDLResultDisallowed","abstract":"<p>RPC is not authorized in local policy table.</p>"},"Constants.html#/c:@SDLResultUserDisallowed":{"name":"SDLResultUserDisallowed","abstract":"<p>RPC is included in a functional group explicitly blocked by the user.</p>"},"Constants.html#/c:@SDLResultTimedOut":{"name":"SDLResultTimedOut","abstract":"<p>Overlay reached the maximum timeout and closed.</p>"},"Constants.html#/c:@SDLResultCancelRoute":{"name":"SDLResultCancelRoute","abstract":"<p>User selected to Cancel Route.</p>"},"Constants.html#/c:@SDLResultCorruptedData":{"name":"SDLResultCorruptedData","abstract":"<p>The data sent failed to pass CRC check in receiver end.</p>"},"Constants.html#/c:@SDLResultTruncatedData":{"name":"SDLResultTruncatedData","abstract":"<p>The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available.</p>"},"Constants.html#/c:@SDLResultRetry":{"name":"SDLResultRetry","abstract":"<p>The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC.</p>"},"Constants.html#/c:@SDLResultWarnings":{"name":"SDLResultWarnings","abstract":"<p>The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.</p>"},"Constants.html#/c:@SDLResultSaved":{"name":"SDLResultSaved","abstract":"<p>The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value.</p>"},"Constants.html#/c:@SDLResultInvalidCertificate":{"name":"SDLResultInvalidCertificate","abstract":"<p>The certificate provided during authentication is invalid.</p>"},"Constants.html#/c:@SDLResultExpiredCertificate":{"name":"SDLResultExpiredCertificate","abstract":"<p>The certificate provided during authentication is expired.</p>"},"Constants.html#/c:@SDLResultResumeFailed":{"name":"SDLResultResumeFailed","abstract":"<p>The provided hash ID does not match the hash of the current set of registered data or the core could not resume the previous data.</p>"},"Constants.html#/c:@SDLResultDataNotAvailable":{"name":"SDLResultDataNotAvailable","abstract":"<p>The requested data is not available on this vehicle or is not published for the connected app.</p>"},"Constants.html#/c:@SDLResultReadOnly":{"name":"SDLResultReadOnly","abstract":"<p>The requested data is read only thus cannot be change via remote control .</p>"},"Constants.html#/c:@SDLSamplingRate8KHZ":{"name":"SDLSamplingRate8KHZ","abstract":"<p>Sampling rate of 8 kHz</p>"},"Constants.html#/c:@SDLSamplingRate16KHZ":{"name":"SDLSamplingRate16KHZ","abstract":"<p>Sampling rate of 16 kHz</p>"},"Constants.html#/c:@SDLSamplingRate22KHZ":{"name":"SDLSamplingRate22KHZ","abstract":"<p>Sampling rate of 22 kHz</p>"},"Constants.html#/c:@SDLSamplingRate44KHZ":{"name":"SDLSamplingRate44KHZ","abstract":"<p>Sampling rate of 44 kHz</p>"},"Constants.html#/c:@SDLSeatMemoryActionTypeSave":{"name":"SDLSeatMemoryActionTypeSave","abstract":"<p>@abstract Save current seat postions and settings to seat memory.</p>"},"Constants.html#/c:@SDLSeatMemoryActionTypeRestore":{"name":"SDLSeatMemoryActionTypeRestore","abstract":"<p>@abstract Restore / apply the seat memory settings to the current seat.</p>"},"Constants.html#/c:@SDLSeatMemoryActionTypeNone":{"name":"SDLSeatMemoryActionTypeNone","abstract":"<p>@abstract No action to be performed.</p>"},"Constants.html#/c:@SDLServiceUpdatePublished":{"name":"SDLServiceUpdatePublished","abstract":"<p>The service has just been published with the module and once activated to the primary service of its type, it will be ready for possible consumption.</p>"},"Constants.html#/c:@SDLServiceUpdateRemoved":{"name":"SDLServiceUpdateRemoved","abstract":"<p>The service has just been unpublished with the module and is no longer accessible.</p>"},"Constants.html#/c:@SDLServiceUpdateActivated":{"name":"SDLServiceUpdateActivated","abstract":"<p>The service is activated as the primary service of this type. All requests dealing with this service type will be handled by this service.</p>"},"Constants.html#/c:@SDLServiceUpdateDeactivated":{"name":"SDLServiceUpdateDeactivated","abstract":"<p>The service has been deactivated as the primary service of its type.</p>"},"Constants.html#/c:@SDLServiceUpdateManifestUpdate":{"name":"SDLServiceUpdateManifestUpdate","abstract":"<p>The service has updated its manifest. This could imply updated capabilities.</p>"},"Constants.html#/c:@SDLSoftButtonTypeText":{"name":"SDLSoftButtonTypeText","abstract":"<p>Text kind Softbutton</p>"},"Constants.html#/c:@SDLSoftButtonTypeImage":{"name":"SDLSoftButtonTypeImage","abstract":"<p>Image kind Softbutton</p>"},"Constants.html#/c:@SDLSoftButtonTypeBoth":{"name":"SDLSoftButtonTypeBoth","abstract":"<p>Both (Text & Image) kind Softbutton</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesText":{"name":"SDLSpeechCapabilitiesText","abstract":"<p>The SDL platform can speak text phrases.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesSAPIPhonemes":{"name":"SDLSpeechCapabilitiesSAPIPhonemes","abstract":"<p>The SDL platform can speak SAPI Phonemes.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesLHPlusPhonemes":{"name":"SDLSpeechCapabilitiesLHPlusPhonemes","abstract":"<p>The SDL platform can speak LHPlus Phonemes.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesPrerecorded":{"name":"SDLSpeechCapabilitiesPrerecorded","abstract":"<p>The SDL platform can speak Prerecorded indicators and prompts.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesSilence":{"name":"SDLSpeechCapabilitiesSilence","abstract":"<p>The SDL platform can speak Silence.</p>"},"Constants.html#/c:@SDLSpeechCapabilitiesFile":{"name":"SDLSpeechCapabilitiesFile","abstract":"<p>The SDL platform can play a file</p>"},"Constants.html#/c:@SDLStaticIconNameAcceptCall":{"name":"SDLStaticIconNameAcceptCall","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAddWaypoint":{"name":"SDLStaticIconNameAddWaypoint","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAlbum":{"name":"SDLStaticIconNameAlbum","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAmbientLighting":{"name":"SDLStaticIconNameAmbientLighting","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameArrowNorth":{"name":"SDLStaticIconNameArrowNorth","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAudioMute":{"name":"SDLStaticIconNameAudioMute","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAudiobookEpisode":{"name":"SDLStaticIconNameAudiobookEpisode","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAudiobookNarrator":{"name":"SDLStaticIconNameAudiobookNarrator","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameAuxillaryAudio":{"name":"SDLStaticIconNameAuxillaryAudio","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBack":{"name":"SDLStaticIconNameBack","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity0Of5":{"name":"SDLStaticIconNameBatteryCapacity0Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity1Of5":{"name":"SDLStaticIconNameBatteryCapacity1Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity2Of5":{"name":"SDLStaticIconNameBatteryCapacity2Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity3Of5":{"name":"SDLStaticIconNameBatteryCapacity3Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity4Of5":{"name":"SDLStaticIconNameBatteryCapacity4Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBatteryCapacity5Of5":{"name":"SDLStaticIconNameBatteryCapacity5Of5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBluetoothAudioSource":{"name":"SDLStaticIconNameBluetoothAudioSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBluetooth1":{"name":"SDLStaticIconNameBluetooth1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBluetooth2":{"name":"SDLStaticIconNameBluetooth2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameBrowse":{"name":"SDLStaticIconNameBrowse","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellPhoneInRoamingMode":{"name":"SDLStaticIconNameCellPhoneInRoamingMode","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength0Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength0Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength1Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength1Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength2Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength2Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength3Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength3Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength4Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength4Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCellServiceSignalStrength5Of5Bars":{"name":"SDLStaticIconNameCellServiceSignalStrength5Of5Bars","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameChangeLaneLeft":{"name":"SDLStaticIconNameChangeLaneLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameChangeLaneRight":{"name":"SDLStaticIconNameChangeLaneRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCheckBoxChecked":{"name":"SDLStaticIconNameCheckBoxChecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCheckBoxUnchecked":{"name":"SDLStaticIconNameCheckBoxUnchecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameClimate":{"name":"SDLStaticIconNameClimate","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameClock":{"name":"SDLStaticIconNameClock","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameCompose":{"name":"SDLStaticIconNameCompose","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameContact":{"name":"SDLStaticIconNameContact","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameContinue":{"name":"SDLStaticIconNameContinue","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDash":{"name":"SDLStaticIconNameDash","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDate":{"name":"SDLStaticIconNameDate","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDelete":{"name":"SDLStaticIconNameDelete","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDestination":{"name":"SDLStaticIconNameDestination","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameDestinationFerryAhead":{"name":"SDLStaticIconNameDestinationFerryAhead","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameEbookmark":{"name":"SDLStaticIconNameEbookmark","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameEmpty":{"name":"SDLStaticIconNameEmpty","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameEndCall":{"name":"SDLStaticIconNameEndCall","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFail":{"name":"SDLStaticIconNameFail","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFastForward30Secs":{"name":"SDLStaticIconNameFastForward30Secs","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFavoriteHeart":{"name":"SDLStaticIconNameFavoriteHeart","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFavoriteStar":{"name":"SDLStaticIconNameFavoriteStar","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFaxNumber":{"name":"SDLStaticIconNameFaxNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFilename":{"name":"SDLStaticIconNameFilename","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFilter":{"name":"SDLStaticIconNameFilter","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFolder":{"name":"SDLStaticIconNameFolder","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFuelPrices":{"name":"SDLStaticIconNameFuelPrices","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameFullMap":{"name":"SDLStaticIconNameFullMap","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameGenericPhoneNumber":{"name":"SDLStaticIconNameGenericPhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameGenre":{"name":"SDLStaticIconNameGenre","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameGlobalKeyboard":{"name":"SDLStaticIconNameGlobalKeyboard","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameHighwayExitInformation":{"name":"SDLStaticIconNameHighwayExitInformation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameHomePhoneNumber":{"name":"SDLStaticIconNameHomePhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameHyperlink":{"name":"SDLStaticIconNameHyperlink","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameID3TagUnknown":{"name":"SDLStaticIconNameID3TagUnknown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameIncomingCalls":{"name":"SDLStaticIconNameIncomingCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameInformation":{"name":"SDLStaticIconNameInformation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameIPodMediaSource":{"name":"SDLStaticIconNameIPodMediaSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameJoinCalls":{"name":"SDLStaticIconNameJoinCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameKeepLeft":{"name":"SDLStaticIconNameKeepLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameKeepRight":{"name":"SDLStaticIconNameKeepRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameKey":{"name":"SDLStaticIconNameKey","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLeft":{"name":"SDLStaticIconNameLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLeftArrow":{"name":"SDLStaticIconNameLeftArrow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLeftExit":{"name":"SDLStaticIconNameLeftExit","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLineInAudioSource":{"name":"SDLStaticIconNameLineInAudioSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameLocked":{"name":"SDLStaticIconNameLocked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlLeftArrow":{"name":"SDLStaticIconNameMediaControlLeftArrow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlRecording":{"name":"SDLStaticIconNameMediaControlRecording","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlRightArrow":{"name":"SDLStaticIconNameMediaControlRightArrow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMediaControlStop":{"name":"SDLStaticIconNameMediaControlStop","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMicrophone":{"name":"SDLStaticIconNameMicrophone","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMissedCalls":{"name":"SDLStaticIconNameMissedCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMobilePhoneNumber":{"name":"SDLStaticIconNameMobilePhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMoveDown":{"name":"SDLStaticIconNameMoveDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMoveUp":{"name":"SDLStaticIconNameMoveUp","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameMP3TagArtist":{"name":"SDLStaticIconNameMP3TagArtist","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNavigation":{"name":"SDLStaticIconNameNavigation","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNavigationCurrentDirection":{"name":"SDLStaticIconNameNavigationCurrentDirection","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNegativeRatingThumbsDown":{"name":"SDLStaticIconNameNegativeRatingThumbsDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameNew":{"name":"SDLStaticIconNameNew","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOfficePhoneNumber":{"name":"SDLStaticIconNameOfficePhoneNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOpened":{"name":"SDLStaticIconNameOpened","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOrigin":{"name":"SDLStaticIconNameOrigin","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameOutgoingCalls":{"name":"SDLStaticIconNameOutgoingCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePause":{"name":"SDLStaticIconNamePause","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoneCall1":{"name":"SDLStaticIconNamePhoneCall1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoneCall2":{"name":"SDLStaticIconNamePhoneCall2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoneDevice":{"name":"SDLStaticIconNamePhoneDevice","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhonebook":{"name":"SDLStaticIconNamePhonebook","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePhoto":{"name":"SDLStaticIconNamePhoto","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePlay":{"name":"SDLStaticIconNamePlay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePlaylist":{"name":"SDLStaticIconNamePlaylist","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePopUp":{"name":"SDLStaticIconNamePopUp","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePositiveRatingThumbsUp":{"name":"SDLStaticIconNamePositiveRatingThumbsUp","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePower":{"name":"SDLStaticIconNamePower","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNamePrimaryPhone":{"name":"SDLStaticIconNamePrimaryPhone","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRadioButtonChecked":{"name":"SDLStaticIconNameRadioButtonChecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRadioButtonUnchecked":{"name":"SDLStaticIconNameRadioButtonUnchecked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRecentCalls":{"name":"SDLStaticIconNameRecentCalls","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRecentDestinations":{"name":"SDLStaticIconNameRecentDestinations","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRedo":{"name":"SDLStaticIconNameRedo","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRefresh":{"name":"SDLStaticIconNameRefresh","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRemoteDiagnosticsCheckEngine":{"name":"SDLStaticIconNameRemoteDiagnosticsCheckEngine","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRendered911Assist":{"name":"SDLStaticIconNameRendered911Assist","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRepeat":{"name":"SDLStaticIconNameRepeat","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRepeatPlay":{"name":"SDLStaticIconNameRepeatPlay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameReply":{"name":"SDLStaticIconNameReply","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRewind30Secs":{"name":"SDLStaticIconNameRewind30Secs","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRight":{"name":"SDLStaticIconNameRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRightExit":{"name":"SDLStaticIconNameRightExit","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRingtones":{"name":"SDLStaticIconNameRingtones","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand1":{"name":"SDLStaticIconNameRoundaboutLeftHand1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand2":{"name":"SDLStaticIconNameRoundaboutLeftHand2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand3":{"name":"SDLStaticIconNameRoundaboutLeftHand3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand4":{"name":"SDLStaticIconNameRoundaboutLeftHand4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand5":{"name":"SDLStaticIconNameRoundaboutLeftHand5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand6":{"name":"SDLStaticIconNameRoundaboutLeftHand6","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutLeftHand7":{"name":"SDLStaticIconNameRoundaboutLeftHand7","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand1":{"name":"SDLStaticIconNameRoundaboutRightHand1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand2":{"name":"SDLStaticIconNameRoundaboutRightHand2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand3":{"name":"SDLStaticIconNameRoundaboutRightHand3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand4":{"name":"SDLStaticIconNameRoundaboutRightHand4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand5":{"name":"SDLStaticIconNameRoundaboutRightHand5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand6":{"name":"SDLStaticIconNameRoundaboutRightHand6","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRoundaboutRightHand7":{"name":"SDLStaticIconNameRoundaboutRightHand7","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameRSS":{"name":"SDLStaticIconNameRSS","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSettings":{"name":"SDLStaticIconNameSettings","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSharpLeft":{"name":"SDLStaticIconNameSharpLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSharpRight":{"name":"SDLStaticIconNameSharpRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameShow":{"name":"SDLStaticIconNameShow","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameShufflePlay":{"name":"SDLStaticIconNameShufflePlay","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSkiPlaces":{"name":"SDLStaticIconNameSkiPlaces","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSlightLeft":{"name":"SDLStaticIconNameSlightLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSlightRight":{"name":"SDLStaticIconNameSlightRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSmartphone":{"name":"SDLStaticIconNameSmartphone","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSortList":{"name":"SDLStaticIconNameSortList","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber0":{"name":"SDLStaticIconNameSpeedDialNumbersNumber0","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber1":{"name":"SDLStaticIconNameSpeedDialNumbersNumber1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber2":{"name":"SDLStaticIconNameSpeedDialNumbersNumber2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber3":{"name":"SDLStaticIconNameSpeedDialNumbersNumber3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber4":{"name":"SDLStaticIconNameSpeedDialNumbersNumber4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber5":{"name":"SDLStaticIconNameSpeedDialNumbersNumber5","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber6":{"name":"SDLStaticIconNameSpeedDialNumbersNumber6","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber7":{"name":"SDLStaticIconNameSpeedDialNumbersNumber7","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber8":{"name":"SDLStaticIconNameSpeedDialNumbersNumber8","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSpeedDialNumbersNumber9":{"name":"SDLStaticIconNameSpeedDialNumbersNumber9","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameSuccess":{"name":"SDLStaticIconNameSuccess","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameTrackTitle":{"name":"SDLStaticIconNameTrackTitle","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameTrafficReport":{"name":"SDLStaticIconNameTrafficReport","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameTurnList":{"name":"SDLStaticIconNameTurnList","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUTurnLeftTraffic":{"name":"SDLStaticIconNameUTurnLeftTraffic","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUTurnRightTraffic":{"name":"SDLStaticIconNameUTurnRightTraffic","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUndo":{"name":"SDLStaticIconNameUndo","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUnlocked":{"name":"SDLStaticIconNameUnlocked","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameUSBMediaAudioSource":{"name":"SDLStaticIconNameUSBMediaAudioSource","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo1":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo1","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo2":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo2","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo3":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo3","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceControlScrollbarListItemNo4":{"name":"SDLStaticIconNameVoiceControlScrollbarListItemNo4","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionFailed":{"name":"SDLStaticIconNameVoiceRecognitionFailed","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionPause":{"name":"SDLStaticIconNameVoiceRecognitionPause","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionSuccessful":{"name":"SDLStaticIconNameVoiceRecognitionSuccessful","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionSystemActive":{"name":"SDLStaticIconNameVoiceRecognitionSystemActive","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionSystemListening":{"name":"SDLStaticIconNameVoiceRecognitionSystemListening","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameVoiceRecognitionTryAgain":{"name":"SDLStaticIconNameVoiceRecognitionTryAgain","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameWarning":{"name":"SDLStaticIconNameWarning","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameWeather":{"name":"SDLStaticIconNameWeather","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameWifiFull":{"name":"SDLStaticIconNameWifiFull","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameZoomIn":{"name":"SDLStaticIconNameZoomIn","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLStaticIconNameZoomOut":{"name":"SDLStaticIconNameZoomOut","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLDefaultScreenSize":{"name":"SDLDefaultScreenSize","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamDidStartNotification":{"name":"SDLVideoStreamDidStartNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamDidStopNotification":{"name":"SDLVideoStreamDidStopNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamSuspendedNotification":{"name":"SDLVideoStreamSuspendedNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamDidStartNotification":{"name":"SDLAudioStreamDidStartNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamDidStopNotification":{"name":"SDLAudioStreamDidStopNotification","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerWillPresentLockScreenViewController":{"name":"SDLLockScreenManagerWillPresentLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerDidPresentLockScreenViewController":{"name":"SDLLockScreenManagerDidPresentLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerWillDismissLockScreenViewController":{"name":"SDLLockScreenManagerWillDismissLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLLockScreenManagerDidDismissLockScreenViewController":{"name":"SDLLockScreenManagerDidDismissLockScreenViewController","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateStopped":{"name":"SDLVideoStreamManagerStateStopped","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateStarting":{"name":"SDLVideoStreamManagerStateStarting","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateReady":{"name":"SDLVideoStreamManagerStateReady","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateSuspended":{"name":"SDLVideoStreamManagerStateSuspended","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLVideoStreamManagerStateShuttingDown":{"name":"SDLVideoStreamManagerStateShuttingDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateStopped":{"name":"SDLAudioStreamManagerStateStopped","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateStarting":{"name":"SDLAudioStreamManagerStateStarting","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateReady":{"name":"SDLAudioStreamManagerStateReady","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAudioStreamManagerStateShuttingDown":{"name":"SDLAudioStreamManagerStateShuttingDown","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAppStateInactive":{"name":"SDLAppStateInactive","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLAppStateActive":{"name":"SDLAppStateActive","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLSupportedSeatDriver":{"name":"SDLSupportedSeatDriver","abstract":"<p>@abstract Save current seat postions and settings to seat memory.</p>"},"Constants.html#/c:@SDLSupportedSeatFrontPassenger":{"name":"SDLSupportedSeatFrontPassenger","abstract":"<p>@abstract Restore / apply the seat memory settings to the current seat.</p>"},"Constants.html#/c:@SDLSystemActionDefaultAction":{"name":"SDLSystemActionDefaultAction","abstract":"<p>A default soft button action</p>"},"Constants.html#/c:@SDLSystemActionStealFocus":{"name":"SDLSystemActionStealFocus","abstract":"<p>An action causing your app to steal HMI focus</p>"},"Constants.html#/c:@SDLSystemActionKeepContext":{"name":"SDLSystemActionKeepContext","abstract":"<p>An action causing you to keep context</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeAppServices":{"name":"SDLSystemCapabilityTypeAppServices","abstract":"<p>The app services capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeNavigation":{"name":"SDLSystemCapabilityTypeNavigation","abstract":"<p>The navigation capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypePhoneCall":{"name":"SDLSystemCapabilityTypePhoneCall","abstract":"<p>The phone call capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeVideoStreaming":{"name":"SDLSystemCapabilityTypeVideoStreaming","abstract":"<p>The video streaming capability</p>"},"Constants.html#/c:@SDLSystemCapabilityTypeRemoteControl":{"name":"SDLSystemCapabilityTypeRemoteControl","abstract":"<p>The remote control capability</p>"},"Constants.html#/c:@SDLSystemContextMain":{"name":"SDLSystemContextMain","abstract":"<p>No user interaction (user-initiated or app-initiated) is in progress.</p>"},"Constants.html#/c:@SDLSystemContextVoiceRecognitionSession":{"name":"SDLSystemContextVoiceRecognitionSession","abstract":"<p>VR-oriented, user-initiated or app-initiated interaction is in-progress.</p>"},"Constants.html#/c:@SDLSystemContextMenu":{"name":"SDLSystemContextMenu","abstract":"<p>Menu-oriented, user-initiated or app-initiated interaction is in-progress.</p>"},"Constants.html#/c:@SDLSystemContextHMIObscured":{"name":"SDLSystemContextHMIObscured","abstract":"<p>The app’s display HMI is currently being obscured by either a system or other app’s overlay.</p>"},"Constants.html#/c:@SDLSystemContextAlert":{"name":"SDLSystemContextAlert","abstract":"<p>Broadcast only to whichever app has an alert currently being displayed.</p>"},"Constants.html#/c:@SDLTBTStateRouteUpdateRequest":{"name":"SDLTBTStateRouteUpdateRequest","abstract":"<p>The route should be updated</p>"},"Constants.html#/c:@SDLTBTStateRouteAccepted":{"name":"SDLTBTStateRouteAccepted","abstract":"<p>The route is accepted</p>"},"Constants.html#/c:@SDLTBTStateRouteRefused":{"name":"SDLTBTStateRouteRefused","abstract":"<p>The route is refused</p>"},"Constants.html#/c:@SDLTBTStateRouteCancelled":{"name":"SDLTBTStateRouteCancelled","abstract":"<p>The route is cancelled</p>"},"Constants.html#/c:@SDLTBTStateETARequest":{"name":"SDLTBTStateETARequest","abstract":"<p>The route should update its Estimated Time of Arrival</p>"},"Constants.html#/c:@SDLTBTStateNextTurnRequest":{"name":"SDLTBTStateNextTurnRequest","abstract":"<p>The route should update its next turn</p>"},"Constants.html#/c:@SDLTBTStateRouteStatusRequest":{"name":"SDLTBTStateRouteStatusRequest","abstract":"<p>The route should update its status</p>"},"Constants.html#/c:@SDLTBTStateRouteSummaryRequest":{"name":"SDLTBTStateRouteSummaryRequest","abstract":"<p>The route update its summary</p>"},"Constants.html#/c:@SDLTBTStateTripStatusRequest":{"name":"SDLTBTStateTripStatusRequest","abstract":"<p>The route should update the trip’s status</p>"},"Constants.html#/c:@SDLTBTStateRouteUpdateRequestTimeout":{"name":"SDLTBTStateRouteUpdateRequestTimeout","abstract":"<p>The route update timed out</p>"},"Constants.html#/c:@SDLTPMSUnknown":{"name":"SDLTPMSUnknown","abstract":"<p>If set the status of the tire is not known.</p>"},"Constants.html#/c:@SDLTPMSSystemFault":{"name":"SDLTPMSSystemFault","abstract":"<p>TPMS does not function.</p>"},"Constants.html#/c:@SDLTPMSSensorFault":{"name":"SDLTPMSSensorFault","abstract":"<p>The sensor of the tire does not function.</p>"},"Constants.html#/c:@SDLTPMSLow":{"name":"SDLTPMSLow","abstract":"<p>TPMS is reporting a low tire pressure for the tire.</p>"},"Constants.html#/c:@SDLTPMSSystemActive":{"name":"SDLTPMSSystemActive","abstract":"<p>TPMS is active and the tire pressure is monitored.</p>"},"Constants.html#/c:@SDLTPMSTrain":{"name":"SDLTPMSTrain","abstract":"<p>TPMS is reporting that the tire must be trained.</p>"},"Constants.html#/c:@SDLTPMSTrainingComplete":{"name":"SDLTPMSTrainingComplete","abstract":"<p>TPMS reports the training for the tire is completed.</p>"},"Constants.html#/c:@SDLTPMSNotTrained":{"name":"SDLTPMSNotTrained","abstract":"<p>TPMS reports the tire is not trained.</p>"},"Constants.html#/c:@SDLTemperatureUnitCelsius":{"name":"SDLTemperatureUnitCelsius","abstract":"<p>Reflects the current HMI setting for temperature unit in Celsius</p>"},"Constants.html#/c:@SDLTemperatureUnitFahrenheit":{"name":"SDLTemperatureUnitFahrenheit","abstract":"<p>Reflects the current HMI setting for temperature unit in Fahrenheit</p>"},"Constants.html#/c:@SDLTextAlignmentLeft":{"name":"SDLTextAlignmentLeft","abstract":"<p>Text aligned left.</p>"},"Constants.html#/c:@SDLTextAlignmentRight":{"name":"SDLTextAlignmentRight","abstract":"<p>Text aligned right.</p>"},"Constants.html#/c:@SDLTextAlignmentCenter":{"name":"SDLTextAlignmentCenter","abstract":"<p>Text aligned centered.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField1":{"name":"SDLTextFieldNameMainField1","abstract":"<p>The first line of the first set of main fields of the persistent display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField2":{"name":"SDLTextFieldNameMainField2","abstract":"<p>The second line of the first set of main fields of the persistent display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField3":{"name":"SDLTextFieldNameMainField3","abstract":"<p>The first line of the second set of main fields of the persistent display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMainField4":{"name":"SDLTextFieldNameMainField4"},"Constants.html#/c:@SDLTextFieldNameStatusBar":{"name":"SDLTextFieldNameStatusBar","abstract":"<p>The status bar on the NGN display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMediaClock":{"name":"SDLTextFieldNameMediaClock","abstract":"<p>Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameMediaTrack":{"name":"SDLTextFieldNameMediaTrack","abstract":"<p>The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow.</p>"},"Constants.html#/c:@SDLTextFieldNameAlertText1":{"name":"SDLTextFieldNameAlertText1","abstract":"<p>The first line of the alert text field. Applies to SDLAlert.</p>"},"Constants.html#/c:@SDLTextFieldNameAlertText2":{"name":"SDLTextFieldNameAlertText2","abstract":"<p>The second line of the alert text field. Applies to SDLAlert.</p>"},"Constants.html#/c:@SDLTextFieldNameAlertText3":{"name":"SDLTextFieldNameAlertText3","abstract":"<p>The third line of the alert text field. Applies to SDLAlert.</p>"},"Constants.html#/c:@SDLTextFieldNameScrollableMessageBody":{"name":"SDLTextFieldNameScrollableMessageBody","abstract":"<p>Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage.</p>"},"Constants.html#/c:@SDLTextFieldNameInitialInteractionText":{"name":"SDLTextFieldNameInitialInteractionText","abstract":"<p>First line suggestion for a user response (in the case of VR enabled interaction).</p>"},"Constants.html#/c:@SDLTextFieldNameNavigationText1":{"name":"SDLTextFieldNameNavigationText1","abstract":"<p>First line of navigation text.</p>"},"Constants.html#/c:@SDLTextFieldNameNavigationText2":{"name":"SDLTextFieldNameNavigationText2","abstract":"<p>Second line of navigation text.</p>"},"Constants.html#/c:@SDLTextFieldNameETA":{"name":"SDLTextFieldNameETA","abstract":"<p>Estimated Time of Arrival time for navigation.</p>"},"Constants.html#/c:@SDLTextFieldNameTotalDistance":{"name":"SDLTextFieldNameTotalDistance","abstract":"<p>Total distance to destination for navigation.</p>"},"Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText1":{"name":"SDLTextFieldNameAudioPassThruDisplayText1","abstract":"<p>First line of text for audio pass thru.</p>"},"Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText2":{"name":"SDLTextFieldNameAudioPassThruDisplayText2","abstract":"<p>Second line of text for audio pass thru.</p>"},"Constants.html#/c:@SDLTextFieldNameSliderHeader":{"name":"SDLTextFieldNameSliderHeader","abstract":"<p>Header text for slider.</p>"},"Constants.html#/c:@SDLTextFieldNameSliderFooter":{"name":"SDLTextFieldNameSliderFooter","abstract":"<p>Footer text for slider</p>"},"Constants.html#/c:@SDLTextFieldNameMenuName":{"name":"SDLTextFieldNameMenuName","abstract":"<p>Primary text for SDLChoice</p>"},"Constants.html#/c:@SDLTextFieldNameSecondaryText":{"name":"SDLTextFieldNameSecondaryText","abstract":"<p>Secondary text for SDLChoice</p>"},"Constants.html#/c:@SDLTextFieldNameTertiaryText":{"name":"SDLTextFieldNameTertiaryText","abstract":"<p>Tertiary text for SDLChoice</p>"},"Constants.html#/c:@SDLTextFieldNameMenuTitle":{"name":"SDLTextFieldNameMenuTitle","abstract":"<p>Optional text to label an app menu button (for certain touchscreen platforms)</p>"},"Constants.html#/c:@SDLTextFieldNameLocationName":{"name":"SDLTextFieldNameLocationName","abstract":"<p>Optional name / title of intended location for SDLSendLocation</p>"},"Constants.html#/c:@SDLTextFieldNameLocationDescription":{"name":"SDLTextFieldNameLocationDescription","abstract":"<p>Optional description of intended location / establishment (if applicable) for SDLSendLocation</p>"},"Constants.html#/c:@SDLTextFieldNameAddressLines":{"name":"SDLTextFieldNameAddressLines","abstract":"<p>Optional location address (if applicable) for SDLSendLocation</p>"},"Constants.html#/c:@SDLTextFieldNamePhoneNumber":{"name":"SDLTextFieldNamePhoneNumber","abstract":"<p>Optional hone number of intended location / establishment (if applicable) for SDLSendLocation</p>"},"Constants.html#/c:@SDLTimerModeUp":{"name":"SDLTimerModeUp","abstract":"<p>The timer should count up.</p>"},"Constants.html#/c:@SDLTimerModeDown":{"name":"SDLTimerModeDown","abstract":"<p>The timer should count down.</p>"},"Constants.html#/c:@SDLTimerModeNone":{"name":"SDLTimerModeNone","abstract":"<p>The timer should not count.</p>"},"Constants.html#/c:@SDLTouchTypeBegin":{"name":"SDLTouchTypeBegin","abstract":"<p>The touch is the beginning of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTouchTypeMove":{"name":"SDLTouchTypeMove","abstract":"<p>The touch is the movement of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTouchTypeEnd":{"name":"SDLTouchTypeEnd","abstract":"<p>The touch is the ending of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTouchTypeCancel":{"name":"SDLTouchTypeCancel","abstract":"<p>The touch is the cancellation of a finger pressed on the display.</p>"},"Constants.html#/c:@SDLTriggerSourceMenu":{"name":"SDLTriggerSourceMenu","abstract":"<p>Selection made via menu</p>"},"Constants.html#/c:@SDLTriggerSourceVoiceRecognition":{"name":"SDLTriggerSourceVoiceRecognition","abstract":"<p>Selection made via Voice session</p>"},"Constants.html#/c:@SDLTriggerSourceKeyboard":{"name":"SDLTriggerSourceKeyboard","abstract":"<p>Selection made via Keyboard</p>"},"Constants.html#/c:@SDLTurnSignalOff":{"name":"SDLTurnSignalOff","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTurnSignalLeft":{"name":"SDLTurnSignalLeft","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTurnSignalRight":{"name":"SDLTurnSignalRight","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLTurnSignalBoth":{"name":"SDLTurnSignalBoth","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SDLUpdateModeCountUp":{"name":"SDLUpdateModeCountUp","abstract":"<p>Starts the media clock timer counting upward, in increments of 1 second.</p>"},"Constants.html#/c:@SDLUpdateModeCountDown":{"name":"SDLUpdateModeCountDown","abstract":"<p>Starts the media clock timer counting downward, in increments of 1 second.</p>"},"Constants.html#/c:@SDLUpdateModePause":{"name":"SDLUpdateModePause","abstract":"<p>Pauses the media clock timer.</p>"},"Constants.html#/c:@SDLUpdateModeResume":{"name":"SDLUpdateModeResume","abstract":"<p>Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN).</p>"},"Constants.html#/c:@SDLUpdateModeClear":{"name":"SDLUpdateModeClear","abstract":"<p>Clear the media clock timer.</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusInactiveNotConfirmed":{"name":"SDLVehicleDataActiveStatusInactiveNotConfirmed","abstract":"<p>Inactive not confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusInactiveConfirmed":{"name":"SDLVehicleDataActiveStatusInactiveConfirmed","abstract":"<p>Inactive confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusActiveNotConfirmed":{"name":"SDLVehicleDataActiveStatusActiveNotConfirmed","abstract":"<p>Active not confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusActiveConfirmed":{"name":"SDLVehicleDataActiveStatusActiveConfirmed","abstract":"<p>Active confirmed</p>"},"Constants.html#/c:@SDLVehicleDataActiveStatusFault":{"name":"SDLVehicleDataActiveStatusFault","abstract":"<p>Fault</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusNoEvent":{"name":"SDLVehicleDataEventStatusNoEvent","abstract":"<p>No event</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusNo":{"name":"SDLVehicleDataEventStatusNo","abstract":"<p>The event is a No status</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusYes":{"name":"SDLVehicleDataEventStatusYes","abstract":"<p>The event is a Yes status</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusNotSupported":{"name":"SDLVehicleDataEventStatusNotSupported","abstract":"<p>Vehicle data event is not supported</p>"},"Constants.html#/c:@SDLVehicleDataEventStatusFault":{"name":"SDLVehicleDataEventStatusFault","abstract":"<p>The event is a Fault status</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusNotSupported":{"name":"SDLVehicleDataNotificationStatusNotSupported","abstract":"<p>The vehicle data notification status is not supported</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusNormal":{"name":"SDLVehicleDataNotificationStatusNormal","abstract":"<p>The vehicle data notification status is normal</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusActive":{"name":"SDLVehicleDataNotificationStatusActive","abstract":"<p>The vehicle data notification status is active</p>"},"Constants.html#/c:@SDLVehicleDataNotificationStatusNotUsed":{"name":"SDLVehicleDataNotificationStatusNotUsed","abstract":"<p>The vehicle data notification status is not used</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeSuccess":{"name":"SDLVehicleDataResultCodeSuccess","abstract":"<p>Individual vehicle data item / DTC / DID request or subscription successful</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeTruncatedData":{"name":"SDLVehicleDataResultCodeTruncatedData","abstract":"<p>DTC / DID request successful, however, not all active DTCs or full contents of DID location available</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeDisallowed":{"name":"SDLVehicleDataResultCodeDisallowed","abstract":"<p>This vehicle data item is not allowed for this app by SDL</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeUserDisallowed":{"name":"SDLVehicleDataResultCodeUserDisallowed","abstract":"<p>The user has not granted access to this type of vehicle data item at this time</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeInvalidId":{"name":"SDLVehicleDataResultCodeInvalidId","abstract":"<p>The ECU ID referenced is not a valid ID on the bus / system</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeVehicleDataNotAvailable":{"name":"SDLVehicleDataResultCodeVehicleDataNotAvailable","abstract":"<p>The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeDataAlreadySubscribed":{"name":"SDLVehicleDataResultCodeDataAlreadySubscribed","abstract":"<p>The vehicle data item is already subscribed</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeDataNotSubscribed":{"name":"SDLVehicleDataResultCodeDataNotSubscribed","abstract":"<p>The vehicle data item cannot be unsubscribed because it is not currently subscribed</p>"},"Constants.html#/c:@SDLVehicleDataResultCodeIgnored":{"name":"SDLVehicleDataResultCodeIgnored","abstract":"<p>The request for this item is ignored because it is already in progress</p>"},"Constants.html#/c:@SDLVehicleDataStatusNoDataExists":{"name":"SDLVehicleDataStatusNoDataExists","abstract":"<p>No data avaliable</p>"},"Constants.html#/c:@SDLVehicleDataStatusOff":{"name":"SDLVehicleDataStatusOff","abstract":"<p>The status is Off</p>"},"Constants.html#/c:@SDLVehicleDataStatusOn":{"name":"SDLVehicleDataStatusOn","abstract":"<p>The status is On</p>"},"Constants.html#/c:@SDLVehicleDataTypeGPS":{"name":"SDLVehicleDataTypeGPS","abstract":"<p>GPS vehicle data</p>"},"Constants.html#/c:@SDLVehicleDataTypeSpeed":{"name":"SDLVehicleDataTypeSpeed","abstract":"<p>Vehicle speed data</p>"},"Constants.html#/c:@SDLVehicleDataTypeRPM":{"name":"SDLVehicleDataTypeRPM","abstract":"<p>Vehicle RPM data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelLevel":{"name":"SDLVehicleDataTypeFuelLevel","abstract":"<p>Vehicle fuel level data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelLevelState":{"name":"SDLVehicleDataTypeFuelLevelState","abstract":"<p>Vehicle fuel level state data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelConsumption":{"name":"SDLVehicleDataTypeFuelConsumption","abstract":"<p>Vehicle fuel consumption data</p>"},"Constants.html#/c:@SDLVehicleDataTypeExternalTemperature":{"name":"SDLVehicleDataTypeExternalTemperature","abstract":"<p>Vehicle external temperature data</p>"},"Constants.html#/c:@SDLVehicleDataTypeVIN":{"name":"SDLVehicleDataTypeVIN","abstract":"<p>Vehicle VIN data</p>"},"Constants.html#/c:@SDLVehicleDataTypePRNDL":{"name":"SDLVehicleDataTypePRNDL","abstract":"<p>Vehicle PRNDL data</p>"},"Constants.html#/c:@SDLVehicleDataTypeTirePressure":{"name":"SDLVehicleDataTypeTirePressure","abstract":"<p>Vehicle tire pressure data</p>"},"Constants.html#/c:@SDLVehicleDataTypeOdometer":{"name":"SDLVehicleDataTypeOdometer","abstract":"<p>Vehicle odometer data</p>"},"Constants.html#/c:@SDLVehicleDataTypeBeltStatus":{"name":"SDLVehicleDataTypeBeltStatus","abstract":"<p>Vehicle belt status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeBodyInfo":{"name":"SDLVehicleDataTypeBodyInfo","abstract":"<p>Vehicle body info data</p>"},"Constants.html#/c:@SDLVehicleDataTypeDeviceStatus":{"name":"SDLVehicleDataTypeDeviceStatus","abstract":"<p>Vehicle device status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeECallInfo":{"name":"SDLVehicleDataTypeECallInfo","abstract":"<p>Vehicle emergency call info data</p>"},"Constants.html#/c:@SDLVehicleDataTypeFuelRange":{"name":"SDLVehicleDataTypeFuelRange","abstract":"<p>Vehicle fuel range data</p>"},"Constants.html#/c:@SDLVehicleDataTypeAirbagStatus":{"name":"SDLVehicleDataTypeAirbagStatus","abstract":"<p>Vehicle airbag status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeEmergencyEvent":{"name":"SDLVehicleDataTypeEmergencyEvent","abstract":"<p>Vehicle emergency event info</p>"},"Constants.html#/c:@SDLVehicleDataTypeClusterModeStatus":{"name":"SDLVehicleDataTypeClusterModeStatus","abstract":"<p>Vehicle cluster mode status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeMyKey":{"name":"SDLVehicleDataTypeMyKey","abstract":"<p>Vehicle MyKey data</p>"},"Constants.html#/c:@SDLVehicleDataTypeBraking":{"name":"SDLVehicleDataTypeBraking","abstract":"<p>Vehicle braking data</p>"},"Constants.html#/c:@SDLVehicleDataTypeWiperStatus":{"name":"SDLVehicleDataTypeWiperStatus","abstract":"<p>Vehicle wiper status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeHeadlampStatus":{"name":"SDLVehicleDataTypeHeadlampStatus","abstract":"<p>Vehicle headlamp status</p>"},"Constants.html#/c:@SDLVehicleDataTypeBatteryVoltage":{"name":"SDLVehicleDataTypeBatteryVoltage","abstract":"<p>Vehicle battery voltage data</p>"},"Constants.html#/c:@SDLVehicleDataTypeEngineOilLife":{"name":"SDLVehicleDataTypeEngineOilLife","abstract":"<p>Vehicle engine oil life data</p>"},"Constants.html#/c:@SDLVehicleDataTypeEngineTorque":{"name":"SDLVehicleDataTypeEngineTorque","abstract":"<p>Vehicle engine torque data</p>"},"Constants.html#/c:@SDLVehicleDataTypeAccelerationPedal":{"name":"SDLVehicleDataTypeAccelerationPedal","abstract":"<p>Vehicle accleration pedal data</p>"},"Constants.html#/c:@SDLVehicleDataTypeSteeringWheel":{"name":"SDLVehicleDataTypeSteeringWheel","abstract":"<p>Vehicle steering wheel data</p>"},"Constants.html#/c:@SDLVehicleDataTypeElectronicParkBrakeStatus":{"name":"SDLVehicleDataTypeElectronicParkBrakeStatus","abstract":"<p>Vehicle electronic parking brake status data</p>"},"Constants.html#/c:@SDLVehicleDataTypeTurnSignal":{"name":"SDLVehicleDataTypeTurnSignal","abstract":"<p>Vehicle turn signal data</p>"},"Constants.html#/c:@SDLVehicleDataTypeCloudAppVehicleID":{"name":"SDLVehicleDataTypeCloudAppVehicleID","abstract":"<p>The cloud application vehicle id. Used by cloud apps to identify a head unit</p>"},"Constants.html#/c:@SDLVentilationModeUpper":{"name":"SDLVentilationModeUpper","abstract":"<p>The upper ventilation mode</p>"},"Constants.html#/c:@SDLVentilationModeLower":{"name":"SDLVentilationModeLower","abstract":"<p>The lower ventilation mode</p>"},"Constants.html#/c:@SDLVentilationModeBoth":{"name":"SDLVentilationModeBoth","abstract":"<p>The both ventilation mode</p>"},"Constants.html#/c:@SDLVentilationModeNone":{"name":"SDLVentilationModeNone","abstract":"<p>No ventilation mode</p>"},"Constants.html#/c:@SDLVideoStreamingCodecH264":{"name":"SDLVideoStreamingCodecH264","abstract":"<p>H264</p>"},"Constants.html#/c:@SDLVideoStreamingCodecH265":{"name":"SDLVideoStreamingCodecH265","abstract":"<p>H265</p>"},"Constants.html#/c:@SDLVideoStreamingCodecTheora":{"name":"SDLVideoStreamingCodecTheora","abstract":"<p>Theora</p>"},"Constants.html#/c:@SDLVideoStreamingCodecVP8":{"name":"SDLVideoStreamingCodecVP8","abstract":"<p>VP8</p>"},"Constants.html#/c:@SDLVideoStreamingCodecVP9":{"name":"SDLVideoStreamingCodecVP9","abstract":"<p>VP9</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRAW":{"name":"SDLVideoStreamingProtocolRAW","abstract":"<p>RAW</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRTP":{"name":"SDLVideoStreamingProtocolRTP","abstract":"<p>RTP</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRTSP":{"name":"SDLVideoStreamingProtocolRTSP","abstract":"<p>RTSP</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolRTMP":{"name":"SDLVideoStreamingProtocolRTMP","abstract":"<p>RTMP</p>"},"Constants.html#/c:@SDLVideoStreamingProtocolWebM":{"name":"SDLVideoStreamingProtocolWebM","abstract":"<p>WebM</p>"},"Constants.html#/c:@SDLVideoStreamingStateStreamable":{"name":"SDLVideoStreamingStateStreamable","abstract":"<p>STREAMABLE, the current app is allowed to stream video</p>"},"Constants.html#/c:@SDLVideoStreamingStateNotStreamable":{"name":"SDLVideoStreamingStateNotStreamable","abstract":"<p>NOT_STREAMABLE, the current app is not allowed to stream video</p>"},"Constants.html#/c:@SDLVRCapabilitiesText":{"name":"SDLVRCapabilitiesText","abstract":"<p>The SDL platform is capable of recognizing spoken text in the current language.</p>"},"Constants.html#/c:@SDLWarningLightStatusOff":{"name":"SDLWarningLightStatusOff","abstract":"<p>The warning light is off</p>"},"Constants.html#/c:@SDLWarningLightStatusOn":{"name":"SDLWarningLightStatusOn","abstract":"<p>The warning light is off</p>"},"Constants.html#/c:@SDLWarningLightStatusFlash":{"name":"SDLWarningLightStatusFlash","abstract":"<p>The warning light is flashing</p>"},"Constants.html#/c:@SDLWarningLightStatusNotUsed":{"name":"SDLWarningLightStatusNotUsed","abstract":"<p>The warning light is unused</p>"},"Constants.html#/c:@SDLWayPointTypeAll":{"name":"SDLWayPointTypeAll","abstract":"<p>All other waypoint types</p>"},"Constants.html#/c:@SDLWayPointTypeDestination":{"name":"SDLWayPointTypeDestination","abstract":"<p>The destination waypoint</p>"},"Constants.html#/c:@SDLWiperStatusOff":{"name":"SDLWiperStatusOff","abstract":"<p>Wiper is off</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticOff":{"name":"SDLWiperStatusAutomaticOff","abstract":"<p>Wiper is off automatically</p>"},"Constants.html#/c:@SDLWiperStatusOffMoving":{"name":"SDLWiperStatusOffMoving","abstract":"<p>Wiper is moving but off</p>"},"Constants.html#/c:@SDLWiperStatusManualIntervalOff":{"name":"SDLWiperStatusManualIntervalOff","abstract":"<p>Wiper is off due to a manual interval</p>"},"Constants.html#/c:@SDLWiperStatusManualIntervalOn":{"name":"SDLWiperStatusManualIntervalOn","abstract":"<p>Wiper is on due to a manual interval</p>"},"Constants.html#/c:@SDLWiperStatusManualLow":{"name":"SDLWiperStatusManualLow","abstract":"<p>Wiper is on low manually</p>"},"Constants.html#/c:@SDLWiperStatusManualHigh":{"name":"SDLWiperStatusManualHigh","abstract":"<p>Wiper is on high manually</p>"},"Constants.html#/c:@SDLWiperStatusManualFlick":{"name":"SDLWiperStatusManualFlick","abstract":"<p>Wiper is on for a single wipe manually</p>"},"Constants.html#/c:@SDLWiperStatusWash":{"name":"SDLWiperStatusWash","abstract":"<p>Wiper is in wash mode</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticLow":{"name":"SDLWiperStatusAutomaticLow","abstract":"<p>Wiper is on low automatically</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticHigh":{"name":"SDLWiperStatusAutomaticHigh","abstract":"<p>Wiper is on high automatically</p>"},"Constants.html#/c:@SDLWiperStatusCourtesyWipe":{"name":"SDLWiperStatusCourtesyWipe","abstract":"<p>Wiper is performing a courtesy wipe</p>"},"Constants.html#/c:@SDLWiperStatusAutomaticAdjust":{"name":"SDLWiperStatusAutomaticAdjust","abstract":"<p>Wiper is on automatic adjust</p>"},"Constants.html#/c:@SDLWiperStatusStalled":{"name":"SDLWiperStatusStalled","abstract":"<p>Wiper is stalled</p>"},"Constants.html#/c:@SDLWiperStatusNoDataExists":{"name":"SDLWiperStatusNoDataExists","abstract":"<p>Wiper data is not available</p>"},"Constants.html#/c:@SmartDeviceLinkVersionNumber":{"name":"SmartDeviceLinkVersionNumber","abstract":"<p>Undocumented</p>"},"Constants.html#/c:@SmartDeviceLinkVersionString":{"name":"SmartDeviceLinkVersionString","abstract":"<p>Undocumented</p>"},"Classes/SDLWeatherServiceManifest.html#/c:objc(cs)SDLWeatherServiceManifest(im)initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported:":{"name":"-initWithCurrentForecastSupported:maxMultidayForecastAmount:maxHourlyForecastAmount:maxMinutelyForecastAmount:weatherForLocationSupported:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLWeatherServiceManifest"},"Classes/SDLWeatherServiceManifest.html#/c:objc(cs)SDLWeatherServiceManifest(py)currentForecastSupported":{"name":"currentForecastSupported","abstract":"<p>Whether or not the current forcast is supported.</p>","parent_name":"SDLWeatherServiceManifest"},"Classes/SDLWeatherServiceManifest.html#/c:objc(cs)SDLWeatherServiceManifest(py)maxMultidayForecastAmount":{"name":"maxMultidayForecastAmount","abstract":"<p>The maximum number of day-by-day forecasts.</p>","parent_name":"SDLWeatherServiceManifest"},"Classes/SDLWeatherServiceManifest.html#/c:objc(cs)SDLWeatherServiceManifest(py)maxHourlyForecastAmount":{"name":"maxHourlyForecastAmount","abstract":"<p>The maximum number of hour-by-hour forecasts.</p>","parent_name":"SDLWeatherServiceManifest"},"Classes/SDLWeatherServiceManifest.html#/c:objc(cs)SDLWeatherServiceManifest(py)maxMinutelyForecastAmount":{"name":"maxMinutelyForecastAmount","abstract":"<p>The maximum number of minute-by-minute forecasts.</p>","parent_name":"SDLWeatherServiceManifest"},"Classes/SDLWeatherServiceManifest.html#/c:objc(cs)SDLWeatherServiceManifest(py)weatherForLocationSupported":{"name":"weatherForLocationSupported","abstract":"<p>Whether or not the weather for location is supported.</p>","parent_name":"SDLWeatherServiceManifest"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(im)initWithLocation:":{"name":"-initWithLocation:","abstract":"<p>Convenience init for required parameters.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(im)initWithLocation:currentForecast:minuteForecast:hourlyForecast:multidayForecast:alerts:":{"name":"-initWithLocation:currentForecast:minuteForecast:hourlyForecast:multidayForecast:alerts:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(py)location":{"name":"location","abstract":"<p>The location.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(py)currentForecast":{"name":"currentForecast","abstract":"<p>The current forecast.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(py)minuteForecast":{"name":"minuteForecast","abstract":"<p>A minute-by-minute array of forecasts.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(py)hourlyForecast":{"name":"hourlyForecast","abstract":"<p>An hour-by-hour array of forecasts.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(py)multidayForecast":{"name":"multidayForecast","abstract":"<p>A day-by-day array of forecasts.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherServiceData.html#/c:objc(cs)SDLWeatherServiceData(py)alerts":{"name":"alerts","abstract":"<p>An array of weather alerts. This array should be ordered with the first object being the current day.</p>","parent_name":"SDLWeatherServiceData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(im)initWithCurrentTemperature:temperatureHigh:temperatureLow:apparentTemperature:apparentTemperatureHigh:apparentTemperatureLow:weatherSummary:time:humidity:cloudCover:moonPhase:windBearing:windGust:windSpeed:nearestStormBearing:nearestStormDistance:precipAccumulation:precipIntensity:precipProbability:precipType:visibility:weatherIcon:":{"name":"-initWithCurrentTemperature:temperatureHigh:temperatureLow:apparentTemperature:apparentTemperatureHigh:apparentTemperatureLow:weatherSummary:time:humidity:cloudCover:moonPhase:windBearing:windGust:windSpeed:nearestStormBearing:nearestStormDistance:precipAccumulation:precipIntensity:precipProbability:precipType:visibility:weatherIcon:","abstract":"<p>Convenience init for all parameters</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)currentTemperature":{"name":"currentTemperature","abstract":"<p>The current temperature.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)temperatureHigh":{"name":"temperatureHigh","abstract":"<p>The predicted high temperature for the day.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)temperatureLow":{"name":"temperatureLow","abstract":"<p>The predicted low temperature for the day.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)apparentTemperature":{"name":"apparentTemperature","abstract":"<p>The apparent temperature.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)apparentTemperatureHigh":{"name":"apparentTemperatureHigh","abstract":"<p>The predicted high apparent temperature for the day.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)apparentTemperatureLow":{"name":"apparentTemperatureLow","abstract":"<p>The predicted low apparent temperature for the day.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)weatherSummary":{"name":"weatherSummary","abstract":"<p>A summary of the weather.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)time":{"name":"time","abstract":"<p>The time this data refers to.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)humidity":{"name":"humidity","abstract":"<p>From 0 to 1, percentage humidity.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)cloudCover":{"name":"cloudCover","abstract":"<p>From 0 to 1, percentage cloud cover.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)moonPhase":{"name":"moonPhase","abstract":"<p>From 0 to 1, percentage of the moon seen, e.g. 0 = no moon, 0.25 = quarter moon</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)windBearing":{"name":"windBearing","abstract":"<p>In degrees, true north at 0 degrees.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)windGust":{"name":"windGust","abstract":"<p>In km/hr</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)windSpeed":{"name":"windSpeed","abstract":"<p>In km/hr</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)nearestStormBearing":{"name":"nearestStormBearing","abstract":"<p>In degrees, true north at 0 degrees.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)nearestStormDistance":{"name":"nearestStormDistance","abstract":"<p>In km</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)precipAccumulation":{"name":"precipAccumulation","abstract":"<p>In cm</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)precipIntensity":{"name":"precipIntensity","abstract":"<p>In cm of water per hour.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)precipProbability":{"name":"precipProbability","abstract":"<p>From 0 to 1, percentage chance.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)precipType":{"name":"precipType","abstract":"<p>A description of the precipitation type (e.g. <q>rain</q>, <q>snow</q>, <q>sleet</q>, <q>hail</q>)</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)visibility":{"name":"visibility","abstract":"<p>In km</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherData.html#/c:objc(cs)SDLWeatherData(py)weatherIcon":{"name":"weatherIcon","abstract":"<p>The weather icon image.</p>","parent_name":"SDLWeatherData"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(im)initWithTitle:summary:expires:regions:severity:timeIssued:":{"name":"-initWithTitle:summary:expires:regions:severity:timeIssued:","abstract":"<p>Convenience init for all parameters</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(py)title":{"name":"title","abstract":"<p>The title of the alert.</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(py)summary":{"name":"summary","abstract":"<p>A summary for the alert.</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(py)expires":{"name":"expires","abstract":"<p>The date the alert expires.</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(py)regions":{"name":"regions","abstract":"<p>Regions affected.</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(py)severity":{"name":"severity","abstract":"<p>Severity of the weather alert.</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLWeatherAlert.html#/c:objc(cs)SDLWeatherAlert(py)timeIssued":{"name":"timeIssued","abstract":"<p>The date the alert was issued.</p>","parent_name":"SDLWeatherAlert"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:":{"name":"-initWithText:image:","abstract":"<p>Undocumented</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:position:":{"name":"-initWithText:image:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)text":{"name":"text","abstract":"<p>Text to display for VR Help item</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)image":{"name":"image","abstract":"<p>Image for VR Help item</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)position":{"name":"position","abstract":"<p>Position to display item in VR Help list</p>","parent_name":"SDLVRHelpItem"},"Classes/SDLVoiceCommand.html#/c:objc(cs)SDLVoiceCommand(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>The strings the user can say to activate this voice command</p>","parent_name":"SDLVoiceCommand"},"Classes/SDLVoiceCommand.html#/c:objc(cs)SDLVoiceCommand(py)handler":{"name":"handler","abstract":"<p>The handler that will be called when the command is activated</p>","parent_name":"SDLVoiceCommand"},"Classes/SDLVoiceCommand.html#/c:objc(cs)SDLVoiceCommand(im)initWithVoiceCommands:handler:":{"name":"-initWithVoiceCommands:handler:","abstract":"<p>Undocumented</p>","parent_name":"SDLVoiceCommand"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)protocol":{"name":"protocol","abstract":"<p>Protocol type, see VideoStreamingProtocol</p>","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)codec":{"name":"codec","abstract":"<p>Codec type, see VideoStreamingCodec</p>","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(im)initWithCodec:protocol:":{"name":"-initWithCodec:protocol:","abstract":"<p>Undocumented</p>","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(im)initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:":{"name":"-initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:","abstract":"<p>Undocumented</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)preferredResolution":{"name":"preferredResolution","abstract":"<p>The preferred resolution of a video stream for decoding and rendering on HMI</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)maxBitrate":{"name":"maxBitrate","abstract":"<p>The maximum bitrate of video stream that is supported, in kbps, optional</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)supportedFormats":{"name":"supportedFormats","abstract":"<p>Detailed information on each format supported by this system, in its preferred order</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)hapticSpatialDataSupported":{"name":"hapticSpatialDataSupported","abstract":"<p>True if the system can utilize the haptic spatial data from the source being streamed.</p>","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(py)major":{"name":"major","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(py)minor":{"name":"minor","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(py)patch":{"name":"patch","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(py)stringVersion":{"name":"stringVersion","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)initWithMajor:minor:patch:":{"name":"-initWithMajor:minor:patch:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(cm)versionWithMajor:minor:patch:":{"name":"+versionWithMajor:minor:patch:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)initWithString:":{"name":"-initWithString:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(cm)versionWithString:":{"name":"+versionWithString:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)initWithSyncMsgVersion:":{"name":"-initWithSyncMsgVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(cm)versionWithSyncMsgVersion:":{"name":"+versionWithSyncMsgVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)compare:":{"name":"-compare:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)isLessThanVersion:":{"name":"-isLessThanVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)isEqualToVersion:":{"name":"-isEqualToVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)isGreaterThanVersion:":{"name":"-isGreaterThanVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)isGreaterThanOrEqualToVersion:":{"name":"-isGreaterThanOrEqualToVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVersion.html#/c:objc(cs)SDLVersion(im)isLessThanOrEqualToVersion:":{"name":"-isLessThanOrEqualToVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLVersion"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)make":{"name":"make","abstract":"<p>The make of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)model":{"name":"model","abstract":"<p>The model of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)modelYear":{"name":"modelYear","abstract":"<p>The model year of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)trim":{"name":"trim","abstract":"<p>The trim of the vehicle</p>","parent_name":"SDLVehicleType"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)dataType":{"name":"dataType","abstract":"<p>Defined published data element type</p>","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)resultCode":{"name":"resultCode","abstract":"<p>Published data result code</p>","parent_name":"SDLVehicleDataResult"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(im)initWithTurnList:softButtons:":{"name":"-initWithTurnList:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)turnList":{"name":"turnList","abstract":"<p>Optional, SDLTurn, 1 - 100 entries</p>","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)softButtons":{"name":"softButtons","abstract":"<p>Required, SDLSoftButton, 0 - 1 Entries</p>","parent_name":"SDLUpdateTurnList"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"<p>The result of requesting to unsubscribe to the GPSData.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"<p>The result of requesting to unsubscribe to the vehicle speed in kilometers per hour.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"<p>The result of requesting to unsubscribe to the number of revolutions per minute of the engine.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The result of requesting to unsubscribe to the fuel level in the tank (percentage)</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The result of requesting to unsubscribe to the fuel level state.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelRange":{"name":"fuelRange","abstract":"<p>The result of requesting to unsubscribe to the fuel range.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The result of requesting to unsubscribe to the instantaneous fuel consumption in microlitres.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The result of requesting to unsubscribe to the external temperature in degrees celsius.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"<p>The result of requesting to unsubscribe to the PRNDL status.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"<p>The result of requesting to unsubscribe to the tireStatus.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"<p>The result of requesting to unsubscribe to the odometer in km.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"<p>The result of requesting to unsubscribe to the status of the seat belts.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The result of requesting to unsubscribe to the body information including power modes.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The result of requesting to unsubscribe to the device status including signal and battery strength.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"<p>The result of requesting to unsubscribe to the status of the brake pedal.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The result of requesting to unsubscribe to the status of the wipers.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>The result of requesting to unsubscribe to the status of the head lamps.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The result of requesting to unsubscribe to the estimated percentage of remaining oil life of the engine.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"<p>The result of requesting to unsubscribe to the torque value for engine (in Nm) on non-diesel variants.</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>The result of requesting to unsubscribe to the accelerator pedal position (percentage depressed)</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>The result of requesting to unsubscribe to the current angle of the steering wheel (in deg)</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>The result of requesting to unsubscribe to the emergency call info</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The result of requesting to unsubscribe to the airbag status</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>The result of requesting to unsubscribe to the emergency event</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"<p>The result of requesting to unsubscribe to the cluster modes</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"<p>The result of requesting to unsubscribe to the myKey status</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The result of requesting to unsubscribe to the electronic parking brake status</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)turnSignal":{"name":"turnSignal","abstract":"<p>The result of requesting to unsubscribe to the turn signal</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>The result of requesting to unsubscribe to the cloud app vehicle id</p>","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:","abstract":"<p>Convenience init for unsubscribing to all possible vehicle data items.</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:","abstract":"<p>Convenience init for unsubscribing to all possible vehicle data items.</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:","abstract":"<p>Convenience init for unsubscribing to all possible vehicle data items.</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)gps":{"name":"gps","abstract":"<p>If true, unsubscribes from GPS</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)speed":{"name":"speed","abstract":"<p>If true, unsubscribes from Speed</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"<p>If true, unsubscribes from RPM</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>If true, unsubscribes from Fuel Level</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>If true, unsubscribes from Fuel Level State</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>If true, unsubscribes from Fuel Range</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>If true, unsubscribes from Instant Fuel Consumption</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>If true, unsubscribes from External Temperature</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"<p>If true, unsubscribes from PRNDL</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>If true, unsubscribes from Tire Pressure</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"<p>If true, unsubscribes from Odometer</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>If true, unsubscribes from Belt Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>If true, unsubscribes from Body Information</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>If true, unsubscribes from Device Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>If true, unsubscribes from Driver Braking</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>If true, unsubscribes from Wiper Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>If true, unsubscribes from Head Lamp Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>If true, unsubscribes from Engine Oil Life</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>If true, unsubscribes from Engine Torque</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>If true, unsubscribes from Acc Pedal Position</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>If true, unsubscribes from Steering Wheel Angle data</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>If true, unsubscribes from eCallInfo</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>If true, unsubscribes from Airbag Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>If true, unsubscribes from Emergency Event</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>If true, unsubscribes from Cluster Mode Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"<p>If true, unsubscribes from My Key</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>A boolean value. If true, unsubscribes to the Electronic Parking Brake Status</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>A boolean value. If true, unsubscribes to the Turn Signal</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>A boolean value. If true, unsubscribes to the Cloud App Vehicle ID</p>","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(im)initWithButtonName:":{"name":"-initWithButtonName:","abstract":"<p>Undocumented</p>","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(py)buttonName":{"name":"buttonName","abstract":"<p>A name of the button to unsubscribe from","parent_name":"SDLUnsubscribeButton"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(im)initWithNavigationText:turnIcon:":{"name":"-initWithNavigationText:turnIcon:","abstract":"<p>Undocumented</p>","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)navigationText":{"name":"navigationText","abstract":"<p>Individual turn text. Must provide at least text or icon for a given turn</p>","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)turnIcon":{"name":"turnIcon","abstract":"<p>Individual turn icon. Must provide at least text or icon for a given turn</p>","parent_name":"SDLTurn"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventDelegate":{"name":"touchEventDelegate","abstract":"<p>Notified of processed touches such as pinches, pans, and taps</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventHandler":{"name":"touchEventHandler","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapDistanceThreshold":{"name":"tapDistanceThreshold","abstract":"<p>Distance between two taps on the screen, in the head unit’s coordinate system, used for registering double-tap callbacks.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)panDistanceThreshold":{"name":"panDistanceThreshold","abstract":"<p>Minimum distance for a pan gesture in the head unit’s coordinate system, used for registering pan callbacks.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapTimeThreshold":{"name":"tapTimeThreshold","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)movementTimeThreshold":{"name":"movementTimeThreshold","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)enableSyncedPanning":{"name":"enableSyncedPanning","abstract":"<p>If set to NO, the display link syncing will be ignored and <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)movementTimeThreshold\">movementTimeThreshold</a></code> will be used. Defaults to YES.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEnabled":{"name":"touchEnabled","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)cancelPendingTouches":{"name":"-cancelPendingTouches","abstract":"<p>@abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)initWithHitTester:":{"name":"-initWithHitTester:","abstract":"<p>Initialize a touch manager with a hit tester if available</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)syncFrame":{"name":"-syncFrame","abstract":"<p>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.</p>","parent_name":"SDLTouchManager"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)pressAvailable":{"name":"pressAvailable","abstract":"<p>Whether or not long presses are available</p>","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)multiTouchAvailable":{"name":"multiTouchAvailable","abstract":"<p>Whether or not multi-touch (e.g. a pinch gesture) is available</p>","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)doublePressAvailable":{"name":"doublePressAvailable","abstract":"<p>Whether or not a double tap is available</p>","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)touchEventId":{"name":"touchEventId","abstract":"<p>A touch’s unique identifier. The application can track the current touch events by id.</p>","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)timeStamp":{"name":"timeStamp","abstract":"<p>The time that the touch was recorded. This number can the time since the beginning of the session or something else as long as the units are in milliseconds.</p>","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)coord":{"name":"coord","abstract":"<p>The touch’s coordinate</p>","parent_name":"SDLTouchEvent"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)x":{"name":"x","abstract":"<p>The x value of the touch coordinate</p>","parent_name":"SDLTouchCoord"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)y":{"name":"y","abstract":"<p>The y value of the touch coordinate</p>","parent_name":"SDLTouchCoord"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(im)initWithTouchEvent:":{"name":"-initWithTouchEvent:","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)identifier":{"name":"identifier","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)location":{"name":"location","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)timeStamp":{"name":"timeStamp","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)isFirstFinger":{"name":"isFirstFinger","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)isSecondFinger":{"name":"isSecondFinger","abstract":"<p>@abstract","parent_name":"SDLTouch"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)pressureTelltale":{"name":"pressureTelltale","abstract":"<p>Status of the Tire Pressure Telltale. See WarningLightStatus.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftFront":{"name":"leftFront","abstract":"<p>The status of the left front tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightFront":{"name":"rightFront","abstract":"<p>The status of the right front tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftRear":{"name":"leftRear","abstract":"<p>The status of the left rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightRear":{"name":"rightRear","abstract":"<p>The status of the right rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerLeftRear":{"name":"innerLeftRear","abstract":"<p>The status of the inner left rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerRightRear":{"name":"innerRightRear","abstract":"<p>The status of the innter right rear tire.</p>","parent_name":"SDLTireStatus"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)name":{"name":"name","abstract":"<p>The enumeration identifying the field.</p>","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)characterSet":{"name":"characterSet","abstract":"<p>The character set that is supported in this field.</p>","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)width":{"name":"width","abstract":"<p>The number of characters in one row of this field.</p>","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)rows":{"name":"rows","abstract":"<p>The number of rows for this text field.</p>","parent_name":"SDLTextField"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(im)initWithPrimaryRGBColor:secondaryRGBColor:backgroundRGBColor:":{"name":"-initWithPrimaryRGBColor:secondaryRGBColor:backgroundRGBColor:","abstract":"<p>Undocumented</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(im)initWithPrimaryColor:secondaryColor:backgroundColor:":{"name":"-initWithPrimaryColor:secondaryColor:backgroundColor:","abstract":"<p>Undocumented</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(py)primaryColor":{"name":"primaryColor","abstract":"<p>The <q>primary</q> color. This must always be your primary brand color. If the OEM only uses one color, this will be the color. It is recommended to the OEMs that the primaryColor should change the <code>mediaClockTimer</code> bar and the highlight color of soft buttons.</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(py)secondaryColor":{"name":"secondaryColor","abstract":"<p>The <q>secondary</q> color. This may be an accent or complimentary color to your primary brand color. If the OEM uses this color, they must also use the primary color. It is recommended to the OEMs that the secondaryColor should change the background color of buttons, such as soft buttons.</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemplateColorScheme.html#/c:objc(cs)SDLTemplateColorScheme(py)backgroundColor":{"name":"backgroundColor","abstract":"<p>The background color to be used on the template. If the OEM does not support this parameter, assume on <q>dayColorScheme</q> that this will be a light color, and on <q>nightColorScheme</q> a dark color. You should do the same for your custom schemes.</p>","parent_name":"SDLTemplateColorScheme"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(im)initWithFahrenheitValue:":{"name":"-initWithFahrenheitValue:","abstract":"<p>Convenience init for a fahrenheit temperature value.</p>","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(im)initWithCelsiusValue:":{"name":"-initWithCelsiusValue:","abstract":"<p>Convenience init for a celsius temperature value.</p>","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(im)initWithUnit:value:":{"name":"-initWithUnit:value:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(py)unit":{"name":"unit","abstract":"<p>Temperature unit</p>","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(py)value":{"name":"value","abstract":"<p>Temperature value in specified unit. Range depends on OEM and is not checked by SDL.</p>","parent_name":"SDLTemperature"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(im)initWithText:type:":{"name":"-initWithText:type:","abstract":"<p>Initialize with text and a type</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)textChunksFromString:":{"name":"+textChunksFromString:","abstract":"<p>Create TTS using text</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)sapiChunksFromString:":{"name":"+sapiChunksFromString:","abstract":"<p>Create TTS using SAPI</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)lhPlusChunksFromString:":{"name":"+lhPlusChunksFromString:","abstract":"<p>Create TTS using LH Plus</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)prerecordedChunksFromString:":{"name":"+prerecordedChunksFromString:","abstract":"<p>Create TTS using prerecorded chunks</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)silenceChunks":{"name":"+silenceChunks","abstract":"<p>Create TTS using silence</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)fileChunksWithName:":{"name":"+fileChunksWithName:","abstract":"<p>Create <q>TTS</q> to play an audio file previously uploaded to the system.</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)text":{"name":"text","abstract":"<p>Text to be spoken, a phoneme specification, or the name of a pre-recorded / pre-uploaded sound. The contents of this field are indicated by the <q>type</q> field.</p>","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)type":{"name":"type","abstract":"<p>The type of information in the <q>text</q> field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound).</p>","parent_name":"SDLTTSChunk"},"Classes/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(im)initWithType:fileName:":{"name":"-initWithType:fileName:","abstract":"<p>Create a generic system request with a file name</p>","parent_name":"SDLSystemRequest"},"Classes/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(im)initWithProprietaryType:fileName:":{"name":"-initWithProprietaryType:fileName:","abstract":"<p>Create an OEM_PROPRIETARY system request with a subtype and file name</p>","parent_name":"SDLSystemRequest"},"Classes/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(py)requestType":{"name":"requestType","abstract":"<p>The type of system request. Note that Proprietary requests should forward the binary data to the known proprietary module on the system.</p>","parent_name":"SDLSystemRequest"},"Classes/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(py)requestSubType":{"name":"requestSubType","abstract":"<p>A request subType used when the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(py)requestType\">requestType</a></code> is <code>OEM_SPECIFIC</code>.</p>","parent_name":"SDLSystemRequest"},"Classes/SDLSystemRequest.html#/c:objc(cs)SDLSystemRequest(py)fileName":{"name":"fileName","abstract":"<p>Filename of HTTP data to store in predefined system staging area.</p>","parent_name":"SDLSystemRequest"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)displayCapabilities":{"name":"displayCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)hmiCapabilities":{"name":"hmiCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"<p>If returned, the platform supports on-screen SoftButtons</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"<p>If returned, the platform supports custom on-screen Presets</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)hmiZoneCapabilities":{"name":"hmiZoneCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)speechCapabilities":{"name":"speechCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)prerecordedSpeechCapabilities":{"name":"prerecordedSpeechCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)vrCapability":{"name":"vrCapability","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)audioPassThruCapabilities":{"name":"audioPassThruCapabilities","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)pcmStreamCapability":{"name":"pcmStreamCapability","abstract":"<div class=\"aside aside-see\">","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)appServicesCapabilities":{"name":"appServicesCapabilities","abstract":"<p>If returned, the platform supports app services</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)navigationCapability":{"name":"navigationCapability","abstract":"<p>If returned, the platform supports navigation</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)phoneCapability":{"name":"phoneCapability","abstract":"<p>If returned, the platform supports making phone calls</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)videoStreamingCapability":{"name":"videoStreamingCapability","abstract":"<p>If returned, the platform supports video streaming</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)remoteControlCapability":{"name":"remoteControlCapability","abstract":"<p>If returned, the platform supports remote control capabilities</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)init":{"name":"-init","abstract":"<p>Init is unavailable. Dependencies must be injected using initWithConnectionManager:</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)initWithConnectionManager:":{"name":"-initWithConnectionManager:","abstract":"<p>Creates a new system capability manager with a specified connection manager</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)stop":{"name":"-stop","abstract":"<p>Stops the manager. This method is used internally.</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(im)updateCapabilityType:completionHandler:":{"name":"-updateCapabilityType:completionHandler:","abstract":"<p>Retrieves a capability type from the remote system. This function must be called in order to retrieve the values for <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)navigationCapability\">navigationCapability</a></code>, <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)phoneCapability\">phoneCapability</a></code>, <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)videoStreamingCapability\">videoStreamingCapability</a></code>, <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)remoteControlCapability\">remoteControlCapability</a></code>, and <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSystemCapabilityManager.html#/c:objc(cs)SDLSystemCapabilityManager(py)appServicesCapabilities\">appServicesCapabilities</a></code>. 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.</p>","parent_name":"SDLSystemCapabilityManager"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithAppServicesCapabilities:":{"name":"-initWithAppServicesCapabilities:","abstract":"<p>Convenience init for an App Service Capability</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithNavigationCapability:":{"name":"-initWithNavigationCapability:","abstract":"<p>Convenience init for a Navigation Capability</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithPhoneCapability:":{"name":"-initWithPhoneCapability:","abstract":"<p>Convenience init for a Phone Capability</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithVideoStreamingCapability:":{"name":"-initWithVideoStreamingCapability:","abstract":"<p>Convenience init for a Video Streaming Capability</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithRemoteControlCapability:":{"name":"-initWithRemoteControlCapability:","abstract":"<p>Convenience init for a Remote Control Capability</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"<p>Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included.</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)appServicesCapabilities":{"name":"appServicesCapabilities","abstract":"<p>Describes the capabilities of app services including what service types are supported and the current state of services.</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)navigationCapability":{"name":"navigationCapability","abstract":"<p>Describes the extended capabilities of the onboard navigation system</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)phoneCapability":{"name":"phoneCapability","abstract":"<p>Describes the extended capabilities of the module’s phone feature</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)videoStreamingCapability":{"name":"videoStreamingCapability","abstract":"<p>Describes the capabilities of the module’s video streaming feature</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)remoteControlCapability":{"name":"remoteControlCapability","abstract":"<p>Describes the extended capabilities of the module’s remote control feature</p>","parent_name":"SDLSystemCapability"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)initWithMajorVersion:minorVersion:patchVersion:":{"name":"-initWithMajorVersion:minorVersion:patchVersion:","abstract":"<p>Undocumented</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)majorVersion":{"name":"majorVersion","abstract":"<p>The major version indicates versions that is not-compatible to previous versions</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)minorVersion":{"name":"minorVersion","abstract":"<p>The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)patchVersion":{"name":"patchVersion","abstract":"<p>Allows backward-compatible fixes to the API without increasing the minor version of the interface</p>","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"<p>The result of requesting to subscribe to the GPSData.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"<p>The result of requesting to subscribe to the vehicle speed in kilometers per hour.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"<p>The result of requesting to subscribe to the number of revolutions per minute of the engine.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The result of requesting to subscribe to the fuel level in the tank (percentage)</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The result of requesting to subscribe to the fuel level state.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelRange":{"name":"fuelRange","abstract":"<p>The result of requesting to subscribe to the fuel range.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The result of requesting to subscribe to the instantaneous fuel consumption in microlitres.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The result of requesting to subscribe to the external temperature in degrees celsius.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"<p>The result of requesting to subscribe to the PRNDL status.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"<p>The result of requesting to subscribe to the tireStatus.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"<p>The result of requesting to subscribe to the odometer in km.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"<p>The result of requesting to subscribe to the status of the seat belts.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The result of requesting to subscribe to the body information including power modes.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The result of requesting to subscribe to the device status including signal and battery strength.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"<p>The result of requesting to subscribe to the status of the brake pedal.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The result of requesting to subscribe to the status of the wipers.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>The result of requesting to subscribe to the status of the head lamps.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The result of requesting to subscribe to the estimated percentage of remaining oil life of the engine.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"<p>The result of requesting to subscribe to the torque value for engine (in Nm) on non-diesel variants.</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>The result of requesting to subscribe to the accelerator pedal position (percentage depressed)</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>The result of requesting to subscribe to the current angle of the steering wheel (in deg)</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>The result of requesting to subscribe to the emergency call info</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The result of requesting to subscribe to the airbag status</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>The result of requesting to subscribe to the emergency event</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"<p>The result of requesting to subscribe to the cluster modes</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"<p>The result of requesting to subscribe to the myKey status</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The result of requesting to subscribe to the electronic parking brake status</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)turnSignal":{"name":"turnSignal","abstract":"<p>The result of requesting to subscribe to the turn signal</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>The result of requesting to subscribe to the cloud app vehicle ID</p>","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:","abstract":"<p>Convenience init for subscribing to all possible vehicle data items.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:","abstract":"<p>Convenience init for subscribing to all possible vehicle data items.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:wiperStatus:","abstract":"<p>Convenience init for subscribing to all possible vehicle data items.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)gps":{"name":"gps","abstract":"<p>A boolean value. If true, subscribes GPS data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)speed":{"name":"speed","abstract":"<p>A boolean value. If true, subscribes Speed data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"<p>A boolean value. If true, subscribes RPM data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>A boolean value. If true, subscribes Fuel Level data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>A boolean value. If true, subscribes Fuel Level State data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>A boolean value. If true, subscribes Fuel Range data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>A boolean value. If true, subscribes Instant Fuel Consumption data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>A boolean value. If true, subscribes External Temperature data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"<p>A boolean value. If true, subscribes PRNDL data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>A boolean value. If true, subscribes Tire Pressure status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"<p>A boolean value. If true, subscribes Odometer data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>A boolean value. If true, subscribes Belt Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>A boolean value. If true, subscribes Body Information data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>A boolean value. If true, subscribes Device Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>A boolean value. If true, subscribes Driver Braking data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>A boolean value. If true, subscribes Wiper Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>A boolean value. If true, subscribes Head Lamp Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>A boolean value. If true, subscribes to Engine Oil Life data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>A boolean value. If true, subscribes Engine Torque data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>A boolean value. If true, subscribes Acc Pedal Position data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>A boolean value. If true, subscribes Steering Wheel Angle data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>A boolean value. If true, subscribes eCall Info data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>A boolean value. If true, subscribes Airbag Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>A boolean value. If true, subscribes Emergency Event data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>A boolean value. If true, subscribes Cluster Mode Status data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"<p>A boolean value. If true, subscribes myKey data.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>A boolean value. If true, subscribes to the electronic parking brake status.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>A boolean value. If true, subscribes to the turn signal status.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>A boolean value. If true, subscribes to the cloud app vehicle ID.</p>","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"<p>Construct a SDLSubscribeButton with a handler callback when an event occurs.</p>","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithButtonName:handler:":{"name":"-initWithButtonName:handler:","abstract":"<p>Undocumented</p>","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)handler":{"name":"handler","abstract":"<p>A handler that will let you know when the button you subscribed to is selected.</p>","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)buttonName":{"name":"buttonName","abstract":"<p>The name of the button to subscribe to","parent_name":"SDLSubscribeButton"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)touchManager":{"name":"touchManager","abstract":"<p>Touch Manager responsible for providing touch event notifications.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioManager":{"name":"audioManager","abstract":"<p>Audio Manager responsible for managing streaming audio.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)rootViewController":{"name":"rootViewController","abstract":"<p>This property is used for SDLCarWindow, the ability to stream any view controller. To start, you must set an initial view controller on <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLStreamingMediaConfiguration.html\">SDLStreamingMediaConfiguration</a></code> <code>rootViewController</code>. After streaming begins, you can replace that view controller with a new root by placing the new view controller into this property.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)focusableItemManager":{"name":"focusableItemManager","abstract":"<p>A haptic interface that can be updated to reparse views within the window you’ve provided. Send a <code><a href=\"36f8f5912051ae747ef441d6511ca4cbConstants.html#/c:@SDLDidUpdateProjectionView\">SDLDidUpdateProjectionView</a></code> notification or call the <code>updateInterfaceLayout</code> method to reparse. The <q>output</q> of this haptic interface occurs in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)touchManager\">touchManager</a></code> property where it will call the delegate.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)streamingSupported":{"name":"streamingSupported","abstract":"<p>Whether or not video streaming is supported</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoConnected":{"name":"videoConnected","abstract":"<p>Whether or not the video session is connected.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoEncrypted":{"name":"videoEncrypted","abstract":"<p>Whether or not the video session is encrypted. This may be different than the requestedEncryptionType.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioConnected":{"name":"audioConnected","abstract":"<p>Whether or not the audio session is connected.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioEncrypted":{"name":"audioEncrypted","abstract":"<p>Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoStreamingPaused":{"name":"videoStreamingPaused","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)screenSize":{"name":"screenSize","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoFormat":{"name":"videoFormat","abstract":"<p>This is the agreed upon format of video encoder that is in use, or nil if not currently connected.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)supportedFormats":{"name":"supportedFormats","abstract":"<p>A list of all supported video formats by this manager</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)pixelBufferPool":{"name":"pixelBufferPool","abstract":"<p>The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)requestedEncryptionType":{"name":"requestedEncryptionType","abstract":"<p>The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)initWithConnectionManager:configuration:":{"name":"-initWithConnectionManager:configuration:","abstract":"<p>Create a new streaming media manager for navigation and VPM apps with a specified configuration</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startWithProtocol:":{"name":"-startWithProtocol:","abstract":"<p>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 <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startAudioWithProtocol:":{"name":"-startAudioWithProtocol:","abstract":"<p>Start the audio feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startVideoWithProtocol:":{"name":"-startVideoWithProtocol:","abstract":"<p>Start the video feature of the manager. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stop":{"name":"-stop","abstract":"<p>Stop the manager. This method is used internally.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stopAudio":{"name":"-stopAudio","abstract":"<p>Stop the audio feature of the manager. This method is used internally.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stopVideo":{"name":"-stopVideo","abstract":"<p>Stop the video feature of the manager. This method is used internally.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:":{"name":"-sendVideoData:","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:presentationTimestamp:":{"name":"-sendVideoData:presentationTimestamp:","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendAudioData:":{"name":"-sendAudioData:","abstract":"<p>This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback</p>","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)securityManagers":{"name":"securityManagers","abstract":"<p>Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)maximumDesiredEncryption":{"name":"maximumDesiredEncryption","abstract":"<p>What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)customVideoEncoderSettings":{"name":"customVideoEncoderSettings","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)dataSource":{"name":"dataSource","abstract":"<p>Usable to change run time video stream setup behavior. Only use this and modify the results if you <em>really</em> know what you’re doing. The head unit defaults are generally good.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)rootViewController":{"name":"rootViewController","abstract":"<p>Set the initial view controller your video streaming content is within.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)carWindowRenderingType":{"name":"carWindowRenderingType","abstract":"<p>Declares if CarWindow will use layer rendering or view rendering. Defaults to layer rendering.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)enableForcedFramerateSync":{"name":"enableForcedFramerateSync","abstract":"<p>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 <em>must</em> be YES. If NO, <code>enableSyncedPanning</code> on SDLTouchManager will be set to NO. Defaults to YES.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)allowMultipleViewControllerOrientations":{"name":"allowMultipleViewControllerOrientations","abstract":"<p>When YES, the StreamingMediaManager will disable its internal checks that the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)rootViewController\">rootViewController</a></code> only has one <code>supportedOrientation</code>. Having multiple orientations can cause streaming issues. If you wish to disable this check, set it to YES. Defaults to NO.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)init":{"name":"-init","abstract":"<p>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.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:rootViewController:":{"name":"-initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:rootViewController:","abstract":"<p>Manually set all the properties to the streaming media configuration</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)initWithSecurityManagers:":{"name":"-initWithSecurityManagers:","abstract":"<p>Create a secure configuration for each of the security managers provided.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)secureConfigurationWithSecurityManagers:":{"name":"+secureConfigurationWithSecurityManagers:","abstract":"<p>Create a secure configuration for each of the security managers provided.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)insecureConfiguration":{"name":"+insecureConfiguration","abstract":"<p>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 <code>init</code>.</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)autostreamingInsecureConfigurationWithInitialViewController:":{"name":"+autostreamingInsecureConfigurationWithInitialViewController:","abstract":"<p>Create a CarWindow insecure configuration with a view controller</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)autostreamingSecureConfigurationWithSecurityManagers:initialViewController:":{"name":"+autostreamingSecureConfigurationWithSecurityManagers:initialViewController:","abstract":"<p>Create a CarWindow secure configuration with a view controller and security managers</p>","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStationIDNumber.html#/c:objc(cs)SDLStationIDNumber(im)initWithCountryCode:fccFacilityId:":{"name":"-initWithCountryCode:fccFacilityId:","abstract":"<p>Undocumented</p>","parent_name":"SDLStationIDNumber"},"Classes/SDLStationIDNumber.html#/c:objc(cs)SDLStationIDNumber(py)countryCode":{"name":"countryCode","abstract":"<p>@abstract Binary Representation of ITU Country Code. USA Code is 001.</p>","parent_name":"SDLStationIDNumber"},"Classes/SDLStationIDNumber.html#/c:objc(cs)SDLStationIDNumber(py)fccFacilityId":{"name":"fccFacilityId","abstract":"<p>@abstract Binary representation of unique facility ID assigned by the FCC","parent_name":"SDLStationIDNumber"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)initWithTimeInterval:":{"name":"-initWithTimeInterval:","abstract":"<p>Create a time struct with a time interval (time in seconds). Fractions of the second will be eliminated and rounded down.</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)initWithHours:minutes:seconds:":{"name":"-initWithHours:minutes:seconds:","abstract":"<p>Create a time struct with hours, minutes, and seconds</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)hours":{"name":"hours","abstract":"<p>The hour of the media clock</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)minutes":{"name":"minutes","abstract":"<p>The minute of the media clock</p>","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)seconds":{"name":"seconds","abstract":"<p>The second of the media clock</p>","parent_name":"SDLStartTime"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTS:":{"name":"-initWithTTS:","abstract":"<p>Undocumented</p>","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTSChunks:":{"name":"-initWithTTSChunks:","abstract":"<p>Undocumented</p>","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(py)ttsChunks":{"name":"ttsChunks","abstract":"<p>An array of TTSChunk structs which, taken together, specify the phrase to be spoken</p>","parent_name":"SDLSpeak"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)name":{"name":"name","abstract":"<p>The name of this soft button state</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)artwork":{"name":"artwork","abstract":"<p>The artwork to be used with this button or nil if it is text-only</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)text":{"name":"text","abstract":"<p>The text to be used with this button or nil if it is image-only</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)highlighted":{"name":"highlighted","abstract":"<p>Whether or not the button should be highlighted on the UI</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)systemAction":{"name":"systemAction","abstract":"<p>A special system action</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(py)softButton":{"name":"softButton","abstract":"<p>An SDLSoftButton describing this state</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(im)initWithStateName:text:image:":{"name":"-initWithStateName:text:image:","abstract":"<p>Create the soft button state. Either the text or artwork or both may be set.</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonState.html#/c:objc(cs)SDLSoftButtonState(im)initWithStateName:text:artwork:":{"name":"-initWithStateName:text:artwork:","abstract":"<p>Create the soft button state. Either the text or artwork or both may be set.</p>","parent_name":"SDLSoftButtonState"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)name":{"name":"name","abstract":"<p>The name of this button</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)states":{"name":"states","abstract":"<p>All states available to this button</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)currentState":{"name":"currentState","abstract":"<p>The name of the current state of this soft button</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)currentStateSoftButton":{"name":"currentStateSoftButton","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)eventHandler":{"name":"eventHandler","abstract":"<p>The handler to be called when the button is in the current state and is pressed</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)initWithName:states:initialStateName:handler:":{"name":"-initWithName:states:initialStateName:handler:","abstract":"<p>Create a multi-state (or single-state, but you should use initWithName:state: instead for that case) soft button. For example, a button that changes its image or text, such as a repeat or shuffle button.</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)initWithName:state:handler:":{"name":"-initWithName:state:handler:","abstract":"<p>Create a single-state soft button. For example, a button that brings up a Perform Interaction menu.</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)transitionToStateNamed:":{"name":"-transitionToStateNamed:","abstract":"<p>Transition the soft button to another state in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)states\">states</a></code> property. The wrapper considers all transitions valid (assuming a state with that name exists).</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)transitionToNextState":{"name":"-transitionToNextState","abstract":"<p>Transition the soft button to the next state of the array set when in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(py)states\">states</a></code> property</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonObject.html#/c:objc(cs)SDLSoftButtonObject(im)stateWithName:":{"name":"-stateWithName:","abstract":"<p>Return a state from the state array with a specific name.</p>","parent_name":"SDLSoftButtonObject"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"<p>The button supports a short press.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"<p>The button supports a LONG press.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"<p>The button supports <q>button down</q> and <q>button up</q>.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)imageSupported":{"name":"imageSupported","abstract":"<p>The button supports referencing a static or dynamic image.</p>","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithType:text:image:highlighted:buttonId:systemAction:handler:":{"name":"-initWithType:text:image:highlighted:buttonId:systemAction:handler:","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)handler":{"name":"handler","abstract":"<p>Undocumented</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)type":{"name":"type","abstract":"<p>Describes whether this soft button displays only text, only an image, or both</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)text":{"name":"text","abstract":"<p>Optional text to display (if defined as TEXT or BOTH type)</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)image":{"name":"image","abstract":"<p>Optional image struct for SoftButton (if defined as IMAGE or BOTH type)</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)isHighlighted":{"name":"isHighlighted","abstract":"<p>Displays in an alternate mode, e.g. with a colored background or foreground. Depends on the IVI system.</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)softButtonID":{"name":"softButtonID","abstract":"<p>Value which is returned via OnButtonPress / OnButtonEvent</p>","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)systemAction":{"name":"systemAction","abstract":"<p>Parameter indicating whether selecting a SoftButton shall call a specific system action. This is intended to allow Notifications to bring the callee into full / focus; or in the case of persistent overlays, the overlay can persist when a SoftButton is pressed.</p>","parent_name":"SDLSoftButton"},"Classes/SDLSliderResponse.html#/c:objc(cs)SDLSliderResponse(py)sliderPosition":{"name":"sliderPosition","abstract":"<p>The selected position of the slider.</p>","parent_name":"SDLSliderResponse"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:":{"name":"-initWithNumTicks:position:","abstract":"<p>Create an SDLSlider with only the number of ticks and position. Note that this is not enough to get a SUCCESS response. You must supply additional data. See below for required parameters.</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooter:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooter:timeout:","abstract":"<p>Create an SDLSlider with all required data and a static footer (or no footer).</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooters:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooters:timeout:","abstract":"<p>Create an SDLSlider with all required data and a dynamic footer (or no footer).</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)numTicks":{"name":"numTicks","abstract":"<p>Represents a number of selectable items on a horizontal axis</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)position":{"name":"position","abstract":"<p>An Initial position of slider control</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderHeader":{"name":"sliderHeader","abstract":"<p>A text header to display</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderFooter":{"name":"sliderFooter","abstract":"<p>A text footer to display</p>","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)timeout":{"name":"timeout","abstract":"<p>An App defined timeout in milliseconds</p>","parent_name":"SDLSlider"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)status":{"name":"status","parent_name":"SDLSingleTireStatus"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)monitoringSystemStatus":{"name":"monitoringSystemStatus","abstract":"<p>The status of TPMS for this particular tire</p>","parent_name":"SDLSingleTireStatus"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)pressure":{"name":"pressure","abstract":"<p>The pressure value of this particular tire in kPa (kilopascals)</p>","parent_name":"SDLSingleTireStatus"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(im)initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:":{"name":"-initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText1":{"name":"navigationText1","abstract":"<p>The first line of text in a multi-line overlay screen.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText2":{"name":"navigationText2","abstract":"<p>The second line of text in a multi-line overlay screen.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)eta":{"name":"eta","abstract":"<p>Estimated Time of Arrival time at final destination</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)timeToDestination":{"name":"timeToDestination","abstract":"<p>The amount of time needed to reach the final destination</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)totalDistance":{"name":"totalDistance","abstract":"<p>The distance to the final destination</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)turnIcon":{"name":"turnIcon","abstract":"<p>An icon to show with the turn description</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)nextTurnIcon":{"name":"nextTurnIcon","abstract":"<p>An icon to show with the next turn description</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuver":{"name":"distanceToManeuver","abstract":"<p>Fraction of distance till next maneuver (starting from when AlertManeuver is triggered). Used to calculate progress bar.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuverScale":{"name":"distanceToManeuverScale","abstract":"<p>Distance till next maneuver (starting from) from previous maneuver. Used to calculate progress bar.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)maneuverComplete":{"name":"maneuverComplete","abstract":"<p>If and when a maneuver has completed while an AlertManeuver is active, the app must send this value set to TRUE in order to clear the AlertManeuver overlay. If omitted the value will be assumed as FALSE.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)softButtons":{"name":"softButtons","abstract":"<p>Three dynamic SoftButtons available (first SoftButton is fixed to <q>Turns</q>). If omitted on supported displays, the currently displayed SoftButton values will not change.</p>","parent_name":"SDLShowConstantTBT"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:alignment:":{"name":"-initWithMainField1:mainField2:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:":{"name":"-initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainField4Type:alignment:":{"name":"-initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainField4Type:alignment:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:":{"name":"-initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:","abstract":"<p>Undocumented</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField1":{"name":"mainField1","abstract":"<p>The text displayed in a single-line display, or in the upper display","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField2":{"name":"mainField2","abstract":"<p>The text displayed on the second display line of a two-line display</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField3":{"name":"mainField3","abstract":"<p>The text displayed on the first display line of the second page</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField4":{"name":"mainField4","abstract":"<p>The text displayed on the second display line of the second page</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)alignment":{"name":"alignment","abstract":"<p>The alignment that Specifies how mainField1 and mainField2 text","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)statusBar":{"name":"statusBar","abstract":"<p>Text in the Status Bar</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaClock":{"name":"mediaClock","abstract":"<p>This property is deprecated use SetMediaClockTimer instead.","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaTrack":{"name":"mediaTrack","abstract":"<p>The text in the track field</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)graphic":{"name":"graphic","abstract":"<p>An image to be shown on supported displays</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)secondaryGraphic":{"name":"secondaryGraphic","abstract":"<p>An image to be shown on supported displays</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)softButtons":{"name":"softButtons","abstract":"<p>The the Soft buttons defined by the App</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)customPresets":{"name":"customPresets","abstract":"<p>The Custom Presets defined by the App</p>","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)metadataTags":{"name":"metadataTags","abstract":"<p>Text Field Metadata</p>","parent_name":"SDLShow"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:":{"name":"+countUpFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:","abstract":"<p>Create a media clock timer that counts up, e.g from 0:00 to 4:18.</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)countUpFromStartTime:toEndTime:playPauseIndicator:":{"name":"+countUpFromStartTime:toEndTime:playPauseIndicator:","abstract":"<p>Create a media clock timer that counts up, e.g from 0:00 to 4:18.</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:":{"name":"+countDownFromStartTimeInterval:toEndTimeInterval:playPauseIndicator:","abstract":"<p>Create a media clock timer that counts down, e.g. from 4:18 to 0:00</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)countDownFromStartTime:toEndTime:playPauseIndicator:":{"name":"+countDownFromStartTime:toEndTime:playPauseIndicator:","abstract":"<p>Create a media clock timer that counts down, e.g. from 4:18 to 0:00</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)pauseWithPlayPauseIndicator:":{"name":"+pauseWithPlayPauseIndicator:","abstract":"<p>Pause an existing (counting up / down) media clock timer</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:":{"name":"+updatePauseWithNewStartTimeInterval:endTimeInterval:playPauseIndicator:","abstract":"<p>Update a pause time (or pause and update the time) on a media clock timer</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)updatePauseWithNewStartTime:endTime:playPauseIndicator:":{"name":"+updatePauseWithNewStartTime:endTime:playPauseIndicator:","abstract":"<p>Update a pause time (or pause and update the time) on a media clock timer</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)resumeWithPlayPauseIndicator:":{"name":"+resumeWithPlayPauseIndicator:","abstract":"<p>Resume a paused media clock timer. It resumes at the same time at which it was paused.</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(cm)clearWithPlayPauseIndicator:":{"name":"+clearWithPlayPauseIndicator:","abstract":"<p>Remove a media clock timer from the screen</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:":{"name":"-initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:hours:minutes:seconds:":{"name":"-initWithUpdateMode:hours:minutes:seconds:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:":{"name":"-initWithUpdateMode:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:startTime:endTime:playPauseIndicator:":{"name":"-initWithUpdateMode:startTime:endTime:playPauseIndicator:","abstract":"<p>Create a SetMediaClockTimer RPC with all available parameters. It’s recommended to use the specific initializers above.</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)startTime":{"name":"startTime","abstract":"<p>A Start Time with specifying hour, minute, second values</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)endTime":{"name":"endTime","abstract":"<p>An END time of type SDLStartTime, specifying hour, minute, second values</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)updateMode":{"name":"updateMode","abstract":"<p>The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME)</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)audioStreamingIndicator":{"name":"audioStreamingIndicator","abstract":"<p>The audio streaming indicator used for a play/pause button.</p>","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetInteriorVehicleDataResponse.html#/c:objc(cs)SDLSetInteriorVehicleDataResponse(py)moduleData":{"name":"moduleData","abstract":"<p>The new module data for the requested module</p>","parent_name":"SDLSetInteriorVehicleDataResponse"},"Classes/SDLSetInteriorVehicleData.html#/c:objc(cs)SDLSetInteriorVehicleData(im)initWithModuleData:":{"name":"-initWithModuleData:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetInteriorVehicleData"},"Classes/SDLSetInteriorVehicleData.html#/c:objc(cs)SDLSetInteriorVehicleData(py)moduleData":{"name":"moduleData","abstract":"<p>The module data to set for the requested RC module.</p>","parent_name":"SDLSetInteriorVehicleData"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:":{"name":"-initWithHelpText:timeoutText:","abstract":"<p>Initialize SetGlobalProperties with help text and timeout text</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:vrHelpTitle:vrHelp:":{"name":"-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:","abstract":"<p>Initialize SetGlobalProperties with help text, timeout text, help title, and help items</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:":{"name":"-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:","abstract":"<p>Initialize SetGlobalProperties with all possible items</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)helpPrompt":{"name":"helpPrompt","abstract":"<p>Help prompt for when the user asks for help with an interface prompt</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"<p>Help prompt for when an interface prompt times out</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelpTitle":{"name":"vrHelpTitle","abstract":"<p>Sets a voice recognition Help Title</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelp":{"name":"vrHelp","abstract":"<p>Sets the items listed in the VR help screen used in an interaction started by Push to Talk</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuTitle":{"name":"menuTitle","abstract":"<p>Text for the menu button label</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuIcon":{"name":"menuIcon","abstract":"<p>Icon for the menu button</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)keyboardProperties":{"name":"keyboardProperties","abstract":"<p>On-screen keyboard (perform interaction) configuration</p>","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"<p>The display capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<p>The button capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"<p>The soft button capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"<p>The preset bank capabilities of the new template layout</p>","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithPredefinedLayout:":{"name":"-initWithPredefinedLayout:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithLayout:":{"name":"-initWithLayout:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithPredefinedLayout:dayColorScheme:nightColorScheme:":{"name":"-initWithPredefinedLayout:dayColorScheme:nightColorScheme:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)displayLayout":{"name":"displayLayout","abstract":"<p>A display layout. Predefined or dynamically created screen layout.","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)dayColorScheme":{"name":"dayColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>light</q> or <q>day</q> color scheme. The OEM may only support this theme if their head unit only has a light color scheme.</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)nightColorScheme":{"name":"nightColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>dark</q> or <q>night</q> color scheme. The OEM may only support this theme if their head unit only has a dark color scheme.</p>","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetCloudAppProperties.html#/c:objc(cs)SDLSetCloudAppProperties(im)initWithProperties:":{"name":"-initWithProperties:","abstract":"<p>Convenience init.</p>","parent_name":"SDLSetCloudAppProperties"},"Classes/SDLSetCloudAppProperties.html#/c:objc(cs)SDLSetCloudAppProperties(py)properties":{"name":"properties","abstract":"<p>The new cloud application properties.</p>","parent_name":"SDLSetCloudAppProperties"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"<p>Undocumented</p>","parent_name":"SDLSetAppIcon"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(py)syncFileName":{"name":"syncFileName","abstract":"<p>A file reference name","parent_name":"SDLSetAppIcon"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(im)initWithAddress:addressLines:locationName:locationDescription:phoneNumber:image:deliveryMode:timeStamp:":{"name":"-initWithAddress:addressLines:locationName:locationDescription:phoneNumber:image:deliveryMode:timeStamp:","abstract":"<p>Create a <code>SendLocation</code> request with an address object, without Lat/Long coordinates.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(im)initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:":{"name":"-initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:","abstract":"<p>Create a <code>SendLocation</code> request with Lat/Long coordinate, not an address object</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(im)initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:":{"name":"-initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:","abstract":"<p>Create a <code>SendLocation</code> request with Lat/Long coordinate and an address object and let the nav system decide how to parse it</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"<p>The longitudinal coordinate of the location. Either the latitude / longitude OR the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address\">address</a></code> must be provided.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"<p>The latitudinal coordinate of the location. Either the latitude / longitude OR the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address\">address</a></code> must be provided.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationName":{"name":"locationName","abstract":"<p>Name / title of intended location</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationDescription":{"name":"locationDescription","abstract":"<p>Description of the intended location / establishment</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)addressLines":{"name":"addressLines","abstract":"<p>Location address for display purposes only.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)phoneNumber":{"name":"phoneNumber","abstract":"<p>Phone number of intended location / establishment</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationImage":{"name":"locationImage","abstract":"<p>Image / icon of intended location</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)deliveryMode":{"name":"deliveryMode","abstract":"<p>Mode in which the sendLocation request is sent</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)timeStamp":{"name":"timeStamp","abstract":"<p>Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address":{"name":"address","abstract":"<p>Address to be used for setting destination. Either the latitude / longitude OR the <code>address</code> must be provided.</p>","parent_name":"SDLSendLocation"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(im)initWithHapticRectData:":{"name":"-initWithHapticRectData:","abstract":"<p>Constructs a new SDLSendHapticData object indicated by the hapticSpatialData parameter</p>","parent_name":"SDLSendHapticData"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(py)hapticRectData":{"name":"hapticRectData","abstract":"<p>Array of spatial data structures that represent the locations of all user controls present on the HMI. This data should be updated if/when the application presents a new screen. When a request is sent, if successful, it will replace all spatial data previously sent through RPC. If an empty array is sent, the existing spatial data will be cleared</p>","parent_name":"SDLSendHapticData"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(im)initWithId:action:":{"name":"-initWithId:action:","abstract":"<p>@abstract Constructs a newly allocated SDLSeatMemoryAction object with id, label (max length 100 chars) and action type</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(im)initWithId:label:action:":{"name":"-initWithId:label:action:","abstract":"<p>@abstract Constructs a newly allocated SDLSeatMemoryAction object with id, label (max length 100 chars) and action type</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(py)id":{"name":"id","abstract":"<p>@abstract id of the action to be performed.</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(py)label":{"name":"label","abstract":"<p>@abstract label of the action to be performed.</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatMemoryAction.html#/c:objc(cs)SDLSeatMemoryAction(py)action":{"name":"action","abstract":"<p>@abstract type of action to be performed</p>","parent_name":"SDLSeatMemoryAction"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Constructs a newly allocated SDLSeatControlData object with cushion and firmness</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(im)initWithId:heatingEnabled:coolingEnable:heatingLevel:coolingLevel:horizontalPostion:verticalPostion:frontVerticalPostion:backVerticalPostion:backTiltAngle:headSupportedHorizontalPostion:headSupportedVerticalPostion:massageEnabled:massageMode:massageCussionFirmness:memory:":{"name":"-initWithId:heatingEnabled:coolingEnable:heatingLevel:coolingLevel:horizontalPostion:verticalPostion:frontVerticalPostion:backVerticalPostion:backTiltAngle:headSupportedHorizontalPostion:headSupportedVerticalPostion:massageEnabled:massageMode:massageCussionFirmness:memory:","abstract":"<p>Constructs a newly allocated SDLSeatControlData object with cushion and firmness</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)id":{"name":"id","abstract":"<p>@abstract id of seat that is a remote controllable seat.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)heatingEnabled":{"name":"heatingEnabled","abstract":"<p>@abstract Whether or not heating is enabled.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)coolingEnabled":{"name":"coolingEnabled","abstract":"<p>@abstract Whether or not cooling is enabled.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)heatingLevel":{"name":"heatingLevel","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)coolingLevel":{"name":"coolingLevel","abstract":"<p>@abstract cooling level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)horizontalPosition":{"name":"horizontalPosition","abstract":"<p>@abstract horizontal Position in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)verticalPosition":{"name":"verticalPosition","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)frontVerticalPosition":{"name":"frontVerticalPosition","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)backVerticalPosition":{"name":"backVerticalPosition","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)backTiltAngle":{"name":"backTiltAngle","abstract":"<p>@abstract heating level in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)headSupportHorizontalPosition":{"name":"headSupportHorizontalPosition","abstract":"<p>@abstract head Support Horizontal Position in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)headSupportVerticalPosition":{"name":"headSupportVerticalPosition","abstract":"<p>@abstract head Support Vertical Position in integer</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)massageEnabled":{"name":"massageEnabled","abstract":"<p>@abstract Whether or not massage is enabled.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)massageMode":{"name":"massageMode","abstract":"<p>@abstract Array of massage mode data.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)massageCushionFirmness":{"name":"massageCushionFirmness","abstract":"<p>@abstract Array of firmness of a cushion.</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlData.html#/c:objc(cs)SDLSeatControlData(py)memory":{"name":"memory","abstract":"<p>@abstract type of action to be performed</p>","parent_name":"SDLSeatControlData"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Undocumented</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(im)initWithName:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:":{"name":"-initWithName:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:","abstract":"<p>Undocumented</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the light control module.","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)heatingEnabledAvailable":{"name":"heatingEnabledAvailable","abstract":"<p>@abstract Whether or not heating is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)coolingEnabledAvailable":{"name":"coolingEnabledAvailable","abstract":"<p>@abstract Whether or not cooling is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)heatingLevelAvailable":{"name":"heatingLevelAvailable","abstract":"<p>@abstract Whether or not heating level is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)coolingLevelAvailable":{"name":"coolingLevelAvailable","abstract":"<p>@abstract Whether or not cooling level is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)horizontalPositionAvailable":{"name":"horizontalPositionAvailable","abstract":"<p>@abstract Whether or not horizontal Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)verticalPositionAvailable":{"name":"verticalPositionAvailable","abstract":"<p>@abstract Whether or not vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)frontVerticalPositionAvailable":{"name":"frontVerticalPositionAvailable","abstract":"<p>@abstract Whether or not front Vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)backVerticalPositionAvailable":{"name":"backVerticalPositionAvailable","abstract":"<p>@abstract Whether or not back Vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)backTiltAngleAvailable":{"name":"backTiltAngleAvailable","abstract":"<p>@abstract Whether or not backTilt Angle Available is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)headSupportHorizontalPositionAvailable":{"name":"headSupportHorizontalPositionAvailable","abstract":"<p>@abstract Whether or not head Supports for Horizontal Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)headSupportVerticalPositionAvailable":{"name":"headSupportVerticalPositionAvailable","abstract":"<p>@abstract Whether or not head Supports for Vertical Position is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)massageEnabledAvailable":{"name":"massageEnabledAvailable","abstract":"<p>@abstract Whether or not massage Enabled is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)massageModeAvailable":{"name":"massageModeAvailable","abstract":"<p>@abstract Whether or not massage Mode is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)massageCushionFirmnessAvailable":{"name":"massageCushionFirmnessAvailable","abstract":"<p>@abstract Whether or not massage Cushion Firmness is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLSeatControlCapabilities.html#/c:objc(cs)SDLSeatControlCapabilities(py)memoryAvailable":{"name":"memoryAvailable","abstract":"<p>@abstract Whether or not memory is Available.</p>","parent_name":"SDLSeatControlCapabilities"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:":{"name":"-initWithMessage:","abstract":"<p>Undocumented</p>","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:timeout:softButtons:":{"name":"-initWithMessage:timeout:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)scrollableMessageBody":{"name":"scrollableMessageBody","abstract":"<p>A Body of text that can include newlines and tabs","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)timeout":{"name":"timeout","abstract":"<p>Gets/Sets an App defined timeout. Indicates how long of a timeout in milliseconds from the","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)softButtons":{"name":"softButtons","abstract":"<p>Gets/Sets App defined SoftButtons.If omitted on supported displays, only the","parent_name":"SDLScrollableMessage"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)resolution":{"name":"resolution","abstract":"<p>The resolution of the prescribed screen area</p>","parent_name":"SDLScreenParams"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)touchEventAvailable":{"name":"touchEventAvailable","abstract":"<p>Types of screen touch events available in screen area</p>","parent_name":"SDLScreenParams"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField1":{"name":"textField1","abstract":"<p>The top text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField2":{"name":"textField2","abstract":"<p>The second text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField3":{"name":"textField3","abstract":"<p>The third text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField4":{"name":"textField4","abstract":"<p>The fourth text field within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)mediaTrackTextField":{"name":"mediaTrackTextField","abstract":"<p>The media text field available within the media layout. Often less emphasized than textField(1-4)</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)primaryGraphic":{"name":"primaryGraphic","abstract":"<p>The primary graphic within a template layout</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)secondaryGraphic":{"name":"secondaryGraphic","abstract":"<p>A secondary graphic used in some template layouts</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textAlignment":{"name":"textAlignment","abstract":"<p>What alignment textField(1-4) should use</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField1Type":{"name":"textField1Type","abstract":"<p>The type of data textField1 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField2Type":{"name":"textField2Type","abstract":"<p>The type of data textField2 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField3Type":{"name":"textField3Type","abstract":"<p>The type of data textField3 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)textField4Type":{"name":"textField4Type","abstract":"<p>The type of data textField4 describes</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)softButtonObjects":{"name":"softButtonObjects","abstract":"<p>The current list of soft buttons within a template layout. Set this array to change the displayed soft buttons.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)menu":{"name":"menu","abstract":"<p>The current list of menu cells displayed in the app’s menu.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>The current list of voice commands available for the user to speak and be recognized by the IVI’s voice recognition engine.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)keyboardConfiguration":{"name":"keyboardConfiguration","abstract":"<p>The default keyboard configuration, this can be additionally customized by each SDLKeyboardDelegate.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(py)preloadedChoices":{"name":"preloadedChoices","abstract":"<p>Cells will be hashed by their text, image names, and VR command text. When assembling an SDLChoiceSet, you can pull objects from here, or recreate them. The preloaded versions will be used so long as their text, image names, and VR commands are the same.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)initWithConnectionManager:fileManager:":{"name":"-initWithConnectionManager:fileManager:","abstract":"<p>Initialize a screen manager</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"<p>Starts the manager and all sub-managers</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)stop":{"name":"-stop","abstract":"<p>Stops the manager.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)beginUpdates":{"name":"-beginUpdates","abstract":"<p>Delays all screen updates until endUpdatesWithCompletionHandler: is called.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)endUpdates":{"name":"-endUpdates","abstract":"<p>Update text fields with new text set into the text field properties. Pass an empty string <code>\\@""</code> to clear the text field.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)endUpdatesWithCompletionHandler:":{"name":"-endUpdatesWithCompletionHandler:","abstract":"<p>Update text fields with new text set into the text field properties. Pass an empty string <code>\\@""</code> to clear the text field.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)softButtonObjectNamed:":{"name":"-softButtonObjectNamed:","abstract":"<p>Undocumented</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)preloadChoices:withCompletionHandler:":{"name":"-preloadChoices:withCompletionHandler:","abstract":"<p>Preload cells to the head unit. This will <em>greatly</em> reduce the time taken to present a choice set. Any already matching a choice already on the head unit will be ignored. You <em>do not</em> need to wait until the completion handler is called to present a choice set containing choices being loaded. The choice set will wait until the preload completes and then immediately present.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)deleteChoices:":{"name":"-deleteChoices:","abstract":"<p>Delete loaded cells from the head unit. If the cells don’t exist on the head unit they will be ignored.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)presentChoiceSet:mode:":{"name":"-presentChoiceSet:mode:","abstract":"<p>Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you’re lazy…for real though, it’s kind of confusing to the user and isn’t recommended.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)presentSearchableChoiceSet:mode:withKeyboardDelegate:":{"name":"-presentSearchableChoiceSet:mode:withKeyboardDelegate:","abstract":"<p>Present a choice set on the head unit with a certain interaction mode. You should present in VR only if the user reached this choice set by using their voice, in Manual only if the user used touch to reach this choice set. Use Both if you’re lazy…for real though, it’s kind of confusing to the user and isn’t recommended.</p>","parent_name":"SDLScreenManager"},"Classes/SDLScreenManager.html#/c:objc(cs)SDLScreenManager(im)presentKeyboardWithInitialText:delegate:":{"name":"-presentKeyboardWithInitialText:delegate:","abstract":"<p>Present a keyboard-only interface to the user and receive input. The user will be able to input text in the keyboard when in a non-driver distraction situation.</p>","parent_name":"SDLScreenManager"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(im)initWithStationShortName:stationIDNumber:stationLongName:stationLocation:stationMessage:":{"name":"-initWithStationShortName:stationIDNumber:stationLongName:stationLocation:stationMessage:","abstract":"<p>Undocumented</p>","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationShortName":{"name":"stationShortName","abstract":"<p>@abstract Identifies the 4-alpha-character station call sign","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationIDNumber":{"name":"stationIDNumber","abstract":"<p>@abstract Used for network Application.","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationLongName":{"name":"stationLongName","abstract":"<p>@abstract Identifies the station call sign or other identifying","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationLocation":{"name":"stationLocation","abstract":"<p>@abstract Provides the 3-dimensional geographic station location</p>","parent_name":"SDLSISData"},"Classes/SDLSISData.html#/c:objc(cs)SDLSISData(py)stationMessage":{"name":"stationMessage","abstract":"<p>@abstract May be used to convey textual information of general interest","parent_name":"SDLSISData"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(im)initWithProperties:":{"name":"-initWithProperties:","abstract":"<p>Undocumented</p>","parent_name":"SDLResetGlobalProperties"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(py)properties":{"name":"properties","abstract":"<p>An array of one or more GlobalProperty enumeration elements","parent_name":"SDLResetGlobalProperties"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(im)initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:":{"name":"-initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:","abstract":"<p>Undocumented</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(im)initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:seatControlCapabilities:audioControlCapabilities:hmiSettingsControlCapabilities:lightControlCapabilities:":{"name":"-initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:seatControlCapabilities:audioControlCapabilities:hmiSettingsControlCapabilities:lightControlCapabilities:","abstract":"<p>Constructs a newly allocated SDLRemoteControlCapabilities object with given parameters</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)climateControlCapabilities":{"name":"climateControlCapabilities","abstract":"<p>If included, the platform supports RC climate controls.","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities":{"name":"radioControlCapabilities","abstract":"<p>If included, the platform supports RC radio controls.","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<p>If included, the platform supports RC button controls with the included button names.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)seatControlCapabilities":{"name":"seatControlCapabilities","abstract":"<p>If included, the platform supports seat controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)audioControlCapabilities":{"name":"audioControlCapabilities","abstract":"<p>If included, the platform supports audio controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)hmiSettingsControlCapabilities":{"name":"hmiSettingsControlCapabilities","abstract":"<p>If included, the platform supports hmi setting controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)lightControlCapabilities":{"name":"lightControlCapabilities","abstract":"<p>If included, the platform supports light controls.</p>","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"<p>The RPC spec version supported by the connected IVI system.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)language":{"name":"language","abstract":"<p>The currently active VR+TTS language on the module. See <q>Language</q> for options.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"<p>The currently active display language on the module. See <q>Language</q> for options.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"<p>Contains information about the display for the SDL system to which the application is currently connected.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"<p>Provides information about the capabilities of a SDL HMI button.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"<p>Contains information about a SoftButton’s capabilities.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"<p>If returned, the platform supports custom on-screen Presets</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiZoneCapabilities":{"name":"hmiZoneCapabilities","abstract":"<p>Specifies HMI Zones in the vehicle.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)speechCapabilities":{"name":"speechCapabilities","abstract":"<p>Contains information about TTS capabilities on the SDL platform.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)prerecordedSpeech":{"name":"prerecordedSpeech","abstract":"<p>Contains information about the speech capabilities on the SDL platform","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vrCapabilities":{"name":"vrCapabilities","abstract":"<p>The VR capabilities of the connected SDL platform.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)audioPassThruCapabilities":{"name":"audioPassThruCapabilities","abstract":"<p>Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)pcmStreamCapabilities":{"name":"pcmStreamCapabilities","abstract":"<p>Describes different audio type configurations for the audio PCM stream service, e.g. {8kHz,8-bit,PCM}</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vehicleType":{"name":"vehicleType","abstract":"<p>Specifies the connected vehicle’s type</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)supportedDiagModes":{"name":"supportedDiagModes","abstract":"<p>Specifies the white-list of supported diagnostic modes (0x00-0xFF) capable for DiagnosticMessage requests. If a mode outside this list is requested, it will be rejected.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiCapabilities":{"name":"hmiCapabilities","abstract":"<p>Specifies the availability of various SDL features.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)sdlVersion":{"name":"sdlVersion","abstract":"<p>The SmartDeviceLink Core version</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)systemSoftwareVersion":{"name":"systemSoftwareVersion","abstract":"<p>The software version of the system that implements SmartDeviceLink Core</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)iconResumed":{"name":"iconResumed","abstract":"<p>Whether or not the app’s icon already existed on the system and was resumed. That means that the icon does not need to be sent by the app.</p>","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithLifecycleConfiguration:":{"name":"-initWithLifecycleConfiguration:","abstract":"<p>Convenience init for registering the application with a lifecycle configuration.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:":{"name":"-initWithAppName:appId:languageDesired:","abstract":"<p>Convenience init for registering the application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:","abstract":"<p>Convenience init for registering the application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:","abstract":"<p>Convenience init for registering the application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme:":{"name":"-initWithAppName:appId:fullAppId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:dayColorScheme:nightColorScheme:","abstract":"<p>Convenience init for registering the application with all possible options.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"<p>The version of the SDL interface</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appName":{"name":"appName","abstract":"<p>The mobile application’s name. This name is displayed in the SDL Mobile Applications menu. It also serves as the unique identifier of the application for SmartDeviceLink.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ttsName":{"name":"ttsName","abstract":"<p>TTS string for VR recognition of the mobile application name.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"<p>A String representing an abbreviated version of the mobile application’s name (if necessary) that will be displayed on the media screen.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)vrSynonyms":{"name":"vrSynonyms","abstract":"<p>Defines additional voice recognition commands</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)isMediaApplication":{"name":"isMediaApplication","abstract":"<p>Indicates if the application is a media or a non-media application.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)languageDesired":{"name":"languageDesired","abstract":"<p>A Language enumeration indicating what language the application intends to use for user interaction (TTS and VR).</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hmiDisplayLanguageDesired":{"name":"hmiDisplayLanguageDesired","abstract":"<p>An enumeration indicating what language the application intends to use for user interaction (Display).</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appHMIType":{"name":"appHMIType","abstract":"<p>A list of all applicable app types stating which classifications to be given to the app.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hashID":{"name":"hashID","abstract":"<p>ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles).</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)deviceInfo":{"name":"deviceInfo","abstract":"<p>Information about the connecting device</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appID":{"name":"appID","abstract":"<p>ID used to validate app with policy table entries</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)fullAppID":{"name":"fullAppID","abstract":"<p>A full UUID appID used to validate app with policy table entries.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appInfo":{"name":"appInfo","abstract":"<p>Information about the application running</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)dayColorScheme":{"name":"dayColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>light</q> or <q>day</q> color scheme. The OEM may only support this theme if their head unit only has a light color scheme.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)nightColorScheme":{"name":"nightColorScheme","abstract":"<p>The color scheme to be used on a head unit using a <q>dark</q> or <q>night</q> color scheme. The OEM may only support this theme if their head unit only has a dark color scheme.</p>","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithX:y:width:height:":{"name":"-initWithX:y:width:height:","abstract":"<p>Create a Rectangle</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithCGRect:":{"name":"-initWithCGRect:","abstract":"<p>Create a Rectangle from a CGRect</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)x":{"name":"x","abstract":"<p>The X-coordinate of the user control</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)y":{"name":"y","abstract":"<p>The Y-coordinate of the user control</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)width":{"name":"width","abstract":"<p>The width of the user control’s bounding rectangle</p>","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)height":{"name":"height","abstract":"<p>The height of the user control’s bounding rectangle</p>","parent_name":"SDLRectangle"},"Classes/SDLReadDIDResponse.html#/c:objc(cs)SDLReadDIDResponse(py)didResult":{"name":"didResult","abstract":"<p>Array of requested DID results (with data if available).</p>","parent_name":"SDLReadDIDResponse"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(im)initWithECUName:didLocation:":{"name":"-initWithECUName:didLocation:","abstract":"<p>Undocumented</p>","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)ecuName":{"name":"ecuName","abstract":"<p>An ID of the vehicle module","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)didLocation":{"name":"didLocation","abstract":"<p>Raw data from vehicle data DID location(s)","parent_name":"SDLReadDID"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(im)initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:":{"name":"-initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(im)initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:hdRadioEnable:":{"name":"-initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:hdRadioEnable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)frequencyInteger":{"name":"frequencyInteger","abstract":"<p>The integer part of the frequency ie for 101.7 this value should be 101</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)frequencyFraction":{"name":"frequencyFraction","abstract":"<p>The fractional part of the frequency for 101.7 is 7</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)band":{"name":"band","abstract":"<p>Radio band value</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)rdsData":{"name":"rdsData","abstract":"<p>Read only parameter. See RDSData data type for details.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)availableHDs":{"name":"availableHDs","abstract":"<p>number of HD sub-channels if available</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)hdChannel":{"name":"hdChannel","abstract":"<p>Current HD sub-channel if available</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)signalStrength":{"name":"signalStrength","abstract":"<p>Signal Strength Value</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)signalChangeThreshold":{"name":"signalChangeThreshold","abstract":"<p>If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)radioEnable":{"name":"radioEnable","abstract":"<p>True if the radio is on, false is the radio is off. When the radio is disabled, no data other than radioEnable is included in a GetInteriorVehicleData response</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)state":{"name":"state","abstract":"<p>Read only parameter. See RadioState data type for details.</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)hdRadioEnable":{"name":"hdRadioEnable","abstract":"<p>True if the hd radio is on, false is the radio is off</p>","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)sisData":{"name":"sisData","abstract":"<p>Read Read-only Station Information Service (SIS) data provides basic information","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(im)initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:":{"name":"-initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(im)initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable:":{"name":"-initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable:","abstract":"<p>Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>The short friendly name of the radio control module.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioEnableAvailable":{"name":"radioEnableAvailable","abstract":"<p>Availability of the control of enable/disable radio.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioBandAvailable":{"name":"radioBandAvailable","abstract":"<p>Availability of the control of radio band.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioFrequencyAvailable":{"name":"radioFrequencyAvailable","abstract":"<p>Availability of the control of radio frequency.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)hdChannelAvailable":{"name":"hdChannelAvailable","abstract":"<p>Availability of the control of HD radio channel.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)rdsDataAvailable":{"name":"rdsDataAvailable","abstract":"<p>Availability of the getting Radio Data System (RDS) data.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)availableHDsAvailable":{"name":"availableHDsAvailable","abstract":"<p>Availability of the getting the number of available HD channels.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)stateAvailable":{"name":"stateAvailable","abstract":"<p>Availability of the getting the Radio state.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)signalStrengthAvailable":{"name":"signalStrengthAvailable","abstract":"<p>Availability of the getting the signal strength.</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)signalChangeThresholdAvailable":{"name":"signalChangeThresholdAvailable","abstract":"<p>Availability of the getting the signal Change Threshold</p>","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)hdRadioEnableAvailable":{"name":"hdRadioEnableAvailable","abstract":"<p>Availability of the control of enable/disable HD radio.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)siriusXMRadioAvailable":{"name":"siriusXMRadioAvailable","abstract":"<p>Availability of sirius XM radio.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)sisDataAvailable":{"name":"sisDataAvailable","abstract":"<p>Availability of the getting HD radio Station Information Service (SIS) data.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct@store":{"name":"store","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"<p>Convenience init</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)init":{"name":"-init","abstract":"<p>Init</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)serializeAsDictionary:":{"name":"-serializeAsDictionary:","abstract":"<p>Converts struct to JSON formatted data</p>","parent_name":"SDLRPCStruct"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(py)response":{"name":"response","abstract":"<p>The response to be included within the userinfo dictionary</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)initWithName:object:rpcResponse:":{"name":"-initWithName:object:rpcResponse:","abstract":"<p>Create an NSNotification object containing an SDLRPCResponse</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)isResponseMemberOfClass:":{"name":"-isResponseMemberOfClass:","abstract":"<p>Returns whether or not the containing response is equal to a class, not including subclasses.</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)isResponseKindOfClass:":{"name":"-isResponseKindOfClass:","abstract":"<p>Returns whether or not the containing response is a kind of class, including subclasses.</p>","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)correlationID":{"name":"correlationID","abstract":"<p>The correlation id of the corresponding SDLRPCRequest.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)success":{"name":"success","abstract":"<p>Whether or not the SDLRPCRequest was successful.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)resultCode":{"name":"resultCode","abstract":"<p>The result of the SDLRPCRequest. If the request failed, the result code contains the failure reason.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)info":{"name":"info","abstract":"<p>More detailed success or error message.</p>","parent_name":"SDLRPCResponse"},"Classes/SDLRPCRequestNotification.html#/c:objc(cs)SDLRPCRequestNotification(py)request":{"name":"request","abstract":"<p>The request to be included in the userinfo dictionary</p>","parent_name":"SDLRPCRequestNotification"},"Classes/SDLRPCRequestNotification.html#/c:objc(cs)SDLRPCRequestNotification(im)initWithName:object:rpcRequest:":{"name":"-initWithName:object:rpcRequest:","abstract":"<p>Create an NSNotification object containing an SDLRPCRequest</p>","parent_name":"SDLRPCRequestNotification"},"Classes/SDLRPCRequestNotification.html#/c:objc(cs)SDLRPCRequestNotification(im)isRequestMemberOfClass:":{"name":"-isRequestMemberOfClass:","abstract":"<p>Returns whether or not the containing request is equal to a class, not including subclasses.</p>","parent_name":"SDLRPCRequestNotification"},"Classes/SDLRPCRequestNotification.html#/c:objc(cs)SDLRPCRequestNotification(im)isRequestKindOfClass:":{"name":"-isRequestKindOfClass:","abstract":"<p>Returns whether or not the containing request is a kind of class, including subclasses.</p>","parent_name":"SDLRPCRequestNotification"},"Classes/SDLRPCRequest.html#/c:objc(cs)SDLRPCRequest(py)correlationID":{"name":"correlationID","abstract":"<p>A unique id assigned to message sent to Core. The Correlation ID is used to map a request to its response.</p>","parent_name":"SDLRPCRequest"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(py)notification":{"name":"notification","abstract":"<p>The notification within the userinfo dictionary</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)initWithName:object:rpcNotification:":{"name":"-initWithName:object:rpcNotification:","abstract":"<p>Create an NSNotification object caontaining an SDLRPCNotification</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)isNotificationMemberOfClass:":{"name":"-isNotificationMemberOfClass:","abstract":"<p>Returns whether or not the containing notification is equal to a class, not including subclasses.</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)isNotificationKindOfClass:":{"name":"-isNotificationKindOfClass:","abstract":"<p>Returns whether or not the containing notification is a kind of class, including subclasses.</p>","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@function":{"name":"function","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@parameters":{"name":"parameters","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@messageType":{"name":"messageType","abstract":"<p>Undocumented</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Convenience init</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"<p>Convenience init</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getFunctionName":{"name":"-getFunctionName","abstract":"<p>Returns the function name.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setFunctionName:":{"name":"-setFunctionName:","abstract":"<p>Sets the function name.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getParameters:":{"name":"-getParameters:","abstract":"<p>Returns the value associated with the provided key. If the key does not exist, null is returned.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setParameters:value:":{"name":"-setParameters:value:","abstract":"<p>Sets a key-value pair using the function name as the key.</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)bulkData":{"name":"bulkData","abstract":"<p>The data in the message</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)name":{"name":"name","abstract":"<p>The name of the message</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)messageType":{"name":"messageType","abstract":"<p>The type of data in the message</p>","parent_name":"SDLRPCMessage"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(im)initWithRed:green:blue:":{"name":"-initWithRed:green:blue:","abstract":"<p>Create an SDL color object with red / green / blue values between 0-255</p>","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(im)initWithColor:":{"name":"-initWithColor:","abstract":"<p>Create an SDL color object with a UIColor object.</p>","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(py)red":{"name":"red","abstract":"<p>The red value of the RGB color","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(py)green":{"name":"green","abstract":"<p>The green value of the RGB color","parent_name":"SDLRGBColor"},"Classes/SDLRGBColor.html#/c:objc(cs)SDLRGBColor(py)blue":{"name":"blue","abstract":"<p>The blue value of the RGB color","parent_name":"SDLRGBColor"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(im)initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region:":{"name":"-initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region:","abstract":"<p>Undocumented</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programService":{"name":"programService","abstract":"<p>Program Service Name</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)radioText":{"name":"radioText","abstract":"<p>Radio Text</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)clockText":{"name":"clockText","abstract":"<p>The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programIdentification":{"name":"programIdentification","abstract":"<p>Program Identification - the call sign for the radio station</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programType":{"name":"programType","abstract":"<p>The program type - The region should be used to differentiate between EU","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)trafficProgramIdentification":{"name":"trafficProgramIdentification","abstract":"<p>Traffic Program Identification - Identifies a station that offers traffic</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)trafficAnnouncementIdentification":{"name":"trafficAnnouncementIdentification","abstract":"<p>Traffic Announcement Identification - Indicates an ongoing traffic announcement</p>","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)region":{"name":"region","abstract":"<p>Region</p>","parent_name":"SDLRDSData"},"Classes/SDLPutFileResponse.html#/c:objc(cs)SDLPutFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"<p>Provides the total local space available in SDL Core for the registered app. If the transfer has systemFile enabled, then the value will be set to 0 automatically.</p>","parent_name":"SDLPutFileResponse"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)init":{"name":"-init","abstract":"<p>Init</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:":{"name":"-initWithFileName:fileType:","abstract":"<p>Convenience init for creating a putfile with a name and file format.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:":{"name":"-initWithFileName:fileType:persistentFile:","abstract":"<p>Convenience init for creating a putfile with a name, file format, and persistance.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:systemFile:offset:length:":{"name":"-initWithFileName:fileType:persistentFile:systemFile:offset:length:","abstract":"<p>Convenience init for creating a putfile that is part of a multiple frame payload.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:systemFile:offset:length:crc:":{"name":"-initWithFileName:fileType:persistentFile:systemFile:offset:length:crc:","abstract":"<p>Convenience init for creating a putfile that is part of a multiple frame payload.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:systemFile:offset:length:bulkData:":{"name":"-initWithFileName:fileType:persistentFile:systemFile:offset:length:bulkData:","abstract":"<p>Convenience init for creating a putfile that is part of a multiple frame payload. A CRC checksum is calculated for the bulk data.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)syncFileName":{"name":"syncFileName","abstract":"<p>File reference name</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)fileType":{"name":"fileType","abstract":"<p>A FileType value representing a selected file type</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)persistentFile":{"name":"persistentFile","abstract":"<p>A value to indicates if the file is meant to persist between sessions / ignition cycles. If set to TRUE, then the system will aim to persist this file through session / cycles. While files with this designation will have priority over others, they are subject to deletion by the system at any time. In the event of automatic deletion by the system, the app will receive a rejection and have to resend the file. If omitted, the value will be set to false.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)systemFile":{"name":"systemFile","abstract":"<p>Indicates if the file is meant to be passed through core to elsewhere on the system. If set to TRUE, then the system will instead pass the data thru as it arrives to a predetermined area outside of core.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)offset":{"name":"offset","abstract":"<p>Offset in bytes for resuming partial data chunks.</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)length":{"name":"length","abstract":"<p>Length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded</p>","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)crc":{"name":"crc","abstract":"<p>Additional CRC32 checksum to protect data integrity up to 512 Mbits.</p>","parent_name":"SDLPutFile"},"Classes/SDLPublishAppServiceResponse.html#/c:objc(cs)SDLPublishAppServiceResponse(im)initWithAppServiceRecord:":{"name":"-initWithAppServiceRecord:","abstract":"<p>Convenience init.</p>","parent_name":"SDLPublishAppServiceResponse"},"Classes/SDLPublishAppServiceResponse.html#/c:objc(cs)SDLPublishAppServiceResponse(py)appServiceRecord":{"name":"appServiceRecord","abstract":"<p>If the request was successful, this object will be the current status of the service record for the published service. This will include the Core supplied service ID.</p>","parent_name":"SDLPublishAppServiceResponse"},"Classes/SDLPublishAppService.html#/c:objc(cs)SDLPublishAppService(im)initWithAppServiceManifest:":{"name":"-initWithAppServiceManifest:","abstract":"<p>Convenience init.</p>","parent_name":"SDLPublishAppService"},"Classes/SDLPublishAppService.html#/c:objc(cs)SDLPublishAppService(py)appServiceManifest":{"name":"appServiceManifest","abstract":"<p>The manifest of the service that wishes to be published.</p>","parent_name":"SDLPublishAppService"},"Classes/SDLPresetBankCapabilities.html#/c:objc(cs)SDLPresetBankCapabilities(py)onScreenPresetsAvailable":{"name":"onScreenPresetsAvailable","abstract":"<p>If Onscreen custom presets are available.</p>","parent_name":"SDLPresetBankCapabilities"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(im)initWithFirstTouch:secondTouch:":{"name":"-initWithFirstTouch:secondTouch:","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)firstTouch":{"name":"firstTouch","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)secondTouch":{"name":"secondTouch","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)distance":{"name":"distance","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)center":{"name":"center","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)isValid":{"name":"isValid","abstract":"<p>@abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(im)initWithDialNumber:":{"name":"-initWithDialNumber:","abstract":"<p>Undocumented</p>","parent_name":"SDLPhoneCapability"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(py)dialNumberEnabled":{"name":"dialNumberEnabled","abstract":"<p>Whether or not the DialNumber RPC is enabled.</p>","parent_name":"SDLPhoneCapability"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"<p>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 <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLManager.html\">SDLManager</a></code>.</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)stop":{"name":"-stop","abstract":"<p>Stop the manager. This method is used internally.</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)isRPCAllowed:":{"name":"-isRPCAllowed:","abstract":"<p>Determine if an individual RPC is allowed for the current HMI level</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)groupStatusOfRPCs:":{"name":"-groupStatusOfRPCs:","abstract":"<p>Determine if all RPCs are allowed for the current HMI level</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)statusOfRPCs:":{"name":"-statusOfRPCs:","abstract":"<p>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</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)addObserverForRPCs:groupType:withHandler:":{"name":"-addObserverForRPCs:groupType:withHandler:","abstract":"<p>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.</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeAllObservers":{"name":"-removeAllObservers","abstract":"<p>Remove every current observer</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeObserverForIdentifier:":{"name":"-removeObserverForIdentifier:","abstract":"<p>Remove block observers for the specified RPC</p>","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)rpcName":{"name":"rpcName","abstract":"<p>Name of the individual RPC in the policy table.</p>","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)hmiPermissions":{"name":"hmiPermissions","abstract":"<p>HMI Permissions for the individual RPC; i.e. which HMI levels may it be used in</p>","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)parameterPermissions":{"name":"parameterPermissions","abstract":"<p>RPC parameters for the individual RPC</p>","parent_name":"SDLPermissionItem"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)choiceID":{"name":"choiceID","abstract":"<p>ID of the choice that was selected in response to PerformInteraction. Only is valid if general result is <q>success:true</q>.</p>","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)manualTextEntry":{"name":"manualTextEntry","abstract":"<p>Manually entered text selection, e.g. through keyboard. Can be returned in lieu of choiceID, depending on the trigger source.</p>","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)triggerSource":{"name":"triggerSource","abstract":"<p>A <em>SDLTriggerSource</em> object which will be shown in the HMI. Only is valid if resultCode is SUCCESS.</p>","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetId:":{"name":"-initWithInteractionChoiceSetId:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetIdList:":{"name":"-initWithInteractionChoiceSetIdList:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:":{"name":"-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:interactionLayout:":{"name":"-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:interactionLayout:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)initialText":{"name":"initialText","abstract":"<p>The Text that Displayed when the interaction begins. This text may","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)initialPrompt":{"name":"initialPrompt","abstract":"<p>An array of one or more TTSChunks that, taken together, specify","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionMode":{"name":"interactionMode","abstract":"<p>The Indicates mode that indicate how user selects interaction","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionChoiceSetIDList":{"name":"interactionChoiceSetIDList","abstract":"<p>A Vector<Integer> value representing an Array of one or more Choice","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)helpPrompt":{"name":"helpPrompt","abstract":"<p>A Vector<TTSChunk> which taken together, specify the help phrase to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"<p>An array of TTSChunks which, taken together, specify the phrase to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)timeout":{"name":"timeout","abstract":"<p>An Integer value representing the amount of time, in milliseconds,","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)vrHelp":{"name":"vrHelp","abstract":"<p>A Voice recognition Help, which is a suggested VR Help Items to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionLayout":{"name":"interactionLayout","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:":{"name":"-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:audioDataHandler:":{"name":"-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:audioDataHandler:","abstract":"<p>Undocumented</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)initialPrompt":{"name":"initialPrompt","abstract":"<p>initial prompt which will be spoken before opening the audio pass","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioPassThruDisplayText1":{"name":"audioPassThruDisplayText1","abstract":"<p>a line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioPassThruDisplayText2":{"name":"audioPassThruDisplayText2","abstract":"<p>A line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)samplingRate":{"name":"samplingRate","abstract":"<p>A samplingRate</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)maxDuration":{"name":"maxDuration","abstract":"<p>the maximum duration of audio recording in milliseconds</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)bitsPerSample":{"name":"bitsPerSample","abstract":"<p>the quality the audio is recorded - 8 bit or 16 bit</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioType":{"name":"audioType","abstract":"<p>an audioType</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)muteAudio":{"name":"muteAudio","abstract":"<p>a Boolean value representing if the current audio source should be","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioDataHandler":{"name":"audioDataHandler","abstract":"<p>A handler that will be called whenever an <code>onAudioPassThru</code> notification is received.</p>","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAppServiceInteractionResponse.html#/c:objc(cs)SDLPerformAppServiceInteractionResponse(im)initWithServiceSpecificResult:":{"name":"-initWithServiceSpecificResult:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLPerformAppServiceInteractionResponse"},"Classes/SDLPerformAppServiceInteractionResponse.html#/c:objc(cs)SDLPerformAppServiceInteractionResponse(py)serviceSpecificResult":{"name":"serviceSpecificResult","abstract":"<p>The service can provide specific result strings to the consumer through this param.</p>","parent_name":"SDLPerformAppServiceInteractionResponse"},"Classes/SDLPerformAppServiceInteraction.html#/c:objc(cs)SDLPerformAppServiceInteraction(im)initWithServiceUri:serviceID:originApp:":{"name":"-initWithServiceUri:serviceID:originApp:","abstract":"<p>Convenience init for required parameters.</p>","parent_name":"SDLPerformAppServiceInteraction"},"Classes/SDLPerformAppServiceInteraction.html#/c:objc(cs)SDLPerformAppServiceInteraction(im)initWithServiceUri:serviceID:originApp:requestServiceActive:":{"name":"-initWithServiceUri:serviceID:originApp:requestServiceActive:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLPerformAppServiceInteraction"},"Classes/SDLPerformAppServiceInteraction.html#/c:objc(cs)SDLPerformAppServiceInteraction(py)serviceUri":{"name":"serviceUri","abstract":"<p>Fully qualified URI based on a predetermined scheme provided by the app service. SDL makes no guarantee that this URI is correct.</p>","parent_name":"SDLPerformAppServiceInteraction"},"Classes/SDLPerformAppServiceInteraction.html#/c:objc(cs)SDLPerformAppServiceInteraction(py)serviceID":{"name":"serviceID","abstract":"<p>The service ID that the app consumer wishes to send this URI.</p>","parent_name":"SDLPerformAppServiceInteraction"},"Classes/SDLPerformAppServiceInteraction.html#/c:objc(cs)SDLPerformAppServiceInteraction(py)originApp":{"name":"originApp","abstract":"<p>This string is the appID of the app requesting the app service provider take the specific action.</p>","parent_name":"SDLPerformAppServiceInteraction"},"Classes/SDLPerformAppServiceInteraction.html#/c:objc(cs)SDLPerformAppServiceInteraction(py)requestServiceActive":{"name":"requestServiceActive","abstract":"<p>This flag signals the requesting consumer would like this service to become the active primary service of the destination’s type.</p>","parent_name":"SDLPerformAppServiceInteraction"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)allowed":{"name":"allowed","abstract":"<p>A set of all parameters that are permitted for this given RPC.</p>","parent_name":"SDLParameterPermissions"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"<p>A set of all parameters that are prohibited for this given RPC.</p>","parent_name":"SDLParameterPermissions"},"Classes/SDLOnWayPointChange.html#/c:objc(cs)SDLOnWayPointChange(py)waypoints":{"name":"waypoints","abstract":"<p>Location address for display purposes only</p>","parent_name":"SDLOnWayPointChange"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)gps":{"name":"gps","abstract":"<p>The car current GPS coordinates</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)speed":{"name":"speed","abstract":"<p>The vehicle speed in kilometers per hour</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)rpm":{"name":"rpm","abstract":"<p>The number of revolutions per minute of the engine.</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The fuel level in the tank (percentage)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The fuel level state</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>The estimate range in KM the vehicle can travel based on fuel level and consumption</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The instantaneous fuel consumption in microlitres</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The external temperature in degrees celsius.</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)vin":{"name":"vin","abstract":"<p>The Vehicle Identification Number</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)prndl":{"name":"prndl","abstract":"<p>The current gear shift state of the user’s vehicle</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>The current pressure warnings for the user’s vehicle</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)odometer":{"name":"odometer","abstract":"<p>Odometer reading in km</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>The status of the seat belts</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The body information including power modes</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The IVI system status including signal and battery strength</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>The status of the brake pedal</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The status of the wipers</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>Status of the head lamps</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The estimated percentage (0% - 100%) of remaining oil life of the engine</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>Torque value for engine (in Nm) on non-diesel variants</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>Accelerator pedal position (percentage depressed)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>Current angle of the steering wheel (in deg)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>Emergency Call notification and confirmation data</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The status of the air bags</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>Information related to an emergency event (and if it occurred)</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>The status modes of the cluster</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)myKey":{"name":"myKey","abstract":"<p>Information related to the MyKey feature</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The status of the electronic parking brake</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>The status of the turn signal</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>The cloud app vehicle ID</p>","parent_name":"SDLOnVehicleData"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)type":{"name":"type","abstract":"<p>The type of touch event.</p>","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)event":{"name":"event","abstract":"<p>List of all individual touches involved in this event.</p>","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTBTClientState.html#/c:objc(cs)SDLOnTBTClientState(py)state":{"name":"state","abstract":"<p>Current State of TBT client</p>","parent_name":"SDLOnTBTClientState"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestType":{"name":"requestType","abstract":"<p>The type of system request.</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestSubType":{"name":"requestSubType","abstract":"<p>A request subType used when the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestType\">requestType</a></code> is <code>OEM_SPECIFIC</code>.</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)url":{"name":"url","abstract":"<p>Optional URL for HTTP requests. If blank, the binary data shall be forwarded to the app. If not blank, the binary data shall be forwarded to the url with a provided timeout in seconds.</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)timeout":{"name":"timeout","abstract":"<p>Optional timeout for HTTP requests Required if a URL is provided</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)fileType":{"name":"fileType","abstract":"<p>Optional file type (meant for HTTP file requests).</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)offset":{"name":"offset","abstract":"<p>Optional offset in bytes for resuming partial data chunks</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)length":{"name":"length","abstract":"<p>Optional length in bytes for resuming partial data chunks</p>","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemCapabilityUpdated.html#/c:objc(cs)SDLOnSystemCapabilityUpdated(im)initWithSystemCapability:":{"name":"-initWithSystemCapability:","abstract":"<p>Convenience init for required parameters</p>","parent_name":"SDLOnSystemCapabilityUpdated"},"Classes/SDLOnSystemCapabilityUpdated.html#/c:objc(cs)SDLOnSystemCapabilityUpdated(py)systemCapability":{"name":"systemCapability","abstract":"<p>The system capability that has been updated.</p>","parent_name":"SDLOnSystemCapabilityUpdated"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)URL":{"name":"URL","abstract":"<p>Undocumented</p>","parent_name":"SDLOnSyncPData"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)Timeout":{"name":"Timeout","abstract":"<p>Undocumented</p>","parent_name":"SDLOnSyncPData"},"Classes/SDLOnRCStatus.html#/c:objc(cs)SDLOnRCStatus(py)allocatedModules":{"name":"allocatedModules","abstract":"<p>@abstract Contains a list (zero or more) of module types that","parent_name":"SDLOnRCStatus"},"Classes/SDLOnRCStatus.html#/c:objc(cs)SDLOnRCStatus(py)freeModules":{"name":"freeModules","abstract":"<p>@abstract Contains a list (zero or more) of module types that are free to access for the application.</p>","parent_name":"SDLOnRCStatus"},"Classes/SDLOnRCStatus.html#/c:objc(cs)SDLOnRCStatus(py)allowed":{"name":"allowed","abstract":"<p>Issued by SDL to notify the application about remote control status change on SDL","parent_name":"SDLOnRCStatus"},"Classes/SDLOnPermissionsChange.html#/c:objc(cs)SDLOnPermissionsChange(py)permissionItem":{"name":"permissionItem","abstract":"<p>Describes change in permissions for a given set of RPCs</p>","parent_name":"SDLOnPermissionsChange"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)driverDistractionStatus":{"name":"driverDistractionStatus","abstract":"<p>Get the current driver distraction status(i.e. whether driver distraction rules are in effect, or not)</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)userSelected":{"name":"userSelected","abstract":"<p>Get user selection status for the application (has the app been selected via hmi or voice command)</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)lockScreenStatus":{"name":"lockScreenStatus","abstract":"<p>Indicates if the lockscreen should be required, optional or off</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"<p>Get HMILevel in effect for the application</p>","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)language":{"name":"language","abstract":"<p>Current SDL voice engine (VR+TTS) language</p>","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"<p>Current display language</p>","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)event":{"name":"event","abstract":"<p>The type of keyboard input</p>","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)data":{"name":"data","abstract":"<p>The current keyboard string input from the user</p>","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnInteriorVehicleData.html#/c:objc(cs)SDLOnInteriorVehicleData(py)moduleData":{"name":"moduleData","abstract":"<p>The subscribed module data that changed</p>","parent_name":"SDLOnInteriorVehicleData"},"Classes/SDLOnHashChange.html#/c:objc(cs)SDLOnHashChange(py)hashID":{"name":"hashID","abstract":"<p>Calculated hash ID to be referenced during RegisterAppInterface request.</p>","parent_name":"SDLOnHashChange"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"<p>SDLHMILevel in effect for the application</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)audioStreamingState":{"name":"audioStreamingState","abstract":"<p>Current state of audio streaming for the application. When this parameter has a value of NOT_AUDIBLE, the application must stop streaming audio to SDL.</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)videoStreamingState":{"name":"videoStreamingState","abstract":"<p>Current availablility of video streaming for the application. When this parameter is NOT_STREAMABLE, the application must stop video streaming to SDL.</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)systemContext":{"name":"systemContext","abstract":"<p>Whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not (MAIN)</p>","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)data":{"name":"data","abstract":"<p>Contains base64 encoded string of SyncP packets.</p>","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)URL":{"name":"URL","abstract":"<p>If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP data shall be forwarded to the provided URL.</p>","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)Timeout":{"name":"Timeout","abstract":"<p>If blank, the SyncP data shall be forwarded to the app. If not blank, the SyncP data shall be forwarded with the provided timeout in seconds.</p>","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnDriverDistraction.html#/c:objc(cs)SDLOnDriverDistraction(py)state":{"name":"state","abstract":"<p>The driver distraction state (i.e. whether driver distraction rules are in effect, or not)</p>","parent_name":"SDLOnDriverDistraction"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)cmdID":{"name":"cmdID","abstract":"<p>The command ID of the command the user selected. This is the command ID value provided by the application in the SDLAddCommand operation that created the command.</p>","parent_name":"SDLOnCommand"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)triggerSource":{"name":"triggerSource","abstract":"<p>Indicates whether command was selected via voice or via a menu selection (using the OK button).</p>","parent_name":"SDLOnCommand"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonName":{"name":"buttonName","abstract":"<p>The button’s name</p>","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"<p>Indicates whether this is a LONG or SHORT button press event</p>","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)customButtonID":{"name":"customButtonID","abstract":"<p>If ButtonName is <q>CUSTOM_BUTTON</q>, this references the integer ID passed by a custom button. (e.g. softButton ID)</p>","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonName":{"name":"buttonName","abstract":"<p>The name of the button</p>","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonEventMode":{"name":"buttonEventMode","abstract":"<p>Indicates whether this is an UP or DOWN event</p>","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)customButtonID":{"name":"customButtonID","abstract":"<p>If ButtonName is <q>CUSTOM_BUTTON</q>, this references the integer ID passed by a custom button. (e.g. softButton ID)</p>","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnAppServiceData.html#/c:objc(cs)SDLOnAppServiceData(im)initWithServiceData:":{"name":"-initWithServiceData:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLOnAppServiceData"},"Classes/SDLOnAppServiceData.html#/c:objc(cs)SDLOnAppServiceData(py)serviceData":{"name":"serviceData","abstract":"<p>The updated app service data.</p>","parent_name":"SDLOnAppServiceData"},"Classes/SDLOnAppInterfaceUnregistered.html#/c:objc(cs)SDLOnAppInterfaceUnregistered(py)reason":{"name":"reason","abstract":"<p>The reason application’s interface was terminated</p>","parent_name":"SDLOnAppInterfaceUnregistered"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(im)initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:":{"name":"-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:","abstract":"<p>Undocumented</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(im)initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:subAdministrativeArea:subLocality:":{"name":"-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:subAdministrativeArea:subLocality:","abstract":"<p>Undocumented</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryName":{"name":"countryName","abstract":"<p>Name of the country (localized)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryCode":{"name":"countryCode","abstract":"<p>countryCode of the country(ISO 3166-2)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)postalCode":{"name":"postalCode","abstract":"<p>postalCode of location (PLZ, ZIP, PIN, CAP etc.)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)administrativeArea":{"name":"administrativeArea","abstract":"<p>Portion of country (e.g. state)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subAdministrativeArea":{"name":"subAdministrativeArea","abstract":"<p>Portion of administrativeArea (e.g. county)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)locality":{"name":"locality","abstract":"<p>Hypernym for city/village</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subLocality":{"name":"subLocality","abstract":"<p>Hypernym for district</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)thoroughfare":{"name":"thoroughfare","abstract":"<p>Hypernym for street, road etc.</p>","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subThoroughfare":{"name":"subThoroughfare","abstract":"<p>Portion of thoroughfare (e.g. house number)</p>","parent_name":"SDLOasisAddress"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allResponseNames":{"name":"+allResponseNames","abstract":"<p>All of the possible SDL RPC Response notification names</p>","parent_name":"SDLNotificationConstants"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allButtonEventNotifications":{"name":"+allButtonEventNotifications","abstract":"<p>All of the possible SDL Button event notification names</p>","parent_name":"SDLNotificationConstants"},"Classes/SDLNavigationServiceManifest.html#/c:objc(cs)SDLNavigationServiceManifest(im)initWithAcceptsWayPoints:":{"name":"-initWithAcceptsWayPoints:","abstract":"<p>Convenience init.</p>","parent_name":"SDLNavigationServiceManifest"},"Classes/SDLNavigationServiceManifest.html#/c:objc(cs)SDLNavigationServiceManifest(py)acceptsWayPoints":{"name":"acceptsWayPoints","abstract":"<p>Informs the subscriber if this service can actually accept way points.</p>","parent_name":"SDLNavigationServiceManifest"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(im)initWithTimestamp:":{"name":"-initWithTimestamp:","abstract":"<p>Convenience init for required parameters.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(im)initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt:":{"name":"-initWithTimestamp:origin:destination:destinationETA:instructions:nextInstructionETA:nextInstructionDistance:nextInstructionDistanceScale:prompt:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)timestamp":{"name":"timestamp","abstract":"<p>This is the timestamp of when the data was generated. This is to ensure any time or distance given in the data can accurately be adjusted if necessary.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)origin":{"name":"origin","abstract":"<p>The start location.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)destination":{"name":"destination","abstract":"<p>The final destination location.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)destinationETA":{"name":"destinationETA","abstract":"<p>The estimated time of arrival at the final destination location.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)instructions":{"name":"instructions","abstract":"<p>This array should be ordered with all remaining instructions. The start of this array should always contain the next instruction.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionETA":{"name":"nextInstructionETA","abstract":"<p>The estimated time of arrival at the next destination.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionDistance":{"name":"nextInstructionDistance","abstract":"<p>The distance to this instruction from current location. This should only be updated ever .1 unit of distance. For more accuracy the consumer can use the GPS location of itself and the next instruction.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)nextInstructionDistanceScale":{"name":"nextInstructionDistanceScale","abstract":"<p>Distance till next maneuver (starting from) from previous maneuver.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationServiceData.html#/c:objc(cs)SDLNavigationServiceData(py)prompt":{"name":"prompt","abstract":"<p>This is a prompt message that should be conveyed to the user through either display or voice (TTS). This param will change often as it should represent the following: approaching instruction, post instruction, alerts that affect the current navigation session, etc.</p>","parent_name":"SDLNavigationServiceData"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(im)initWithLocationDetails:action:":{"name":"-initWithLocationDetails:action:","abstract":"<p>Convenience init for required parameters</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(im)initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:image:":{"name":"-initWithLocationDetails:action:eta:bearing:junctionType:drivingSide:details:image:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)locationDetails":{"name":"locationDetails","abstract":"<p>The location details.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)action":{"name":"action","abstract":"<p>The navigation action.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)eta":{"name":"eta","abstract":"<p>The estimated time of arrival.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)bearing":{"name":"bearing","abstract":"<p>The angle at which this instruction takes place. For example, 0 would mean straight, <=45 is bearing right, >= 135 is sharp right, between 45 and 135 is a regular right, and 180 is a U-Turn, etc. </p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)junctionType":{"name":"junctionType","abstract":"<p>The navigation junction type.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)drivingSide":{"name":"drivingSide","abstract":"<p>Used to infer which side of the road this instruction takes place. For a U-Turn (action=TURN, bearing=180) this will determine which direction the turn should take place.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)details":{"name":"details","abstract":"<p>This is a string representation of this instruction, used to display instructions to the users. This is not intended to be read aloud to the users, see the param prompt in <code>NavigationServiceData</code> for that.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationInstruction.html#/c:objc(cs)SDLNavigationInstruction(py)image":{"name":"image","abstract":"<p>An image representation of this instruction.</p>","parent_name":"SDLNavigationInstruction"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(im)initWithSendLocation:waypoints:":{"name":"-initWithSendLocation:waypoints:","abstract":"<p>Undocumented</p>","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)sendLocationEnabled":{"name":"sendLocationEnabled","abstract":"<p>Whether or not the SendLocation RPC is enabled.</p>","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)getWayPointsEnabled":{"name":"getWayPointsEnabled","abstract":"<p>Whether or not Waypoint related RPCs are enabled.</p>","parent_name":"SDLNavigationCapability"},"Classes/SDLMyKey.html#/c:objc(cs)SDLMyKey(py)e911Override":{"name":"e911Override","abstract":"<p>Indicates whether e911 override is on. References signal <q>MyKey_e911Override_St</q>. See VehicleDataStatus.</p>","parent_name":"SDLMyKey"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithRadioControlData:":{"name":"-initWithRadioControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with radio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithClimateControlData:":{"name":"-initWithClimateControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with climate control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithAudioControlData:":{"name":"-initWithAudioControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with audio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithLightControlData:":{"name":"-initWithLightControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with light control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithHMISettingsControlData:":{"name":"-initWithHMISettingsControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with hmi settings data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithSeatControlData:":{"name":"-initWithSeatControlData:","abstract":"<p>Constructs a newly allocated SDLModuleData object with seat control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)moduleType":{"name":"moduleType","abstract":"<p>The moduleType indicates which type of data should be changed and identifies which data object exists in this struct.</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)radioControlData":{"name":"radioControlData","abstract":"<p>The radio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)climateControlData":{"name":"climateControlData","abstract":"<p>The climate control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)seatControlData":{"name":"seatControlData","abstract":"<p>The seat control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)audioControlData":{"name":"audioControlData","abstract":"<p>The audio control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)lightControlData":{"name":"lightControlData","abstract":"<p>The light control data</p>","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)hmiSettingsControlData":{"name":"hmiSettingsControlData","abstract":"<p>The hmi control data</p>","parent_name":"SDLModuleData"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:":{"name":"-initWithTextFieldTypes:mainField2:","abstract":"<p>Constructs a newly allocated SDLMetadataType object with NSArrays</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:mainField3:mainField4:":{"name":"-initWithTextFieldTypes:mainField2:mainField3:mainField4:","abstract":"<p>Undocumented</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField1":{"name":"mainField1","abstract":"<p>The type of data contained in the <q>mainField1</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField2":{"name":"mainField2","abstract":"<p>The type of data contained in the <q>mainField2</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField3":{"name":"mainField3","abstract":"<p>The type of data contained in the <q>mainField3</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField4":{"name":"mainField4","abstract":"<p>The type of data contained in the <q>mainField4</q> text field.</p>","parent_name":"SDLMetadataTags"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:":{"name":"-initWithMenuName:","abstract":"<p>Undocumented</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:parentId:position:":{"name":"-initWithMenuName:parentId:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)parentID":{"name":"parentID","abstract":"<p>The unique ID of an existing submenu to which a command will be added</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)position":{"name":"position","abstract":"<p>The position within the items of the parent Command Menu</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)menuName":{"name":"menuName","abstract":"<p>The menu name which appears in menu, representing this command</p>","parent_name":"SDLMenuParams"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)title":{"name":"title","abstract":"<p>The cell’s text to be displayed</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)icon":{"name":"icon","abstract":"<p>The cell’s icon to be displayed</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>The strings the user can say to activate this voice command</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)handler":{"name":"handler","abstract":"<p>The handler that will be called when the command is activated</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(py)subCells":{"name":"subCells","abstract":"<p>If this is non-nil, this cell will be a sub-menu button, displaying the subcells in a menu when pressed.</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(im)initWithTitle:icon:voiceCommands:handler:":{"name":"-initWithTitle:icon:voiceCommands:handler:","abstract":"<p>Create a menu cell that has no subcells.</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(im)initWithTitle:subCells:":{"name":"-initWithTitle:subCells:","abstract":"<p>Create a menu cell that has subcells and when selected will go into a deeper part of the menu</p>","parent_name":"SDLMenuCell"},"Classes/SDLMenuCell.html#/c:objc(cs)SDLMenuCell(im)initWithTitle:icon:subCells:":{"name":"-initWithTitle:icon:subCells:","abstract":"<p>Create a menu cell that has subcells and when selected will go into a deeper part of the menu</p>","parent_name":"SDLMenuCell"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(im)initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount:":{"name":"-initWithMediaType:mediaTitle:mediaArtist:mediaAlbum:playlistName:isExplicit:trackPlaybackProgress:trackPlaybackDuration:queuePlaybackProgress:queuePlaybackDuration:queueCurrentTrackNumber:queueTotalTrackCount:","abstract":"<p>Convenience init</p>","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)mediaType":{"name":"mediaType","abstract":"<p>The type of the currently playing or paused track.</p>","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)mediaTitle":{"name":"mediaTitle","abstract":"<p>Music: The name of the current track","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)mediaArtist":{"name":"mediaArtist","abstract":"<p>Music: The name of the current album artist","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)mediaAlbum":{"name":"mediaAlbum","abstract":"<p>Music: The name of the current album","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)playlistName":{"name":"playlistName","abstract":"<p>Music: The name of the playlist or radio station, if the user is playing from a playlist, otherwise, Null","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)isExplicit":{"name":"isExplicit","abstract":"<p>Whether or not the content currently playing (e.g. the track, episode, or book) contains explicit content.</p>","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)trackPlaybackProgress":{"name":"trackPlaybackProgress","abstract":"<p>Music: The current progress of the track in seconds","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)trackPlaybackDuration":{"name":"trackPlaybackDuration","abstract":"<p>Music: The total duration of the track in seconds","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)queuePlaybackProgress":{"name":"queuePlaybackProgress","abstract":"<p>Music: The current progress of the playback queue in seconds","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)queuePlaybackDuration":{"name":"queuePlaybackDuration","abstract":"<p>Music: The total duration of the playback queue in seconds","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)queueCurrentTrackNumber":{"name":"queueCurrentTrackNumber","abstract":"<p>Music: The current number (1 based) of the track in the playback queue","parent_name":"SDLMediaServiceData"},"Classes/SDLMediaServiceData.html#/c:objc(cs)SDLMediaServiceData(py)queueTotalTrackCount":{"name":"queueTotalTrackCount","abstract":"<p>Music: The total number of tracks in the playback queue","parent_name":"SDLMediaServiceData"},"Classes/SDLMassageModeData.html#/c:objc(cs)SDLMassageModeData(im)initWithMassageMode:massageZone:":{"name":"-initWithMassageMode:massageZone:","abstract":"<p>@abstract Constructs a newly allocated SDLMassageModeData object with massageMode and massageZone</p>","parent_name":"SDLMassageModeData"},"Classes/SDLMassageModeData.html#/c:objc(cs)SDLMassageModeData(py)massageMode":{"name":"massageMode","abstract":"<p>@abstract mode of a massage zone</p>","parent_name":"SDLMassageModeData"},"Classes/SDLMassageModeData.html#/c:objc(cs)SDLMassageModeData(py)massageZone":{"name":"massageZone","abstract":"<p>@abstract zone of a multi-contour massage seat.</p>","parent_name":"SDLMassageModeData"},"Classes/SDLMassageCushionFirmness.html#/c:objc(cs)SDLMassageCushionFirmness(im)initWithMassageCushion:firmness:":{"name":"-initWithMassageCushion:firmness:","abstract":"<p>Constructs a newly allocated SDLMassageCushionFirmness object with cushion and firmness</p>","parent_name":"SDLMassageCushionFirmness"},"Classes/SDLMassageCushionFirmness.html#/c:objc(cs)SDLMassageCushionFirmness(py)cushion":{"name":"cushion","abstract":"<p>@abstract cushion of a multi-contour massage seat.</p>","parent_name":"SDLMassageCushionFirmness"},"Classes/SDLMassageCushionFirmness.html#/c:objc(cs)SDLMassageCushionFirmness(py)firmness":{"name":"firmness","abstract":"<p>@abstract zone of a multi-contour massage seat.</p>","parent_name":"SDLMassageCushionFirmness"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)configuration":{"name":"configuration","abstract":"<p>The configuration the manager was set up with.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)hmiLevel":{"name":"hmiLevel","abstract":"<p>The current HMI level of the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)audioStreamingState":{"name":"audioStreamingState","abstract":"<p>The current audio streaming state of the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)systemContext":{"name":"systemContext","abstract":"<p>The current system context of the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)fileManager":{"name":"fileManager","abstract":"<p>The file manager to be used by the running app.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)permissionManager":{"name":"permissionManager","abstract":"<p>The permission manager monitoring RPC permissions.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)streamManager":{"name":"streamManager","abstract":"<p>The streaming media manager to be used for starting video sessions.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)screenManager":{"name":"screenManager","abstract":"<p>The screen manager for sending UI related RPCs.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)systemCapabilityManager":{"name":"systemCapabilityManager","abstract":"<p>Centralized manager for retrieving all system capabilities.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)registerResponse":{"name":"registerResponse","abstract":"<p>The response of a register call after it has been received.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)authToken":{"name":"authToken","abstract":"<p>The auth token, if received. This should be used to log into a user account. Primarily used for cloud apps with companion app stores.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)delegate":{"name":"delegate","abstract":"<p>The manager’s delegate.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)pendingRPCTransactions":{"name":"pendingRPCTransactions","abstract":"<p>The currently pending RPC request send transactions</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)proxy":{"name":"proxy","abstract":"<p>Undocumented</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)initWithConfiguration:delegate:":{"name":"-initWithConfiguration:delegate:","abstract":"<p>Initialize the manager with a configuration. Call <code>startWithHandler</code> to begin waiting for a connection.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)startWithReadyHandler:":{"name":"-startWithReadyHandler:","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)stop":{"name":"-stop","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRPC:":{"name":"-sendRPC:","abstract":"<p>Send an RPC of type <code>Response</code>, <code>Notification</code> or <code>Request</code>. Responses and notifications sent to Core do not a response back from Core. Each request sent to Core does get a response, so if you need the response and/or error, call <code>sendRequest:withResponseHandler:</code> instead.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:":{"name":"-sendRequest:","abstract":"<p>Send an RPC request and don’t bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:withResponseHandler:":{"name":"-sendRequest:withResponseHandler:","abstract":"<p>Send an RPC request and set a completion handler that will be called with the response when the response returns.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequests:progressHandler:completionHandler:":{"name":"-sendRequests:progressHandler:completionHandler:","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendSequentialRequests:progressHandler:completionHandler:":{"name":"-sendSequentialRequests:progressHandler:completionHandler:","abstract":"<p>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.</p>","parent_name":"SDLManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)modules":{"name":"modules","abstract":"<p>Active log modules</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)targets":{"name":"targets","abstract":"<p>Active log targets</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)filters":{"name":"filters","abstract":"<p>Active log filters</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)globalLogLevel":{"name":"globalLogLevel","abstract":"<p>Any modules that do not have an explicitly specified level will by default use this log level</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)formatType":{"name":"formatType","abstract":"<p>Active log format</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)asynchronous":{"name":"asynchronous","abstract":"<p>Whether or not verbose, debug, and warning logs are logged asynchronously. If logs are performed async, then some may be missed in the event of a terminating signal such as an exception, but performance is improved and your code will not be slowed by logging.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)errorsAsynchronous":{"name":"errorsAsynchronous","abstract":"<p>Whether or not error logs are logged asynchronously. If logs are performed async, then some may be missed in the event of a terminating signal such as an exception, but performance is improved and your code will not be slowed by logging.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)disableAssertions":{"name":"disableAssertions","abstract":"<p>Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cpy)dateFormatter":{"name":"dateFormatter","abstract":"<p>Active date formatter</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cpy)logQueue":{"name":"logQueue","abstract":"<p>The queue asynchronously logged logs are logged on. Say that 10 times fast.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)sharedManager":{"name":"+sharedManager","abstract":"<p>The singleton object</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)setConfiguration:":{"name":"+setConfiguration:","abstract":"<p>Sets a configuration to be used by the log manager’s sharedManager. This is generally for internal use and you should set your configuration using SDLManager’s startWithConfiguration: method.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)setConfiguration:":{"name":"-setConfiguration:","abstract":"<p>Sets a configuration to be used by the log manager. This is generally for internal use and you should set your configuration using SDLManager’s startWithConfiguration: method.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logWithLevel:timestamp:file:functionName:line:queue:formatMessage:":{"name":"+logWithLevel:timestamp:file:functionName:line:queue:formatMessage:","abstract":"<p>Log to the sharedManager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logWithLevel:timestamp:file:functionName:line:queue:formatMessage:":{"name":"-logWithLevel:timestamp:file:functionName:line:queue:formatMessage:","abstract":"<p>Log to this log manager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logWithLevel:timestamp:file:functionName:line:queue:message:":{"name":"+logWithLevel:timestamp:file:functionName:line:queue:message:","abstract":"<p>Log to this sharedManager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logWithLevel:timestamp:file:functionName:line:queue:message:":{"name":"-logWithLevel:timestamp:file:functionName:line:queue:message:","abstract":"<p>Log to this log manager’s active log targets. This is used internally to log. If you want to create a log, you should use macros such as <code>SDLLogD</code>.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logBytes:direction:timestamp:file:functionName:line:queue:":{"name":"+logBytes:direction:timestamp:file:functionName:line:queue:","abstract":"<p>Log to this sharedManager’s active log targets. This is used internally to log.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logBytes:direction:timestamp:file:functionName:line:queue:":{"name":"-logBytes:direction:timestamp:file:functionName:line:queue:","abstract":"<p>Log to this manager’s active log targets. This is used internally to log.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)logAssertWithTimestamp:file:functionName:line:queue:formatMessage:":{"name":"+logAssertWithTimestamp:file:functionName:line:queue:formatMessage:","abstract":"<p>Log an error to the sharedManager’s active log targets and assert. This is used internally to log.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)logAssertWithTimestamp:file:functionName:line:queue:formatMessage:":{"name":"-logAssertWithTimestamp:file:functionName:line:queue:formatMessage:","abstract":"<p>Log an error to this manager’s active log targets and assert. This is used internally to log.</p>","parent_name":"SDLLogManager"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(py)filter":{"name":"filter","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(im)initWithCustomFilter:":{"name":"-initWithCustomFilter:","abstract":"<p>Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingString:caseSensitive:":{"name":"+filterByDisallowingString:caseSensitive:","abstract":"<p>Returns a filter that only allows logs not containing the passed string within their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingString:caseSensitive:":{"name":"+filterByAllowingString:caseSensitive:","abstract":"<p>Returns a filter that only allows logs containing the passed string within their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingRegex:":{"name":"+filterByDisallowingRegex:","abstract":"<p>Returns a filter that only allows logs not passing the passed regex against their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingRegex:":{"name":"+filterByAllowingRegex:","abstract":"<p>Returns a filter that only allows logs passing the passed regex against their message.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingModules:":{"name":"+filterByDisallowingModules:","abstract":"<p>Returns a filter that only allows logs not within the specified file modules to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingModules:":{"name":"+filterByAllowingModules:","abstract":"<p>Returns a filter that only allows logs of the specified file modules to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingFileNames:":{"name":"+filterByDisallowingFileNames:","abstract":"<p>Returns a filter that only allows logs not within the specified files to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingFileNames:":{"name":"+filterByAllowingFileNames:","abstract":"<p>Returns a filter that only allows logs within the specified files to be logged.</p>","parent_name":"SDLLogFilter"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)name":{"name":"name","abstract":"<p>The name of the this module, e.g. <q>Transport</q></p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)files":{"name":"files","abstract":"<p>All of the files contained within this module. When a log is logged, the <code>__FILE__</code> (in Obj-C) or <code>#file</code> (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.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)logLevel":{"name":"logLevel","abstract":"<p>The custom level of the log. This is <code>SDLLogLevelDefault</code> (whatever the current global log level is) by default.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)init":{"name":"-init","abstract":"<p>This method is unavailable and may not be used.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)initWithName:files:level:":{"name":"-initWithName:files:level:","abstract":"<p>Returns an initialized <code>SDLLogFileModule</code> that contains a custom name, set of files, and associated log level.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)initWithName:files:":{"name":"-initWithName:files:","abstract":"<p>Returns an initialized <code>SDLLogFileModule</code> that contains a custom name and set of files. The logging level is the same as the current global logging file by using <code>SDLLogLevelDefault</code>.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(cm)moduleWithName:files:":{"name":"+moduleWithName:files:","abstract":"<p>Returns an initialized <code>SDLLogFileModule</code> that contains a custom name and set of files. The logging level is the same as the current global logging file by using <code>SDLLogLevelDefault</code>.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)containsFile:":{"name":"-containsFile:","abstract":"<p>Returns whether or not this module contains a given file.</p>","parent_name":"SDLLogFileModule"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)modules":{"name":"modules","abstract":"<p>Any custom logging modules used by the developer’s code. Defaults to none.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)targets":{"name":"targets","abstract":"<p>Where the logs will attempt to output. Defaults to Console.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)filters":{"name":"filters","abstract":"<p>What log filters will run over this session. Defaults to none.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)formatType":{"name":"formatType","abstract":"<p>How detailed of logs will be output. Defaults to Default.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)asynchronous":{"name":"asynchronous","abstract":"<p>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.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)errorsAsynchronous":{"name":"errorsAsynchronous","abstract":"<p>Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)disableAssertions":{"name":"disableAssertions","abstract":"<p>Whether or not assert logs will fire assertions in DEBUG mode. Assertions are always disabled in RELEASE builds. If assertions are disabled, only an error log will fire instead. Defaults to NO.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)globalLogLevel":{"name":"globalLogLevel","abstract":"<p>Any modules that do not have an explicitly specified level will by default use the global log level. Defaults to Error.","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(cm)defaultConfiguration":{"name":"+defaultConfiguration","abstract":"<p>A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(cm)debugConfiguration":{"name":"+debugConfiguration","abstract":"<p>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.</p>","parent_name":"SDLLogConfiguration"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)appIcon":{"name":"appIcon","abstract":"<p>The app’s icon. This will be set by the lock screen configuration.</p>","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)vehicleIcon":{"name":"vehicleIcon","abstract":"<p>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.</p>","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)backgroundColor":{"name":"backgroundColor","abstract":"<p>The designated background color set in the lock screen configuration, or the default SDL gray-blue.</p>","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)showInOptionalState":{"name":"showInOptionalState","abstract":"<p>Whether or not the lock screen should be shown in the <q>lock screen optional</q> state. Defaults to false.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)enableAutomaticLockScreen":{"name":"enableAutomaticLockScreen","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)backgroundColor":{"name":"backgroundColor","abstract":"<p>The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)appIcon":{"name":"appIcon","abstract":"<p>Your app icon as it will appear on the lock screen.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)customViewController":{"name":"customViewController","abstract":"<p>A custom view controller that the lock screen will manage the presentation of.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)disabledConfiguration":{"name":"+disabledConfiguration","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfiguration":{"name":"+enabledConfiguration","abstract":"<p>Use this configuration for the basic default lock screen. A custom app icon will not be used.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithAppIcon:backgroundColor:":{"name":"+enabledConfigurationWithAppIcon:backgroundColor:","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithViewController:":{"name":"+enabledConfigurationWithViewController:","abstract":"<p>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.</p>","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(im)initWithCoordinate:":{"name":"-initWithCoordinate:","abstract":"<p>Convenience init for location coordinate.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(im)initWithCoordinate:locationName:addressLines:locationDescription:phoneNumber:locationImage:searchAddress:":{"name":"-initWithCoordinate:locationName:addressLines:locationDescription:phoneNumber:locationImage:searchAddress:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)coordinate":{"name":"coordinate","abstract":"<p>Latitude/Longitude of the location</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationName":{"name":"locationName","abstract":"<p>Name of location.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)addressLines":{"name":"addressLines","abstract":"<p>Location address for display purposes only.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationDescription":{"name":"locationDescription","abstract":"<p>Description intended location / establishment.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)phoneNumber":{"name":"phoneNumber","abstract":"<p>Phone number of location / establishment.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationImage":{"name":"locationImage","abstract":"<p>Image / icon of intended location.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)searchAddress":{"name":"searchAddress","abstract":"<p>Address to be used by navigation engines for search.</p>","parent_name":"SDLLocationDetails"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(im)initWithLatitudeDegrees:longitudeDegrees:":{"name":"-initWithLatitudeDegrees:longitudeDegrees:","abstract":"<p>Convenience init for location coordinates</p>","parent_name":"SDLLocationCoordinate"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"<p>Latitude of the location</p>","parent_name":"SDLLocationCoordinate"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"<p>Latitude of the location</p>","parent_name":"SDLLocationCoordinate"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)filenames":{"name":"filenames","abstract":"<p>An array of all filenames resident on the module for the given registered app. If omitted, then no files currently reside on the system.</p>","parent_name":"SDLListFilesResponse"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"<p>Provides the total local space available on the module for the registered app.</p>","parent_name":"SDLListFilesResponse"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(im)initWithId:status:":{"name":"-initWithId:status:","abstract":"<p>Constructs a newly allocated SDLLightState object with given parameters</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(im)initWithId:status:density:color:":{"name":"-initWithId:status:density:color:","abstract":"<p>Constructs a newly allocated SDLLightState object with given parameters</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(im)initWithId:lightStatus:lightDensity:lightColor:":{"name":"-initWithId:lightStatus:lightDensity:lightColor:","abstract":"<p>Constructs a newly allocated SDLLightState object with given parameters</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)id":{"name":"id","abstract":"<p>@abstract The name of a light or a group of lights</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)status":{"name":"status","abstract":"<p>@abstract Reflects the status of Light.</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)density":{"name":"density","abstract":"<p>@abstract Reflects the density of Light.</p>","parent_name":"SDLLightState"},"Classes/SDLLightState.html#/c:objc(cs)SDLLightState(py)color":{"name":"color","abstract":"<p>@abstract Reflects the color of Light.</p>","parent_name":"SDLLightState"},"Classes/SDLLightControlData.html#/c:objc(cs)SDLLightControlData(im)initWithLightStates:":{"name":"-initWithLightStates:","abstract":"<p>Constructs a newly allocated SDLLightControlData object with lightState</p>","parent_name":"SDLLightControlData"},"Classes/SDLLightControlData.html#/c:objc(cs)SDLLightControlData(py)lightState":{"name":"lightState","abstract":"<p>@abstract An array of LightNames and their current or desired status.","parent_name":"SDLLightControlData"},"Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(im)initWithModuleName:supportedLights:":{"name":"-initWithModuleName:supportedLights:","abstract":"<p>Constructs a newly allocated SDLLightControlCapabilities object with given parameters</p>","parent_name":"SDLLightControlCapabilities"},"Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the light control module.","parent_name":"SDLLightControlCapabilities"},"Classes/SDLLightControlCapabilities.html#/c:objc(cs)SDLLightControlCapabilities(py)supportedLights":{"name":"supportedLights","abstract":"<p>@abstract An array of available LightCapabilities that are controllable.</p>","parent_name":"SDLLightControlCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Constructs a newly allocated SDLLightCapabilities object with the name of the light or group of lights</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(im)initWithName:densityAvailable:colorAvailable:statusAvailable:":{"name":"-initWithName:densityAvailable:colorAvailable:statusAvailable:","abstract":"<p>Constructs a newly allocated SDLLightCapabilities object with given parameters</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)name":{"name":"name","abstract":"<p>@abstract The name of a light or a group of lights</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)densityAvailable":{"name":"densityAvailable","abstract":"<p>@abstract Indicates if the light’s density can be set remotely (similar to a dimmer).</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)colorAvailable":{"name":"colorAvailable","abstract":"<p>@abstract Indicates if the light’s color can be set remotely by using the RGB color space.</p>","parent_name":"SDLLightCapabilities"},"Classes/SDLLightCapabilities.html#/c:objc(cs)SDLLightCapabilities(py)statusAvailable":{"name":"statusAvailable","abstract":"<p>@abstract Indicates if the status (ON/OFF) can be set remotely.","parent_name":"SDLLightCapabilities"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)appName":{"name":"appName","abstract":"<p>The full name of the app to that the configuration should be updated to.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)shortAppName":{"name":"shortAppName","abstract":"<p>An abbrevited application name that will be used on the app launching screen if the full one would be truncated.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)ttsName":{"name":"ttsName","abstract":"<p>A Text to Speech String for voice recognition of the mobile application name.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(py)voiceRecognitionCommandNames":{"name":"voiceRecognitionCommandNames","abstract":"<p>Additional voice recognition commands. May not interfere with any other app name or global commands.</p>","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfigurationUpdate.html#/c:objc(cs)SDLLifecycleConfigurationUpdate(im)initWithAppName:shortAppName:ttsName:voiceRecognitionCommandNames:":{"name":"-initWithAppName:shortAppName:ttsName:voiceRecognitionCommandNames:","abstract":"<p>Initializes and returns a newly allocated lifecycle configuration update object with the specified app data.","parent_name":"SDLLifecycleConfigurationUpdate"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)defaultConfigurationWithAppName:appId:":{"name":"+defaultConfigurationWithAppName:appId:","abstract":"<p>A production configuration that runs using IAP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)defaultConfigurationWithAppName:fullAppId:":{"name":"+defaultConfigurationWithAppName:fullAppId:","abstract":"<p>A production configuration that runs using IAP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)debugConfigurationWithAppName:appId:ipAddress:port:":{"name":"+debugConfigurationWithAppName:appId:ipAddress:port:","abstract":"<p>A debug configuration that runs using TCP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)debugConfigurationWithAppName:fullAppId:ipAddress:port:":{"name":"+debugConfigurationWithAppName:fullAppId:ipAddress:port:","abstract":"<p>A debug configuration that runs using TCP. Additional functionality should be customized on the properties.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugMode":{"name":"tcpDebugMode","abstract":"<p>Whether or not debug mode is enabled</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugIPAddress":{"name":"tcpDebugIPAddress","abstract":"<p>The ip address at which the library will look for a server</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugPort":{"name":"tcpDebugPort","abstract":"<p>The port at which the library will look for a server</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appName":{"name":"appName","abstract":"<p>The full name of the app</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appId":{"name":"appId","abstract":"<p>The app id. This must be the same as the app id received from the SDL developer portal.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)fullAppId":{"name":"fullAppId","abstract":"<p>The full app id. This must be the same as the full app id received from the SDL developer portal.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)resumeHash":{"name":"resumeHash","abstract":"<p>A hash id which should be passed to the remote system in the RegisterAppInterface</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)isMedia":{"name":"isMedia","abstract":"<p>This is an automatically set based on the app type</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appType":{"name":"appType","abstract":"<p>The application type</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)additionalAppTypes":{"name":"additionalAppTypes","abstract":"<p>Additional application types beyond <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appType\">appType</a></code></p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)language":{"name":"language","abstract":"<p>The default language to use</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)languagesSupported":{"name":"languagesSupported","abstract":"<p>An array of all the supported languages</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appIcon":{"name":"appIcon","abstract":"<p>The application icon to be used on an app launching screen</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)shortAppName":{"name":"shortAppName","abstract":"<p>An abbrevited application name that will be used on the app launching screen if the full one would be truncated</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)ttsName":{"name":"ttsName","abstract":"<p>A Text to Speech String for voice recognition of the mobile application name.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)voiceRecognitionCommandNames":{"name":"voiceRecognitionCommandNames","abstract":"<p>Additional voice recognition commands. May not interfere with any other app name or global commands.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)dayColorScheme":{"name":"dayColorScheme","abstract":"<p>The color scheme to use when the head unit is in a light / day situation.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)nightColorScheme":{"name":"nightColorScheme","abstract":"<p>The color scheme to use when the head unit is in a dark / night situation.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)minimumProtocolVersion":{"name":"minimumProtocolVersion","abstract":"<p>The minimum protocol version that will be permitted to connect. This defaults to 1.0.0. If the protocol version of the head unit connected is below this version, the app will disconnect with an EndService protocol message and will not register.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)minimumRPCVersion":{"name":"minimumRPCVersion","abstract":"<p>The minimum RPC version that will be permitted to connect. This defaults to 1.0.0. If the RPC version of the head unit connected is below this version, an UnregisterAppInterface will be sent.</p>","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(im)initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:":{"name":"-initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:","abstract":"<p>Undocumented</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)language":{"name":"language","abstract":"<p>The keyboard language</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keyboardLayout":{"name":"keyboardLayout","abstract":"<p>Desired keyboard layout</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keypressMode":{"name":"keypressMode","abstract":"<p>Desired keypress mode.</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)limitedCharacterList":{"name":"limitedCharacterList","abstract":"<p>Array of keyboard characters to enable. All omitted characters will be greyed out (disabled) on the keyboard. If omitted, the entire keyboard will be enabled.</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)autoCompleteText":{"name":"autoCompleteText","abstract":"<p>Allows an app to prepopulate the text field with a suggested or completed entry as the user types</p>","parent_name":"SDLKeyboardProperties"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionWidth":{"name":"resolutionWidth","abstract":"<p>Resolution width</p>","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionHeight":{"name":"resolutionHeight","abstract":"<p>Resolution height</p>","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(im)initWithWidth:height:":{"name":"-initWithWidth:height:","abstract":"<p>Undocumented</p>","parent_name":"SDLImageResolution"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)name":{"name":"name","abstract":"<p>The name that identifies the field.</p>","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageTypeSupported":{"name":"imageTypeSupported","abstract":"<p>The image types that are supported in this field.</p>","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageResolution":{"name":"imageResolution","abstract":"<p>The image resolution of this field</p>","parent_name":"SDLImageField"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:ofType:":{"name":"-initWithName:ofType:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:ofType:isTemplate:":{"name":"-initWithName:ofType:isTemplate:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:":{"name":"-initWithName:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:isTemplate:":{"name":"-initWithName:isTemplate:","abstract":"<p>Convenience init for displaying a dynamic image. The image must be uploaded to SDL Core before being displayed.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithStaticImageValue:":{"name":"-initWithStaticImageValue:","abstract":"<p>Convenience init for displaying a static image. Static images are already on-board SDL Core and can be used by providing the image’s value.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithStaticIconName:":{"name":"-initWithStaticIconName:","abstract":"<p>Convenience init for displaying a static image. Static images are already on-board SDL Core and can be used by providing the image’s value.</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)value":{"name":"value","abstract":"<p>The static hex icon value or the binary image file name identifier (sent by SDLPutFile)</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)imageType":{"name":"imageType","abstract":"<p>Describes whether the image is static or dynamic</p>","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)isTemplate":{"name":"isTemplate","abstract":"<p>Indicates that this image can be (re)colored by the HMI to best fit the current color scheme.</p>","parent_name":"SDLImage"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)lowBeamsOn":{"name":"lowBeamsOn","abstract":"<p>Low beams are on or off.</p>","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)highBeamsOn":{"name":"highBeamsOn","abstract":"<p>High beams are on or off</p>","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)ambientLightSensorStatus":{"name":"ambientLightSensorStatus","abstract":"<p>Status of the ambient light senser</p>","parent_name":"SDLHeadLampStatus"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(im)initWithId:rect:":{"name":"-initWithId:rect:","abstract":"<p>Undocumented</p>","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)id":{"name":"id","abstract":"<p>A user control spatial identifier</p>","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)rect":{"name":"rect","abstract":"<p>The position of the haptic rectangle to be highlighted. The center of this rectangle will be <q>touched</q> when a press occurs.</p>","parent_name":"SDLHapticRect"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(im)initWithDisplaymode:temperatureUnit:distanceUnit:":{"name":"-initWithDisplaymode:temperatureUnit:distanceUnit:","abstract":"<p>Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(py)displayMode":{"name":"displayMode","abstract":"<p>@abstract Display the Display Mode used HMI setting</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(py)temperatureUnit":{"name":"temperatureUnit","abstract":"<p>@abstract Display the temperature unit used HMI setting</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlData.html#/c:objc(cs)SDLHMISettingsControlData(py)distanceUnit":{"name":"distanceUnit","abstract":"<p>@abstract Display the distance unit used HMI setting</p>","parent_name":"SDLHMISettingsControlData"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(im)initWithModuleName:":{"name":"-initWithModuleName:","abstract":"<p>Constructs a newly allocated SDLHMISettingsControlCapabilities object with moduleName</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(im)initWithModuleName:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:":{"name":"-initWithModuleName:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:","abstract":"<p>Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the hmi setting module.","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)distanceUnitAvailable":{"name":"distanceUnitAvailable","abstract":"<p>@abstract Availability of the control of distance unit.</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)temperatureUnitAvailable":{"name":"temperatureUnitAvailable","abstract":"<p>@abstract Availability of the control of temperature unit.</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMISettingsControlCapabilities.html#/c:objc(cs)SDLHMISettingsControlCapabilities(py)displayModeUnitAvailable":{"name":"displayModeUnitAvailable","abstract":"<p>@abstract Availability of the control of HMI display mode.</p>","parent_name":"SDLHMISettingsControlCapabilities"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)allowed":{"name":"allowed","abstract":"<p>A set of all HMI levels that are permitted for this given RPC</p>","parent_name":"SDLHMIPermissions"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"<p>A set of all HMI levels that are prohibited for this given RPC</p>","parent_name":"SDLHMIPermissions"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)navigation":{"name":"navigation","abstract":"<p>Availability of built in Nav. True: Available, False: Not Available</p>","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)phoneCall":{"name":"phoneCall","abstract":"<p>Availability of built in phone. True: Available, False: Not Available</p>","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)videoStreaming":{"name":"videoStreaming","abstract":"<p>Availability of built in video streaming. True: Available, False: Not Available</p>","parent_name":"SDLHMICapabilities"},"Classes/SDLGetWayPointsResponse.html#/c:objc(cs)SDLGetWayPointsResponse(py)waypoints":{"name":"waypoints","abstract":"<p>Provides additional human readable info regarding the result.</p>","parent_name":"SDLGetWayPointsResponse"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(im)initWithType:":{"name":"-initWithType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetWayPoints"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(py)waypointType":{"name":"waypointType","abstract":"<p>To request for either the destination","parent_name":"SDLGetWayPoints"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)gps":{"name":"gps","abstract":"<p>The car current GPS coordinates</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)speed":{"name":"speed","abstract":"<p>The vehicle speed in kilometers per hour</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"<p>The number of revolutions per minute of the engine.</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>The fuel level in the tank (percentage)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>The fuel level state</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelRange":{"name":"fuelRange","abstract":"<p>The estimate range in KM the vehicle can travel based on fuel level and consumption</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>The instantaneous fuel consumption in microlitres</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>The external temperature in degrees celsius.</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)vin":{"name":"vin","abstract":"<p>The Vehicle Identification Number</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"<p>The current gear shift state of the user’s vehicle</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"<p>The current pressure warnings for the user’s vehicle</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"<p>Odometer reading in km</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"<p>The status of the seat belts</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>The body information including power modes</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>The IVI system status including signal and battery strength</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"<p>The status of the brake pedal</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>The status of the wipers</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>Status of the head lamps</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>The estimated percentage (0% - 100%) of remaining oil life of the engine</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"<p>Torque value for engine (in Nm) on non-diesel variants</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>Accelerator pedal position (percentage depressed)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>Current angle of the steering wheel (in deg)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>Emergency Call notification and confirmation data</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>The status of the air bags</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>Information related to an emergency event (and if it occurred)</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>The status modes of the cluster</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"<p>Information related to the MyKey feature</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>The status of the electronic parking brake</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)turnSignal":{"name":"turnSignal","abstract":"<p>The status of the turn signal</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>The cloud app vehicle ID</p>","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:vin:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:vin:wiperStatus:","abstract":"<p>Convenience init for getting data for all possible vehicle data items.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:","abstract":"<p>Convenience init for getting data for all possible vehicle data items.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:":{"name":"-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:cloudAppVehicleID:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:electronicParkBrakeStatus:emergencyEvent:engineOilLife:engineTorque:externalTemperature:fuelLevel:fuelLevelState:fuelRange:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:turnSignal:vin:wiperStatus:","abstract":"<p>Convenience init for getting data for all possible vehicle data items.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)gps":{"name":"gps","abstract":"<p>A boolean value. If true, requests GPS data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)speed":{"name":"speed","abstract":"<p>A boolean value. If true, requests Speed data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)rpm":{"name":"rpm","abstract":"<p>A boolean value. If true, requests RPM data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"<p>A boolean value. If true, requests Fuel Level data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"<p>A boolean value. If true, requests Fuel Level State data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelRange":{"name":"fuelRange","abstract":"<p>A boolean value. If true, requests Fuel Range data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"<p>A boolean value. If true, requests Instant Fuel Consumption data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"<p>A boolean value. If true, requests External Temperature data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)vin":{"name":"vin","abstract":"<p>A boolean value. If true, requests the Vehicle Identification Number.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)prndl":{"name":"prndl","abstract":"<p>A boolean value. If true, requests PRNDL data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"<p>A boolean value. If true, requests Tire Pressure data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)odometer":{"name":"odometer","abstract":"<p>A boolean value. If true, requests Odometer data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"<p>A boolean value. If true, requests Belt Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"<p>A boolean value. If true, requests Body Information data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"<p>A boolean value. If true, requests Device Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"<p>A boolean value. If true, requests Driver Braking data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"<p>A boolean value. If true, requests Wiper Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"<p>A boolean value. If true, requests Head Lamp Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)engineOilLife":{"name":"engineOilLife","abstract":"<p>A boolean value. If true, requests Engine Oil Life data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"<p>A boolean value. If true, requests Engine Torque data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"<p>A boolean value. If true, requests Acc Pedal Position data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"<p>A boolean value. If true, requests Steering Wheel Angle data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"<p>A boolean value. If true, requests Emergency Call Info data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"<p>A boolean value. If true, requests Air Bag Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"<p>A boolean value. If true, requests Emergency Event (if it occurred) data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"<p>A boolean value. If true, requests Cluster Mode Status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)myKey":{"name":"myKey","abstract":"<p>A boolean value. If true, requests MyKey data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)electronicParkBrakeStatus":{"name":"electronicParkBrakeStatus","abstract":"<p>A boolean value. If true, requests Electronic Parking Brake status data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)turnSignal":{"name":"turnSignal","abstract":"<p>A boolean value. If true, requests Turn Signal data.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)cloudAppVehicleID":{"name":"cloudAppVehicleID","abstract":"<p>A boolean value. If true, requests the Cloud App Vehicle ID.</p>","parent_name":"SDLGetVehicleData"},"Classes/SDLGetSystemCapabilityResponse.html#/c:objc(cs)SDLGetSystemCapabilityResponse(py)systemCapability":{"name":"systemCapability","abstract":"<p>The requested system capability, of the type that was sent in the request</p>","parent_name":"SDLGetSystemCapabilityResponse"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)initWithType:":{"name":"-initWithType:","abstract":"<p>Convenience init</p>","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)initWithType:subscribe:":{"name":"-initWithType:subscribe:","abstract":"<p>Convenience init</p>","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"<p>The type of system capability to get more information on</p>","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(py)subscribe":{"name":"subscribe","abstract":"<p>Flag to subscribe to updates of the supplied service capability type. If true, the requester will be subscribed. If false, the requester will not be subscribed and be removed as a subscriber if it was previously subscribed.</p>","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetInteriorVehicleDataResponse.html#/c:objc(cs)SDLGetInteriorVehicleDataResponse(py)moduleData":{"name":"moduleData","abstract":"<p>The requested data</p>","parent_name":"SDLGetInteriorVehicleDataResponse"},"Classes/SDLGetInteriorVehicleDataResponse.html#/c:objc(cs)SDLGetInteriorVehicleDataResponse(py)isSubscribed":{"name":"isSubscribed","abstract":"<p>It is a conditional-mandatory parameter: must be returned in case <q>subscribe</q> parameter was present in the related request.</p>","parent_name":"SDLGetInteriorVehicleDataResponse"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initWithModuleType:":{"name":"-initWithModuleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initAndSubscribeToModuleType:":{"name":"-initAndSubscribeToModuleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initAndUnsubscribeToModuleType:":{"name":"-initAndUnsubscribeToModuleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(py)moduleType":{"name":"moduleType","abstract":"<p>The type of a RC module to retrieve module data from the vehicle.</p>","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(py)subscribe":{"name":"subscribe","abstract":"<p>If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType.","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetFileResponse.html#/c:objc(cs)SDLGetFileResponse(im)initWithOffset:length:fileType:crc:":{"name":"-initWithOffset:length:fileType:crc:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLGetFileResponse"},"Classes/SDLGetFileResponse.html#/c:objc(cs)SDLGetFileResponse(py)offset":{"name":"offset","abstract":"<p>Optional offset in bytes for resuming partial data chunks.</p>","parent_name":"SDLGetFileResponse"},"Classes/SDLGetFileResponse.html#/c:objc(cs)SDLGetFileResponse(py)length":{"name":"length","abstract":"<p>Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded.</p>","parent_name":"SDLGetFileResponse"},"Classes/SDLGetFileResponse.html#/c:objc(cs)SDLGetFileResponse(py)fileType":{"name":"fileType","abstract":"<p>File type that is being sent in response.</p>","parent_name":"SDLGetFileResponse"},"Classes/SDLGetFileResponse.html#/c:objc(cs)SDLGetFileResponse(py)crc":{"name":"crc","abstract":"<p>Additional CRC32 checksum to protect data integrity up to 512 Mbits.</p>","parent_name":"SDLGetFileResponse"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"<p>Convenience init for required parameters.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(im)initWithFileName:appServiceId:fileType:":{"name":"-initWithFileName:appServiceId:fileType:","abstract":"<p>Convenience init for sending a small file.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(im)initWithFileName:appServiceId:fileType:offset:length:":{"name":"-initWithFileName:appServiceId:fileType:offset:length:","abstract":"<p>Convenience init for sending a large file in multiple data chunks.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(py)fileName":{"name":"fileName","abstract":"<p>File name that should be retrieved.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(py)appServiceId":{"name":"appServiceId","abstract":"<p>ID of the service that should have uploaded the requested file.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(py)fileType":{"name":"fileType","abstract":"<p>Selected file type.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(py)offset":{"name":"offset","abstract":"<p>Optional offset in bytes for resuming partial data chunks.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetFile.html#/c:objc(cs)SDLGetFile(py)length":{"name":"length","abstract":"<p>Optional length in bytes for resuming partial data chunks. If offset is set to 0, then length is the total length of the file to be downloaded.</p>","parent_name":"SDLGetFile"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)ecuHeader":{"name":"ecuHeader","abstract":"<p>2 byte ECU Header for DTC response (as defined in VHR_Layout_Specification_DTCs.pdf)</p>","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)dtc":{"name":"dtc","abstract":"<p>Array of all reported DTCs on module (ecuHeader contains information if list is truncated). Each DTC is represented by 4 bytes (3 bytes of data and 1 byte status as defined in VHR_Layout_Specification_DTCs.pdf).</p>","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:":{"name":"-initWithECUName:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:mask:":{"name":"-initWithECUName:mask:","abstract":"<p>Undocumented</p>","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(py)ecuName":{"name":"ecuName","abstract":"<p>a name of the module to receive the DTC form","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(py)dtcMask":{"name":"dtcMask","abstract":"<p>DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask Minvalue:0; Maxvalue:255</p>","parent_name":"SDLGetDTCs"},"Classes/SDLGetCloudAppPropertiesResponse.html#/c:objc(cs)SDLGetCloudAppPropertiesResponse(im)initWithProperties:":{"name":"-initWithProperties:","abstract":"<p>Convenience init.</p>","parent_name":"SDLGetCloudAppPropertiesResponse"},"Classes/SDLGetCloudAppPropertiesResponse.html#/c:objc(cs)SDLGetCloudAppPropertiesResponse(py)properties":{"name":"properties","abstract":"<p>The requested cloud application properties.</p>","parent_name":"SDLGetCloudAppPropertiesResponse"},"Classes/SDLGetCloudAppProperties.html#/c:objc(cs)SDLGetCloudAppProperties(im)initWithAppID:":{"name":"-initWithAppID:","abstract":"<p>Convenience init.</p>","parent_name":"SDLGetCloudAppProperties"},"Classes/SDLGetCloudAppProperties.html#/c:objc(cs)SDLGetCloudAppProperties(py)appID":{"name":"appID","abstract":"<p>The id of the cloud app.</p>","parent_name":"SDLGetCloudAppProperties"},"Classes/SDLGetAppServiceDataResponse.html#/c:objc(cs)SDLGetAppServiceDataResponse(im)initWithAppServiceData:":{"name":"-initWithAppServiceData:","abstract":"<p>Convenience init.</p>","parent_name":"SDLGetAppServiceDataResponse"},"Classes/SDLGetAppServiceDataResponse.html#/c:objc(cs)SDLGetAppServiceDataResponse(py)serviceData":{"name":"serviceData","abstract":"<p>Contains all the current data of the app service.</p>","parent_name":"SDLGetAppServiceDataResponse"},"Classes/SDLGetAppServiceData.html#/c:objc(cs)SDLGetAppServiceData(im)initWithAppServiceType:":{"name":"-initWithAppServiceType:","abstract":"<p>Convenience init for service type.</p>","parent_name":"SDLGetAppServiceData"},"Classes/SDLGetAppServiceData.html#/c:objc(cs)SDLGetAppServiceData(im)initAndSubscribeToAppServiceType:":{"name":"-initAndSubscribeToAppServiceType:","abstract":"<p>Convenience init for subscribing to a service type.</p>","parent_name":"SDLGetAppServiceData"},"Classes/SDLGetAppServiceData.html#/c:objc(cs)SDLGetAppServiceData(im)initAndUnsubscribeToAppServiceType:":{"name":"-initAndUnsubscribeToAppServiceType:","abstract":"<p>Convenience init for unsubscribing to a service type</p>","parent_name":"SDLGetAppServiceData"},"Classes/SDLGetAppServiceData.html#/c:objc(cs)SDLGetAppServiceData(py)serviceType":{"name":"serviceType","abstract":"<p>The type of service that is to be offered by this app. See <code>AppServiceType</code> for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core.</p>","parent_name":"SDLGetAppServiceData"},"Classes/SDLGetAppServiceData.html#/c:objc(cs)SDLGetAppServiceData(py)subscribe":{"name":"subscribe","abstract":"<p>If true, the consumer is requesting to subscribe to all future updates from the service publisher. If false, the consumer doesn’t wish to subscribe and should be unsubscribed if it was previously subscribed.</p>","parent_name":"SDLGetAppServiceData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"<p>longitude degrees</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"<p>latitude degrees</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcYear":{"name":"utcYear","abstract":"<p>utc year</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMonth":{"name":"utcMonth","abstract":"<p>utc month</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcDay":{"name":"utcDay","abstract":"<p>utc day</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcHours":{"name":"utcHours","abstract":"<p>utc hours</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMinutes":{"name":"utcMinutes","abstract":"<p>utc minutes</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcSeconds":{"name":"utcSeconds","abstract":"<p>utc seconds</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)compassDirection":{"name":"compassDirection","abstract":"<p>Optional, Potential Compass Directions</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)pdop":{"name":"pdop","abstract":"<p>The 3D positional dilution of precision.</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)hdop":{"name":"hdop","abstract":"<p>The horizontal dilution of precision</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)vdop":{"name":"vdop","abstract":"<p>the vertical dilution of precision</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)actual":{"name":"actual","abstract":"<p>What the coordinates are based on</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)satellites":{"name":"satellites","abstract":"<p>The number of satellites in view</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)dimension":{"name":"dimension","abstract":"<p>The supported dimensions of the GPS</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)altitude":{"name":"altitude","abstract":"<p>Altitude in meters</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)heading":{"name":"heading","abstract":"<p>Heading based on the GPS data.</p>","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)speed":{"name":"speed","abstract":"<p>Speed in KPH</p>","parent_name":"SDLGPSData"},"Classes/SDLFunctionID.html#/c:objc(cs)SDLFunctionID(cm)sharedInstance":{"name":"+sharedInstance","abstract":"<p>Undocumented</p>","parent_name":"SDLFunctionID"},"Classes/SDLFunctionID.html#/c:objc(cs)SDLFunctionID(im)functionNameForId:":{"name":"-functionNameForId:","abstract":"<p>Undocumented</p>","parent_name":"SDLFunctionID"},"Classes/SDLFunctionID.html#/c:objc(cs)SDLFunctionID(im)functionIdForName:":{"name":"-functionIdForName:","abstract":"<p>Undocumented</p>","parent_name":"SDLFunctionID"},"Classes/SDLFuelRange.html#/c:objc(cs)SDLFuelRange(py)type":{"name":"type","abstract":"<p>The vehicle’s fuel type</p>","parent_name":"SDLFuelRange"},"Classes/SDLFuelRange.html#/c:objc(cs)SDLFuelRange(py)range":{"name":"range","abstract":"<p>The estimate range in KM the vehicle can travel based on fuel level and consumption.</p>","parent_name":"SDLFuelRange"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(py)artworkRetryCount":{"name":"artworkRetryCount","abstract":"<p>Defines the number of times the file manager will attempt to reupload <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLArtwork.html\">SDLArtwork</a></code> files in the event of a failed upload to Core.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(py)fileRetryCount":{"name":"fileRetryCount","abstract":"<p>Defines the number of times the file manager will attempt to reupload general <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLFile.html\">SDLFile</a></code>s in the event of a failed upload to Core.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(cm)defaultConfiguration":{"name":"+defaultConfiguration","abstract":"<p>Creates a default file manager configuration.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(im)init":{"name":"-init","abstract":"<p>Use <code>defaultConfiguration</code> instead</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManagerConfiguration.html#/c:objc(cs)SDLFileManagerConfiguration(im)initWithArtworkRetryCount:fileRetryCount:":{"name":"-initWithArtworkRetryCount:fileRetryCount:","abstract":"<p>Creates a file manager configuration with customized upload retry counts.</p>","parent_name":"SDLFileManagerConfiguration"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)remoteFileNames":{"name":"remoteFileNames","abstract":"<p>A set of all names of files known on the remote head unit. Known files can be used or deleted on the remote system.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)bytesAvailable":{"name":"bytesAvailable","abstract":"<p>The number of bytes still available for files for this app.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)currentState":{"name":"currentState","abstract":"<p>The state of the file manager.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)pendingTransactions":{"name":"pendingTransactions","abstract":"<p>The currently pending transactions (Upload, Delete, and List Files) in the file manager</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)suspended":{"name":"suspended","abstract":"<p>Whether or not the file manager is suspended. If suspended, the file manager can continue to queue uploads and deletes, but will not actually perform any of those until it is no longer suspended. This can be used for throttling down the file manager if other, important operations are taking place over the accessory connection.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)init":{"name":"-init","abstract":"<p>Initialize the class…or not, since this method is unavailable. Dependencies must be injected using initWithConnectionManager:</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)initWithConnectionManager:":{"name":"-initWithConnectionManager:","abstract":"<p>Creates a new file manager with a specified connection manager</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)initWithConnectionManager:configuration:":{"name":"-initWithConnectionManager:configuration:","abstract":"<p>Creates a new file manager with a specified connection manager and configuration</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"<p>The manager stars up and attempts to fetch its initial list and transfer initial files.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)stop":{"name":"-stop","abstract":"<p>Cancels all file manager operations and deletes all associated data.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)hasUploadedFile:":{"name":"-hasUploadedFile:","abstract":"<p>Check if the remote system contains a file</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFileWithName:completionHandler:":{"name":"-deleteRemoteFileWithName:completionHandler:","abstract":"<p>Delete a file stored on the remote system</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFilesWithNames:completionHandler:":{"name":"-deleteRemoteFilesWithNames:completionHandler:","abstract":"<p>Deletes an array of files on the remote file system. The files are deleted in the order in which they are added to the array, with the first file to be deleted at index 0. The delete queue is sequential, meaning that once a delete request is sent to Core, the queue waits until a response is received from Core before the next the next delete request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFile:completionHandler:":{"name":"-uploadFile:completionHandler:","abstract":"<p>Upload a file to the remote file system. If a file with the [SDLFile name] already exists, this will overwrite that file. If you do not want that to happen, check remoteFileNames before uploading, or change allowOverwrite to NO.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFiles:progressHandler:completionHandler:":{"name":"-uploadFiles:progressHandler:completionHandler:","abstract":"<p>Uploads an array of files to the remote file system. The files will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFiles:completionHandler:":{"name":"-uploadFiles:completionHandler:","abstract":"<p>Uploads an array of files to the remote file system. The files will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadArtwork:completionHandler:":{"name":"-uploadArtwork:completionHandler:","abstract":"<p>Uploads an artwork file to the remote file system and returns the name of the uploaded artwork once completed. If an artwork with the same name is already on the remote system, the artwork is not uploaded and the artwork name is simply returned.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadArtworks:completionHandler:":{"name":"-uploadArtworks:completionHandler:","abstract":"<p>Uploads an array of artworks to the remote file system. The artworks will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadArtworks:progressHandler:completionHandler:":{"name":"-uploadArtworks:progressHandler:completionHandler:","abstract":"<p>Uploads an array of artworks to the remote file system. The artworks will be uploaded in the order in which they are added to the array, with the first file to be uploaded at index 0. The upload queue is sequential, meaning that once a upload request is sent to Core, the queue waits until a response is received from Core before the next the next upload request is sent.</p>","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(cm)temporaryFileDirectory":{"name":"+temporaryFileDirectory","abstract":"<p>A URL to the directory where temporary files are stored. When an SDLFile is created with NSData, it writes to a temporary file until the file manager finishes uploading it.</p>","parent_name":"SDLFileManager"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)persistent":{"name":"persistent","abstract":"<p>Whether or not the file should persist on disk between car ignition cycles.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)overwrite":{"name":"overwrite","abstract":"<p>Whether or not the file should overwrite an existing file on the remote disk with the same name.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)name":{"name":"name","abstract":"<p>The name the file should be stored under on the remote disk. This is how the file will be referenced in all later calls.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileURL":{"name":"fileURL","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)data":{"name":"data","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileSize":{"name":"fileSize","abstract":"<p>The size of the binary data of the SDLFile.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileType":{"name":"fileType","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)inputStream":{"name":"inputStream","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)isStaticIcon":{"name":"isStaticIcon","abstract":"<p>Describes whether or not this file is represented by static icon data. The head unit will present its representation of the static icon concept when sent this data.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)init":{"name":"-init","abstract":"<p>Undocumented</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithFileURL:name:persistent:":{"name":"-initWithFileURL:name:persistent:","abstract":"<p>The designated initializer for an SDL File. The only major property that is not set using this is <q>overwrite</q>, which defaults to NO.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileAtFileURL:name:":{"name":"+persistentFileAtFileURL:name:","abstract":"<p>Create an SDL file using a local file URL.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileAtFileURL:name:":{"name":"+fileAtFileURL:name:","abstract":"<p>Create an SDL file using a local file URL.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithData:name:fileExtension:persistent:":{"name":"-initWithData:name:fileExtension:persistent:","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileWithData:name:fileExtension:":{"name":"+persistentFileWithData:name:fileExtension:","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileWithData:name:fileExtension:":{"name":"+fileWithData:name:fileExtension:","abstract":"<p>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.</p>","parent_name":"SDLFile"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(im)initWithChannelId:channelSetting:":{"name":"-initWithChannelId:channelSetting:","abstract":"<p>Undocumented</p>","parent_name":"SDLEqualizerSettings"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(py)channelName":{"name":"channelName","abstract":"<p>@abstract Read-only channel / frequency name","parent_name":"SDLEqualizerSettings"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(py)channelSetting":{"name":"channelSetting","abstract":"<p>@abstract Reflects the setting, from 0%-100%.</p>","parent_name":"SDLEqualizerSettings"},"Classes/SDLEqualizerSettings.html#/c:objc(cs)SDLEqualizerSettings(py)channelId":{"name":"channelId","abstract":"<p>@abstract id of the channel.</p>","parent_name":"SDLEqualizerSettings"},"Classes/SDLEncodedSyncPData.html#/c:objc(cs)SDLEncodedSyncPData(py)data":{"name":"data","abstract":"<p>Contains base64 encoded string of SyncP packets.</p>","parent_name":"SDLEncodedSyncPData"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)emergencyEventType":{"name":"emergencyEventType","abstract":"<p>References signal <q>VedsEvntType_D_Ltchd</q>. See EmergencyEventType.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)fuelCutoffStatus":{"name":"fuelCutoffStatus","abstract":"<p>References signal <q>RCM_FuelCutoff</q>. See FuelCutoffStatus.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)rolloverEvent":{"name":"rolloverEvent","abstract":"<p>References signal <q>VedsEvntRoll_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)maximumChangeVelocity":{"name":"maximumChangeVelocity","abstract":"<p>References signal <q>VedsMaxDeltaV_D_Ltchd</q>. Change in velocity in KPH.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)multipleEvents":{"name":"multipleEvents","abstract":"<p>References signal <q>VedsMultiEvnt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLEmergencyEvent"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallNotificationStatus":{"name":"eCallNotificationStatus","abstract":"<p>References signal <q>eCallNotification_4A</q>. See VehicleDataNotificationStatus.</p>","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)auxECallNotificationStatus":{"name":"auxECallNotificationStatus","abstract":"<p>References signal <q>eCallNotification</q>. See VehicleDataNotificationStatus.</p>","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallConfirmationStatus":{"name":"eCallConfirmationStatus","abstract":"<p>References signal <q>eCallConfirmation</q>. See ECallConfirmationStatus.</p>","parent_name":"SDLECallInfo"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)displayType":{"name":"displayType","abstract":"<p>The type of display</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)displayName":{"name":"displayName","abstract":"<p>The name of the connected display</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)textFields":{"name":"textFields","abstract":"<p>An array of SDLTextField structures, each of which describes a field in the HMI which the application can write to using operations such as <em>SDLShow</em>, <em>SDLSetMediaClockTimer</em>, etc.</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)imageFields":{"name":"imageFields","abstract":"<p>An array of SDLImageField elements</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)mediaClockFormats":{"name":"mediaClockFormats","abstract":"<p>An array of SDLMediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)graphicSupported":{"name":"graphicSupported","abstract":"<p>The display’s persistent screen supports.</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)templatesAvailable":{"name":"templatesAvailable","abstract":"<p>Number of presets the screen supports</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)screenParams":{"name":"screenParams","abstract":"<p>A set of all parameters related to a prescribed screen area (e.g. for video / touch input)</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)numCustomPresetsAvailable":{"name":"numCustomPresetsAvailable","abstract":"<p>The number of on-screen custom presets available (if any); otherwise omitted</p>","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(im)initWithNumber:":{"name":"-initWithNumber:","abstract":"<p>Undocumented</p>","parent_name":"SDLDialNumber"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(py)number":{"name":"number","abstract":"<p>Up to 40 character string representing the phone number. All characters stripped except for ‘0’-‘9’, ‘*’, ‘#’, ‘,’, ‘;’, and ‘+’</p>","parent_name":"SDLDialNumber"},"Classes/SDLDiagnosticMessageResponse.html#/c:objc(cs)SDLDiagnosticMessageResponse(py)messageDataResult":{"name":"messageDataResult","abstract":"<p>Array of bytes comprising CAN message result.</p>","parent_name":"SDLDiagnosticMessageResponse"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(im)initWithTargetId:length:data:":{"name":"-initWithTargetId:length:data:","abstract":"<p>Undocumented</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)targetID":{"name":"targetID","abstract":"<p>Name of target ECU</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageLength":{"name":"messageLength","abstract":"<p>Length of message (in bytes)</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageData":{"name":"messageData","abstract":"<p>Array of bytes comprising CAN message.</p>","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)voiceRecOn":{"name":"voiceRecOn","abstract":"<p>Indicates whether the voice recognition is on or off</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)btIconOn":{"name":"btIconOn","abstract":"<p>Indicates whether the bluetooth connection established</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)callActive":{"name":"callActive","abstract":"<p>Indicates whether a call is being active</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)phoneRoaming":{"name":"phoneRoaming","abstract":"<p>Indicates whether the phone is in roaming mode</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)textMsgAvailable":{"name":"textMsgAvailable","abstract":"<p>Indicates whether a textmessage is available</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)battLevelStatus":{"name":"battLevelStatus","abstract":"<p>Battery level status</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)stereoAudioOutputMuted":{"name":"stereoAudioOutputMuted","abstract":"<p>The status of the stereo audio output channel</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)monoAudioOutputMuted":{"name":"monoAudioOutputMuted","abstract":"<p>The status of the mono audio output channel</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)signalLevelStatus":{"name":"signalLevelStatus","abstract":"<p>Signal level status</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)primaryAudioSource":{"name":"primaryAudioSource","abstract":"<p>The current primary audio source of SDL (if selected).</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)eCallEventActive":{"name":"eCallEventActive","abstract":"<p>Indicates if an emergency call is active</p>","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(cm)currentDevice":{"name":"+currentDevice","abstract":"<p>Undocumented</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)hardware":{"name":"hardware","abstract":"<p>Device model</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)firmwareRev":{"name":"firmwareRev","abstract":"<p>Device firmware version</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)os":{"name":"os","abstract":"<p>Device OS</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)osVersion":{"name":"osVersion","abstract":"<p>Device OS version</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)carrier":{"name":"carrier","abstract":"<p>Device mobile carrier</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)maxNumberRFCOMMPorts":{"name":"maxNumberRFCOMMPorts","abstract":"<p>Number of bluetooth RFCOMM ports available.</p>","parent_name":"SDLDeviceInfo"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(py)menuID":{"name":"menuID","abstract":"<p>the MenuID that identifies the SDLSubMenu to be delete","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"<p>a unique ID that identifies the Choice Set","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteFileResponse.html#/c:objc(cs)SDLDeleteFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"<p>The remaining available space for your application to store data on the remote system.</p>","parent_name":"SDLDeleteFileResponse"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(py)syncFileName":{"name":"syncFileName","abstract":"<p>a file reference name","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(im)initWithId:":{"name":"-initWithId:","abstract":"<p>Undocumented</p>","parent_name":"SDLDeleteCommand"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(py)cmdID":{"name":"cmdID","abstract":"<p>the Command ID that identifies the Command to be deleted from Command Menu","parent_name":"SDLDeleteCommand"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:":{"name":"-initWithHour:minute:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:":{"name":"-initWithHour:minute:second:millisecond:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:day:month:year:":{"name":"-initWithHour:minute:second:millisecond:day:month:year:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset:timezoneHourOffset:":{"name":"-initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset:timezoneHourOffset:","abstract":"<p>Undocumented</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)millisecond":{"name":"millisecond","abstract":"<p>Milliseconds part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)second":{"name":"second","abstract":"<p>Seconds part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)minute":{"name":"minute","abstract":"<p>Minutes part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)hour":{"name":"hour","abstract":"<p>Hour part of time</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)day":{"name":"day","abstract":"<p>Day of the month</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)month":{"name":"month","abstract":"<p>Month of the year</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)year":{"name":"year","abstract":"<p>The year in YYYY format</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneMinuteOffset":{"name":"timezoneMinuteOffset","abstract":"<p>Time zone offset in Min with regard to UTC</p>","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneHourOffset":{"name":"timezoneHourOffset","abstract":"<p>Time zone offset in Hours with regard to UTC</p>","parent_name":"SDLDateTime"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)resultCode":{"name":"resultCode","abstract":"<p>Individual DID result code.</p>","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)didLocation":{"name":"didLocation","abstract":"<p>Location of raw data from vehicle data DID</p>","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)data":{"name":"data","abstract":"<p>Raw DID-based data returned for requested element.</p>","parent_name":"SDLDIDResult"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(im)initWithId:choiceSet:":{"name":"-initWithId:choiceSet:","abstract":"<p>Undocumented</p>","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"<p>A unique ID that identifies the Choice Set</p>","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)choiceSet":{"name":"choiceSet","abstract":"<p>Array of choices, which the user can select by menu or voice recognition</p>","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lifecycleConfig":{"name":"lifecycleConfig","abstract":"<p>The lifecycle configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lockScreenConfig":{"name":"lockScreenConfig","abstract":"<p>The lock screen configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)loggingConfig":{"name":"loggingConfig","abstract":"<p>The log configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)streamingMediaConfig":{"name":"streamingMediaConfig","abstract":"<p>The streaming media configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)fileManagerConfig":{"name":"fileManagerConfig","abstract":"<p>The file manager configuration.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:":{"name":"-initWithLifecycle:lockScreen:logging:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:fileManager:":{"name":"-initWithLifecycle:lockScreen:logging:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:":{"name":"+configurationWithLifecycle:lockScreen:logging:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen and logging configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:fileManager:":{"name":"+configurationWithLifecycle:lockScreen:logging:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:streamingMedia:":{"name":"-initWithLifecycle:lockScreen:logging:streamingMedia:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:":{"name":"-initWithLifecycle:lockScreen:logging:streamingMedia:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:streamingMedia:":{"name":"+configurationWithLifecycle:lockScreen:logging:streamingMedia:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging and streaming media configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:streamingMedia:fileManager:":{"name":"+configurationWithLifecycle:lockScreen:logging:streamingMedia:fileManager:","abstract":"<p>Creates a new configuration to be passed to the SDLManager with custom lifecycle, lock screen, logging, streaming media and file manager configurations.</p>","parent_name":"SDLConfiguration"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeActive":{"name":"powerModeActive","abstract":"<p>References signal <q>PowerMode_UB</q>.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeQualificationStatus":{"name":"powerModeQualificationStatus","abstract":"<p>References signal <q>PowerModeQF</q>. See PowerModeQualificationStatus.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)carModeStatus":{"name":"carModeStatus","abstract":"<p>References signal <q>CarMode</q>. See CarMode.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeStatus":{"name":"powerModeStatus","abstract":"<p>References signal <q>PowerMode</q>. See PowerMode.</p>","parent_name":"SDLClusterModeStatus"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(im)initWithAppID:":{"name":"-initWithAppID:","abstract":"<p>Convenience init for required parameters.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(im)initWithAppID:nicknames:enabled:authToken:cloudTransportType:hybridAppPreference:endpoint:":{"name":"-initWithAppID:nicknames:enabled:authToken:cloudTransportType:hybridAppPreference:endpoint:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)nicknames":{"name":"nicknames","abstract":"<p>An array of app names a cloud app is allowed to register with. If included in a <code>SetCloudAppProperties</code> request, this value will overwrite the existing <q>nicknames</q> field in the app policies section of the policy table.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)appID":{"name":"appID","abstract":"<p>The id of the cloud app.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)enabled":{"name":"enabled","abstract":"<p>If true, the cloud app will appear in the HMI’s app list; if false, the cloud app will not appear in the HMI’s app list.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)authToken":{"name":"authToken","abstract":"<p>Used to authenticate websocket connection on app activation.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)cloudTransportType":{"name":"cloudTransportType","abstract":"<p>Specifies the connection type Core should use. Currently the ones that work in SDL Core are <code>WS</code> or <code>WSS</code>, but an OEM can implement their own transport adapter to handle different values.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)hybridAppPreference":{"name":"hybridAppPreference","abstract":"<p>Specifies the user preference to use the cloud app version or mobile app version when both are available.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLCloudAppProperties.html#/c:objc(cs)SDLCloudAppProperties(py)endpoint":{"name":"endpoint","abstract":"<p>The websocket endpoint.</p>","parent_name":"SDLCloudAppProperties"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(im)initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:":{"name":"-initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(im)initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable:heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:":{"name":"-initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:heatedSteeringWheelEnable:heatedWindshieldEnable:heatedRearWindowEnable:heatedMirrorsEnable:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)fanSpeed":{"name":"fanSpeed","abstract":"<p>Speed of Fan in integer</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)currentTemperature":{"name":"currentTemperature","abstract":"<p>The Current Temperature in SDLTemperature</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)desiredTemperature":{"name":"desiredTemperature","abstract":"<p>Desired Temperature in SDLTemperature</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)acEnable":{"name":"acEnable","abstract":"<p>Represents if AC is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)circulateAirEnable":{"name":"circulateAirEnable","abstract":"<p>Represents if circulation of air is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)autoModeEnable":{"name":"autoModeEnable","abstract":"<p>Represents if auto mode is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)defrostZone":{"name":"defrostZone","abstract":"<p>Represents the kind of defrost zone</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)dualModeEnable":{"name":"dualModeEnable","abstract":"<p>Represents if dual mode is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)acMaxEnable":{"name":"acMaxEnable","abstract":"<p>Represents if ac max is enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)ventilationMode":{"name":"ventilationMode","abstract":"<p>Represents the kind of Ventilation zone</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedSteeringWheelEnable":{"name":"heatedSteeringWheelEnable","abstract":"<p>@abstract value false means disabled/turn off, value true means enabled/turn on.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedWindshieldEnable":{"name":"heatedWindshieldEnable","abstract":"<p>@abstract value false means disabled, value true means enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedRearWindowEnable":{"name":"heatedRearWindowEnable","abstract":"<p>@abstract value false means disabled, value true means enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)heatedMirrorsEnable":{"name":"heatedMirrorsEnable","abstract":"<p>@abstract Value false means disabled, value true means enabled.</p>","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(im)initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:":{"name":"-initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(im)initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:heatedSteeringWheelAvailable:heatedWindshieldAvailable:heatedRearWindowAvailable:heatedMirrorsAvailable:":{"name":"-initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:heatedSteeringWheelAvailable:heatedWindshieldAvailable:heatedRearWindowAvailable:heatedMirrorsAvailable:","abstract":"<p>Undocumented</p>","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)moduleName":{"name":"moduleName","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)fanSpeedAvailable":{"name":"fanSpeedAvailable","abstract":"<p>Availability of the control of fan speed.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)desiredTemperatureAvailable":{"name":"desiredTemperatureAvailable","abstract":"<p>Availability of the control of desired temperature.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)acEnableAvailable":{"name":"acEnableAvailable","abstract":"<p>Availability of the control of turn on/off AC.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)acMaxEnableAvailable":{"name":"acMaxEnableAvailable","abstract":"<p>Availability of the control of enable/disable air conditioning is ON on the maximum level.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)circulateAirEnableAvailable":{"name":"circulateAirEnableAvailable","abstract":"<p>Availability of the control of enable/disable circulate Air mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)autoModeEnableAvailable":{"name":"autoModeEnableAvailable","abstract":"<p>Availability of the control of enable/disable auto mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)dualModeEnableAvailable":{"name":"dualModeEnableAvailable","abstract":"<p>Availability of the control of enable/disable dual mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)defrostZoneAvailable":{"name":"defrostZoneAvailable","abstract":"<p>Availability of the control of defrost zones.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)defrostZone":{"name":"defrostZone","abstract":"<p>A set of all defrost zones that are controllable.</p>","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)ventilationModeAvailable":{"name":"ventilationModeAvailable","abstract":"<p>Availability of the control of air ventilation mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)ventilationMode":{"name":"ventilationMode","abstract":"<p>A set of all ventilation modes that are controllable.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedSteeringWheelAvailable":{"name":"heatedSteeringWheelAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Steering Wheel.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedWindshieldAvailable":{"name":"heatedWindshieldAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Windshield.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedRearWindowAvailable":{"name":"heatedRearWindowAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Rear Window.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)heatedMirrorsAvailable":{"name":"heatedMirrorsAvailable","abstract":"<p>@abstract Availability of the control (enable/disable) of heated Mirrors.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(cpy)defaultTimeout":{"name":"defaultTimeout","abstract":"<p>Set this to change the default timeout for all choice sets. If a timeout is not set on an individual choice set object (or if it is set to 0.0), then it will use this timeout instead. See <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)timeout\">timeout</a></code> for more details. If this is not set by you, it will default to 10 seconds.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(cpy)defaultLayout":{"name":"defaultLayout","abstract":"<p>Set this to change the default layout for all choice sets. If a layout is not set on an individual choice set object, then it will use this layout instead. See <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)layout\">layout</a></code> for more details. If this is not set by you, it will default to <code>SDLChoiceSetLayoutList</code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)title":{"name":"title","abstract":"<p>Maps to PerformInteraction.initialText. The title of the choice set, and/or the initial text on a keyboard prompt.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)initialPrompt":{"name":"initialPrompt","abstract":"<p>Maps to PerformInteraction.initialPrompt. The initial prompt spoken to the user at the start of an interaction.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)layout":{"name":"layout","abstract":"<p>Maps to PerformInteraction.interactionLayout. Whether the presented choices are arranged as a set of tiles or a list.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)timeout":{"name":"timeout","abstract":"<p>Maps to PerformInteraction.timeout. This applies only to a manual selection (not a voice selection, which has its timeout handled by the system). Defaults to <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(cpy)defaultTimeout\">defaultTimeout</a></code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"<p>Maps to PerformInteraction.timeoutPrompt. This text is spoken when a VR interaction times out. If this set is presented in a manual (non-voice) only interaction, this will be ignored.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)helpPrompt":{"name":"helpPrompt","abstract":"<p>Maps to PerformInteraction.helpPrompt. This is the spoken string when a user speaks <q>help</q> when the interaction is occurring.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)helpList":{"name":"helpList","abstract":"<p>Maps to PerformInteraction.vrHelp. This is a list of help text presented to the user when they are in a voice recognition interaction from your choice set of options. If this set is presented in a touch only interaction, this will be ignored.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)delegate":{"name":"delegate","abstract":"<p>The delegate of this choice set, called when the user interacts with it.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(py)choices":{"name":"choices","abstract":"<p>The choices to be displayed to the user within this choice set. These choices could match those already preloaded via <code>SDLScreenManager preloadChoices:withCompletionHandler:</code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(im)initWithTitle:delegate:choices:":{"name":"-initWithTitle:delegate:choices:","abstract":"<p>Initialize with a title, delegate, and choices. It will use the default timeout and layout, all other properties (such as prompts) will be <code>nil</code>.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(im)initWithTitle:delegate:layout:timeout:initialPromptString:timeoutPromptString:helpPromptString:vrHelpList:choices:":{"name":"-initWithTitle:delegate:layout:timeout:initialPromptString:timeoutPromptString:helpPromptString:vrHelpList:choices:","abstract":"<p>Initializer with all possible properties.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceSet.html#/c:objc(cs)SDLChoiceSet(im)initWithTitle:delegate:layout:timeout:initialPrompt:timeoutPrompt:helpPrompt:vrHelpList:choices:":{"name":"-initWithTitle:delegate:layout:timeout:initialPrompt:timeoutPrompt:helpPrompt:vrHelpList:choices:","abstract":"<p>Initializer with all possible properties.</p>","parent_name":"SDLChoiceSet"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)text":{"name":"text","abstract":"<p>Maps to Choice.menuName. The primary text of the cell. Duplicates within an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> are not permitted and will result in the <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> failing to initialize.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)secondaryText":{"name":"secondaryText","abstract":"<p>Maps to Choice.secondaryText. Optional secondary text of the cell, if available. Duplicates within an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> are permitted.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)tertiaryText":{"name":"tertiaryText","abstract":"<p>Maps to Choice.tertiaryText. Optional tertitary text of the cell, if available. Duplicates within an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLChoiceSet.html\">SDLChoiceSet</a></code> are permitted.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)voiceCommands":{"name":"voiceCommands","abstract":"<p>Maps to Choice.vrCommands. Optional voice commands the user can speak to activate the cell. If not set and the head unit requires it, this will be set to the number in the list that this item appears. However, this would be a very poor experience for a user if the choice set is presented as a voice only interaction or both interaction mode. Therefore, consider not setting this only when you know the choice set will be presented as a touch only interaction.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)artwork":{"name":"artwork","abstract":"<p>Maps to Choice.image. Optional image for the cell. This will be uploaded before the cell is used when the cell is preloaded or presented for the first time.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(py)secondaryArtwork":{"name":"secondaryArtwork","abstract":"<p>Maps to Choice.secondaryImage. Optional secondary image for the cell. This will be uploaded before the cell is used when the cell is preloaded or presented for the first time.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)init":{"name":"-init","abstract":"<p>Initialize the cell with nothing. This is unavailable</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)initWithText:":{"name":"-initWithText:","abstract":"<p>Initialize the cell with text and nothing else.</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)initWithText:artwork:voiceCommands:":{"name":"-initWithText:artwork:voiceCommands:","abstract":"<p>Initialize the cell with text, optional artwork, and optional voice commands</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoiceCell.html#/c:objc(cs)SDLChoiceCell(im)initWithText:secondaryText:tertiaryText:voiceCommands:artwork:secondaryArtwork:":{"name":"-initWithText:secondaryText:tertiaryText:voiceCommands:artwork:secondaryArtwork:","abstract":"<p>Initialize the cell with all optional items</p>","parent_name":"SDLChoiceCell"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithId:menuName:vrCommands:":{"name":"-initWithId:menuName:vrCommands:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:":{"name":"-initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:","abstract":"<p>Undocumented</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)choiceID":{"name":"choiceID","abstract":"<p>The application-scoped identifier that uniquely identifies this choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)menuName":{"name":"menuName","abstract":"<p>Text which appears in menu, representing this choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)vrCommands":{"name":"vrCommands","abstract":"<p>VR synonyms for this choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)image":{"name":"image","abstract":"<p>The image of the choice</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryText":{"name":"secondaryText","abstract":"<p>Secondary text to display; e.g. address of POI in a search result entry</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)tertiaryText":{"name":"tertiaryText","abstract":"<p>Tertiary text to display; e.g. distance to POI for a search result entry</p>","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryImage":{"name":"secondaryImage","abstract":"<p>Secondary image for choice</p>","parent_name":"SDLChoice"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithLanguage:hmiDisplayLanguage:":{"name":"-initWithLanguage:hmiDisplayLanguage:","abstract":"<p>Undocumented</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:":{"name":"-initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:","abstract":"<p>Undocumented</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)language":{"name":"language","abstract":"<p>The language the app wants to change to</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"<p>HMI display language</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)appName":{"name":"appName","abstract":"<p>Request a new app name registration</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ttsName":{"name":"ttsName","abstract":"<p>Request a new TTSName registration.</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"<p>Request a new app short name registration</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)vrSynonyms":{"name":"vrSynonyms","abstract":"<p>Request a new VR synonyms registration</p>","parent_name":"SDLChangeRegistration"},"Classes/SDLCarWindowViewController.html#/c:objc(cs)SDLCarWindowViewController(py)supportedOrientation":{"name":"supportedOrientation","abstract":"<p>The supported interface orientation you wish to use. Defaults to MaskPortrait.</p>","parent_name":"SDLCarWindowViewController"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(im)initWithButtonName:moduleType:":{"name":"-initWithButtonName:moduleType:","abstract":"<p>Undocumented</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)moduleType":{"name":"moduleType","abstract":"<p>The module where the button should be pressed.</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)buttonName":{"name":"buttonName","abstract":"<p>The name of supported RC climate or radio button.</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"<p>Indicates whether this is a LONG or SHORT button press event.</p>","parent_name":"SDLButtonPress"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)name":{"name":"name","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"<p>A NSNumber value indicates whether the button supports a SHORT press</p>","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"<p>A NSNumber value indicates whether the button supports a LONG press</p>","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"<p>A NSNumber value indicates whether the button supports <q>button down</q> and <q>button up</q></p>","parent_name":"SDLButtonCapabilities"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)parkBrakeActive":{"name":"parkBrakeActive","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStableStatus":{"name":"ignitionStableStatus","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStatus":{"name":"ignitionStatus","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)driverDoorAjar":{"name":"driverDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)passengerDoorAjar":{"name":"passengerDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearLeftDoorAjar":{"name":"rearLeftDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearRightDoorAjar":{"name":"rearRightDoorAjar","parent_name":"SDLBodyInformation"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBeltDeployed":{"name":"driverBeltDeployed","abstract":"<p>References signal <q>VedsDrvBelt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBeltDeployed":{"name":"passengerBeltDeployed","abstract":"<p>References signal <q>VedsPasBelt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBuckleBelted":{"name":"passengerBuckleBelted","abstract":"<p>References signal <q>VedsRw1PasBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBuckleBelted":{"name":"driverBuckleBelted","abstract":"<p>References signal <q>VedsRw1DrvBckl_D_Ltchd</q>. See VehicleDataEventStatus</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow2BuckleBelted":{"name":"leftRow2BuckleBelted","abstract":"<p>References signal <q>VedsRw2lBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerChildDetected":{"name":"passengerChildDetected","abstract":"<p>References signal <q>VedsRw1PasChld_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow2BuckleBelted":{"name":"rightRow2BuckleBelted","abstract":"<p>References signal <q>VedsRw2rBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow2BuckleBelted":{"name":"middleRow2BuckleBelted","abstract":"<p>References signal <q>VedsRw2mBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow3BuckleBelted":{"name":"middleRow3BuckleBelted","abstract":"<p>References signal <q>VedsRw3mBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow3BuckleBelted":{"name":"leftRow3BuckleBelted","abstract":"<p>References signal <q>VedsRw3lBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow3BuckleBelted":{"name":"rightRow3BuckleBelted","abstract":"<p>References signal <q>VedsRw3rBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRearInflatableBelted":{"name":"leftRearInflatableBelted","abstract":"<p>References signal <q>VedsRw2lRib_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRearInflatableBelted":{"name":"rightRearInflatableBelted","abstract":"<p>References signal <q>VedsRw2rRib_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BeltDeployed":{"name":"middleRow1BeltDeployed","abstract":"<p>References signal <q>VedsRw1mBelt_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BuckleBelted":{"name":"middleRow1BuckleBelted","abstract":"<p>References signal <q>VedsRw1mBckl_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLBeltStatus"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(py)delegate":{"name":"delegate","abstract":"<p>The delegate describing when files are done playing or any errors that occur</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(py)playing":{"name":"playing","abstract":"<p>Whether or not we are currently playing audio</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(py)queue":{"name":"queue","abstract":"<p>The queue of audio files that will be played in sequence</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)init":{"name":"-init","abstract":"<p>Init should only occur with dependencies. use <code>initWithManager:</code></p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)initWithManager:":{"name":"-initWithManager:","abstract":"<p>Create an audio stream manager with a reference to the parent stream manager.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)pushWithFileURL:":{"name":"-pushWithFileURL:","abstract":"<p>Push a new file URL onto the queue after converting it into the correct PCM format for streaming binary data. Call <code>playNextWhenReady</code> to start playing the next completed pushed file.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)playNextWhenReady":{"name":"-playNextWhenReady","abstract":"<p>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.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioStreamManager.html#/c:objc(cs)SDLAudioStreamManager(im)stop":{"name":"-stop","abstract":"<p>Stop playing the queue after the current item completes and clear the queue. If nothing is playing, the queue will be cleared.</p>","parent_name":"SDLAudioStreamManager"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)samplingRate":{"name":"samplingRate","abstract":"<p>The sampling rate for AudioPassThru</p>","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)bitsPerSample":{"name":"bitsPerSample","abstract":"<p>The sample depth in bit for AudioPassThru</p>","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)audioType":{"name":"audioType","abstract":"<p>The audiotype for AudioPassThru</p>","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(im)initWithSource:keepContext:volume:equalizerSettings:":{"name":"-initWithSource:keepContext:volume:equalizerSettings:","abstract":"<p>Constructs a newly allocated SDLAudioControlData object with given parameters</p>","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)source":{"name":"source","abstract":"<p>@abstract In a getter response or a notification,","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)keepContext":{"name":"keepContext","abstract":"<p>@abstract This parameter shall not be present in any getter responses or notifications.","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)volume":{"name":"volume","abstract":"<p>@abstract Reflects the volume of audio, from 0%-100%.</p>","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlData.html#/c:objc(cs)SDLAudioControlData(py)equalizerSettings":{"name":"equalizerSettings","abstract":"<p>@abstract Defines the list of supported channels (band) and their current/desired settings on HMI</p>","parent_name":"SDLAudioControlData"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(im)initWithModuleName:":{"name":"-initWithModuleName:","abstract":"<p>Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars)</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(im)initWithModuleName:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID:":{"name":"-initWithModuleName:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID:","abstract":"<p>Constructs a newly allocated SDLAudioControlCapabilities object with given parameters</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"<p>@abstract The short friendly name of the audio control module.","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)sourceAvailable":{"name":"sourceAvailable","abstract":"<p>@abstract Availability of the control of audio source.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)keepContextAvailable":{"name":"keepContextAvailable","abstract":"<p>Availability of the keepContext parameter.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)volumeAvailable":{"name":"volumeAvailable","abstract":"<p>@abstract Availability of the control of audio volume.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)equalizerAvailable":{"name":"equalizerAvailable","abstract":"<p>@abstract Availability of the control of Equalizer Settings.</p>","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLAudioControlCapabilities.html#/c:objc(cs)SDLAudioControlCapabilities(py)equalizerMaxChannelId":{"name":"equalizerMaxChannelId","abstract":"<p>@abstract Must be included if equalizerAvailable=true,","parent_name":"SDLAudioControlCapabilities"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(py)isTemplate":{"name":"isTemplate","abstract":"<p>Describes whether or not the image is a template that can be (re)colored by the SDL HMI. To make the artwork a template, set the <code>UIImage</code>s rendering mode to <code>UIImageRenderingModeAlwaysTemplate</code>. In order for templates to work successfully, the icon must be one solid color with a clear background. The artwork should be created using the PNG image format.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(py)imageRPC":{"name":"imageRPC","abstract":"<p>The Image RPC representing this artwork. Generally for use internally, you should instead pass an artwork to a Screen Manager method.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithImage:name:asImageFormat:":{"name":"+artworkWithImage:name:asImageFormat:","abstract":"<p>Convenience helper to create an ephemeral artwork from an image.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithImage:asImageFormat:":{"name":"+artworkWithImage:asImageFormat:","abstract":"<p>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.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithStaticIcon:":{"name":"+artworkWithStaticIcon:","abstract":"<p>Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)persistentArtworkWithImage:name:asImageFormat:":{"name":"+persistentArtworkWithImage:name:asImageFormat:","abstract":"<p>Convenience helper to create a persistent artwork from an image.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)persistentArtworkWithImage:asImageFormat:":{"name":"+persistentArtworkWithImage:asImageFormat:","abstract":"<p>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.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithImage:name:persistent:asImageFormat:":{"name":"-initWithImage:name:persistent:asImageFormat:","abstract":"<p>Create a file for transmission to the remote system from a UIImage.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithImage:persistent:asImageFormat:":{"name":"-initWithImage:persistent:asImageFormat:","abstract":"<p>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.</p>","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithStaticIcon:":{"name":"-initWithStaticIcon:","abstract":"<p>Create an SDLArtwork that represents a static icon. This can only be passed to the screen manager; passing this directly to the file manager will fail.</p>","parent_name":"SDLArtwork"},"Classes/SDLAppServicesCapabilities.html#/c:objc(cs)SDLAppServicesCapabilities(im)initWithAppServices:":{"name":"-initWithAppServices:","abstract":"<p>Convenience init.</p>","parent_name":"SDLAppServicesCapabilities"},"Classes/SDLAppServicesCapabilities.html#/c:objc(cs)SDLAppServicesCapabilities(py)appServices":{"name":"appServices","abstract":"<p>An array of currently available services. If this is an update to the capability the affected services will include an update reason in that item.</p>","parent_name":"SDLAppServicesCapabilities"},"Classes/SDLAppServiceRecord.html#/c:objc(cs)SDLAppServiceRecord(im)initWithServiceID:serviceManifest:servicePublished:serviceActive:":{"name":"-initWithServiceID:serviceManifest:servicePublished:serviceActive:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLAppServiceRecord"},"Classes/SDLAppServiceRecord.html#/c:objc(cs)SDLAppServiceRecord(py)serviceID":{"name":"serviceID","abstract":"<p>A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves.</p>","parent_name":"SDLAppServiceRecord"},"Classes/SDLAppServiceRecord.html#/c:objc(cs)SDLAppServiceRecord(py)serviceManifest":{"name":"serviceManifest","abstract":"<p>Manifest for the service that this record is for.</p>","parent_name":"SDLAppServiceRecord"},"Classes/SDLAppServiceRecord.html#/c:objc(cs)SDLAppServiceRecord(py)servicePublished":{"name":"servicePublished","abstract":"<p>If true, the service is published and available. If false, the service has likely just been unpublished, and should be considered unavailable.</p>","parent_name":"SDLAppServiceRecord"},"Classes/SDLAppServiceRecord.html#/c:objc(cs)SDLAppServiceRecord(py)serviceActive":{"name":"serviceActive","abstract":"<p>If true, the service is the active primary service of the supplied service type. It will receive all potential RPCs that are passed through to that service type. If false, it is not the primary service of the supplied type. See servicePublished for its availability.</p>","parent_name":"SDLAppServiceRecord"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(im)initWithAppServiceType:":{"name":"-initWithAppServiceType:","abstract":"<p>Convenience init for serviceType.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(im)initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:":{"name":"-initWithMediaServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:","abstract":"<p>Convenience init for a media service manifest.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(im)initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest:":{"name":"-initWithWeatherServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:weatherServiceManifest:","abstract":"<p>Convenience init for a weather service manifest.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(im)initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest:":{"name":"-initWithNavigationServiceName:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:navigationServiceManifest:","abstract":"<p>Convenience init for a navigation service manifest.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(im)initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest:":{"name":"-initWithServiceName:serviceType:serviceIcon:allowAppConsumers:rpcSpecVersion:handledRPCs:mediaServiceManifest:weatherServiceManifest:navigationServiceManifest:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)serviceName":{"name":"serviceName","abstract":"<p>Unique name of this service.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)serviceType":{"name":"serviceType","abstract":"<p>The type of service that is to be offered by this app. See AppServiceType for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)serviceIcon":{"name":"serviceIcon","abstract":"<p>The file name of the icon to be associated with this service. Most likely the same as the appIcon.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)allowAppConsumers":{"name":"allowAppConsumers","abstract":"<p>If true, app service consumers beyond the IVI system will be able to access this service. If false, only the IVI system will be able consume the service. If not provided, it is assumed to be false.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)rpcSpecVersion":{"name":"rpcSpecVersion","abstract":"<p>This is the max RPC Spec version the app service understands. This is important during the RPC passthrough functionality. If not included, it is assumed the max version of the module is acceptable.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)handledRPCs":{"name":"handledRPCs","abstract":"<p>This field contains the Function IDs for the RPCs that this service intends to handle correctly. This means the service will provide meaningful responses. See FunctionID for enum equivalent values. This parameter is an integer to allow for new function IDs to be used by apps on older versions of SDL Core.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)mediaServiceManifest":{"name":"mediaServiceManifest","abstract":"<p>A media service manifest.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)weatherServiceManifest":{"name":"weatherServiceManifest","abstract":"<p>A weather service manifest.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceManifest.html#/c:objc(cs)SDLAppServiceManifest(py)navigationServiceManifest":{"name":"navigationServiceManifest","abstract":"<p>A navigation service manifest.</p>","parent_name":"SDLAppServiceManifest"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(im)initWithAppServiceType:serviceId:":{"name":"-initWithAppServiceType:serviceId:","abstract":"<p>Convenience init for service type and service id.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(im)initWithMediaServiceData:serviceId:":{"name":"-initWithMediaServiceData:serviceId:","abstract":"<p>Convenience init for media service data.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(im)initWithWeatherServiceData:serviceId:":{"name":"-initWithWeatherServiceData:serviceId:","abstract":"<p>Convenience init for weather service data.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(im)initWithNavigationServiceData:serviceId:":{"name":"-initWithNavigationServiceData:serviceId:","abstract":"<p>Convenience init for navigation service data.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(im)initWithAppServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData:":{"name":"-initWithAppServiceType:serviceId:mediaServiceData:weatherServiceData:navigationServiceData:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(py)serviceType":{"name":"serviceType","abstract":"<p>The type of service that is to be offered by this app. See <code>AppServiceType</code> for known enum equivalent types. Parameter is a string to allow for new service types to be used by apps on older versions of SDL Core.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(py)serviceId":{"name":"serviceId","abstract":"<p>A unique ID tied to this specific service record. The ID is supplied by the module that services publish themselves.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(py)mediaServiceData":{"name":"mediaServiceData","abstract":"<p>The media service data.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(py)weatherServiceData":{"name":"weatherServiceData","abstract":"<p>The weather service data.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceData.html#/c:objc(cs)SDLAppServiceData(py)navigationServiceData":{"name":"navigationServiceData","abstract":"<p>The navigation service data.</p>","parent_name":"SDLAppServiceData"},"Classes/SDLAppServiceCapability.html#/c:objc(cs)SDLAppServiceCapability(im)initWithUpdatedAppServiceRecord:":{"name":"-initWithUpdatedAppServiceRecord:","abstract":"<p>Convenience init for required parameters.</p>","parent_name":"SDLAppServiceCapability"},"Classes/SDLAppServiceCapability.html#/c:objc(cs)SDLAppServiceCapability(im)initWithUpdateReason:updatedAppServiceRecord:":{"name":"-initWithUpdateReason:updatedAppServiceRecord:","abstract":"<p>Convenience init for all parameters.</p>","parent_name":"SDLAppServiceCapability"},"Classes/SDLAppServiceCapability.html#/c:objc(cs)SDLAppServiceCapability(py)updateReason":{"name":"updateReason","abstract":"<p>Only included in <code>OnSystemCapbilityUpdated</code>. Update reason for this service record.</p>","parent_name":"SDLAppServiceCapability"},"Classes/SDLAppServiceCapability.html#/c:objc(cs)SDLAppServiceCapability(py)updatedAppServiceRecord":{"name":"updatedAppServiceRecord","abstract":"<p>Service record for a specific app service provider.</p>","parent_name":"SDLAppServiceCapability"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(cm)currentAppInfo":{"name":"+currentAppInfo","abstract":"<p>Undocumented</p>","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appDisplayName":{"name":"appDisplayName","abstract":"<p>The name displayed for the mobile application on the mobile device (can differ from the app name set in the initial RAI request).</p>","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appBundleID":{"name":"appBundleID","abstract":"<p>The AppBundleID of an iOS application or package name of the Android application. This supports App Launch strategies for each platform.</p>","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appVersion":{"name":"appVersion","abstract":"<p>Represents the build version number of this particular mobile app.</p>","parent_name":"SDLAppInfo"},"Classes/SDLAlertResponse.html#/c:objc(cs)SDLAlertResponse(py)tryAgainTime":{"name":"tryAgainTime","abstract":"<p>Undocumented</p>","parent_name":"SDLAlertResponse"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTS:softButtons:":{"name":"-initWithTTS:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTSChunks:softButtons:":{"name":"-initWithTTSChunks:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)ttsChunks":{"name":"ttsChunks","abstract":"<p>An array of text chunks.</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)softButtons":{"name":"softButtons","abstract":"<p>An arry of soft buttons. If omitted on supported displays, only the system defined <q>Close</q> SoftButton shall be displayed.</p>","parent_name":"SDLAlertManeuver"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:duration:":{"name":"-initWithAlertText1:alertText2:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:":{"name":"-initWithAlertText1:alertText2:alertText3:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:softButtons:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:playTone:":{"name":"-initWithTTS:playTone:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:alertText1:alertText2:playTone:duration:":{"name":"-initWithTTS:alertText1:alertText2:playTone:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:alertText1:alertText2:alertText3:playTone:duration:":{"name":"-initWithTTS:alertText1:alertText2:alertText3:playTone:duration:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:playTone:":{"name":"-initWithTTSChunks:playTone:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:":{"name":"-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:":{"name":"-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:","abstract":"<p>Undocumented</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText1":{"name":"alertText1","abstract":"<p>The String to be displayed in the first field of the display during the Alert</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText2":{"name":"alertText2","abstract":"<p>The String to be displayed in the second field of the display during the Alert</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText3":{"name":"alertText3","abstract":"<p>the String to be displayed in the third field of the display during the Alert","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)ttsChunks":{"name":"ttsChunks","abstract":"<p>An array which, taken together, specify what is to be spoken to the user</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)duration":{"name":"duration","abstract":"<p>The duration of the displayed portion of the alert, in milliseconds.</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)playTone":{"name":"playTone","abstract":"<p>Whether the alert tone should be played before the TTS (if any) is spoken.</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)progressIndicator":{"name":"progressIndicator","abstract":"<p>If supported on the given platform, the alert GUI will include some sort of animation indicating that loading of a feature is progressing. e.g. a spinning wheel or hourglass, etc.</p>","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)softButtons":{"name":"softButtons","abstract":"<p>App defined SoftButtons.</p>","parent_name":"SDLAlert"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverAirbagDeployed":{"name":"driverAirbagDeployed","abstract":"<p>References signal <q>VedsDrvBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverSideAirbagDeployed":{"name":"driverSideAirbagDeployed","abstract":"<p>References signal <q>VedsDrvSideBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverCurtainAirbagDeployed":{"name":"driverCurtainAirbagDeployed","abstract":"<p>References signal <q>VedsDrvCrtnBag_D_Ltchd</q>. See VehicleDataEventStatus</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerAirbagDeployed":{"name":"passengerAirbagDeployed","abstract":"<p>References signal <q>VedsPasBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerCurtainAirbagDeployed":{"name":"passengerCurtainAirbagDeployed","abstract":"<p>References signal <q>VedsPasCrtnBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverKneeAirbagDeployed":{"name":"driverKneeAirbagDeployed","abstract":"<p>References signal <q>VedsKneeDrvBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerSideAirbagDeployed":{"name":"passengerSideAirbagDeployed","abstract":"<p>References signal <q>VedsPasSideBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerKneeAirbagDeployed":{"name":"passengerKneeAirbagDeployed","abstract":"<p>References signal <q>VedsKneePasBag_D_Ltchd</q>. See VehicleDataEventStatus.</p>","parent_name":"SDLAirbagStatus"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:":{"name":"-initWithId:menuName:","abstract":"<p>Undocumented</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:position:":{"name":"-initWithId:menuName:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:menuIcon:position:":{"name":"-initWithId:menuName:menuIcon:position:","abstract":"<p>Undocumented</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuID":{"name":"menuID","abstract":"<p>a Menu ID that identifies a sub menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)position":{"name":"position","abstract":"<p>a position of menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuName":{"name":"menuName","abstract":"<p>a menuName which is displayed representing this submenu item","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuIcon":{"name":"menuIcon","abstract":"<p>An image that is displayed alongside this submenu item</p>","parent_name":"SDLAddSubMenu"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"<p>Constructs a SDLAddCommand with a handler callback when an event occurs.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:handler:":{"name":"-initWithId:vrCommands:handler:","abstract":"<p>Convenience init for creating a voice command menu item.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:handler:":{"name":"-initWithId:vrCommands:menuName:handler:","abstract":"<p>Convenience init for creating a menu item with text.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:":{"name":"-initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:","abstract":"<p>Convenience init for creating a menu item with text and a custom icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:iconIsTemplate:handler:":{"name":"-initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:iconIsTemplate:handler:","abstract":"<p>Convenience init for creating a menu item with text and a custom icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:parentId:position:icon:handler:":{"name":"-initWithId:vrCommands:menuName:parentId:position:icon:handler:","abstract":"<p>Convenience init for creating a menu item with text and a custom icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)handler":{"name":"handler","abstract":"<p>A handler that will let you know when the button you created is subscribed.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdID":{"name":"cmdID","abstract":"<p>A unique id that identifies the command.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)menuParams":{"name":"menuParams","abstract":"<p>A <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLMenuParams.html\">SDLMenuParams</a></code> pointer which defines the command and how it is added to the command menu.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)vrCommands":{"name":"vrCommands","abstract":"<p>An array of strings to be used as VR synonyms for this command.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdIcon":{"name":"cmdIcon","abstract":"<p>Image struct containing a static or dynamic icon.</p>","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html":{"name":"SDLAddCommand","abstract":"<p>This class will add a command to the application’s Command Menu</p>"},"Classes.html#/c:objc(cs)SDLAddCommandResponse":{"name":"SDLAddCommandResponse","abstract":"<p>Response to <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLAddCommand.html\">SDLAddCommand</a></code></p>"},"Classes/SDLAddSubMenu.html":{"name":"SDLAddSubMenu","abstract":"<p>Add a SDLSubMenu to the Command Menu"},"Classes.html#/c:objc(cs)SDLAddSubMenuResponse":{"name":"SDLAddSubMenuResponse","abstract":"<p>Response to <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLAddSubMenu.html\">SDLAddSubMenu</a></code></p>"},"Classes/SDLAirbagStatus.html":{"name":"SDLAirbagStatus","abstract":"<p>A vehicle data status struct for airbags</p>"},"Classes/SDLAlert.html":{"name":"SDLAlert","abstract":"<p>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.</p>"},"Classes/SDLAlertManeuver.html":{"name":"SDLAlertManeuver","abstract":"<p>Shows a SDLShowConstantTBT message with an optional voice command. This message is shown as an overlay over the display’s base screen.</p>"},"Classes.html#/c:objc(cs)SDLAlertManeuverResponse":{"name":"SDLAlertManeuverResponse","abstract":"<p>Response to SDLAlertManeuver</p>"},"Classes/SDLAlertResponse.html":{"name":"SDLAlertResponse","abstract":"<p>Response to SDLAlert</p>"},"Classes/SDLAppInfo.html":{"name":"SDLAppInfo","abstract":"<p>A struct used in register app interface. Contains detailed information about the registered application.</p>"},"Classes/SDLAppServiceCapability.html":{"name":"SDLAppServiceCapability","abstract":"<p>Undocumented</p>"},"Classes/SDLAppServiceData.html":{"name":"SDLAppServiceData","abstract":"<p>Undocumented</p>"},"Classes/SDLAppServiceManifest.html":{"name":"SDLAppServiceManifest","abstract":"<p>This manifest contains all the information necessary for the service to be published, activated, and allow consumers to interact with it</p>"},"Classes/SDLAppServiceRecord.html":{"name":"SDLAppServiceRecord","abstract":"<p>Undocumented</p>"},"Classes/SDLAppServicesCapabilities.html":{"name":"SDLAppServicesCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLArtwork.html":{"name":"SDLArtwork","abstract":"<p>Undocumented</p>"},"Classes/SDLAudioControlCapabilities.html":{"name":"SDLAudioControlCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLAudioControlData.html":{"name":"SDLAudioControlData","abstract":"<p>Undocumented</p>"},"Classes/SDLAudioPassThruCapabilities.html":{"name":"SDLAudioPassThruCapabilities","abstract":"<p>Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}</p>"},"Classes/SDLAudioStreamManager.html":{"name":"SDLAudioStreamManager","abstract":"<p>Undocumented</p>"},"Classes/SDLBeltStatus.html":{"name":"SDLBeltStatus","abstract":"<p>Vehicle data struct for the seat belt status</p>"},"Classes/SDLBodyInformation.html":{"name":"SDLBodyInformation","abstract":"<p>The body information including power modes.</p>"},"Classes/SDLButtonCapabilities.html":{"name":"SDLButtonCapabilities","abstract":"<p>Provides information about the capabilities of a SDL HMI button.</p>"},"Classes/SDLButtonPress.html":{"name":"SDLButtonPress","abstract":"<p>This RPC allows a remote control type mobile application to simulate a hardware button press event.</p>"},"Classes.html#/c:objc(cs)SDLButtonPressResponse":{"name":"SDLButtonPressResponse","abstract":"<p>Response to SDLButtonPress</p>"},"Classes/SDLCarWindowViewController.html":{"name":"SDLCarWindowViewController","abstract":"<p>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.</p>"},"Classes/SDLChangeRegistration.html":{"name":"SDLChangeRegistration","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLChangeRegistrationResponse":{"name":"SDLChangeRegistrationResponse","abstract":"<p>Response to SDLChangeRegistrations</p>"},"Classes/SDLChoice.html":{"name":"SDLChoice","abstract":"<p>A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction.</p>"},"Classes/SDLChoiceCell.html":{"name":"SDLChoiceCell","abstract":"<p>Undocumented</p>"},"Classes/SDLChoiceSet.html":{"name":"SDLChoiceSet","abstract":"<p>Undocumented</p>"},"Classes/SDLClimateControlCapabilities.html":{"name":"SDLClimateControlCapabilities","abstract":"<p>Contains information about a climate control module’s capabilities.</p>"},"Classes/SDLClimateControlData.html":{"name":"SDLClimateControlData","abstract":"<p>The current information for the Climate Remote Control Module</p>"},"Classes/SDLCloudAppProperties.html":{"name":"SDLCloudAppProperties","abstract":"<p>Undocumented</p>"},"Classes/SDLClusterModeStatus.html":{"name":"SDLClusterModeStatus","abstract":"<p>A vehicle data struct for the cluster mode and power status</p>"},"Classes/SDLConfiguration.html":{"name":"SDLConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLCreateInteractionChoiceSet.html":{"name":"SDLCreateInteractionChoiceSet","abstract":"<p>Creates a Choice Set which can be used in subsequent <em>SDLPerformInteraction</em> Operations.</p>"},"Classes.html#/c:objc(cs)SDLCreateInteractionChoiceSetResponse":{"name":"SDLCreateInteractionChoiceSetResponse","abstract":"<p>Response to SDLCreateInteractionChoiceSet has been called</p>"},"Classes/SDLDIDResult.html":{"name":"SDLDIDResult","abstract":"<p>A vehicle data struct</p>"},"Classes/SDLDateTime.html":{"name":"SDLDateTime","abstract":"<p>A struct referenced in SendLocation for an absolute date</p>"},"Classes/SDLDeleteCommand.html":{"name":"SDLDeleteCommand","abstract":"<p>Removes a command from the Command Menu"},"Classes.html#/c:objc(cs)SDLDeleteCommandResponse":{"name":"SDLDeleteCommandResponse","abstract":"<p>Response to SDLDeleteCommand</p>"},"Classes/SDLDeleteFile.html":{"name":"SDLDeleteFile","abstract":"<p>Used to delete a file resident on the SDL module in the app’s local cache."},"Classes/SDLDeleteFileResponse.html":{"name":"SDLDeleteFileResponse","abstract":"<p>Response to SDLDeleteFile</p>"},"Classes/SDLDeleteInteractionChoiceSet.html":{"name":"SDLDeleteInteractionChoiceSet","abstract":"<p>Deletes an existing Choice Set identified by the parameter"},"Classes.html#/c:objc(cs)SDLDeleteInteractionChoiceSetResponse":{"name":"SDLDeleteInteractionChoiceSetResponse","abstract":"<p>SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called</p>"},"Classes/SDLDeleteSubMenu.html":{"name":"SDLDeleteSubMenu","abstract":"<p>Deletes a submenu from the Command Menu"},"Classes.html#/c:objc(cs)SDLDeleteSubMenuResponse":{"name":"SDLDeleteSubMenuResponse","abstract":"<p>Response to SDLDeleteSubMenu</p>"},"Classes/SDLDeviceInfo.html":{"name":"SDLDeviceInfo","abstract":"<p>Various information about connecting device. Referenced in RegisterAppInterface</p>"},"Classes/SDLDeviceStatus.html":{"name":"SDLDeviceStatus","abstract":"<p>Describes the status related to a connected mobile device or SDL and if or how it is represented in the vehicle.</p>"},"Classes/SDLDiagnosticMessage.html":{"name":"SDLDiagnosticMessage","abstract":"<p>Non periodic vehicle diagnostic request</p>"},"Classes/SDLDiagnosticMessageResponse.html":{"name":"SDLDiagnosticMessageResponse","abstract":"<p>Response to SDLDiagnosticMessage</p>"},"Classes/SDLDialNumber.html":{"name":"SDLDialNumber","abstract":"<p>This RPC is used to tell the head unit to use bluetooth to dial a phone number using the phone.</p>"},"Classes.html#/c:objc(cs)SDLDialNumberResponse":{"name":"SDLDialNumberResponse","abstract":"<p>The response to SDLDialNumber</p>"},"Classes/SDLDisplayCapabilities.html":{"name":"SDLDisplayCapabilities","abstract":"<p>Contains information about the display for the SDL system to which the application is currently connected.</p>"},"Classes/SDLECallInfo.html":{"name":"SDLECallInfo","abstract":"<p>A vehicle data struct for emergency call information</p>"},"Classes/SDLEmergencyEvent.html":{"name":"SDLEmergencyEvent","abstract":"<p>A vehicle data struct for an emergency event</p>"},"Classes/SDLEncodedSyncPData.html":{"name":"SDLEncodedSyncPData","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLEncodedSyncPDataResponse":{"name":"SDLEncodedSyncPDataResponse","abstract":"<p>The response to SDLEncodedSyncPData</p>"},"Classes.html#/c:objc(cs)SDLEndAudioPassThru":{"name":"SDLEndAudioPassThru","abstract":"<p>When this request is invoked, the audio capture stops</p>"},"Classes.html#/c:objc(cs)SDLEndAudioPassThruResponse":{"name":"SDLEndAudioPassThruResponse","abstract":"<p>Response to SDLEndAudioPassThru</p>"},"Classes/SDLEqualizerSettings.html":{"name":"SDLEqualizerSettings","abstract":"<p>Defines the each Equalizer channel settings.</p>"},"Classes/SDLFile.html":{"name":"SDLFile","abstract":"<p>Undocumented</p>"},"Classes/SDLFileManager.html":{"name":"SDLFileManager","abstract":"<p>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.</p>"},"Classes/SDLFileManagerConfiguration.html":{"name":"SDLFileManagerConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLFuelRange.html":{"name":"SDLFuelRange","abstract":"<p>Describes the distance a vehicle can travel with the current level of fuel.</p>"},"Classes/SDLFunctionID.html":{"name":"SDLFunctionID","abstract":"<p>Undocumented</p>"},"Classes/SDLGPSData.html":{"name":"SDLGPSData","abstract":"<p>Describes the GPS data. Not all data will be available on all carlines.</p>"},"Classes.html#/c:objc(cs)SDLGenericResponse":{"name":"SDLGenericResponse","abstract":"<p>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.</p>"},"Classes/SDLGetAppServiceData.html":{"name":"SDLGetAppServiceData","abstract":"<p>This request asks the module for current data related to the specific service. It also includes an option to subscribe to that service for future updates.</p>"},"Classes/SDLGetAppServiceDataResponse.html":{"name":"SDLGetAppServiceDataResponse","abstract":"<p>Undocumented</p>"},"Classes/SDLGetCloudAppProperties.html":{"name":"SDLGetCloudAppProperties","abstract":"<p>RPC used to get the current properties of a cloud application.</p>"},"Classes/SDLGetCloudAppPropertiesResponse.html":{"name":"SDLGetCloudAppPropertiesResponse","abstract":"<p>The response to GetCloudAppProperties</p>"},"Classes/SDLGetDTCs.html":{"name":"SDLGetDTCs","abstract":"<p>This RPC allows to request diagnostic module trouble codes from a certain"},"Classes/SDLGetDTCsResponse.html":{"name":"SDLGetDTCsResponse","abstract":"<p>Response to SDLGetDTCs</p>"},"Classes/SDLGetFile.html":{"name":"SDLGetFile","abstract":"<p>This request is sent to the module to retrieve a file.</p>"},"Classes/SDLGetFileResponse.html":{"name":"SDLGetFileResponse","abstract":"<p>Undocumented</p>"},"Classes/SDLGetInteriorVehicleData.html":{"name":"SDLGetInteriorVehicleData","abstract":"<p>Reads the current status value of specified remote control module (type)."},"Classes/SDLGetInteriorVehicleDataResponse.html":{"name":"SDLGetInteriorVehicleDataResponse","abstract":"<p>A response to SDLGetInteriorVehicleData</p>"},"Classes/SDLGetSystemCapability.html":{"name":"SDLGetSystemCapability","abstract":"<p>Undocumented</p>"},"Classes/SDLGetSystemCapabilityResponse.html":{"name":"SDLGetSystemCapabilityResponse","abstract":"<p>Response to SDLGetSystemCapability</p>"},"Classes/SDLGetVehicleData.html":{"name":"SDLGetVehicleData","abstract":"<p>Requests current values of specific published vehicle data items.</p>"},"Classes/SDLGetVehicleDataResponse.html":{"name":"SDLGetVehicleDataResponse","abstract":"<p>Response to SDLGetVehicleData</p>"},"Classes/SDLGetWayPoints.html":{"name":"SDLGetWayPoints","abstract":"<p>Undocumented</p>"},"Classes/SDLGetWayPointsResponse.html":{"name":"SDLGetWayPointsResponse","abstract":"<p>Response to SDLGetWayPoints</p>"},"Classes/SDLHMICapabilities.html":{"name":"SDLHMICapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLHMIPermissions.html":{"name":"SDLHMIPermissions","abstract":"<p>Defining sets of HMI levels, which are permitted or prohibited for a given RPC.</p>"},"Classes/SDLHMISettingsControlCapabilities.html":{"name":"SDLHMISettingsControlCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLHMISettingsControlData.html":{"name":"SDLHMISettingsControlData","abstract":"<p>Corresponds to <q>HMI_SETTINGS</q> ModuleType</p>"},"Classes/SDLHapticRect.html":{"name":"SDLHapticRect","abstract":"<p>Defines spatial for each user control object for video streaming application</p>"},"Classes/SDLHeadLampStatus.html":{"name":"SDLHeadLampStatus","abstract":"<p>Vehicle data struct for status of head lamps</p>"},"Classes/SDLImage.html":{"name":"SDLImage","abstract":"<p>Specifies which image shall be used e.g. in SDLAlerts or on SDLSoftbuttons provided the display supports it.</p>"},"Classes/SDLImageField.html":{"name":"SDLImageField","abstract":"<p>A struct used in DisplayCapabilities describing the capability of an image field</p>"},"Classes/SDLImageResolution.html":{"name":"SDLImageResolution","abstract":"<p>The resolution of an image</p>"},"Classes/SDLKeyboardProperties.html":{"name":"SDLKeyboardProperties","abstract":"<p>Configuration of on-screen keyboard (if available)</p>"},"Classes/SDLLifecycleConfiguration.html":{"name":"SDLLifecycleConfiguration","abstract":"<p>Configuration options for SDLManager</p>"},"Classes/SDLLifecycleConfigurationUpdate.html":{"name":"SDLLifecycleConfigurationUpdate","abstract":"<p>Configuration update options for SDLManager. This class can be used to update the lifecycle configuration in"},"Classes/SDLLightCapabilities.html":{"name":"SDLLightCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLLightControlCapabilities.html":{"name":"SDLLightControlCapabilities","abstract":"<p>Undocumented</p>"},"Classes/SDLLightControlData.html":{"name":"SDLLightControlData","abstract":"<p>Undocumented</p>"},"Classes/SDLLightState.html":{"name":"SDLLightState","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLListFiles":{"name":"SDLListFiles","abstract":"<p>Requests the current list of resident filenames for the registered app. Not"},"Classes/SDLListFilesResponse.html":{"name":"SDLListFilesResponse","abstract":"<p>Response to SDLListFiles</p>"},"Classes/SDLLocationCoordinate.html":{"name":"SDLLocationCoordinate","abstract":"<p>Describes a coordinate on earth</p>"},"Classes/SDLLocationDetails.html":{"name":"SDLLocationDetails","abstract":"<p>Describes a location, including its coordinate, name, etc. Used in WayPoints.</p>"},"Classes/SDLLockScreenConfiguration.html":{"name":"SDLLockScreenConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLLockScreenViewController.html":{"name":"SDLLockScreenViewController","abstract":"<p>Undocumented</p>"},"Classes/SDLLogConfiguration.html":{"name":"SDLLogConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLLogFileModule.html":{"name":"SDLLogFileModule","abstract":"<p>Undocumented</p>"},"Classes/SDLLogFilter.html":{"name":"SDLLogFilter","abstract":"<p>Undocumented</p>"},"Classes/SDLLogManager.html":{"name":"SDLLogManager","abstract":"<p>This is the central manager of logging. A developer should not have to interact with this class, it is exclusively used internally.</p>"},"Classes.html#/c:objc(cs)SDLLogTargetAppleSystemLog":{"name":"SDLLogTargetAppleSystemLog","abstract":"<p>The Apple System Log target is an iOS 2.0+ compatible log target that logs to both the Console and to the System Log.</p>"},"Classes.html#/c:objc(cs)SDLLogTargetFile":{"name":"SDLLogTargetFile","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLLogTargetOSLog":{"name":"SDLLogTargetOSLog","abstract":"<p>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). </p>"},"Classes/SDLManager.html":{"name":"SDLManager","abstract":"<p>Undocumented</p>"},"Classes/SDLMassageCushionFirmness.html":{"name":"SDLMassageCushionFirmness","abstract":"<p>The intensity or firmness of a cushion.</p>"},"Classes/SDLMassageModeData.html":{"name":"SDLMassageModeData","abstract":"<p>Specify the mode of a massage zone.</p>"},"Classes/SDLMediaServiceData.html":{"name":"SDLMediaServiceData","abstract":"<p>This data is related to what a media service should provide.</p>"},"Classes.html#/c:objc(cs)SDLMediaServiceManifest":{"name":"SDLMediaServiceManifest","abstract":"<p>A media service manifest.</p>"},"Classes/SDLMenuCell.html":{"name":"SDLMenuCell","abstract":"<p>Undocumented</p>"},"Classes/SDLMenuParams.html":{"name":"SDLMenuParams","abstract":"<p>Used when adding a sub menu to an application menu or existing sub menu.</p>"},"Classes/SDLMetadataTags.html":{"name":"SDLMetadataTags","abstract":"<p>Undocumented</p>"},"Classes/SDLModuleData.html":{"name":"SDLModuleData","abstract":"<p>Describes a remote control module’s data</p>"},"Classes/SDLMyKey.html":{"name":"SDLMyKey","abstract":"<p>Vehicle Data struct</p>"},"Classes/SDLNavigationCapability.html":{"name":"SDLNavigationCapability","abstract":"<p>Extended capabilities for an onboard navigation system</p>"},"Classes/SDLNavigationInstruction.html":{"name":"SDLNavigationInstruction","abstract":"<p>Undocumented</p>"},"Classes/SDLNavigationServiceData.html":{"name":"SDLNavigationServiceData","abstract":"<p>Undocumented</p>"},"Classes/SDLNavigationServiceManifest.html":{"name":"SDLNavigationServiceManifest","abstract":"<p>Undocumented</p>"},"Classes/SDLNotificationConstants.html":{"name":"SDLNotificationConstants","abstract":"<p>Undocumented</p>"},"Classes/SDLOasisAddress.html":{"name":"SDLOasisAddress","abstract":"<p>Struct used in SendLocation describing an address</p>"},"Classes/SDLOnAppInterfaceUnregistered.html":{"name":"SDLOnAppInterfaceUnregistered","abstract":"<p>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.</p>"},"Classes/SDLOnAppServiceData.html":{"name":"SDLOnAppServiceData","abstract":"<p>This notification includes the data that is updated from the specific service.</p>"},"Classes.html#/c:objc(cs)SDLOnAudioPassThru":{"name":"SDLOnAudioPassThru","abstract":"<p>Binary data is in binary part of hybrid msg.</p>"},"Classes/SDLOnButtonEvent.html":{"name":"SDLOnButtonEvent","abstract":"<p>Notifies application that user has depressed or released a button to which"},"Classes/SDLOnButtonPress.html":{"name":"SDLOnButtonPress","abstract":"<p>Notifies application of button press events for buttons to which the application is subscribed. SDL supports two button press events defined as follows:</p>"},"Classes/SDLOnCommand.html":{"name":"SDLOnCommand","abstract":"<p>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.</p>"},"Classes/SDLOnDriverDistraction.html":{"name":"SDLOnDriverDistraction","abstract":"<p>Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or not).</p>"},"Classes/SDLOnEncodedSyncPData.html":{"name":"SDLOnEncodedSyncPData","abstract":"<p>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 ***</p>"},"Classes/SDLOnHMIStatus.html":{"name":"SDLOnHMIStatus"},"Classes/SDLOnHashChange.html":{"name":"SDLOnHashChange","abstract":"<p>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.</p>"},"Classes/SDLOnInteriorVehicleData.html":{"name":"SDLOnInteriorVehicleData","abstract":"<p>Notifications when subscribed vehicle data changes.</p>"},"Classes/SDLOnKeyboardInput.html":{"name":"SDLOnKeyboardInput","abstract":"<p>Sent when a keyboard presented by a PerformInteraction has a keyboard input.</p>"},"Classes/SDLOnLanguageChange.html":{"name":"SDLOnLanguageChange","abstract":"<p>Provides information to what language the SDL HMI language was changed</p>"},"Classes/SDLOnLockScreenStatus.html":{"name":"SDLOnLockScreenStatus","abstract":"<p>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.</p>"},"Classes/SDLOnPermissionsChange.html":{"name":"SDLOnPermissionsChange","abstract":"<p>Provides update to app of which sets of functions are available</p>"},"Classes/SDLOnRCStatus.html":{"name":"SDLOnRCStatus","abstract":"<p>OnRCStatus notifications to all registered mobile applications and the HMI whenever"},"Classes/SDLOnSyncPData.html":{"name":"SDLOnSyncPData","abstract":"<p>DEPRECATED</p>"},"Classes/SDLOnSystemCapabilityUpdated.html":{"name":"SDLOnSystemCapabilityUpdated","abstract":"<p>A notification to inform the connected device that a specific system capability has changed.</p>"},"Classes/SDLOnSystemRequest.html":{"name":"SDLOnSystemRequest","abstract":"<p>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)</p>"},"Classes/SDLOnTBTClientState.html":{"name":"SDLOnTBTClientState","abstract":"<p>Provides applications with notifications specific to the current TBT client status on the module</p>"},"Classes/SDLOnTouchEvent.html":{"name":"SDLOnTouchEvent","abstract":"<p>Notifies about touch events on the screen’s prescribed area during video streaming</p>"},"Classes/SDLOnVehicleData.html":{"name":"SDLOnVehicleData","abstract":"<p>Callback for the periodic and non periodic vehicle data read function.</p>"},"Classes/SDLOnWayPointChange.html":{"name":"SDLOnWayPointChange","abstract":"<p>Notification which provides the entire LocationDetails when there is a change to any waypoints or destination.</p>"},"Classes/SDLParameterPermissions.html":{"name":"SDLParameterPermissions","abstract":"<p>Defining sets of parameters, which are permitted or prohibited for a given RPC.</p>"},"Classes/SDLPerformAppServiceInteraction.html":{"name":"SDLPerformAppServiceInteraction","abstract":"<p>App service providers will likely have different actions exposed to the module and app service consumers. It will be difficult to standardize these actions by RPC versions and can easily become stale. Therefore, we introduce a best-effort attempt to take actions on a service.</p>"},"Classes/SDLPerformAppServiceInteractionResponse.html":{"name":"SDLPerformAppServiceInteractionResponse","abstract":"<p>Undocumented</p>"},"Classes/SDLPerformAudioPassThru.html":{"name":"SDLPerformAudioPassThru","abstract":"<p>This will open an audio pass thru session. By doing so the app can receive"},"Classes.html#/c:objc(cs)SDLPerformAudioPassThruResponse":{"name":"SDLPerformAudioPassThruResponse","abstract":"<p>Response to SDLPerformAudioPassThru</p>"},"Classes/SDLPerformInteraction.html":{"name":"SDLPerformInteraction","abstract":"<p>Performs an application-initiated interaction in which the user can select a"},"Classes/SDLPerformInteractionResponse.html":{"name":"SDLPerformInteractionResponse","abstract":"<p>PerformInteraction Response is sent, when SDLPerformInteraction has been called</p>"},"Classes/SDLPermissionItem.html":{"name":"SDLPermissionItem","abstract":"<p>Undocumented</p>"},"Classes/SDLPermissionManager.html":{"name":"SDLPermissionManager","abstract":"<p>Undocumented</p>"},"Classes/SDLPhoneCapability.html":{"name":"SDLPhoneCapability","abstract":"<p>Extended capabilities of the module’s phone feature</p>"},"Classes/SDLPinchGesture.html":{"name":"SDLPinchGesture","abstract":"<p>Undocumented</p>"},"Classes/SDLPresetBankCapabilities.html":{"name":"SDLPresetBankCapabilities","abstract":"<p>Contains information about on-screen preset capabilities.</p>"},"Classes/SDLPublishAppService.html":{"name":"SDLPublishAppService","abstract":"<p>Registers a service offered by this app on the module.</p>"},"Classes/SDLPublishAppServiceResponse.html":{"name":"SDLPublishAppServiceResponse","abstract":"<p>Undocumented</p>"},"Classes/SDLPutFile.html":{"name":"SDLPutFile","abstract":"<p>Used to push a binary data onto the SDL module from a mobile device, such as icons and album art.</p>"},"Classes/SDLPutFileResponse.html":{"name":"SDLPutFileResponse","abstract":"<p>Response to SDLPutFile</p>"},"Classes/SDLRDSData.html":{"name":"SDLRDSData","abstract":"<p>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.</p>"},"Classes/SDLRGBColor.html":{"name":"SDLRGBColor","abstract":"<p>Undocumented</p>"},"Classes/SDLRPCMessage.html":{"name":"SDLRPCMessage","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLRPCNotification":{"name":"SDLRPCNotification","abstract":"<p>An RPC sent from the head unit to the app about some data change, such as a button was pressed</p>"},"Classes/SDLRPCNotificationNotification.html":{"name":"SDLRPCNotificationNotification","abstract":"<p>An NSNotification object that makes retrieving internal SDLRPCNotification data easier</p>"},"Classes/SDLRPCRequest.html":{"name":"SDLRPCRequest","abstract":"<p>Undocumented</p>"},"Classes/SDLRPCRequestNotification.html":{"name":"SDLRPCRequestNotification","abstract":"<p>A NSNotification object that makes retrieving internal SDLRPCRequest data easier</p>"},"Classes/SDLRPCResponse.html":{"name":"SDLRPCResponse","abstract":"<p>Undocumented</p>"},"Classes/SDLRPCResponseNotification.html":{"name":"SDLRPCResponseNotification","abstract":"<p>A NSNotification object that makes retrieving internal SDLRPCResponse data easier</p>"},"Classes/SDLRPCStruct.html":{"name":"SDLRPCStruct","abstract":"<p>Undocumented</p>"},"Classes/SDLRadioControlCapabilities.html":{"name":"SDLRadioControlCapabilities","abstract":"<p>Contains information about a radio control module’s capabilities.</p>"},"Classes/SDLRadioControlData.html":{"name":"SDLRadioControlData","abstract":"<p>Include information (both read-only and changeable data) about a remote control radio module.</p>"},"Classes/SDLReadDID.html":{"name":"SDLReadDID","abstract":"<p>Non periodic vehicle data read request. This is an RPC to get diagnostics"},"Classes/SDLReadDIDResponse.html":{"name":"SDLReadDIDResponse","abstract":"<p>A response to ReadDID</p>"},"Classes/SDLRectangle.html":{"name":"SDLRectangle","abstract":"<p>A struct describing a rectangle</p>"},"Classes/SDLRegisterAppInterface.html":{"name":"SDLRegisterAppInterface","abstract":"<p>Registers the application’s interface with SDL. The <code>RegisterAppInterface</code> RPC declares the properties of the app, 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 <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses.html#/c:objc(cs)SDLUnregisterAppInterface\">SDLUnregisterAppInterface</a></code> method, or by SDL sending an <code><a href=\"36f8f5912051ae747ef441d6511ca4cbClasses/SDLOnAppInterfaceUnregistered.html\">SDLOnAppInterfaceUnregistered</a></code> notification, or by loss of the underlying transport connection, or closing of the underlying message transmission protocol RPC session.</p>"},"Classes/SDLRegisterAppInterfaceResponse.html":{"name":"SDLRegisterAppInterfaceResponse","abstract":"<p>Response to SDLRegisterAppInterface</p>"},"Classes/SDLRemoteControlCapabilities.html":{"name":"SDLRemoteControlCapabilities","abstract":"<p>Capabilities of the remote control feature</p>"},"Classes/SDLResetGlobalProperties.html":{"name":"SDLResetGlobalProperties","abstract":"<p>Resets the passed global properties to their default values as defined by"},"Classes.html#/c:objc(cs)SDLResetGlobalPropertiesResponse":{"name":"SDLResetGlobalPropertiesResponse","abstract":"<p>Response to ResetGlobalProperties</p>"},"Classes/SDLSISData.html":{"name":"SDLSISData","abstract":"<p>HD radio Station Information Service (SIS) data.</p>"},"Classes/SDLScreenManager.html":{"name":"SDLScreenManager","abstract":"<p>Undocumented</p>"},"Classes/SDLScreenParams.html":{"name":"SDLScreenParams","abstract":"<p>A struct in DisplayCapabilities describing parameters related to a video / touch input area</p>"},"Classes/SDLScrollableMessage.html":{"name":"SDLScrollableMessage","abstract":"<p>Creates a full screen overlay containing a large block of formatted text that"},"Classes.html#/c:objc(cs)SDLScrollableMessageResponse":{"name":"SDLScrollableMessageResponse","abstract":"<p>Response to SDLScrollableMessage</p>"},"Classes/SDLSeatControlCapabilities.html":{"name":"SDLSeatControlCapabilities","abstract":"<p>Include information about a seat control capabilities.</p>"},"Classes/SDLSeatControlData.html":{"name":"SDLSeatControlData","abstract":"<p>Seat control data corresponds to <q>SEAT</q> ModuleType.</p>"},"Classes/SDLSeatMemoryAction.html":{"name":"SDLSeatMemoryAction","abstract":"<p>Specify the action to be performed.</p>"},"Classes/SDLSendHapticData.html":{"name":"SDLSendHapticData","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLSendHapticDataResponse":{"name":"SDLSendHapticDataResponse","abstract":"<p>Response to SDLSendHapticData</p>"},"Classes/SDLSendLocation.html":{"name":"SDLSendLocation","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLSendLocationResponse":{"name":"SDLSendLocationResponse","abstract":"<p>Response to SDLSendLocation</p>"},"Classes/SDLSetAppIcon.html":{"name":"SDLSetAppIcon","abstract":"<p>Used to set existing local file on SDL as the app’s icon. Not supported on"},"Classes.html#/c:objc(cs)SDLSetAppIconResponse":{"name":"SDLSetAppIconResponse","abstract":"<p>Response to SDLSetAppIcon</p>"},"Classes/SDLSetCloudAppProperties.html":{"name":"SDLSetCloudAppProperties","abstract":"<p>RPC used to enable/disable a cloud application and set authentication data</p>"},"Classes.html#/c:objc(cs)SDLSetCloudAppPropertiesResponse":{"name":"SDLSetCloudAppPropertiesResponse","abstract":"<p>The response to SetCloudAppProperties</p>"},"Classes/SDLSetDisplayLayout.html":{"name":"SDLSetDisplayLayout","abstract":"<p>Used to set an alternate display layout. If not sent, default screen for"},"Classes/SDLSetDisplayLayoutResponse.html":{"name":"SDLSetDisplayLayoutResponse","abstract":"<p>Response to SDLSetDisplayLayout</p>"},"Classes/SDLSetGlobalProperties.html":{"name":"SDLSetGlobalProperties","abstract":"<p>Sets global property values</p>"},"Classes.html#/c:objc(cs)SDLSetGlobalPropertiesResponse":{"name":"SDLSetGlobalPropertiesResponse","abstract":"<p>Response to SDLSetGlobalProperties</p>"},"Classes/SDLSetInteriorVehicleData.html":{"name":"SDLSetInteriorVehicleData","abstract":"<p>This RPC allows a remote control type mobile application to"},"Classes/SDLSetInteriorVehicleDataResponse.html":{"name":"SDLSetInteriorVehicleDataResponse","abstract":"<p>Response to SDLSetInteriorVehicleData</p>"},"Classes/SDLSetMediaClockTimer.html":{"name":"SDLSetMediaClockTimer","abstract":"<p>Sets the media clock/timer value and the update method (e.g.count-up,"},"Classes.html#/c:objc(cs)SDLSetMediaClockTimerResponse":{"name":"SDLSetMediaClockTimerResponse","abstract":"<p>Response to SDLSetMediaClockTimer</p>"},"Classes/SDLShow.html":{"name":"SDLShow","abstract":"<p>Updates the application’s display text area, regardless of whether or not"},"Classes/SDLShowConstantTBT.html":{"name":"SDLShowConstantTBT","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLShowConstantTBTResponse":{"name":"SDLShowConstantTBTResponse","abstract":"<p>Response to SDLShowConstantTBT</p>"},"Classes.html#/c:objc(cs)SDLShowResponse":{"name":"SDLShowResponse","abstract":"<p>Response to SDLShow</p>"},"Classes/SDLSingleTireStatus.html":{"name":"SDLSingleTireStatus","abstract":"<p>Tire pressure status of a single tire.</p>"},"Classes/SDLSlider.html":{"name":"SDLSlider","abstract":"<p>Creates a full screen or pop-up overlay (depending on platform) with a single user controlled slider</p>"},"Classes/SDLSliderResponse.html":{"name":"SDLSliderResponse","abstract":"<p>Response to SDLSlider</p>"},"Classes/SDLSoftButton.html":{"name":"SDLSoftButton","abstract":"<p>Describes an on-screen button which may be presented in various contexts, e.g. templates or alerts</p>"},"Classes/SDLSoftButtonCapabilities.html":{"name":"SDLSoftButtonCapabilities","abstract":"<p>Contains information about a SoftButton’s capabilities.</p>"},"Classes/SDLSoftButtonObject.html":{"name":"SDLSoftButtonObject","abstract":"<p>A soft button wrapper object that is capable of storing and switching between states</p>"},"Classes/SDLSoftButtonState.html":{"name":"SDLSoftButtonState","abstract":"<p>Undocumented</p>"},"Classes/SDLSpeak.html":{"name":"SDLSpeak","abstract":"<p>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 <q>speech-sculpted</q> phrase.</p>"},"Classes.html#/c:objc(cs)SDLSpeakResponse":{"name":"SDLSpeakResponse","abstract":"<p>Response to SDLSpeak</p>"},"Classes/SDLStartTime.html":{"name":"SDLStartTime","abstract":"<p>Describes the hour, minute and second values used to set the media clock.</p>"},"Classes/SDLStationIDNumber.html":{"name":"SDLStationIDNumber","abstract":"<p>Describes the hour, minute and second values used to set the media clock.</p>"},"Classes/SDLStreamingMediaConfiguration.html":{"name":"SDLStreamingMediaConfiguration","abstract":"<p>Undocumented</p>"},"Classes/SDLStreamingMediaManager.html":{"name":"SDLStreamingMediaManager","abstract":"<p>Undocumented</p>"},"Classes/SDLSubscribeButton.html":{"name":"SDLSubscribeButton","abstract":"<p>Establishes a subscription to button notifications for HMI buttons. Buttons"},"Classes.html#/c:objc(cs)SDLSubscribeButtonResponse":{"name":"SDLSubscribeButtonResponse","abstract":"<p>Response to SDLSubscribeButton</p>"},"Classes/SDLSubscribeVehicleData.html":{"name":"SDLSubscribeVehicleData","abstract":"<p>Subscribes to specific published vehicle data items. The data will be only sent if it has changed. The application will be notified by the <code>onVehicleData</code> notification whenever new data is available. The update rate is dependent on sensors, vehicle architecture and vehicle type.</p>"},"Classes/SDLSubscribeVehicleDataResponse.html":{"name":"SDLSubscribeVehicleDataResponse","abstract":"<p>Response to SDLSubscribeVehicleData</p>"},"Classes.html#/c:objc(cs)SDLSubscribeWayPoints":{"name":"SDLSubscribeWayPoints","abstract":"<p>A SDLSubscribeWaypoints can be sent to subscribe"},"Classes.html#/c:objc(cs)SDLSubscribeWayPointsResponse":{"name":"SDLSubscribeWayPointsResponse","abstract":"<p>Response to SubscribeWayPoints</p>"},"Classes/SDLSyncMsgVersion.html":{"name":"SDLSyncMsgVersion","abstract":"<p>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.</p>"},"Classes.html#/c:objc(cs)SDLSyncPData":{"name":"SDLSyncPData","abstract":"<p>Undocumented</p>"},"Classes.html#/c:objc(cs)SDLSyncPDataResponse":{"name":"SDLSyncPDataResponse","abstract":"<p>Response to SyncPData</p>"},"Classes/SDLSystemCapability.html":{"name":"SDLSystemCapability","abstract":"<p>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 <q>navigationCapability</q> should exist.</p>"},"Classes/SDLSystemCapabilityManager.html":{"name":"SDLSystemCapabilityManager","abstract":"<p>Undocumented</p>"},"Classes/SDLSystemRequest.html":{"name":"SDLSystemRequest","abstract":"<p>Undocumented</p>"},"Classes/SDLTTSChunk.html":{"name":"SDLTTSChunk","abstract":"<p>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).</p>"},"Classes/SDLTemperature.html":{"name":"SDLTemperature","abstract":"<p>Struct representing a temperature.</p>"},"Classes/SDLTemplateColorScheme.html":{"name":"SDLTemplateColorScheme","abstract":"<p>Undocumented</p>"},"Classes/SDLTextField.html":{"name":"SDLTextField","abstract":"<p>Struct defining the characteristics of a displayed field on the HMI.</p>"},"Classes/SDLTireStatus.html":{"name":"SDLTireStatus","abstract":"<p>Struct used in Vehicle Data; the status and pressure of the tires.</p>"},"Classes/SDLTouch.html":{"name":"SDLTouch","abstract":"<p>Undocumented</p>"},"Classes/SDLTouchCoord.html":{"name":"SDLTouchCoord","abstract":"<p>The coordinate of a touch, used in a touch event</p>"},"Classes/SDLTouchEvent.html":{"name":"SDLTouchEvent","abstract":"<p>A touch which occurred on the IVI system during projection</p>"},"Classes/SDLTouchEventCapabilities.html":{"name":"SDLTouchEventCapabilities","abstract":"<p>The capabilities of touches during projection applications</p>"},"Classes/SDLTouchManager.html":{"name":"SDLTouchManager","abstract":"<p>Undocumented</p>"},"Classes/SDLTurn.html":{"name":"SDLTurn","abstract":"<p>A struct used in UpdateTurnList for Turn-by-Turn navigation applications</p>"},"Classes.html#/c:objc(cs)SDLUnregisterAppInterface":{"name":"SDLUnregisterAppInterface","abstract":"<p>Terminates an application’s interface registration. This causes SDL® to"},"Classes.html#/c:objc(cs)SDLUnregisterAppInterfaceResponse":{"name":"SDLUnregisterAppInterfaceResponse","abstract":"<p>Response to UnregisterAppInterface</p>"},"Classes/SDLUnsubscribeButton.html":{"name":"SDLUnsubscribeButton","abstract":"<p>Deletes a subscription to button notifications for the specified button. For"},"Classes.html#/c:objc(cs)SDLUnsubscribeButtonResponse":{"name":"SDLUnsubscribeButtonResponse","abstract":"<p>Response to UnsubscribeButton</p>"},"Classes/SDLUnsubscribeVehicleData.html":{"name":"SDLUnsubscribeVehicleData","abstract":"<p>This function is used to unsubscribe the notifications from the"},"Classes/SDLUnsubscribeVehicleDataResponse.html":{"name":"SDLUnsubscribeVehicleDataResponse","abstract":"<p>Response to UnsubscribeVehicleData</p>"},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPoints":{"name":"SDLUnsubscribeWayPoints","abstract":"<p>Request to unsubscribe from navigation WayPoints and Destination</p>"},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPointsResponse":{"name":"SDLUnsubscribeWayPointsResponse","abstract":"<p>Response to UnsubscribeWayPoints</p>"},"Classes/SDLUpdateTurnList.html":{"name":"SDLUpdateTurnList","abstract":"<p>Updates the list of next maneuvers, which can be requested by the user pressing the softbutton<br></p>"},"Classes.html#/c:objc(cs)SDLUpdateTurnListResponse":{"name":"SDLUpdateTurnListResponse","abstract":"<p>Response to UpdateTurnList</p>"},"Classes/SDLVehicleDataResult.html":{"name":"SDLVehicleDataResult","abstract":"<p>Individual published data request result</p>"},"Classes/SDLVehicleType.html":{"name":"SDLVehicleType","abstract":"<p>Describes the type of vehicle the mobile phone is connected with.</p>"},"Classes/SDLVersion.html":{"name":"SDLVersion","abstract":"<p>Undocumented</p>"},"Classes/SDLVideoStreamingCapability.html":{"name":"SDLVideoStreamingCapability","abstract":"<p>Contains information about this system’s video streaming capabilities</p>"},"Classes/SDLVideoStreamingFormat.html":{"name":"SDLVideoStreamingFormat","abstract":"<p>An available format for video streaming in projection applications</p>"},"Classes/SDLVoiceCommand.html":{"name":"SDLVoiceCommand","abstract":"<p>Undocumented</p>"},"Classes/SDLVRHelpItem.html":{"name":"SDLVRHelpItem","abstract":"<p>A help item for voice commands, used locally in interaction lists and globally</p>"},"Classes/SDLWeatherAlert.html":{"name":"SDLWeatherAlert","abstract":"<p>Undocumented</p>"},"Classes/SDLWeatherData.html":{"name":"SDLWeatherData","abstract":"<p>Undocumented</p>"},"Classes/SDLWeatherServiceData.html":{"name":"SDLWeatherServiceData","abstract":"<p>This data is related to what a weather service would provide.</p>"},"Classes/SDLWeatherServiceManifest.html":{"name":"SDLWeatherServiceManifest","abstract":"<p>A weather service manifest.</p>"},"Categories/NSString(SDLEnum).html#/c:objc(cs)NSString(im)isEqualToEnum:":{"name":"-isEqualToEnum:","abstract":"<p>Returns whether or not two enums are equal.</p>","parent_name":"NSString(SDLEnum)"},"Categories/NSString(SDLEnum).html":{"name":"NSString(SDLEnum)","abstract":"<p>Undocumented</p>"},"Categories.html":{"name":"Categories","abstract":"<p>The following categories are available globally.</p>"},"Classes.html":{"name":"Classes","abstract":"<p>The following classes are available globally.</p>"},"Constants.html":{"name":"Constants","abstract":"<p>The following constants are available globally.</p>"},"Enums.html":{"name":"Enumerations","abstract":"<p>The following enumerations are available globally.</p>"},"Protocols.html":{"name":"Protocols","abstract":"<p>The following protocols are available globally.</p>"},"Type Definitions.html":{"name":"Type Definitions","abstract":"<p>The following type definitions are available globally.</p>"}}
\ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index a9db88108..65b79113e 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -127,36 +127,78 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h", + "line": 67, + "symbol": "SDLAppInterfaceUnregisteredReasonProtocolViolation", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h", + "line": 69, + "symbol": "SDLAppInterfaceUnregisteredReasonUnsupportedHMIResource", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppServiceCapability.h", + "line": 19, + "symbol": "SDLAppServiceCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppServiceData.h", + "line": 23, + "symbol": "SDLAppServiceData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppServiceRecord.h", + "line": 19, + "symbol": "SDLAppServiceRecord", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppServicesCapabilities.h", + "line": 18, + "symbol": "SDLAppServicesCapabilities", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLArtwork.h", - "line": 13, + "line": 16, "symbol": "SDLArtworkImageFormat", "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLArtwork.h", - "line": 13, + "line": 16, "symbol": "SDLArtworkImageFormat", "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLArtwork.h", - "line": 14, + "line": 17, "symbol": "SDLArtworkImageFormat.SDLArtworkImageFormatPNG", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLArtwork.h", - "line": 15, + "line": 18, "symbol": "SDLArtworkImageFormat.SDLArtworkImageFormatJPG", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLArtwork.h", - "line": 20, + "line": 23, "symbol": "SDLArtwork", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -351,6 +393,13 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCloudAppProperties.h", + "line": 19, + "symbol": "SDLCloudAppProperties", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConfiguration.h", "line": 19, "symbol": "SDLConfiguration", @@ -442,6 +491,27 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDirection.h", + "line": 14, + "symbol": "SDLDirection", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDirection.h", + "line": 19, + "symbol": "SDLDirectionLeft", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDirection.h", + "line": 24, + "symbol": "SDLDirectionRight", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", "line": 15, "symbol": "SDLEncodedSyncPData", @@ -471,61 +541,68 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 97, + "line": 101, "symbol": "SDLTextAndGraphicManagerError.SDLTextAndGraphicManagerErrorPendingUpdateSuperseded", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 106, + "line": 110, "symbol": "SDLSoftButtonManagerError.SDLSoftButtonManagerErrorPendingUpdateSuperseded", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 115, + "line": 119, "symbol": "SDLMenuManagerError.SDLMenuManagerErrorRPCsFailed", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 118, + "line": 122, "symbol": "SDLChoiceSetManagerError", "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 118, + "line": 122, "symbol": "SDLChoiceSetManagerError", "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 119, + "line": 123, "symbol": "SDLChoiceSetManagerError.SDLChoiceSetManagerErrorPendingPresentationDeleted", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 120, + "line": 124, "symbol": "SDLChoiceSetManagerError.SDLChoiceSetManagerErrorDeletionFailed", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", - "line": 121, + "line": 125, "symbol": "SDLChoiceSetManagerError.SDLChoiceSetManagerErrorUploadFailed", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLErrorConstants.h", + "line": 126, + "symbol": "SDLChoiceSetManagerError.SDLChoiceSetManagerErrorFailedToCreateMenuItems", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFile.h", "line": 16, "symbol": "SDLFile", @@ -534,7 +611,7 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFile.h", - "line": 58, + "line": 67, "symbol": "SDLFile.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -561,6 +638,41 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFunctionID.h", + "line": 10, + "symbol": "SDLFunctionID", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFunctionID.h", + "line": 12, + "symbol": "SDLFunctionID.+sharedInstance", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFunctionID.h", + "line": 14, + "symbol": "SDLFunctionID.-functionNameForId:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFunctionID.h", + "line": 15, + "symbol": "SDLFunctionID.-functionIdForName:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetAppServiceDataResponse.h", + "line": 18, + "symbol": "SDLGetAppServiceDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCs.h", "line": 21, "symbol": "SDLGetDTCs.-initWithECUName:", @@ -575,6 +687,13 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetFileResponse.h", + "line": 16, + "symbol": "SDLGetFileResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetInteriorVehicleData.h", "line": 20, "symbol": "SDLGetInteriorVehicleData.-initWithModuleType:", @@ -597,19 +716,12 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", - "line": 16, + "line": 19, "symbol": "SDLGetSystemCapability", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", - "line": 18, - "symbol": "SDLGetSystemCapability.-initWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWayPoints.h", "line": 10, "symbol": "SDLGetWayPoints", @@ -645,6 +757,27 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHybridAppPreference.h", + "line": 19, + "symbol": "SDLHybridAppPreferenceMobile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHybridAppPreference.h", + "line": 24, + "symbol": "SDLHybridAppPreferenceCloud", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHybridAppPreference.h", + "line": 29, + "symbol": "SDLHybridAppPreferenceBoth", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", "line": 28, "symbol": "SDLImageResolution.-initWithWidth:height:", @@ -667,7 +800,7 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 26, + "line": 27, "symbol": "SDLLifecycleConfiguration.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -877,21 +1010,21 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", - "line": 31, + "line": 32, "symbol": "SDLManagerReadyBlock", "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", - "line": 34, + "line": 35, "symbol": "SDLManager", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", - "line": 102, + "line": 108, "symbol": "SDLManager.proxy", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" @@ -946,6 +1079,62 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 14, + "symbol": "SDLNavigationAction", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 19, + "symbol": "SDLNavigationActionTurn", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 24, + "symbol": "SDLNavigationActionExit", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 29, + "symbol": "SDLNavigationActionStay", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 34, + "symbol": "SDLNavigationActionMerge", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 39, + "symbol": "SDLNavigationActionFerry", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 44, + "symbol": "SDLNavigationActionCarShuttleTrain", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationAction.h", + "line": 49, + "symbol": "SDLNavigationActionWaypoint", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationCapability.h", "line": 18, "symbol": "SDLNavigationCapability.-initWithSendLocation:waypoints:", @@ -953,6 +1142,90 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationInstruction.h", + "line": 25, + "symbol": "SDLNavigationInstruction", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 14, + "symbol": "SDLNavigationJunction", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 19, + "symbol": "SDLNavigationJunctionRegular", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 24, + "symbol": "SDLNavigationJunctionBifurcation", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 29, + "symbol": "SDLNavigationJunctionMultiCarriageway", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 34, + "symbol": "SDLNavigationJunctionRoundabout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 39, + "symbol": "SDLNavigationJunctionTraversableRoundabout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 44, + "symbol": "SDLNavigationJunctionJughandle", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 49, + "symbol": "SDLNavigationJunctionAllWayYield", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationJunction.h", + "line": 54, + "symbol": "SDLNavigationJunctionTurnAround", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationServiceData.h", + "line": 20, + "symbol": "SDLNavigationServiceData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationServiceManifest.h", + "line": 16, + "symbol": "SDLNavigationServiceManifest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 28, "symbol": "SDLNotificationName", @@ -1137,384 +1410,825 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 135, - "symbol": "SDLDidReceiveGetDTCsResponse", + "symbol": "SDLDidReceiveGetCloudAppPropertiesResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 136, - "symbol": "SDLDidReceiveGetInteriorVehicleDataResponse", + "symbol": "SDLDidReceiveGetAppServiceDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 137, - "symbol": "SDLDidReceiveGetSystemCapabilitiesResponse", + "symbol": "SDLDidReceiveGetDTCsResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 138, - "symbol": "SDLDidReceiveGetVehicleDataResponse", + "symbol": "SDLDidReceiveGetFileResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 139, - "symbol": "SDLDidReceiveGetWaypointsResponse", + "symbol": "SDLDidReceiveGetInteriorVehicleDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 140, - "symbol": "SDLDidReceiveListFilesResponse", + "symbol": "SDLDidReceiveGetSystemCapabilitiesResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 141, - "symbol": "SDLDidReceivePerformAudioPassThruResponse", + "symbol": "SDLDidReceiveGetVehicleDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 142, - "symbol": "SDLDidReceivePerformInteractionResponse", + "symbol": "SDLDidReceiveGetWaypointsResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 143, - "symbol": "SDLDidReceivePutFileResponse", + "symbol": "SDLDidReceiveListFilesResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 144, - "symbol": "SDLDidReceiveReadDIDResponse", + "symbol": "SDLDidReceivePerformAppServiceInteractionResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 145, - "symbol": "SDLDidReceiveRegisterAppInterfaceResponse", + "symbol": "SDLDidReceivePerformAudioPassThruResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 146, - "symbol": "SDLDidReceiveResetGlobalPropertiesResponse", + "symbol": "SDLDidReceivePerformInteractionResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 147, - "symbol": "SDLDidReceiveScrollableMessageResponse", + "symbol": "SDLDidReceivePublishAppServiceResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 148, - "symbol": "SDLDidReceiveSendHapticDataResponse", + "symbol": "SDLDidReceivePutFileResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 149, - "symbol": "SDLDidReceiveSendLocationResponse", + "symbol": "SDLDidReceiveReadDIDResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 150, - "symbol": "SDLDidReceiveSetAppIconResponse", + "symbol": "SDLDidReceiveRegisterAppInterfaceResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 151, - "symbol": "SDLDidReceiveSetDisplayLayoutResponse", + "symbol": "SDLDidReceiveResetGlobalPropertiesResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 152, - "symbol": "SDLDidReceiveSetGlobalPropertiesResponse", + "symbol": "SDLDidReceiveScrollableMessageResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 153, - "symbol": "SDLDidReceiveSetInteriorVehicleDataResponse", + "symbol": "SDLDidReceiveSendHapticDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 154, - "symbol": "SDLDidReceiveSetMediaClockTimerResponse", + "symbol": "SDLDidReceiveSendLocationResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 155, - "symbol": "SDLDidReceiveShowConstantTBTResponse", + "symbol": "SDLDidReceiveSetAppIconResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 156, - "symbol": "SDLDidReceiveShowResponse", + "symbol": "SDLDidReceiveSetCloudAppPropertiesResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 157, - "symbol": "SDLDidReceiveSliderResponse", + "symbol": "SDLDidReceiveSetDisplayLayoutResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 158, - "symbol": "SDLDidReceiveSpeakResponse", + "symbol": "SDLDidReceiveSetGlobalPropertiesResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 159, - "symbol": "SDLDidReceiveSubscribeButtonResponse", + "symbol": "SDLDidReceiveSetInteriorVehicleDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 160, - "symbol": "SDLDidReceiveSubscribeVehicleDataResponse", + "symbol": "SDLDidReceiveSetMediaClockTimerResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 161, - "symbol": "SDLDidReceiveSubscribeWaypointsResponse", + "symbol": "SDLDidReceiveShowConstantTBTResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 162, - "symbol": "SDLDidReceiveSyncPDataResponse", + "symbol": "SDLDidReceiveShowResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 163, - "symbol": "SDLDidReceiveUpdateTurnListResponse", + "symbol": "SDLDidReceiveSliderResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 164, - "symbol": "SDLDidReceiveUnregisterAppInterfaceResponse", + "symbol": "SDLDidReceiveSpeakResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 165, - "symbol": "SDLDidReceiveUnsubscribeButtonResponse", + "symbol": "SDLDidReceiveSubscribeButtonResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 166, - "symbol": "SDLDidReceiveUnsubscribeVehicleDataResponse", + "symbol": "SDLDidReceiveSubscribeVehicleDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 167, - "symbol": "SDLDidReceiveUnsubscribeWaypointsResponse", + "symbol": "SDLDidReceiveSubscribeWaypointsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 168, + "symbol": "SDLDidReceiveSyncPDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 169, + "symbol": "SDLDidReceiveUpdateTurnListResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 170, + "symbol": "SDLDidReceiveUnregisterAppInterfaceResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 171, + "symbol": "SDLDidReceiveUnsubscribeButtonResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 172, + "symbol": "SDLDidReceiveUnsubscribeVehicleDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", "line": 173, + "symbol": "SDLDidReceiveUnsubscribeWaypointsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 179, + "symbol": "SDLDidReceiveAddCommandRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 180, + "symbol": "SDLDidReceiveAddSubMenuRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 181, + "symbol": "SDLDidReceiveAlertRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 182, + "symbol": "SDLDidReceiveAlertManeuverRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 183, + "symbol": "SDLDidReceiveButtonPressRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 184, + "symbol": "SDLDidReceiveChangeRegistrationRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 185, + "symbol": "SDLDidReceiveCreateInteractionChoiceSetRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 186, + "symbol": "SDLDidReceiveDeleteCommandRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 187, + "symbol": "SDLDidReceiveDeleteFileRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 188, + "symbol": "SDLDidReceiveDeleteInteractionChoiceSetRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 189, + "symbol": "SDLDidReceiveDeleteSubMenuRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 190, + "symbol": "SDLDidReceiveDiagnosticMessageRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 191, + "symbol": "SDLDidReceiveDialNumberRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 192, + "symbol": "SDLDidReceiveEncodedSyncPDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 193, + "symbol": "SDLDidReceiveEndAudioPassThruRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 194, + "symbol": "SDLDidReceiveGetAppServiceDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 195, + "symbol": "SDLDidReceiveGetCloudAppPropertiesRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 196, + "symbol": "SDLDidReceiveGetDTCsRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 197, + "symbol": "SDLDidReceiveGetFileRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 198, + "symbol": "SDLDidReceiveGetInteriorVehicleDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 199, + "symbol": "SDLDidReceiveGetSystemCapabilityRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 200, + "symbol": "SDLDidReceiveGetVehicleDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 201, + "symbol": "SDLDidReceiveGetWayPointsRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 202, + "symbol": "SDLDidReceiveListFilesRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 203, + "symbol": "SDLDidReceivePerformAppServiceInteractionRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 204, + "symbol": "SDLDidReceivePerformAudioPassThruRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 205, + "symbol": "SDLDidReceivePerformInteractionRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 206, + "symbol": "SDLDidReceivePublishAppServiceRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 207, + "symbol": "SDLDidReceivePutFileRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 208, + "symbol": "SDLDidReceiveReadDIDRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 209, + "symbol": "SDLDidReceiveRegisterAppInterfaceRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 210, + "symbol": "SDLDidReceiveResetGlobalPropertiesRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 211, + "symbol": "SDLDidReceiveScrollableMessageRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 212, + "symbol": "SDLDidReceiveSendHapticDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 213, + "symbol": "SDLDidReceiveSendLocationRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 214, + "symbol": "SDLDidReceiveSetAppIconRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 215, + "symbol": "SDLDidReceiveSetCloudAppPropertiesRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 216, + "symbol": "SDLDidReceiveSetDisplayLayoutRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 217, + "symbol": "SDLDidReceiveSetGlobalPropertiesRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 218, + "symbol": "SDLDidReceiveSetInteriorVehicleDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 219, + "symbol": "SDLDidReceiveSetMediaClockTimerRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 220, + "symbol": "SDLDidReceiveShowRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 221, + "symbol": "SDLDidReceiveShowConstantTBTRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 222, + "symbol": "SDLDidReceiveSliderRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 223, + "symbol": "SDLDidReceiveSpeakRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 224, + "symbol": "SDLDidReceiveSubscribeButtonRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 225, + "symbol": "SDLDidReceiveSubscribeVehicleDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 226, + "symbol": "SDLDidReceiveSubscribeWayPointsRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 227, + "symbol": "SDLDidReceiveSyncPDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 228, + "symbol": "SDLDidReceiveSystemRequestRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 229, + "symbol": "SDLDidReceiveUnregisterAppInterfaceRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 230, + "symbol": "SDLDidReceiveUnsubscribeButtonRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 231, + "symbol": "SDLDidReceiveUnsubscribeVehicleDataRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 232, + "symbol": "SDLDidReceiveUnsubscribeWayPointsRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 233, + "symbol": "SDLDidReceiveUpdateTurnListRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 239, "symbol": "SDLDidChangeDriverDistractionStateNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 174, + "line": 240, "symbol": "SDLDidChangeHMIStatusNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 175, - "symbol": "SDLDidReceiveAudioPassThruNotification", + "line": 241, + "symbol": "SDLDidReceiveAppServiceDataNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 176, + "line": 242, "symbol": "SDLDidReceiveAppUnregisteredNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 177, + "line": 243, + "symbol": "SDLDidReceiveAudioPassThruNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 244, "symbol": "SDLDidReceiveButtonEventNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 178, + "line": 245, "symbol": "SDLDidReceiveButtonPressNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 179, + "line": 246, "symbol": "SDLDidReceiveCommandNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 180, + "line": 247, "symbol": "SDLDidReceiveEncodedDataNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 181, + "line": 248, "symbol": "SDLDidReceiveInteriorVehicleDataNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 182, + "line": 249, "symbol": "SDLDidReceiveKeyboardInputNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 183, + "line": 250, "symbol": "SDLDidChangeLanguageNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 184, + "line": 251, "symbol": "SDLDidChangeLockScreenStatusNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 185, + "line": 252, "symbol": "SDLDidReceiveNewHashNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 186, + "line": 253, "symbol": "SDLDidReceiveVehicleIconNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 187, + "line": 254, "symbol": "SDLDidChangePermissionsNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 188, + "line": 255, "symbol": "SDLDidReceiveRemoteControlStatusNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 189, + "line": 256, + "symbol": "SDLDidReceiveSystemCapabilityUpdatedNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 257, "symbol": "SDLDidReceiveSystemRequestNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 190, + "line": 258, "symbol": "SDLDidChangeTurnByTurnStateNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 191, + "line": 259, "symbol": "SDLDidReceiveTouchEventNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 192, + "line": 260, "symbol": "SDLDidReceiveVehicleDataNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 193, + "line": 261, "symbol": "SDLDidReceiveWaypointNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 195, + "line": 263, "symbol": "SDLNotificationConstants", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -1548,6 +2262,13 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAppServiceInteractionResponse.h", + "line": 17, + "symbol": "SDLPerformAppServiceInteractionResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", "line": 30, "symbol": "SDLPerformAudioPassThru.-initWithSamplingRate:bitsPerSample:audioType:maxDuration:", @@ -1681,6 +2402,13 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPublishAppServiceResponse.h", + "line": 18, + "symbol": "SDLPublishAppServiceResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRDSData.h", "line": 14, "symbol": "SDLRDSData.-initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region:", @@ -1695,6 +2423,573 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 14, + "symbol": "SDLRPCFunctionName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 16, + "symbol": "SDLRPCFunctionNameAddCommand", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 17, + "symbol": "SDLRPCFunctionNameAddSubMenu", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 18, + "symbol": "SDLRPCFunctionNameAlert", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 19, + "symbol": "SDLRPCFunctionNameAlertManeuver", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 20, + "symbol": "SDLRPCFunctionNameButtonPress", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 21, + "symbol": "SDLRPCFunctionNameChangeRegistration", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 22, + "symbol": "SDLRPCFunctionNameCreateInteractionChoiceSet", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 23, + "symbol": "SDLRPCFunctionNameDeleteCommand", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 24, + "symbol": "SDLRPCFunctionNameDeleteFile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 25, + "symbol": "SDLRPCFunctionNameDeleteInteractionChoiceSet", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 26, + "symbol": "SDLRPCFunctionNameDeleteSubMenu", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 27, + "symbol": "SDLRPCFunctionNameDiagnosticMessage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 28, + "symbol": "SDLRPCFunctionNameDialNumber", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 29, + "symbol": "SDLRPCFunctionNameEncodedSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 30, + "symbol": "SDLRPCFunctionNameEndAudioPassThru", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 31, + "symbol": "SDLRPCFunctionNameGenericResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 32, + "symbol": "SDLRPCFunctionNameGetAppServiceData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 33, + "symbol": "SDLRPCFunctionNameGetDTCs", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 34, + "symbol": "SDLRPCFunctionNameGetFile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 35, + "symbol": "SDLRPCFunctionNameGetCloudAppProperties", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 36, + "symbol": "SDLRPCFunctionNameGetInteriorVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 37, + "symbol": "SDLRPCFunctionNameGetSystemCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 38, + "symbol": "SDLRPCFunctionNameGetVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 39, + "symbol": "SDLRPCFunctionNameGetWayPoints", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 40, + "symbol": "SDLRPCFunctionNameListFiles", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 41, + "symbol": "SDLRPCFunctionNameOnAppInterfaceUnregistered", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 42, + "symbol": "SDLRPCFunctionNameOnAppServiceData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 43, + "symbol": "SDLRPCFunctionNameOnAudioPassThru", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 44, + "symbol": "SDLRPCFunctionNameOnButtonEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 45, + "symbol": "SDLRPCFunctionNameOnButtonPress", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 46, + "symbol": "SDLRPCFunctionNameOnCommand", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 47, + "symbol": "SDLRPCFunctionNameOnDriverDistraction", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 48, + "symbol": "SDLRPCFunctionNameOnEncodedSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 49, + "symbol": "SDLRPCFunctionNameOnHashChange", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 50, + "symbol": "SDLRPCFunctionNameOnHMIStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 51, + "symbol": "SDLRPCFunctionNameOnInteriorVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 52, + "symbol": "SDLRPCFunctionNameOnKeyboardInput", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 53, + "symbol": "SDLRPCFunctionNameOnLanguageChange", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 54, + "symbol": "SDLRPCFunctionNameOnLockScreenStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 55, + "symbol": "SDLRPCFunctionNameOnPermissionsChange", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 56, + "symbol": "SDLRPCFunctionNameOnRCStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 57, + "symbol": "SDLRPCFunctionNameOnSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 58, + "symbol": "SDLRPCFunctionNameOnSystemCapabilityUpdated", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 59, + "symbol": "SDLRPCFunctionNameOnSystemRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 60, + "symbol": "SDLRPCFunctionNameOnTBTClientState", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 61, + "symbol": "SDLRPCFunctionNameOnTouchEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 62, + "symbol": "SDLRPCFunctionNameOnVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 63, + "symbol": "SDLRPCFunctionNameOnWayPointChange", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 64, + "symbol": "SDLRPCFunctionNamePerformAppServiceInteraction", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 65, + "symbol": "SDLRPCFunctionNamePerformAudioPassThru", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 66, + "symbol": "SDLRPCFunctionNamePerformInteraction", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 67, + "symbol": "SDLRPCFunctionNamePublishAppService", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 68, + "symbol": "SDLRPCFunctionNamePutFile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 69, + "symbol": "SDLRPCFunctionNameReadDID", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 70, + "symbol": "SDLRPCFunctionNameRegisterAppInterface", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 71, + "symbol": "SDLRPCFunctionNameReserved", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 72, + "symbol": "SDLRPCFunctionNameResetGlobalProperties", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 73, + "symbol": "SDLRPCFunctionNameScrollableMessage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 74, + "symbol": "SDLRPCFunctionNameSendHapticData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 75, + "symbol": "SDLRPCFunctionNameSendLocation", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 76, + "symbol": "SDLRPCFunctionNameSetAppIcon", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 77, + "symbol": "SDLRPCFunctionNameSetCloudAppProperties", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 78, + "symbol": "SDLRPCFunctionNameSetDisplayLayout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 79, + "symbol": "SDLRPCFunctionNameSetGlobalProperties", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 80, + "symbol": "SDLRPCFunctionNameSetInteriorVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 81, + "symbol": "SDLRPCFunctionNameSetMediaClockTimer", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 82, + "symbol": "SDLRPCFunctionNameShow", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 83, + "symbol": "SDLRPCFunctionNameShowConstantTBT", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 84, + "symbol": "SDLRPCFunctionNameSlider", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 85, + "symbol": "SDLRPCFunctionNameSpeak", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 86, + "symbol": "SDLRPCFunctionNameSubscribeButton", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 87, + "symbol": "SDLRPCFunctionNameSubscribeVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 88, + "symbol": "SDLRPCFunctionNameSubscribeWayPoints", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 89, + "symbol": "SDLRPCFunctionNameSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 90, + "symbol": "SDLRPCFunctionNameSystemRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 91, + "symbol": "SDLRPCFunctionNameUnregisterAppInterface", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 92, + "symbol": "SDLRPCFunctionNameUnsubscribeButton", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 93, + "symbol": "SDLRPCFunctionNameUnsubscribeVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 94, + "symbol": "SDLRPCFunctionNameUnsubscribeWayPoints", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCFunctionNames.h", + "line": 95, + "symbol": "SDLRPCFunctionNameUpdateTurnList", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", "line": 10, "symbol": "SDLRPCMessage", @@ -1849,20 +3144,6 @@ "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendLocation.h", - "line": 18, - "symbol": "SDLSendLocation.-initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendLocation.h", - "line": 20, - "symbol": "SDLSendLocation.-initWithLongitude:latitude:locationName:locationDescription:displayAddressLines:phoneNumber:image:deliveryMode:timeStamp:address:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetAppIcon.h", "line": 19, "symbol": "SDLSetAppIcon.-initWithFileName:", @@ -1899,21 +3180,21 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetMediaClockTimer.h", - "line": 26, + "line": 118, "symbol": "SDLSetMediaClockTimer.-initWithUpdateMode:hours:minutes:seconds:audioStreamingIndicator:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetMediaClockTimer.h", - "line": 28, + "line": 120, "symbol": "SDLSetMediaClockTimer.-initWithUpdateMode:hours:minutes:seconds:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetMediaClockTimer.h", - "line": 30, + "line": 122, "symbol": "SDLSetMediaClockTimer.-initWithUpdateMode:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -2031,13 +3312,6 @@ "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStartTime.h", - "line": 16, - "symbol": "SDLStartTime.-initWithHours:minutes:seconds:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStaticIconName.h", "line": 14, "symbol": "SDLStaticIconName", @@ -3557,45 +4831,17 @@ "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 28, - "symbol": "SDLSystemCapability.-initWithNavigationCapability:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 30, - "symbol": "SDLSystemCapability.-initWithPhoneCapability:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 32, - "symbol": "SDLSystemCapability.-initWithVideoStreamingCapability:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 34, - "symbol": "SDLSystemCapability.-initWithRemoteControlCapability:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapabilityManager.h", - "line": 43, + "line": 44, "symbol": "SDLSystemCapabilityManager", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTemperature.h", - "line": 15, - "symbol": "SDLTemperature.-initWithUnit:value:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemRequest.h", + "line": 16, + "symbol": "SDLSystemRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { @@ -3760,6 +5006,125 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 15, + "symbol": "SDLVersion", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 17, + "symbol": "SDLVersion.major", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 18, + "symbol": "SDLVersion.minor", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 19, + "symbol": "SDLVersion.patch", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 21, + "symbol": "SDLVersion.stringVersion", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 23, + "symbol": "SDLVersion.-initWithMajor:minor:patch:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 24, + "symbol": "SDLVersion.+versionWithMajor:minor:patch:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 25, + "symbol": "SDLVersion.-initWithString:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 26, + "symbol": "SDLVersion.+versionWithString:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 27, + "symbol": "SDLVersion.-initWithSyncMsgVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 28, + "symbol": "SDLVersion.+versionWithSyncMsgVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 30, + "symbol": "SDLVersion.-compare:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 31, + "symbol": "SDLVersion.-isLessThanVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 32, + "symbol": "SDLVersion.-isEqualToVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 33, + "symbol": "SDLVersion.-isGreaterThanVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 34, + "symbol": "SDLVersion.-isGreaterThanOrEqualToVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVersion.h", + "line": 35, + "symbol": "SDLVersion.-isLessThanOrEqualToVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVideoStreamingCapability.h", "line": 21, "symbol": "SDLVideoStreamingCapability.-initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:", @@ -3809,6 +5174,20 @@ "warning": "undocumented" }, { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLWeatherAlert.h", + "line": 14, + "symbol": "SDLWeatherAlert", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLWeatherData.h", + "line": 18, + "symbol": "SDLWeatherData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SmartDeviceLink.h", "line": 7, "symbol": "SmartDeviceLinkVersionNumber", |